版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市鏈表課程設(shè)計(jì)
- 城市鏈表課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)鏈表的交叉合并課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---城市鏈表的設(shè)計(jì)與實(shí)現(xiàn)
- 程序設(shè)計(jì)課程設(shè)計(jì)--鏈表操作
- 城市區(qū)號(hào)查詢課程設(shè)計(jì)--基于鏈表的城市區(qū)號(hào)查詢
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---雙向鏈表
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-鏈表操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---鏈表操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--鏈表
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---鏈表操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---鏈表操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-- 循環(huán)單鏈表
- 數(shù)據(jù)庫課程設(shè)計(jì)-鏈表的簡單操作
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--雙向循環(huán)鏈表的實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告-雙鏈表創(chuàng)建與演示設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---鏈表的創(chuàng)建、插入、刪除、修改
- 實(shí)現(xiàn)兩個(gè)鏈表的合并數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 單鏈表的基本操作迷宮問題數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告---鏈表的維護(hù)與文件形式的保存
評(píng)論
0/150
提交評(píng)論