城市鏈表課程設(shè)計(jì)_第1頁
已閱讀1頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  目 錄</b></p><p>  一、 設(shè)計(jì)要求----------------------------------------------------------3</p><p>  二、 概要設(shè)計(jì)----------------------------------------------------------3</

2、p><p>  三、 模塊設(shè)計(jì)----------------------------------------------------------4</p><p>  四、 詳細(xì)設(shè)計(jì)----------------------------------------------------------7</p><p>  五、 測試分析--------------

3、--------------------------------------------10</p><p>  六、 源程序清單------------------------------------------------------13</p><p>  用戶手冊---------------------------------------------------------35

4、</p><p>  總結(jié)---------------------------------------------------------------36</p><p><b>  1 設(shè)計(jì)要求</b></p><p><b>  1.1 問題描述</b></p><p>  由若干個(gè)城市的信息

5、,存入一個(gè)帶頭節(jié)點(diǎn)的單鏈表。節(jié)點(diǎn)中的城市信息包括城市名,城市坐標(biāo),城市面積,城市人口等。要求能夠利用城市名和位置坐標(biāo)進(jìn)行有關(guān)的查找,插入,刪除,更新等操作。</p><p><b>  1.2需求分析</b></p><p> ?。?) 輸入數(shù)據(jù)建立城市鏈表。</p><p>  (2) 能夠根據(jù)需求實(shí)際需求進(jìn)行查找</p>&l

6、t;p>  (3) 能夠插入新的城市信息</p><p> ?。?) 能夠刪除不需要的城市的信息</p><p>  (5) 能夠修改鏈表中每一城市的信息</p><p> ?。?) 查看鏈表中所有的城市信息</p><p> ?。?) 能夠?qū)τ脩糨斎氲臄?shù)據(jù)進(jìn)行保存</p><p> ?。?) 能夠保留用戶用戶自

7、定義設(shè)置</p><p><b>  2概要設(shè)計(jì)</b></p><p>  為了實(shí)現(xiàn)上述需求可以從一下幾個(gè)方面著手進(jìn)行設(shè)計(jì)。</p><p><b>  2.1 主菜單設(shè)計(jì)</b></p><p>  為了實(shí)現(xiàn)城市鏈表各功能的管理,設(shè)計(jì)一個(gè)包含有多個(gè)菜單的主控菜單,相應(yīng)選項(xiàng)連接系統(tǒng)的各個(gè)子功能。為

8、方便用戶使用,主菜單運(yùn)行界面如下.</p><p>  2.2 存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)</p><p>  本系統(tǒng)主要采用鏈表結(jié)構(gòu)類型來存儲(chǔ)數(shù)據(jù),其中節(jié)點(diǎn)由四個(gè)部分組成:城市名稱,城市坐標(biāo),城市人口和城市面積。</p><p>  2.3 系統(tǒng)功能設(shè)計(jì)</p><p>  本系統(tǒng)共設(shè)計(jì)了9個(gè)主要的子功能,各功能的描敘如下所述:</p>&

9、lt;p>  建立城市鏈表,可以一次性的輸入多條城市的信息,建立城市信息表。該功能用CreateCityInfo ( )函數(shù)實(shí)現(xiàn)。</p><p>  瀏覽城市鏈表信息,可以查看鏈表中所有城市的信息。該功能由PrintAll ( )函數(shù)來實(shí)現(xiàn)。</p><p>  查找城市中的信息,可以根據(jù)您的個(gè)性話需求來進(jìn)行查找,查找設(shè)計(jì)了一個(gè)子菜單,可以選擇查找方式。按名稱查找,按坐標(biāo)查找和查找

10、的一定范圍內(nèi)的城市。菜單設(shè)計(jì)如下通過調(diào)用SearchInfo()函數(shù)實(shí)現(xiàn)。</p><p>  插入功能。每次可以插入一條城市信息,插入完后可以選擇繼續(xù)插入信息來進(jìn)行多條插入。通過調(diào)用InsertInfo( ) 函數(shù)來實(shí)現(xiàn)。</p><p>  城市鏈表的刪除,可以按照提示來刪除指定的數(shù)據(jù)。能夠讓用戶選擇通過何中方式來確定要?jiǎng)h除的文件,提供按名稱和按坐標(biāo)兩種,刪除成功后會(huì)給出“刪除成功的提

11、示”。通過調(diào)用DelInfo( )函數(shù)來實(shí)現(xiàn)</p><p>  城市鏈表的更新功能。能夠讓用戶選擇通過何中方式來確定要修改的文件,提供按名稱和按坐標(biāo)兩種方式,定位后用戶可以選擇修改城市的各個(gè)信息。通過調(diào)用 UpInfo()函數(shù)來實(shí)現(xiàn)。</p><p>  文件的載入和保存。用戶可以保存目前建立的城市信息,也可以從以前的文件中載入信息,從而實(shí)現(xiàn)數(shù)據(jù)的長期使用。通過調(diào)用FileHandle

12、( ) 函數(shù)來實(shí)現(xiàn)。</p><p>  設(shè)置。用戶可以通過設(shè)置來改變文字大小,文字顏色,和界面背景顏色。通過調(diào)用UserSetting( )函數(shù)來實(shí)現(xiàn)。</p><p>  返回主菜單。方便用戶隨時(shí)查看主菜單,并選擇功能。通過調(diào)用SubMainMenu ( ) 函數(shù)來實(shí)現(xiàn)。</p><p><b>  3 模塊設(shè)計(jì)</b></p>

13、;<p><b>  1 模塊設(shè)計(jì)</b></p><p>  本程序主要包含兩個(gè)模塊:主程序模塊和鏈表操作模塊。其調(diào)用關(guān)系如下圖:</p><p>  3.2 系統(tǒng)子程序及功能設(shè)計(jì)</p><p>  本系統(tǒng)共設(shè)計(jì)了23個(gè)子程序,各個(gè)函數(shù)的函數(shù)名及功能說明如下。</p><p>  ( 1 ) int

14、 MainMenu( int k );//主菜單選擇</p><p>  ( 1.1 ) void SubMainMenu();</p><p>  ( 1.2 ) void CustomColor(WORD ForeColor,WORD BackColor); </p><p>  //自定義文字顯示前景,背景色</p><p> 

15、 ( 2 ) pCity CreateCityInfo(pCity Head);// 城市鏈表建立 </p><p>  ( 3 ) void PrintOne (pCity );//打印一條</p><p>  ( 3.1 ) void PrintAll (pCity p);// 打印所有 </p><p>  ( 4 ) void

16、SearchInfo(pCity Head);//查找 </p><p>  ( 4.1 ) pCity SearchUseName(pCity Head); //用名字查找</p><p>  ( 4.2 ) pCity SearchUseCo(pCity Head); //用坐標(biāo)查找</p><p>  ( 4.3) pCity SearchInDis(

17、pCity Head); //用距離查找</p><p>  ( 5 ) void InsertInfo(pCity Head); //插入</p><p>  ( 6 ) void DelInfo(pCity Head); //刪除信息</p><p>  ( 6.1 ) void DelUseName(pCity Head); /

18、/刪除按姓名</p><p>  ( 6.2 ) void DelUseCo(pCity Head); //刪除按坐標(biāo)</p><p>  ( 7 ) void UpInfo(pCity Head); //修改信息</p><p>  ( 7.1 ) void UpUseName(pCity Head);//修改用名字</p><

19、p>  ( 7.2 ) void UpUseCo(pCity Head);//修改用坐標(biāo)</p><p>  ( 7.3 ) void UpDetail(pCity p);//修改具體每一項(xiàng) </p><p>  ( 8 ) void InitSetting(); //初始化用戶設(shè)置</p><p>  (

20、 9 ) void UserSetting();//用戶設(shè)置</p><p>  ( 10 ) pCity FileHandle(pCity Head);//文件處理</p><p>  ( 11 ) int YNChoice();//專門執(zhí)行Y/N選擇,選是為Y,不是為N,其它無效 </p><p>  ( 12)int NumberCh

21、oice(int Min,int Max); //數(shù)字選擇,返回Min到Max之間的一個(gè)數(shù) </p><p>  3 函數(shù)主要調(diào)用關(guān)系圖</p><p>  本系統(tǒng)函數(shù)主要調(diào)用關(guān)系圖如下所示,圖中數(shù)字是各函數(shù)的標(biāo)編號(hào)。</p><p><b>  4 詳細(xì)設(shè)計(jì)</b></p><p><b>  1 數(shù)據(jù)

22、類型定義</b></p><p>  (1)本系統(tǒng)采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)存儲(chǔ)城市節(jié)點(diǎn),節(jié)點(diǎn)定義如下:</p><p>  struct Coord</p><p><b>  {</b></p><p><b>  int x;</b></p><p><b>

23、;  int y;</b></p><p><b>  };</b></p><p>  typedef struct City</p><p><b>  {</b></p><p>  char Name[20];</p><p><b>  Coo

24、rd Co;</b></p><p>  int People;</p><p><b>  int Area;</b></p><p>  City *Next;</p><p><b>  } *pCity;</b></p><p>  2 系統(tǒng)主要子程序設(shè)計(jì)

25、</p><p> ?。?) 建立鏈表函數(shù),用來建立城市鏈表</p><p>  pCity CreateCityInfo(pCity Head)// 城市鏈表建立 </p><p><b>  {</b></p><p>  pCity DelCity,Tem;</p><p><

26、;b>  if (Head)</b></p><p><b>  {</b></p><p>  printf("鏈表已近存在,確定重新建立 (Y/N) ");</p><p>  if(YNChoice())</p><p><b>  {</b></p

27、><p>  DelCity=Head->Next;</p><p>  while (DelCity) //刪除所有</p><p><b>  {</b></p><p>  Tem=DelCity->Next;</p><p>  free(DelCit

28、y);</p><p>  DelCity=Tem;</p><p><b>  }</b></p><p>  Head=NULL;</p><p><b>  }</b></p><p><b>  else</b></p><p

29、>  return Head;</p><p><b>  }</b></p><p>  Head=(pCity)malloc(LEN);//建立頭結(jié)點(diǎn)</p><p>  Head->Next=NULL;</p><p>  char Name[20];</p><p&g

30、t;  int Jum;//跳出輸入循環(huán)用</p><p><b>  COORD Co;</b></p><p>  int People;</p><p><b>  int Area;</b></p><p>  int k=1;

31、 </p><p>  int i=1; //控制while里的循環(huán)</p><p>  printf("請(qǐng)輸入城市的名稱:");</p><p>  fflush(stdin);</p><p>  gets(Name);<

32、/p><p>  printf("請(qǐng)輸入 %s 的坐標(biāo),形如(X Y):",Name);</p><p>  fflush(stdin);</p><p>  scanf("%d%d",&Co.X,&Co.Y);</p><p>  printf("請(qǐng)輸入 %s 的人口:"

33、;,Name);</p><p>  fflush(stdin);</p><p>  scanf("%d",&People);</p><p>  printf("請(qǐng)輸入 %s 的面積:",Name);</p><p>  fflush(stdin);</p><p>

34、  scanf("%d",&Area);</p><p><b>  Jum=1;</b></p><p>  while(Jum)</p><p><b>  {</b></p><p>  pCity Tem=(pCity)malloc(LEN);</p>

35、<p><b>  if(k!=1)</b></p><p><b>  {</b></p><p>  printf("請(qǐng)輸入城市的名稱:");</p><p>  fflush(stdin);</p><p>  gets(Name);</p>&

36、lt;p>  printf("請(qǐng)輸入 %s 的坐標(biāo),形如(X Y):",Name);</p><p>  fflush(stdin);</p><p>  scanf("%d%d",&Co.X,&Co.Y);</p><p>  printf("請(qǐng)輸入 %s 的人口:",Name);&

37、lt;/p><p>  fflush(stdin);</p><p>  scanf("%d",&People);</p><p>  printf("請(qǐng)輸入 %s 的面積:",Name);</p><p>  fflush(stdin);</p><p>  scanf(&

38、quot;%d",&Area);</p><p><b>  }</b></p><p>  strcpy(Tem->Name,Name);</p><p>  Tem->Co.X=Co.X;</p><p>  Tem->Co.Y=Co.Y;</p><p>

39、  Tem->People=People;</p><p>  Tem->Area=Area;</p><p>  Tem->Next=Head->Next;</p><p>  Head->Next=Tem;//連接了連個(gè)結(jié)點(diǎn)</p><p>  printf("信息錄入成功,是否繼續(xù)添加:

40、(Y/N)");</p><p>  Jum=YNChoice();</p><p><b>  i=1;</b></p><p><b>  k++;</b></p><p><b>  }</b></p><p>  return Hea

41、d;</p><p><b>  }</b></p><p>  (2) 顯示所有節(jié)點(diǎn)的信息,用于查看城市鏈表。</p><p>  void PrintOne(pCity p)</p><p><b>  {</b></p><p>  printf("\t

42、\t%-16s( %3d,%-3d)\t%-9d%-8d\n",p->Name,p->Co.x,p->Co.y,p->People,p->Area);</p><p><b>  }</b></p><p>  void PrintAll(pCity p)</p><p><b>  {<

43、/b></p><p><b>  if(p)</b></p><p><b>  {</b></p><p>  printf("全部城市信息為 :\n");</p><p>  printf("\t\t城市\(zhòng)t\t坐標(biāo)\t\t人口\t面積\n");&

44、lt;/p><p>  while(p=p->Next)</p><p><b>  {</b></p><p>  PrintOne(p);</p><p><b>  }</b></p><p><b>  }</b></p><

45、;p><b>  else</b></p><p><b>  {</b></p><p>  printf("鏈表未建立,請(qǐng)先建立鏈表\n");</p><p><b>  }</b></p><p><b>  }</b>&l

46、t;/p><p><b>  5 測試分析</b></p><p>  系統(tǒng)各運(yùn)行界面如下,各子功能測試結(jié)果如下。</p><p>  5.1 建立城市鏈表</p><p>  在主菜單下(或“主菜單功能選項(xiàng)下”),用戶輸入1并回車,然后按照提示建立城市鏈表,分別輸入每個(gè)城市的名稱,坐標(biāo),人口和面積,運(yùn)行結(jié)構(gòu)如下圖:<

47、/p><p>  5.2 瀏覽城市鏈表</p><p>  在主菜單下(或“主菜單功能選項(xiàng)下”),用戶輸入2并回車,可以瀏覽鏈表中的全部內(nèi)容,結(jié)構(gòu)如下</p><p>  5.3城市鏈表的查找</p><p>  在主菜單下(或“主菜單功能選項(xiàng)下”),用戶輸入3并回車,可以進(jìn)入查找子菜單,如圖:</p><p>  用戶輸

48、入相應(yīng)選項(xiàng)即可進(jìn)入相應(yīng)功能。</p><p>  5.4 城市鏈表的插入</p><p>  在主菜單下(或“主菜單功能選項(xiàng)下”),用戶輸入4并回車,可以進(jìn)入插入功能,按照提示輸入城市信息,即可插入新的城市信息。界面如下 </p><p>  5.5 城市鏈表的刪除</p><p>  在主菜單下(或“主菜單功能選項(xiàng)下”),用戶輸入5并回車,

49、可以進(jìn)入刪除子菜單,按照提示輸入要?jiǎng)h除的城市,即可刪除該城市信息。界面如下 </p><p>  5.6 城市鏈表的更新</p><p>  在主菜單下(或“主菜單功能選項(xiàng)下”),用戶輸入6并回車,可以進(jìn)入刪除子菜單,按照提示輸入要?jiǎng)h除的城市,即可刪除該城市信息。界面如下 </p><p>  5.7 查看給定范圍內(nèi)的城市</p><p> 

50、 在主菜單下(或“主菜單功能選項(xiàng)下”),用戶輸入7并回車,可以進(jìn)入查看給定范圍內(nèi)的城市的高級(jí)功能,按照提示輸入中心坐標(biāo),然后在給定一個(gè)范圍,即可查找出在該范圍內(nèi)的所有城市。界面如下:</p><p>  5.8文件的載入與保存</p><p>  在主菜單下(或“主菜單功能選項(xiàng)下”),用戶輸入8并回車,可以進(jìn)入文件載入與保存的選擇功能,可以在其中載入文件數(shù)據(jù)到鏈表,也可以將鏈表中的數(shù)據(jù)保存

51、到指定位置,子菜單如下 </p><p><b>  5.9系統(tǒng)設(shè)置 </b></p><p>  在主菜單下(或“主菜單功能選項(xiàng)下”),用戶輸入9并回車,可以進(jìn)入系統(tǒng)設(shè)置功能,可以設(shè)置系統(tǒng)顯示的文字顏色和顯示背景色,還可以調(diào)整文字的大小,用戶所做的更改將會(huì)自動(dòng)保存,下次使用時(shí)不必重新設(shè)置,子菜單如下:</p><p><b>  

52、6 源程序清單</b></p><p><b>  6.1公共頭文件</b></p><p>  “Common.h”</p><p>  #include <string.h></p><p>  #include <stdio.h></p><p>  #i

53、nclude <malloc.h></p><p>  #include <stdlib.h></p><p>  #include <conio.h></p><p>  #include <windows.h></p><p>  #define LEN sizeof(City)</p

54、><p>  typedef struct City</p><p><b>  {</b></p><p>  char Name[20];</p><p><b>  COORD Co;</b></p><p>  int People;</p><p&g

55、t;<b>  int Area;</b></p><p>  City *Next;</p><p><b>  } *pCity;</b></p><p>  int MainMenu(int k);//主菜單選擇</p><p>  void Welcome();</p&g

56、t;<p>  void SubMainMenu();</p><p>  void ColorSetting(int Word,int Back);//自定義文字顯示前景,背景色</p><p>  pCity CreateCityInfo(pCity Head);// 城市鏈表建立 </p><p>  void PrintOne (p

57、City );//打印一條</p><p>  void PrintAll (pCity p);// 打印所有 </p><p>  void SearchInfo(pCity Head);//查找 </p><p>  pCity SearchUseName(pCity Head); //用名字查找<

58、/p><p>  pCity SearchUseCo(pCity Head); //用坐標(biāo)查找</p><p>  void InsertInfo(pCity Head); //插入</p><p>  pCity SearchInDis(pCity Head);//用距離查找</p><p>

59、  pCity DelInfo(pCity Head);//刪除信息</p><p>  void DelUseName(pCity Head);//刪除按姓名</p><p>  void DelUseCo(pCity Head); //刪除按坐標(biāo)</p><p>  pCity DelAll(pCity Head);</p&

60、gt;<p>  void UpInfo(pCity Head); //修改信息</p><p>  void UpUseName(pCity Head);//修改用名字</p><p>  void UpUseCo(pCity Head);//修改用坐標(biāo)</p><p>  void UpDetail(pCity

61、p);//修改具體每一項(xiàng) </p><p>  int YNChoice();//專門執(zhí)行Y/N選擇,選是為Y,不是為N,其它無效</p><p>  int NumberChoice(int Min,int Max); //數(shù)字選擇,返回Min到Max之間的一個(gè)數(shù) </p><p>  void Suspand

62、();</p><p>  void InitSetting(); //初始化用戶設(shè)置</p><p>  pCity FileHandle(pCity Head);//文件處理</p><p>  void UserSetting();//用戶設(shè)置</p><p>

63、;<b>  “File.h”</b></p><p>  #include <wincon.h></p><p>  #define _WIN32_WINNT 0x0500</p><p>  extern "C" WINBASEAPI HWND WINAPI GetConsoleWindow ();</

64、p><p>  void SaveFile(char * SaveDirectory,pCity Head);</p><p>  pCity OpenFile(char * OpenDirectory,pCity Head);</p><p>  void Save(HANDLE hFile,char * SaveDirectory,pCity Head);</

65、p><p>  void LSaveFile(char *SaveDirectory);</p><p>  pCity open(char *OpenDirectory,pCity Head);</p><p>  “Setting.h”</p><p>  struct UserSet

66、 //用戶設(shè)置</p><p><b>  {</b></p><p>  int sFontNumber;</p><p>  int sFontColor;</p><p>  int sBackgroundColor;</p><p>  char Director[200];</p&

67、gt;<p><b>  };</b></p><p>  struct CONSOLE_FONT //字體設(shè)置</p><p><b>  {</b></p><p>  DWORD index;</p><p>  COORD dim;<

68、;/p><p><b>  };</b></p><p>  typedef BOOL (WINAPI *PROCSETCONSOLEFONT)(HANDLE, DWORD);</p><p>  PROCSETCONSOLEFONT SetConsoleFont;</p><p>  WORD BasicColor[8]=

69、{FOREGROUND_RED,</p><p>  FOREGROUND_GREEN,</p><p>  FOREGROUND_BLUE,</p><p>  BACKGROUND_RED,</p><p>  BACKGROUND_GREEN,</p><p>  BACKGROUND_BLUE,</p&g

70、t;<p>  FOREGROUND_INTENSITY,</p><p>  BACKGROUND_INTENSITY,</p><p><b>  };</b></p><p>  WORD FontColor[9]={BasicColor[0],</p><p>  BasicColor[1],<

71、;/p><p>  BasicColor[2],</p><p>  BasicColor[0]|BasicColor[1],</p><p>  BasicColor[0]|BasicColor[2],</p><p>  BasicColor[1]|BasicColor[2],</p><p>  BasicColor

72、[0]|BasicColor[1]|BasicColor[3],</p><p>  BasicColor[0]|BasicColor[1]|BasicColor[3]|BasicColor[6],</p><p>  0 </p><p><b>  };</b></p><

73、p>  WORD BackColor[9]={</p><p>  BasicColor[3],</p><p>  BasicColor[4],</p><p>  BasicColor[5],</p><p>  BasicColor[3]|BasicColor[4],</p><p>  BasicColo

74、r[3]|BasicColor[5],</p><p>  BasicColor[4]|BasicColor[5],</p><p>  BasicColor[3]|BasicColor[4]|BasicColor[5],</p><p>  BasicColor[3]|BasicColor[4]|BasicColor[5]|BasicColor[7],</p

75、><p>  0 </p><p><b>  };</b></p><p>  void ColorSetting();</p><p>  void FontSetting();</p><p>  “Welcome.h”</p>&l

76、t;p>  typedef HWND (WINAPI *PROCGETCONSOLEWINDOW)();</p><p>  PROCGETCONSOLEWINDOW GetConsoleWindow;</p><p><b>  6.2 各函數(shù)文件</b></p><p>  “Common.cpp”</p><p&

77、gt;  #include "Common.h"</p><p>  int YNChoice() //專門執(zhí)行Y/N選擇,選是為Y,不是為N,其它無效</p><p><b>  {</b></p><p>  char Jump,k=1;</p><p>&

78、lt;b>  do</b></p><p><b>  {</b></p><p>  fflush(stdin);</p><p><b>  if (k!=1)</b></p><p><b>  {</b></p><p> 

79、 printf("選擇有誤,請(qǐng)重新選擇 (Y/N): ");</p><p><b>  }</b></p><p>  Jump=getchar();</p><p>  k++;</p><p>  }while(!(Jump=='Y'||Jump=='y

80、9;||Jump=='N'||Jump=='n'));</p><p>  if (Jump=='Y'||Jump=='y')</p><p><b>  {</b></p><p><b>  return 1;</b></p><p&g

81、t;<b>  }</b></p><p><b>  else</b></p><p><b>  return 0;</b></p><p><b>  } </b></p><p>  int NumberChoice(int Min,int Max

82、)</p><p><b>  {</b></p><p>  int k=0;int x;</p><p><b>  do{</b></p><p>  fflush(stdin);</p><p><b>  if(k)</b></p>

83、<p>  printf("選擇有誤,請(qǐng)重新選擇:");</p><p>  scanf("%d",&x);</p><p><b>  k++;</b></p><p>  }while(x<Min||x>Max);</p><p><b&

84、gt;  return x;</b></p><p><b>  }</b></p><p>  void Suspand()</p><p><b>  {</b></p><p>  fflush(stdin);</p><p>  getchar();<

85、;/p><p><b>  }</b></p><p>  “Creaete.cpp”</p><p>  #include "Common.h"</p><p>  pCity CreateCityInfo(pCity Head)// 城市鏈表建立 </p><p>&

86、lt;b>  {</b></p><p>  pCity DelCity,Tem;</p><p><b>  if (Head)</b></p><p><b>  {</b></p><p>  printf("鏈表已近存在,確定重新建立 (Y/N) ");

87、</p><p>  if(YNChoice())</p><p><b>  {</b></p><p>  DelCity=Head->Next;</p><p>  while (DelCity) //刪除所有</p><p><b>  {&l

88、t;/b></p><p>  Tem=DelCity->Next;</p><p>  free(DelCity);</p><p>  DelCity=Tem;</p><p><b>  }</b></p><p>  Head=NULL;</p><p>

89、;<b>  }</b></p><p><b>  else</b></p><p>  return Head;</p><p><b>  }</b></p><p>  Head=(pCity)malloc(LEN);//建立頭結(jié)點(diǎn)</p>

90、<p>  Head->Next=NULL;</p><p>  char Name[20];</p><p>  int Jum;//跳出輸入循環(huán)用</p><p><b>  COORD Co;</b></p><p>  int People;</p><p&

91、gt;<b>  int Area;</b></p><p>  int k=1; </p><p>  int i=1; //控制while里的循環(huán)</p><p>  printf("請(qǐng)輸入城市的

92、名稱:");</p><p>  fflush(stdin);</p><p>  gets(Name);</p><p>  printf("請(qǐng)輸入 %s 的坐標(biāo),形如(X Y):",Name);</p><p>  fflush(stdin);</p><p>  scanf(&quo

93、t;%d%d",&Co.X,&Co.Y);</p><p>  printf("請(qǐng)輸入 %s 的人口:",Name);</p><p>  fflush(stdin);</p><p>  scanf("%d",&People);</p><p>  printf(&q

94、uot;請(qǐng)輸入 %s 的面積:",Name);</p><p>  fflush(stdin);</p><p>  scanf("%d",&Area);</p><p><b>  Jum=1;</b></p><p>  while(Jum)</p><p&g

95、t;<b>  {</b></p><p>  pCity Tem=(pCity)malloc(LEN);</p><p><b>  if(k!=1)</b></p><p><b>  {</b></p><p>  printf("請(qǐng)輸入城市的名稱:"

96、);</p><p>  fflush(stdin);</p><p>  gets(Name);</p><p>  printf("請(qǐng)輸入 %s 的坐標(biāo),形如(X Y):",Name);</p><p>  fflush(stdin);</p><p>  scanf("%d%d&qu

97、ot;,&Co.X,&Co.Y);</p><p>  printf("請(qǐng)輸入 %s 的人口:",Name);</p><p>  fflush(stdin);</p><p>  scanf("%d",&People);</p><p>  printf("請(qǐng)輸入 %

98、s 的面積:",Name);</p><p>  fflush(stdin);</p><p>  scanf("%d",&Area);</p><p><b>  }</b></p><p>  strcpy(Tem->Name,Name);</p><p

99、>  Tem->Co.X=Co.X;</p><p>  Tem->Co.Y=Co.Y;</p><p>  Tem->People=People;</p><p>  Tem->Area=Area;</p><p>  Tem->Next=Head->Next;</p><p&g

100、t;  Head->Next=Tem;//連接了連個(gè)結(jié)點(diǎn)</p><p>  printf("信息錄入成功,是否繼續(xù)添加:(Y/N)");</p><p>  Jum=YNChoice();</p><p><b>  i=1;</b></p><p><b>  k++;

101、</b></p><p><b>  }</b></p><p>  return Head;</p><p><b>  }</b></p><p>  “Delete.cpp”</p><p>  #include "Common.h"

102、</p><p>  pCity DelInfo(pCity Head)</p><p><b>  {</b></p><p>  int Choice,k=1;</p><p><b>  if(!Head)</b></p><p><b>  {</b&

103、gt;</p><p>  printf("鏈表未建立,請(qǐng)先建立鏈表\n");</p><p>  return Head;</p><p><b>  }</b></p><p>  system("cls");</p><p>  printf(&quo

104、t; ***************刪除選項(xiàng)*************\n");</p><p>  printf(" * 1.按名字 *\n");</p><p>  printf(" * 2.按坐標(biāo)

105、 *\n");</p><p>  printf(" * 3.刪除全部 *\n");</p><p>  printf(" * 0.返回主菜單 *\n");</p>&

106、lt;p>  printf(" ************************************\n");</p><p>  printf("請(qǐng)選擇刪除方式: ");</p><p>  Choice=NumberChoice(0,3);</p><p>  switch (Choi

107、ce)</p><p><b>  {</b></p><p><b>  case 1 :</b></p><p>  DelUseName(Head);</p><p><b>  break;</b></p><p><b>  case

108、 2 :</b></p><p>  DelUseCo(Head);</p><p><b>  case 3:</b></p><p>  Head=DelAll(Head);</p><p><b>  break;</b></p><p><b>

109、  default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  return Head;</p><p><b>  }</b></p><p>  void Del

110、UseName(pCity Head) //刪除按姓名</p><p><b>  {</b></p><p>  pCity p=Head,q=Head->Next,t;</p><p>  char CityName[20];</p><p>  printf("請(qǐng)輸入要?jiǎng)h除的城市名稱:&quo

111、t;);</p><p>  fflush(stdin);</p><p>  gets(CityName);</p><p><b>  while (q)</b></p><p><b>  {</b></p><p>  if (!strcmp(CityName,q-&

112、gt;Name))</p><p><b>  {</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  p=q;</b></p><p>  q=q->

113、Next;</p><p><b>  }</b></p><p><b>  if (q)</b></p><p><b>  {</b></p><p><b>  t=q;</b></p><p>  p->Next=q

114、->Next;</p><p><b>  free(t);</b></p><p>  printf("刪除成功!!!\n"); </p><p><b>  }</b></p><p><b>  else</b></p&

115、gt;<p><b>  {</b></p><p>  printf("沒有找到指定城市,刪除失敗!!!\n");</p><p><b>  }</b></p><p>  Suspand();</p><p><b>  }</b><

116、;/p><p>  void DelUseCo(pCity Head) //刪除按坐標(biāo)</p><p><b>  {</b></p><p>  int x , y ;</p><p>  pCity p= Head , q = Head->Next,t;</p><p&

117、gt;  printf("請(qǐng)輸入城市坐標(biāo),形如(X Y):\n");</p><p>  scanf("%d%d",&x,&y);</p><p><b>  while (q)</b></p><p><b>  {</b></p><p>

118、  if (p->Co.X==x&&p->Co.Y==y)</p><p><b>  {</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  p=q;</

119、b></p><p>  q=q->Next;</p><p><b>  }</b></p><p><b>  if (q)</b></p><p><b>  {</b></p><p><b>  t=q;</b>

120、;</p><p>  p->Next=q->Next;</p><p><b>  free(t);</b></p><p>  printf("刪除成功!!!\n"); </p><p><b>  }</b></p><p

121、><b>  else</b></p><p><b>  {</b></p><p>  printf("沒有找到指定城市,刪除失敗!!!\n");</p><p><b>  }</b></p><p>  Suspand();</p>

122、;<p><b>  }</b></p><p>  pCity DelAll(pCity Head)</p><p><b>  {</b></p><p>  pCity p= Head->Next , q ;</p><p><b>  while (p)<

123、;/b></p><p><b>  {</b></p><p>  q=p->Next;</p><p><b>  free(p);</b></p><p>  p=q; </p><p><b>  }</b></p&

124、gt;<p>  Head=NULL;</p><p>  printf("刪除成功\n");</p><p>  Suspand();</p><p>  return Head;</p><p><b>  }</b></p><p>  “Insert.cp

125、p”</p><p>  #include "Common.h"</p><p>  void InsertInfo(pCity Head) //插入</p><p><b>  {</b></p><p>  pCity p=Head;</p><

126、p>  char CityName[30]={'\0'};</p><p>  char szName[30]={'\0'};</p><p><b>  COORD Co;</b></p><p>  int People;</p><p><b>  int Area;

127、</b></p><p><b>  if(!Head)</b></p><p><b>  {</b></p><p>  printf("鏈表未建立,請(qǐng)先建立鏈表\n");</p><p>  Suspand();</p><p><

128、b>  return ;</b></p><p><b>  }</b></p><p>  fflush(stdin);</p><p>  printf("請(qǐng)輸入城市的名稱:");</p><p>  gets(CityName);</p><p>  

129、fflush(stdin);</p><p>  printf("請(qǐng)輸入 %s 的坐標(biāo),形如(X Y):",CityName);</p><p>  scanf("%d%d",&Co.X,&Co.Y);</p><p>  fflush(stdin);</p><p>  printf(

130、"請(qǐng)輸入 %s 的人口:",CityName);</p><p>  scanf("%d",&People);</p><p>  fflush(stdin);</p><p>  printf("請(qǐng)輸入 %s 的面積:",CityName);</p><p>  scanf

131、("%d",&Area);</p><p>  while(p->Next)</p><p><b>  {</b></p><p>  p=p->Next;</p><p><b>  }</b></p><p>  pCity Te

132、m=(pCity)malloc(LEN);</p><p>  strcpy(Tem->Name,CityName);</p><p>  Tem->Co.X=Co.X;</p><p>  Tem->Co.Y=Co.Y;</p><p>  Tem->People=People;</p><p&g

133、t;  Tem->Area=Area;</p><p>  Tem->Next=p->Next;</p><p>  p->Next=Tem;</p><p>  printf("插入鏈表成功!!!\n");</p><p>  Suspand();</p><p><

134、b>  }</b></p><p>  “Menu.cpp”</p><p>  #include "Common.h"</p><p>  int MainMenu(int k) </p><p><b>  {</b></p>

135、<p>  int Choice,i=1;</p><p>  system("cls");</p><p><b>  if(!k)</b></p><p><b>  {</b></p><p>  printf(" ***********

136、******歡迎使用城市信息系統(tǒng)********************\n");</p><p>  printf(" * 1. 城市鏈表建立 *\n");</p><p>  printf(" * 2. 城市鏈表

137、瀏覽 *\n");</p><p>  printf(" * 3. 城市鏈表的查找 *\n");</p><p>  printf(" * 4. 城市鏈表插入

138、 *\n");</p><p>  printf(" * 5. 城市鏈表刪除 *\n");</p><p>  printf(" * 6. 城市鏈表更新

139、 *\n");</p><p>  printf(" * 7. 文件載入和保存 *\n");</p><p>  printf(" * 8. 設(shè)置

140、 *\n");</p><p>  printf(" * 9. 顯示主菜單 *\n");</p><p>  printf(" * 0. 退出系統(tǒng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論