版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 《城市鏈表》課程設計(實習)報告</p><p> 題 目 城市鏈表 </p><p> 計算機與電子工程學院</p><p><b> 2011年12月</b></p><p><b> 目錄</b></p><
2、p> 1 課程設計任務與要求1</p><p> 1.2 問題分析1</p><p><b> 2系統(tǒng)總體設計1</b></p><p> 2.1 總體設計思想、設計方案的選擇1</p><p> 2.2 系統(tǒng)模塊設計1</p><p> 3 系統(tǒng)詳細設計2<
3、;/p><p> 3.1 系統(tǒng)子程序及功能設計2</p><p> 3.3 函數(shù)主要調用關系圖3</p><p> 4 系統(tǒng)詳細設計3</p><p> 4.1 數(shù)據(jù)類型定義3</p><p> 4.2 系統(tǒng)主要子程序設計3</p><p> 5 系統(tǒng)實現(xiàn)與測試6</p
4、><p> 5.1 建立城市鏈表6</p><p> 5.2 瀏覽城市鏈表6</p><p> 5.3城市鏈表的查找6</p><p> 5.4 城市鏈表的插入7</p><p> 5.6 城市鏈表的更新7</p><p> 5.7 查看給定范圍內(nèi)的城市7</p>
5、<p> 5.8文件的載入與保存8</p><p><b> 5.9系統(tǒng)設置8</b></p><p> 6軟件使用說明書8</p><p> 7 課程設計總結9</p><p><b> 參考文獻9</b></p><p> 1 課程設計
6、任務與要求</p><p> 1.1 課程設計任務</p><p> 將城市信息存在單鏈表里,對其實現(xiàn)常見的鏈表操作</p><p><b> 1.2 問題分析</b></p><p> 由若干個城市的信息,存入一個帶頭節(jié)點的單鏈表。節(jié)點中的城市信息包括城市名,城市坐標,城市面積,城市人口等。要求能夠利用城市
7、名和位置坐標進行有關的查找,插入,刪除,更新等操作。</p><p><b> 2系統(tǒng)總體設計</b></p><p> 為了實現(xiàn)上述需求可以從以下幾個方面著手進行設計。</p><p> 2.1 總體設計思想、設計方案的選擇</p><p> 本系統(tǒng)主要采用鏈表結構類型來存儲數(shù)據(jù),其中節(jié)點由四個部分組成:城市
8、名稱,城市坐標,城市人口和城市面積。</p><p> 2.2 系統(tǒng)模塊設計 </p><p> 本系統(tǒng)共設計了9個主要的子功能,各功能的描敘如下所述:</p><p> 建立城市鏈表,可以一次性的輸入多條城市的信息,建立城市信息表。該功能用CreateCityInfo ( )函數(shù)實現(xiàn)。</p><p> 瀏覽城市鏈表信息,可以查看
9、鏈表中所有城市的信息。該功能由PrintAll ( )函數(shù)來實現(xiàn)。</p><p> 查找城市中的信息,可以根據(jù)您的個性話需求來進行查找,查找設計了一個子菜單,可以選擇查找方式。按名稱查找,按坐標查找和查找的一定范圍內(nèi)的城市。菜單設計如下通過調用SearchInfo()函數(shù)實現(xiàn)。</p><p> 插入功能。每次可以插入一條城市信息,插入完后可以選擇繼續(xù)插入信息來進行多條插入。通過調用
10、InsertInfo( ) 函數(shù)來實現(xiàn)。</p><p> 城市鏈表的刪除,可以按照提示來刪除指定的數(shù)據(jù)。能夠讓用戶選擇通過何中方式來確定要刪除的文件,提供按名稱和按坐標兩種,刪除成功后會給出“刪除成功的提示”。通過調用DelInfo( )函數(shù)來實現(xiàn)</p><p> 城市鏈表的更新功能。能夠讓用戶選擇通過何中方式來確定要修改的文件,提供按名稱和按坐標兩種方式,定位后用戶可以選擇修改城
11、市的各個信息。通過調用 UpInfo()函數(shù)來實現(xiàn)。</p><p> 文件的載入和保存。用戶可以保存目前建立的城市信息,也可以從以前的文件中載入信息,從而實現(xiàn)數(shù)據(jù)的長期使用。通過調用FileHandle( ) 函數(shù)來實現(xiàn)。</p><p> 設置。用戶可以通過設置來改變文字大小,文字顏色,和界面背景顏色。通過調用UserSetting( )函數(shù)來實現(xiàn)。</p><
12、;p> 返回主菜單。方便用戶隨時查看主菜單,并選擇功能。通過調用SubMainMenu ( ) 函數(shù)來實現(xiàn)。</p><p><b> 3 系統(tǒng)詳細設計</b></p><p> 3.1 系統(tǒng)子程序及功能設計</p><p> 本系統(tǒng)共設計了23個子程序,各個函數(shù)的函數(shù)名及功能說明如下。</p><p>
13、 ( 1 ) int MainMenu( int k );//主菜單選擇</p><p> ( 1.1 ) void SubMainMenu();</p><p> ( 1.2 ) void CustomColor(WORD ForeColor,WORD BackColor); </p><p> //自定義文字顯示前景,背景色</p>
14、;<p> ( 2 ) pCity CreateCityInfo(pCity Head);// 城市鏈表建立 </p><p> ( 3 ) void PrintOne (pCity );//打印一條</p><p> ( 3.1 ) void PrintAll (pCity p);// 打印所有 </p><p>
15、( 4 ) void SearchInfo(pCity Head);//查找 </p><p> ( 4.1 ) pCity SearchUseName(pCity Head); //用名字查找</p><p> ( 4.2 ) pCity SearchUseCo(pCity Head); //用坐標查找</p><p> ( 4.3) pCity
16、 SearchInDis(pCity Head); //用距離查找</p><p> ( 5 ) void InsertInfo(pCity Head); //插入</p><p> ( 6 ) void DelInfo(pCity Head); //刪除信息</p><p> ( 6.1 ) void DelUseName(pCi
17、ty Head); //刪除按姓名</p><p> ( 6.2 ) void DelUseCo(pCity Head); //刪除按坐標</p><p> ( 7 ) void UpInfo(pCity Head); //修改信息</p><p> ( 7.1 ) void UpUseName(pCity Head);//修改用名字<
18、;/p><p> ( 7.2 ) void UpUseCo(pCity Head);//修改用坐標</p><p> ( 7.3 ) void UpDetail(pCity p);//修改具體每一項 </p><p> ( 8 ) void InitSetting(); //初始化用戶設置</p>
19、<p> ( 9 ) void UserSetting();//用戶設置</p><p> ( 10 ) pCity FileHandle(pCity Head);//文件處理</p><p> ( 11 ) int YNChoice();//專門執(zhí)行Y/N選擇,選是為Y,不是為N,其它無效 </p><p> ( 12
20、)int NumberChoice(int Min,int Max); //數(shù)字選擇,返回Min到Max之間的一個數(shù) </p><p> 3.3 函數(shù)主要調用關系圖</p><p><b> 4 系統(tǒng)詳細設計</b></p><p> 4.1 數(shù)據(jù)類型定義</p><p> 本系統(tǒng)采用鏈式存儲結構存儲城市節(jié)
21、點,節(jié)點定義如下:</p><p> struct Coord</p><p><b> {</b></p><p><b> int x;</b></p><p><b> int y;</b></p><p><b> };<
22、;/b></p><p> typedef struct City</p><p><b> {</b></p><p> char Name[20];</p><p><b> Coord Co;</b></p><p> int People;</p
23、><p><b> int Area;</b></p><p> City *Next;</p><p><b> } *pCity;</b></p><p> 4.2 系統(tǒng)主要子程序設計 </p><p> 建立鏈表函數(shù),用來建立城市鏈表</p>
24、<p> pCity CreateCityInfo(pCity Head)// 城市鏈表建立 </p><p><b> {</b></p><p> pCity DelCity,Tem;</p><p><b> if (Head)</b></p><p><b&
25、gt; {</b></p><p> printf("鏈表已近存在,確定重新建立 (Y/N) ");</p><p> if(YNChoice())</p><p><b> {</b></p><p> DelCity=Head->Next;</p><
26、;p> while (DelCity) //刪除所有</p><p><b> {</b></p><p> Tem=DelCity->Next;</p><p> free(DelCity);</p><p> DelCity=Tem;</p><
27、p><b> }</b></p><p> Head=NULL;</p><p><b> }</b></p><p><b> else</b></p><p> return Head;</p><p><b> }&
28、lt;/b></p><p> Head=(pCity)malloc(LEN);//建立頭結點</p><p> Head->Next=NULL;</p><p> char Name[20];</p><p> int Jum;//跳出輸入循環(huán)用</p><p>&l
29、t;b> COORD Co;</b></p><p> int People;</p><p><b> int Area;</b></p><p> int k=1; </p><p> int i=1;
30、 //控制while里的循環(huán)</p><p> printf("請輸入城市的名稱:");</p><p> fflush(stdin);</p><p> gets(Name);</p><p> printf("請輸入 %s 的坐標,形如(X Y):&qu
31、ot;,Name);</p><p> fflush(stdin);</p><p> scanf("%d%d",&Co.X,&Co.Y);</p><p> printf("請輸入 %s 的人口:",Name);</p><p> fflush(stdin);</p>
32、;<p> scanf("%d",&People);</p><p> printf("請輸入 %s 的面積:",Name);</p><p> fflush(stdin);</p><p> scanf("%d",&Area);</p><p>
33、;<b> Jum=1;</b></p><p> while(Jum)</p><p><b> {</b></p><p> pCity Tem=(pCity)malloc(LEN);</p><p><b> if(k!=1)</b></p>&l
34、t;p><b> {</b></p><p> printf("請輸入城市的名稱:");</p><p> fflush(stdin);</p><p> gets(Name);</p><p> printf("請輸入 %s 的坐標,形如(X Y):",Name)
35、;</p><p> fflush(stdin);</p><p> scanf("%d%d",&Co.X,&Co.Y);</p><p> printf("請輸入 %s 的人口:",Name);</p><p> fflush(stdin);</p><p&
36、gt; scanf("%d",&People);</p><p> printf("請輸入 %s 的面積:",Name);</p><p> fflush(stdin);</p><p> scanf("%d",&Area);</p><p><b>
37、; }</b></p><p> strcpy(Tem->Name,Name);</p><p> Tem->Co.X=Co.X;</p><p> Tem->Co.Y=Co.Y;</p><p> Tem->People=People;</p><p> Tem->
38、;Area=Area;</p><p> Tem->Next=Head->Next;</p><p> Head->Next=Tem;//連接了連個結點</p><p> printf("信息錄入成功,是否繼續(xù)添加:(Y/N)");</p><p> Jum=YNChoice();&l
39、t;/p><p><b> i=1;</b></p><p><b> k++;</b></p><p><b> }</b></p><p> return Head;</p><p><b> }</b></p&
40、gt;<p> 流程圖: </p><p><b> 5 系統(tǒng)實現(xiàn)與測試</b></p><p> 系統(tǒng)各運行界面如下,各子功能測試結果如下。</p><p> 5.1 建立城市鏈表</p><p> 在主菜單下(或“主菜單功能選項下”),用戶輸入1并回車,然后按照提示建立城市鏈表,分
41、別輸入每個城市的名稱,坐標,人口和面積,運行結構如下圖:</p><p> 5.2 瀏覽城市鏈表</p><p> 在主菜單下(或“主菜單功能選項下”),用戶輸入2并回車,可以瀏覽鏈表中的全部內(nèi)容,結構如下</p><p> 5.3城市鏈表的查找</p><p> 在主菜單下(或“主菜單功能選項下”),用戶輸入3并回車,可以進入查找子
42、菜單,如圖:</p><p> 用戶輸入相應選項即可進入相應功能。</p><p> 5.4 城市鏈表的插入</p><p> 在主菜單下(或“主菜單功能選項下”),用戶輸入4并回車,可以進入插入功能,按照提示輸入城市信息,即可插入新的城市信息。界面如下 </p><p> 5.5 城市鏈表的刪除</p><p&g
43、t; 在主菜單下(或“主菜單功能選項下”),用戶輸入5并回車,可以進入刪除子菜單,按照提示輸入要刪除的城市,即可刪除該城市信息。界面如下 </p><p> 5.6 城市鏈表的更新</p><p> 在主菜單下(或“主菜單功能選項下”),用戶輸入6并回車,可以進入刪除子菜單,按照提示輸入要刪除的城市,即可刪除該城市信息。界面如下 </p><p> 5.7
44、查看給定范圍內(nèi)的城市</p><p> 在主菜單下(或“主菜單功能選項下”),用戶輸入7并回車,可以進入查看給定范圍內(nèi)的城市的高級功能,按照提示輸入中心坐標,然后在給定一個范圍,即可查找出在該范圍內(nèi)的所有城市。界面如下:</p><p> 5.8文件的載入與保存</p><p> 在主菜單下(或“主菜單功能選項下”),用戶輸入8并回車,可以進入文件載入與保存的
45、選擇功能,可以在其中載入文件數(shù)據(jù)到鏈表,也可以將鏈表中的數(shù)據(jù)保存到指定位置,子菜單如下</p><p><b> 5.9系統(tǒng)設置 </b></p><p> 在主菜單下(或“主菜單功能選項下”),用戶輸入9并回車,可以進入系統(tǒng)設置功能,可以設置系統(tǒng)顯示的文字顏色和顯示背景色,還可以調整文字的大小,用戶所做的更改將會自動保存,下次使用時不必重新設置,子菜單如下:&l
46、t;/p><p><b> 6軟件使用說明書</b></p><p> ( 1 ) 本程序為“城市鏈表.exe”,該名不可更改,更改后可能會造成文件部分功能失效。.</p><p> ( 2 ) 進入本系統(tǒng)后,一個圖標界面后馬上顯示主菜單。用戶可以在該界面上輸</p><p> 入各子菜單前對應的數(shù)字并回車,執(zhí)行相應
47、的菜單命令。</p><p> ( 3 ) 本程序提供數(shù)據(jù)保存功能,請注意對重要數(shù)據(jù)進行保存。</p><p> ( 4 ) 本程序正常配有資源文件,程序啟動圖片可以更換成你的自定義,圖片大小640*400,將你的圖片命名為“1.bmp”,然后替換“Debug”文件夾中的“1.bmp”.</p><p><b> 7 課程設計總結</b>
48、</p><p> 本程序能夠很好的實現(xiàn)城市鏈表的基本功能,而且在此基礎上優(yōu)化了用戶操作界面,加入了文件保存,文件提取和系統(tǒng)初始化等額外功能,其中文件保存和提取能夠很大程度上優(yōu)化用戶數(shù)據(jù)的管理。系統(tǒng)初始化能夠將上一次用戶所有的個性化設置加載,不必每次使用時都重新設置。</p><p> 通過此次實驗,也了解到自己的語言知識很匱乏,缺乏獨立設計程序的能力,容易產(chǎn)生思維定式。在今后,一定要
49、把語言學好,基礎打牢,多進行實踐,獨立思考,取得進步</p><p><b> 參考文獻</b></p><p> [1]王立柱.C/C++與數(shù)據(jù)結構.北京:清華大學出版社,2008;</p><p> [2] Esakov J, Weiss T. Data Structures:An Advanced Approach Using
50、 C.Prentice-Hall,Inc.,1989;</p><p> [3] Aho A V,Hopcroft J E,Ullman J D.Data Structures and Algorithms.Addison-Wesley Publishing Company,Inc.,1983</p><p> [4] 嚴蔚敏 吳偉民.《 數(shù)據(jù)結構》(C語言版),清華大學出版社,201
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市鏈表課程設計
- 城市鏈表課程設計
- 數(shù)據(jù)結構課程設計報告--鏈表
- 數(shù)據(jù)結構課程設計報告---鏈表操作
- 數(shù)據(jù)結構課程設計報告---鏈表操作
- 課程設計鏈表的交叉合并課程設計
- 數(shù)據(jù)結構課程設計---城市鏈表的設計與實現(xiàn)
- 程序設計課程設計--鏈表操作
- 城市區(qū)號查詢課程設計--基于鏈表的城市區(qū)號查詢
- 數(shù)據(jù)結構課程設計---雙向鏈表
- 數(shù)據(jù)結構課程設計-鏈表操作
- 數(shù)據(jù)結構課程設計---鏈表操作
- 數(shù)據(jù)結構課程設計報告-雙鏈表創(chuàng)建與演示設計
- 課程設計報告---鏈表的維護與文件形式的保存
- 數(shù)據(jù)結構課程設計-- 循環(huán)單鏈表
- 課程設計報告—稀疏矩陣的完全鏈表表示及其運算
- 操作系統(tǒng)課程設計報告-線程安全型雙向鏈表的實現(xiàn)
- 數(shù)據(jù)庫課程設計-鏈表的簡單操作
- 數(shù)據(jù)結構課程設計--雙向循環(huán)鏈表的實現(xiàn)
- 數(shù)據(jù)結構課程設計報告---鏈表的維護與文件形式的保存
評論
0/150
提交評論