2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  《城市鏈表》課程設(shè)計(jì)(實(shí)習(xí))報(bào)告</p><p>  題 目 城市鏈表 </p><p>  計(jì)算機(jī)與電子工程學(xué)院</p><p><b>  2011年12月</b></p><p><b>  目錄</b></p><

2、p>  1 課程設(shè)計(jì)任務(wù)與要求1</p><p>  1.2 問題分析1</p><p><b>  2系統(tǒng)總體設(shè)計(jì)1</b></p><p>  2.1 總體設(shè)計(jì)思想、設(shè)計(jì)方案的選擇1</p><p>  2.2 系統(tǒng)模塊設(shè)計(jì)1</p><p>  3 系統(tǒng)詳細(xì)設(shè)計(jì)2<

3、;/p><p>  3.1 系統(tǒng)子程序及功能設(shè)計(jì)2</p><p>  3.3 函數(shù)主要調(diào)用關(guān)系圖3</p><p>  4 系統(tǒng)詳細(xì)設(shè)計(jì)3</p><p>  4.1 數(shù)據(jù)類型定義3</p><p>  4.2 系統(tǒng)主要子程序設(shè)計(jì)3</p><p>  5 系統(tǒng)實(shí)現(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)設(shè)置8</b></p><p>  6軟件使用說明書8</p><p>  7 課程設(shè)計(jì)總結(jié)9</p><p><b>  參考文獻(xiàn)9</b></p><p>  1 課程設(shè)計(jì)

6、任務(wù)與要求</p><p>  1.1 課程設(shè)計(jì)任務(wù)</p><p>  將城市信息存在單鏈表里,對(duì)其實(shí)現(xiàn)常見的鏈表操作</p><p><b>  1.2 問題分析</b></p><p>  由若干個(gè)城市的信息,存入一個(gè)帶頭節(jié)點(diǎn)的單鏈表。節(jié)點(diǎn)中的城市信息包括城市名,城市坐標(biāo),城市面積,城市人口等。要求能夠利用城市

7、名和位置坐標(biāo)進(jìn)行有關(guān)的查找,插入,刪除,更新等操作。</p><p><b>  2系統(tǒng)總體設(shè)計(jì)</b></p><p>  為了實(shí)現(xiàn)上述需求可以從以下幾個(gè)方面著手進(jìn)行設(shè)計(jì)。</p><p>  2.1 總體設(shè)計(jì)思想、設(shè)計(jì)方案的選擇</p><p>  本系統(tǒng)主要采用鏈表結(jié)構(gòu)類型來存儲(chǔ)數(shù)據(jù),其中節(jié)點(diǎn)由四個(gè)部分組成:城市

8、名稱,城市坐標(biāo),城市人口和城市面積。</p><p>  2.2 系統(tǒng)模塊設(shè)計(jì) </p><p>  本系統(tǒng)共設(shè)計(jì)了9個(gè)主要的子功能,各功能的描敘如下所述:</p><p>  建立城市鏈表,可以一次性的輸入多條城市的信息,建立城市信息表。該功能用CreateCityInfo ( )函數(shù)實(shí)現(xiàn)。</p><p>  瀏覽城市鏈表信息,可以查看

9、鏈表中所有城市的信息。該功能由PrintAll ( )函數(shù)來實(shí)現(xiàn)。</p><p>  查找城市中的信息,可以根據(jù)您的個(gè)性話需求來進(jìn)行查找,查找設(shè)計(jì)了一個(gè)子菜單,可以選擇查找方式。按名稱查找,按坐標(biāo)查找和查找的一定范圍內(nèi)的城市。菜單設(shè)計(jì)如下通過調(diào)用SearchInfo()函數(shù)實(shí)現(xiàn)。</p><p>  插入功能。每次可以插入一條城市信息,插入完后可以選擇繼續(xù)插入信息來進(jìn)行多條插入。通過調(diào)用

10、InsertInfo( ) 函數(shù)來實(shí)現(xiàn)。</p><p>  城市鏈表的刪除,可以按照提示來刪除指定的數(shù)據(jù)。能夠讓用戶選擇通過何中方式來確定要?jiǎng)h除的文件,提供按名稱和按坐標(biāo)兩種,刪除成功后會(huì)給出“刪除成功的提示”。通過調(diào)用DelInfo( )函數(shù)來實(shí)現(xiàn)</p><p>  城市鏈表的更新功能。能夠讓用戶選擇通過何中方式來確定要修改的文件,提供按名稱和按坐標(biāo)兩種方式,定位后用戶可以選擇修改城

11、市的各個(gè)信息。通過調(diào)用 UpInfo()函數(shù)來實(shí)現(xiàn)。</p><p>  文件的載入和保存。用戶可以保存目前建立的城市信息,也可以從以前的文件中載入信息,從而實(shí)現(xiàn)數(shù)據(jù)的長期使用。通過調(diào)用FileHandle( ) 函數(shù)來實(shí)現(xiàn)。</p><p>  設(shè)置。用戶可以通過設(shè)置來改變文字大小,文字顏色,和界面背景顏色。通過調(diào)用UserSetting( )函數(shù)來實(shí)現(xiàn)。</p><

12、;p>  返回主菜單。方便用戶隨時(shí)查看主菜單,并選擇功能。通過調(diào)用SubMainMenu ( ) 函數(shù)來實(shí)現(xiàn)。</p><p><b>  3 系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p>  3.1 系統(tǒng)子程序及功能設(shè)計(jì)</p><p>  本系統(tǒng)共設(shè)計(jì)了23個(gè)子程序,各個(gè)函數(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); //用坐標(biāo)查找</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); //刪除按坐標(biāo)</p><p>  ( 7 ) void UpInfo(pCity Head); //修改信息</p><p>  ( 7.1 ) void UpUseName(pCity Head);//修改用名字<

18、;/p><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>

19、<p>  ( 9 ) void UserSetting();//用戶設(shè)置</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之間的一個(gè)數(shù) </p><p>  3.3 函數(shù)主要調(diào)用關(guān)系圖</p><p><b>  4 系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p>  4.1 數(shù)據(jù)類型定義</p><p>  本系統(tǒng)采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)存儲(chǔ)城市節(jié)

21、點(diǎn),節(jié)點(diǎn)定義如下:</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)主要子程序設(shè)計(jì) </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);//建立頭結(jié)點(diǎn)</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("請(qǐng)輸入城市的名稱:");</p><p>  fflush(stdin);</p><p>  gets(Name);</p><p>  printf("請(qǐng)輸入 %s 的坐標(biāo),形如(X Y):&qu

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

32、;<p>  scanf("%d",&People);</p><p>  printf("請(qǐng)輸入 %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("請(qǐng)輸入城市的名稱:");</p><p>  fflush(stdin);</p><p>  gets(Name);</p><p>  printf("請(qǐng)輸入 %s 的坐標(biāo),形如(X Y):",Name)

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

36、gt;  scanf("%d",&People);</p><p>  printf("請(qǐng)輸入 %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;//連接了連個(gè)結(jié)點(diǎn)</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)實(shí)現(xiàn)與測試</b></p><p>  系統(tǒng)各運(yùn)行界面如下,各子功能測試結(jié)果如下。</p><p>  5.1 建立城市鏈表</p><p>  在主菜單下(或“主菜單功能選項(xiàng)下”),用戶輸入1并回車,然后按照提示建立城市鏈表,分

41、別輸入每個(gè)城市的名稱,坐標(biāo),人口和面積,運(yùn)行結(jié)構(gòu)如下圖:</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)入查找子

42、菜單,如圖:</p><p>  用戶輸入相應(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&g

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

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

45、選擇功能,可以在其中載入文件數(shù)據(jù)到鏈表,也可以將鏈表中的數(shù)據(jù)保存到指定位置,子菜單如下</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è)置,子菜單如下:&l

46、t;/p><p><b>  6軟件使用說明書</b></p><p>  ( 1 ) 本程序?yàn)椤俺鞘墟湵?exe”,該名不可更改,更改后可能會(huì)造成文件部分功能失效。.</p><p>  ( 2 ) 進(jìn)入本系統(tǒng)后,一個(gè)圖標(biāo)界面后馬上顯示主菜單。用戶可以在該界面上輸</p><p>  入各子菜單前對(duì)應(yīng)的數(shù)字并回車,執(zhí)行相應(yīng)

47、的菜單命令。</p><p>  ( 3 ) 本程序提供數(shù)據(jù)保存功能,請(qǐng)注意對(duì)重要數(shù)據(jù)進(jìn)行保存。</p><p>  ( 4 ) 本程序正常配有資源文件,程序啟動(dòng)圖片可以更換成你的自定義,圖片大小640*400,將你的圖片命名為“1.bmp”,然后替換“Debug”文件夾中的“1.bmp”.</p><p><b>  7 課程設(shè)計(jì)總結(jié)</b>

48、</p><p>  本程序能夠很好的實(shí)現(xiàn)城市鏈表的基本功能,而且在此基礎(chǔ)上優(yōu)化了用戶操作界面,加入了文件保存,文件提取和系統(tǒng)初始化等額外功能,其中文件保存和提取能夠很大程度上優(yōu)化用戶數(shù)據(jù)的管理。系統(tǒng)初始化能夠?qū)⑸弦淮斡脩羲械膫€(gè)性化設(shè)置加載,不必每次使用時(shí)都重新設(shè)置。</p><p>  通過此次實(shí)驗(yàn),也了解到自己的語言知識(shí)很匱乏,缺乏獨(dú)立設(shè)計(jì)程序的能力,容易產(chǎn)生思維定式。在今后,一定要

49、把語言學(xué)好,基礎(chǔ)打牢,多進(jìn)行實(shí)踐,獨(dú)立思考,取得進(jìn)步</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]王立柱.C/C++與數(shù)據(jù)結(jié)構(gòu).北京:清華大學(xué)出版社,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] 嚴(yán)蔚敏 吳偉民.《 數(shù)據(jù)結(jié)構(gòu)》(C語言版),清華大學(xué)出版社,201

溫馨提示

  • 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)論