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

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計說明書</b></p><p><b>  課程設(shè)計任務(wù)書</b></p><p>  課程名稱:軟件工程課程設(shè)計</p><p>  設(shè)計題目:城市公交查詢軟件</p><p>  已知技術(shù)參數(shù)和設(shè)計要求:</p><p><b&

2、gt;  需求說明及要求</b></p><p>  題目一:銀行管理系統(tǒng)及ATM前端的模擬設(shè)計</p><p>  銀行管理系統(tǒng)業(yè)務(wù)描述如下:</p><p>  銀行ATM存取款系統(tǒng)能為用戶提供存款、取款、查詢、轉(zhuǎn)賬和修改密碼的功能。為了模擬真實的ATM業(yè)務(wù)環(huán)境,本系統(tǒng)必須實現(xiàn)存款、取款、查詢、轉(zhuǎn)賬、修改密碼以及開戶的功能。用戶通過開戶業(yè)務(wù)在本系統(tǒng)開

3、立銀行賬戶,之后可以通過該銀行賬戶登陸ATM系統(tǒng),在系統(tǒng)中實現(xiàn)存款、取款、查詢賬戶信息、修改密碼的操作。本系統(tǒng)各個業(yè)務(wù)有如下注意點:</p><p><b>  登陸系統(tǒng)</b></p><p>  用戶登陸之前,必須在登陸界面輸入其銀行賬戶,通過其正確輸入的銀行賬戶登陸系統(tǒng)。</p><p><b>  開戶業(yè)務(wù)</b>

4、</p><p>  要使用本系統(tǒng)必須首先執(zhí)行開戶業(yè)務(wù)開立新的銀行賬戶,并且將此新開的銀行存儲于文件當(dāng)中。同時,系統(tǒng)以身份證號碼作為開戶的充分條件,即一個身份證號碼只能開立一次銀行賬戶。</p><p><b>  存款業(yè)務(wù)</b></p><p>  客戶登陸系統(tǒng)后,選擇存款業(yè)務(wù),即可以將輸入的存款金額存入相應(yīng)的賬戶。</p>

5、<p><b>  取款業(yè)務(wù)</b></p><p>  客戶登陸系統(tǒng)后,選擇取款業(yè)務(wù),即可以將輸入的取款金額從相應(yīng)的銀行賬戶取出,但是取款金額必須大于目前的賬戶余額。</p><p><b>  查詢業(yè)務(wù)</b></p><p>  客戶登陸系統(tǒng)后,可以選擇查詢業(yè)務(wù),查詢賬戶余額。</p><

6、;p><b>  轉(zhuǎn)賬業(yè)務(wù)</b></p><p>  客戶登陸系統(tǒng)后,可以選擇轉(zhuǎn)賬業(yè)務(wù),進(jìn)行轉(zhuǎn)賬。注意的是轉(zhuǎn)賬的目的賬戶必須是本系統(tǒng)已經(jīng)存在的銀行賬戶。</p><p><b>  修改密碼</b></p><p>  客戶登陸系統(tǒng)后,可以選擇修改密碼業(yè)務(wù),進(jìn)行密碼修改。</p><p> 

7、 題目二:個人通信錄系統(tǒng)模擬設(shè)計</p><p>  個人通信錄系統(tǒng)模擬設(shè)計業(yè)務(wù)描述如下: </p><p>  個人通信錄必須為用戶提供好友管理、系統(tǒng)管理和幫助三個部分。好友管理包括好友信息錄入、好友信息修改、好友信息刪除和好友信息查詢查詢的功能,在此基礎(chǔ)上可以設(shè)置好友分組;系統(tǒng)管理包括密碼修改、分組配置;幫助需要為用戶提供系統(tǒng)的操作幫助。本系統(tǒng)各個業(yè)務(wù)有如下注意點:</p>

8、<p><b> ?。?)登陸系統(tǒng)</b></p><p>  用戶在登陸界面輸入用戶名和密碼,校驗正確后可以登陸系統(tǒng)。</p><p><b> ?。?)好友管理業(yè)務(wù)</b></p><p>  新增的好友信息保存至文件,之后對好友信息的管理都是對文件中的好友信息進(jìn)行處理,并且可以將好友信息進(jìn)行分組。<

9、;/p><p><b>  (3)系統(tǒng)管理</b></p><p>  可以在密碼修改中修改本用戶的密碼;可以在此功能中配置系統(tǒng)需要的分組名,并且將分組名保存到文件中。</p><p><b>  (4)幫助</b></p><p>  幫助業(yè)務(wù)需要為用戶提供系統(tǒng)的操作幫助。</p>&l

10、t;p><b>  各階段具體要求:</b></p><p><b>  1、需求分析階段</b></p><p>  熟悉系統(tǒng)業(yè)務(wù),從業(yè)務(wù)中抽取出系統(tǒng)的需求,形成完善的需求說明書。</p><p><b>  2、系統(tǒng)設(shè)計階段</b></p><p>  根據(jù)需求,進(jìn)行

11、程序設(shè)計,包括定義系統(tǒng)的界面、定義系統(tǒng)數(shù)據(jù)的存儲方式等,形成完善的設(shè)計說明書。</p><p><b>  3、編碼實現(xiàn)階段</b></p><p>  (1)完成代碼編寫 </p><p> ?。?)要求代碼編寫規(guī)范</p><p><b>  4、系統(tǒng)測試階段</b></p>&l

12、t;p><b> ?。?)完成功能調(diào)試</b></p><p> ?。?)要求完成必要的測試工作</p><p><b>  5、交付實施階段</b></p><p> ?。?)提交可正常執(zhí)行的系統(tǒng)</p><p> ?。?)提交系統(tǒng)需求說明書、設(shè)計說明書、程序代碼</p>&l

13、t;p> ?。?)撰寫課程設(shè)計報告書</p><p> ?。?)要求規(guī)范地書寫文檔</p><p><b>  設(shè)計工作量:</b></p><p> ?。?)軟件設(shè)計:完成問題陳述中所提到的所有需求功能。</p><p> ?。?)論文:要求撰寫不少于3000個文字的文檔,詳細(xì)說明各階段具體要求。</p&g

14、t;<p><b>  工作計劃:</b></p><p>  理論課結(jié)束后兩周進(jìn)行課程設(shè)計,軟件開發(fā)如下,一周完成。其中,兩教學(xué)課時用于題目分析與介紹。其他教學(xué)可是用于程序設(shè)計。1)選定題目</p><p><b>  2)需求分析</b></p><p><b>  3)系統(tǒng)設(shè)計</

15、b></p><p><b>  4)編碼實現(xiàn)</b></p><p><b>  5)系統(tǒng)測試</b></p><p><b>  6)交付實施</b></p><p> ?。ㄒ驗榘嗉壿^多,各班開始和結(jié)束時間根據(jù)試驗室安排情況靈活確定,以正式課表為準(zhǔn))</p

16、><p><b>  注意事項</b></p><p><b>  提交文檔</b></p><p>  長沙學(xué)院課程設(shè)計任務(wù)書(每學(xué)生1份)</p><p>  長沙學(xué)院課程設(shè)計論文(每學(xué)生1份)</p><p>  長沙學(xué)院課程設(shè)計鑒定表(每學(xué)生1份)</p&g

17、t;<p>  指導(dǎo)教師簽名:       日期:     </p><p>  教研室主任簽名:        日期:        </p><p>  系主任簽名:          日期:        </p><p>  長沙學(xué)院課程設(shè)計鑒定表</p><p><b>  摘

18、要</b></p><p>  隨著我國城市公交系統(tǒng)發(fā)展和逐漸完善,市民的出行得到了極大的方便,但同時巨大的公交線路網(wǎng)讓人們的選擇也困難起來,本城市公交系統(tǒng)就是在此背景下進(jìn)行設(shè)計的。本系統(tǒng)以用戶為中心,界面簡潔,結(jié)構(gòu)簡單,功能較為完善,可以滿足市民出行的正常需要。系統(tǒng)分為兩個部分,一是內(nèi)部人員使用的管理員部分,這個部分的用來進(jìn)行管理,包括站點管理,線路管理,城市管理和功能測試。二是一般用戶使用的查詢部

19、分,這個部分的用來進(jìn)行查詢,包括站點查詢,線路查詢,站站查詢,切換城市,修改密碼。 </p><p>  關(guān)鍵詞: 城市公交查詢系統(tǒng)</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  第1章 設(shè)計內(nèi)容與要求1</p>

20、<p><b>  1.1課程名稱1</b></p><p><b>  1.2設(shè)計要求1</b></p><p>  第2章 需求分析4</p><p><b>  2.1功能模塊4</b></p><p><b>  2.2設(shè)計環(huán)境6<

21、;/b></p><p>  第3章 概要設(shè)計8</p><p><b>  3.1功能結(jié)構(gòu)8</b></p><p>  3.2系統(tǒng)流程圖11</p><p>  第4章 詳細(xì)設(shè)計20</p><p>  4.1登陸注冊模塊20</p><p>  4

22、.2 站點管理模塊22</p><p>  4.3 線路管理模塊24</p><p>  4.4城市管理模塊32</p><p>  4.5 公交查詢模塊34</p><p>  第5章 測試49</p><p>  5.1 登陸注冊模塊測試49</p><p>  5.2 站點管

23、理模塊測試50</p><p>  5.3 線路管理模塊測試52</p><p>  5.4 城市管理模塊測試53</p><p>  5.5 公交查詢模塊測試55</p><p><b>  總 結(jié)58</b></p><p><b>  參考文獻(xiàn)58</b>

24、</p><p>  附 錄 源代碼58</p><p>  第1章 設(shè)計內(nèi)容與要求</p><p>  1.1課程名稱:軟件工程基礎(chǔ)實訓(xùn)II</p><p>  設(shè)計題目:城市公交查詢軟件</p><p><b>  1.2設(shè)計要求 </b></p><p><

25、b>  各階段具體要求:</b></p><p><b>  1、需求分析階段</b></p><p>  (1)寫出需求分析(做什么) </p><p> ?。?)要求問題分析和功能定義準(zhǔn)確</p><p><b>  2、系統(tǒng)設(shè)計階段</b></p><p&

26、gt; ?。?)根據(jù)問題描述,設(shè)計系統(tǒng)的結(jié)構(gòu)</p><p> ?。?)完成數(shù)據(jù)結(jié)構(gòu)中各個函數(shù)的定義</p><p> ?。?)用戶界面的設(shè)計</p><p>  (5)要求數(shù)據(jù)結(jié)構(gòu)定義合理,類層次結(jié)構(gòu)清晰</p><p><b>  3、編碼實現(xiàn)階段</b></p><p>  (1)完成代碼編

27、寫 </p><p>  (2)要求代碼編寫規(guī)范</p><p><b>  4、系統(tǒng)測試階段</b></p><p><b> ?。?)完成功能調(diào)試</b></p><p>  (2)要求完成必要的測試工作</p><p><b>  5、交付實施階段</b

28、></p><p> ?。?)提交可正常執(zhí)行的系統(tǒng)</p><p> ?。?)提交系統(tǒng)需求說明書、設(shè)計說明書、程序代碼</p><p> ?。?)撰寫實訓(xùn)報告書</p><p>  (4)要求規(guī)范地書寫文檔</p><p><b>  第2章 需求分析</b></p><

29、;p><b>  2.1功能模塊</b></p><p><b>  1.主要功能模塊:</b></p><p><b> ?。?)用戶管理</b></p><p>  用戶管理模塊為用戶提供用戶信息管理的功能,包括用戶注冊、用戶登陸、用戶信息修改、用戶密碼修改、用戶注銷等功能。</p&g

30、t;<p>  用戶注冊:用戶可以利用此功能完成注冊,用戶在界面輸入注冊信息,回車后,軟件將注冊信息保存到用戶信息數(shù)據(jù)文件中。</p><p>  用戶登陸:用戶可以利用此功能完成登陸,用戶在界面輸入登陸信息,回車后,軟件驗證登錄信息,登陸成功后,軟件進(jìn)入主功能選擇界面。</p><p>  用戶信息修改:用戶可以利用此功能完成用戶信息修改。</p><p

31、>  用戶密碼修改:用戶可以利用此功能完成密碼修改。</p><p>  用戶注銷:用戶可以利用此功能完成用戶信息注銷,某用戶注銷后,便不能再次登錄。</p><p><b> ?。?)線路管理</b></p><p>  線路管理模塊為用戶提供公交線路數(shù)據(jù)的管理和維護(hù),包括線路添加、線路修改、線路刪除等功能。</p>&l

32、t;p>  線路添加:用戶可以利用此功能增加一條線路。</p><p>  線路修改:用戶可以利用此功能修改一條線路。</p><p>  線路刪除:用戶可以利用此功能刪除一條線路。</p><p><b> ?。?)站點管理</b></p><p>  站點管理模塊為用戶提供公交站點數(shù)據(jù)的管理和維護(hù),包括站點添加

33、、站點修改、站點刪除等功能。</p><p>  站點添加:用戶可以利用此功能增加一個站點。</p><p>  站點修改:用戶可以利用此功能修改一個站點。</p><p>  站點刪除:用戶可以利用此功能刪除一個站點。</p><p><b> ?。?)公交查詢</b></p><p>  公交

34、查詢模塊為用戶提供公交信息查詢的功能,包括站點查詢、線路查詢、站站查詢、最短距離查詢、最少換乘查詢等功能。</p><p>  站點查詢:用戶可以利用此功能查看某個站點所??康墓痪€路。</p><p>  線路查詢:用戶可以利用此功能查看某條線路所路經(jīng)的公交站點。</p><p>  站站查詢:用戶可以利用此功能查詢出發(fā)地和目的地之間的所有公交乘車方案。</

35、p><p>  最短距離查詢:用戶可以利用此功能查詢出發(fā)地和目的地之間最短距離的公交乘車方案。</p><p>  最少換乘查詢:用戶可以利用此功能查詢出發(fā)地和目的地之間最少換乘的公交乘車方案。</p><p><b>  2.2設(shè)計環(huán)境</b></p><p>  IDE:Dev C++ 5.11</p>&

36、lt;p>  編譯器:G++ 4.9.2</p><p>  操作系統(tǒng): windows 7 (64位)</p><p><b>  第3章 概要設(shè)計</b></p><p><b>  3.1功能結(jié)構(gòu)</b></p><p><b>  3.2系統(tǒng)流程圖</b><

37、;/p><p><b>  第4章 詳細(xì)設(shè)計</b></p><p>  4.1 登錄注冊模塊</p><p><b>  圖4.1-1 注冊</b></p><p>  4.2 站點管理模塊</p><p>  圖4.2-1 增加站點</p><p>

38、  圖4.2-2 刪除站點</p><p>  圖4.2-3 修改站點</p><p>  4.3 線路管理模塊</p><p>  圖4.3-1 增加路線</p><p>  圖4.3-2 刪除線路</p><p>  圖4.3-3 修改線路</p><p>  4.4 公交查詢模塊<

39、/p><p>  圖4.5-1 站點查詢</p><p>  圖4.5-2線路查詢</p><p>  圖4.5-3線路選擇</p><p><b>  第5章 測試</b></p><p>  5.1 登錄注冊模塊測試</p><p>  5.2 站點管理模塊測試</

40、p><p>  5.3 線路管理模塊測試</p><p>  5.4 城市管理模塊測試</p><p>  5.5 公交查詢模塊測試</p><p><b>  總 結(jié)</b></p><p>  本次課程設(shè)計對編程能力的要求很高,需要很多的軟件工程的思想,在寫的過程中也卡住過,但經(jīng)過老師的指導(dǎo)都得到

41、了很好的解決。在這次的實訓(xùn)中,我的編程能力有的飛躍性的提升。代碼的本身也出現(xiàn)了一些BUG但經(jīng)過測試大部分都背找出并修復(fù)。在整個代碼編寫過程也學(xué)會了很多編程技巧,一是數(shù)據(jù)表的設(shè)計,我的系統(tǒng)之所以能夠?qū)懙妮^為順利很大的原因就是數(shù)據(jù)表的設(shè)計,將公交站點,公交線路,站點和線路的關(guān)系分別存放在三個文件中,這種設(shè)計能是整個程序的數(shù)據(jù)和邏輯更加清晰,設(shè)計好的數(shù)據(jù)表能節(jié)省很多的時間并使算法也變得簡單。二是設(shè)計模式,不管功能多繁雜,結(jié)構(gòu)多復(fù)雜,只要有良好

42、的函數(shù)封裝,用到合適的設(shè)計模式,都能迎刃而解。通過本次實訓(xùn),我的系統(tǒng)架構(gòu)能力也有了一定的提升。同時要感謝老師的指導(dǎo)和解惑。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 嚴(yán)蔚敏 吳偉民著.數(shù)據(jù)結(jié)構(gòu)(C語言版). 北京:清華大學(xué)出版社,2015.</p><p>  [2] 杜紅燕 劉華富著.C語言程序設(shè)計教程.復(fù)旦大

43、學(xué)出版社,2014.</p><p><b>  附 錄 源代碼</b></p><p>  /*----------------------城市公交查詢系統(tǒng)--------------------------</p><p><b>  *作者:胡輝衡 </b></p><p><b&

44、gt;  *學(xué)校:長沙學(xué)院 </b></p><p>  *功能:實現(xiàn)城市公交查詢的基本功能 </p><p>  *實現(xiàn)技術(shù):C語言及數(shù)據(jù)結(jié)構(gòu) </p><p><b>  *指導(dǎo)老師:鐘旭 </b></p><p>  *完成時間 :2015年12月21日 </p><p>  -

45、-----------------------------------------------------------------*/ </p><p>  #include<stdio.h> </p><p>  #include<iostream></p><p>  #include<stdlib.h> </p>

46、<p>  #include<string.h></p><p>  #include<conio.h></p><p>  struct user//記錄賬號信息 </p><p><b>  {</b></p><p>  int identity;

47、//用戶身份,值等于false時為普通用戶,否則為管理員</p><p>  int userId;//用戶編號</p><p>  char loginName[40];//用戶登錄名</p><p>  char loginPassword[20];//登錄密碼 </p><p>  st

48、ruct user *next;//指向下一個用戶信息的指針,便于建立鏈表 </p><p><b>  };</b></p><p>  struct city{//記錄城市信息 </p><p>  int cityId;//城市編號 </p><p>  char

49、cityName[20];//城市名 </p><p>  struct city *next;//指向下一個城市信息的指針,便于建立鏈表 </p><p><b>  };</b></p><p>  struct station //記錄車站信息 </p><p><

50、;b>  {</b></p><p>  int stationId;//車站編號</p><p>  char stationName[20];//車站名稱</p><p>  int cityId;//所屬城市編號 </p><p>  struct station *

51、next;//指向下一個站點信息的指針,便于建立鏈表 </p><p><b>  };</b></p><p>  struct road //記錄公交線路信息 </p><p><b>  {</b></p><p>  int roadId;//

52、公交線路編號</p><p>  char roadName[20];//公交線路名稱</p><p>  int cityId;//所屬城市編號</p><p>  struct road *next;//指向下一個公交線路信息的指針,便于建立鏈表 </p><p><b>  

53、};</b></p><p>  struct relation{//記錄車站與公交線路之間的關(guān)系和站與站之間的信息 </p><p>  int stationId;//車站編號 </p><p>  int roadId;//公交線路編號</p><p>  int sep;

54、//車站在此公交線路的序號</p><p>  int distance;//在此公交線路下這個車站到下一站的距離(單位:km) </p><p>  int time; //在此公交線路下這個車站到下一站所需要的時間(單位:min)</p><p>  int cityId;//所屬城市編號<

55、;/p><p>  struct relation *next;//指向下一個站點與線路映射信息的指針,便于建立鏈表 </p><p><b>  };</b></p><p>  int g_cityId = 0;//記錄當(dāng)前城市編號的全局變量 </p><p>  int MainInterf

56、ace();//主界面 </p><p>  struct user *Login();//登錄函數(shù) </p><p>  struct user *Register();//注冊函數(shù) </p><p>  struct user*FindPassword();//找回密碼 </p><p>

57、;  void initialize();//初始化 </p><p>  int UserInterface(struct user* p);//用戶界面</p><p>  int AdminInterface(struct user* p);//管理員界面 </p><p>  struct user*Logout(struct

58、 user* p);//注銷函數(shù) </p><p>  void LineManage();//線路管理函數(shù) </p><p>  void SiteManage();//站點管理函數(shù) </p><p>  void LineQuery();//線路查詢函數(shù) </p><p>  voi

59、d SiteQuery();//站點查詢函數(shù) </p><p>  void SiteToSiteQuery();//站站查詢函數(shù) </p><p>  struct user*ChangePassword(struct user* p);//修改密碼函數(shù) </p><p>  void Inputpw(char *password

60、,int len); //密碼掩蓋函數(shù) </p><p>  void ChangeCity();//切換城市 </p><p>  void AddCity();//增加城市 </p><p>  void SiteAdd();//站點增加函數(shù) </p><p>  void Si

61、teChange();//站點修改函數(shù)</p><p>  void SiteDelete();//站點刪除函數(shù)</p><p>  void SiteDeleteDeal(int stationId); //站點刪除處理函數(shù)</p><p>  void LineAdd();//線路增加函數(shù) </p&g

62、t;<p>  void LineChange();//線路修改函數(shù)</p><p>  void LineDelete();//線路刪除函數(shù)</p><p>  void LineInsertSite(int roadId);//插入站點形成公交線路 </p><p>  void LineDeleteSite

63、(int roadId);//刪除公交線路上所有的站點 </p><p>  void LineShow(int roadId);//顯示公交線路上所有的公交站點 </p><p>  void SiteShow(int stationId);//顯示經(jīng)過公交站點所有的公交線路 </p><p>  void ShowAllWay(in

64、t start,int end);//顯示從起點到終點兩次換乘及以下的所有乘車方式 </p><p>  void graphFound();//將當(dāng)前城市所有的公交線路和站點構(gòu)成一張圖</p><p>  void showRoadName(int roadId);//根據(jù)線路編號顯示公交線路名 </p><p>  void

65、showStationName(int stationId);//根據(jù)站點編號顯示公交站點名 </p><p>  int main(){</p><p>  struct user *p;</p><p>  int option;</p><p>  initialize();</p><p><b&g

66、t;  while(1){</b></p><p>  system("cls");</p><p>  option = MainInterface();</p><p>  switch(option){</p><p>  case 49:p = Login();break;</p>&l

67、t;p>  case 50:p = Register();break;</p><p>  case 51:p = FindPassword();break;</p><p>  default:exit(-1);</p><p><b>  }</b></p><p>  //printf("a&quo

68、t;);</p><p>  if(p == NULL){</p><p><b>  continue;</b></p><p><b>  }else{</b></p><p>  //printf("\t\t你的身份:");</p><p>  if

69、(p->identity){</p><p>  while(p){//避免函數(shù)調(diào)用函數(shù)導(dǎo)致內(nèi)存爆炸 </p><p>  b:option = AdminInterface(p);</p><p>  switch(option){</p><p>  case 49:LineManage();break;</p&

70、gt;<p>  case 50:SiteManage();break;</p><p>  case 51:ChangeCity();break;</p><p>  case 52:AddCity();break;</p><p>  case 53:goto a;/*UserInterface(p)*/;break;</p><

71、;p>  case 54:p = Logout(p);break;</p><p>  default:exit(-1);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }else{</b></p>

72、<p>  while(p){//避免函數(shù)調(diào)用函數(shù)導(dǎo)致內(nèi)存爆炸</p><p>  a:option = UserInterface(p);</p><p>  switch(option){</p><p>  case 49:LineQuery();break;</p><p>  case 50:SiteQu

73、ery();break;</p><p>  case 51:SiteToSiteQuery();break;</p><p>  case 52:ChangeCity();break;</p><p>  case 53:p = ChangePassword(p);break;</p><p><b>  case 54:<

74、/b></p><p>  if(p->identity){</p><p><b>  goto b;</b></p><p><b>  }else{</b></p><p>  p = Logout(p);break;</p><p><b> 

75、 }</b></p><p>  default:exit(-1);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }<

76、/b></p><p>  //system("pause");</p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  voi

77、d SiteAdd(){</p><p>  system("cls");</p><p>  printf("--------------------------站點增加界面-------------------------");</p><p><b>  FILE *fp;</b></p>

78、;<p>  int i = 1;</p><p>  bool mark = false;</p><p>  int stationId,cityId;</p><p>  int stationIdMark = 0;//記錄新建公交站點的編號(應(yīng)大于所有已有的公交站點) </p><p>  char stationN

79、ame[20];</p><p>  struct station *head,*p,*q;</p><p>  head = (struct station*)malloc(sizeof(struct station));</p><p>  head->next = NULL;</p><p>  fp = fopen("

80、station.txt","r");</p><p><b>  if(fp){</b></p><p>  while(!feof(fp)){</p><p><b>  //產(chǎn)生鏈表 </b></p><p>  p = (struct station*)mallo

81、c(sizeof(struct station));</p><p>  p->next = NULL;</p><p>  fscanf(fp," %d %s %d",&p->stationId,p->stationName,&p->cityId);</p><p>  if(p->stationI

82、d > stationIdMark){</p><p>  stationIdMark = p->stationId;</p><p><b>  }</b></p><p>  p->next = head->next;</p><p>  head->next = p;</p&g

83、t;<p>  //printf(" %d %s %d",stationId,stationName,cityId);</p><p>  /*if(cityId == g_cityId){</p><p>  p->cityId = cityId;</p><p>  p->stationId = stationId;

84、</p><p>  strcpy(p->stationName,stationName);</p><p>  p->next = head->next;</p><p>  head->next = p;</p><p><b>  }*/</b></p><p>&

85、lt;b>  }</b></p><p>  p = head->next;</p><p>  printf("\n\n本城市已有的公交站點:\n");</p><p>  //將本城市已有的公交站點全部顯示出來 </p><p>  while(p != NULL){</p>&l

86、t;p>  //printf("a");</p><p>  if(p->cityId == g_cityId){</p><p>  printf("%s\t",p->stationName);</p><p>  if(i%5 == 0){</p><p>  printf(&q

87、uot;\n");</p><p><b>  }</b></p><p><b>  i++; </b></p><p><b>  }</b></p><p>  p = p->next; </p><p><b>  }&

88、lt;/b></p><p>  /*if(p == NULL){</p><p>  printf("\n\n本城市暫時還沒有添加任何公交站點!\n");</p><p><b>  }else{</b></p><p>  printf("\n\n本城市已有的公交站點:\n&quo

89、t;);</p><p>  while(p != NULL){</p><p>  //printf("a");</p><p>  printf("\t%s",p->stationName);</p><p>  if(i%5 == 0){</p><p>  prin

90、tf("\n");</p><p><b>  i++;</b></p><p><b>  }</b></p><p>  p = p->next; </p><p><b>  }</b></p><p><b>

91、;  } */</b></p><p>  printf("\n\n\n請輸入你想要增加的公交站點名(輸入0表示返回):");</p><p>  //對輸入的公交站名做正確性驗證 </p><p><b>  while(1){</b></p><p>  fflush(stdin);&

92、lt;/p><p>  gets(stationName);</p><p>  if(!strcmp(stationName,"0")){//把輸入0作為模塊出口 </p><p><b>  break;</b></p><p><b>  }</b><

93、/p><p>  p = head->next;</p><p>  mark = false;</p><p>  while(p != NULL){</p><p>  if(!strcmp(p->stationName,stationName) && p->cityId == g_cityId){</

94、p><p>  mark = true;//表示公交站點已存在,不需要再添加 </p><p><b>  break;</b></p><p><b>  }</b></p><p>  p = p->next;</p><p><b> 

95、 }</b></p><p><b>  if(mark){</b></p><p>  printf("此公交站點已存在!請重新輸入公交站點名(輸入0表示返回):");</p><p>  }else if(strlen(stationName) > 20 || strlen(stationName) &

96、lt; 4){</p><p>  printf("公交站點名長度不符合要求!請重新輸入公交站點名(輸入0表示返回):");</p><p><b>  }else{</b></p><p><b>  break;</b></p><p><b>  } </b

97、></p><p><b>  }</b></p><p>  //將新建的公交站點結(jié)點插入到鏈表中 </p><p>  if(strcmp(stationName,"0")){</p><p>  p = (struct station*)malloc(sizeof(struct stati

98、on));</p><p>  p->next = NULL;</p><p>  stationIdMark++; </p><p>  p->stationId = stationIdMark;</p><p>  p->cityId = g_cityId;</p><p>  strcpy(p-

99、>stationName,stationName);</p><p>  p->next = head->next;</p><p>  head->next = p;</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  

100、fp = fopen("station.txt","w");</p><p><b>  if(fp){</b></p><p>  p = head->next;</p><p>  while(p != NULL){//更新公交站點文件信息 </p><

101、p>  //printf("b");</p><p>  fprintf(fp," %d %s %d",p->stationId,p->stationName,p->cityId);</p><p>  head->next = head->next->next;</p><p>  

102、free(p);//釋放鏈表結(jié)點,節(jié)省內(nèi)存 </p><p>  p = head->next;</p><p><b>  }</b></p><p>  free(head);</p><p>  fclose(fp);</p><p><b>  }else{&l

103、t;/b></p><p>  printf("文件'city'打開失敗!");</p><p>  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></p

104、><p><b>  }else{</b></p><p>  printf("\n\n\n\n\n\t\t文件'station.txt'打開失?。n\n\n");</p><p>  system("pause");</p><p><b>  retur

105、n;</b></p><p><b>  }</b></p><p>  //system("pause");</p><p><b>  } </b></p><p>  void SiteChange(){</p><p>  system

106、("cls");</p><p>  printf("--------------------------站點修改界面-------------------------");</p><p><b>  FILE *fp;</b></p><p>  int i = 1;</p><p

107、>  bool mark = false;</p><p>  int stationId,cityId;</p><p>  char stationName[20];</p><p>  struct station *head,*p,*q;</p><p>  head = (struct station*)malloc(size

108、of(struct station));</p><p>  head->next = NULL;</p><p>  fp = fopen("station.txt","r");</p><p><b>  if(fp){</b></p><p>  while(!feof

109、(fp)){</p><p><b>  //產(chǎn)生鏈表 </b></p><p>  p = (struct station*)malloc(sizeof(struct station));</p><p>  p->next = NULL;</p><p>  fscanf(fp," %d %s %d&

110、quot;,&p->stationId,p->stationName,&p->cityId);</p><p>  p->next = head->next;</p><p>  head->next = p;</p><p><b>  }</b></p><p>

111、  p = head->next;</p><p>  printf("\n\n本城市已有的公交站點:\n");</p><p>  //將本城市已有的公交站點全部顯示出來 </p><p>  while(p != NULL){</p><p>  //printf("a");</p>

112、;<p>  if(p->cityId == g_cityId){</p><p>  printf("%s\t",p->stationName);</p><p>  if(i%5 == 0){</p><p>  printf("\n");</p><p><b&g

113、t;  }</b></p><p><b>  i++; </b></p><p><b>  }</b></p><p>  p = p->next; </p><p><b>  }</b></p><p>  printf(&qu

114、ot;\n\n\n請輸入你想要修改的公交站點名(輸入0表示返回):");</p><p>  //對輸入的公交站名做正確性驗證 </p><p><b>  while(1){</b></p><p>  fflush(stdin);</p><p>  gets(stationName);</p>

115、<p>  if(!strcmp(stationName,"0")){//把輸入0作為模塊出口 </p><p><b>  break;</b></p><p><b>  }</b></p><p>  p = head->next;</p>&

116、lt;p>  mark = false;</p><p>  while(p != NULL){</p><p>  if(!strcmp(p->stationName,stationName) && p->cityId == g_cityId){</p><p>  mark = true;//表示公交站點已

117、存在,可以修改 </p><p><b>  break;</b></p><p><b>  }</b></p><p>  p = p->next;</p><p><b>  }</b></p><p><b>  if(mark)

118、{</b></p><p><b>  break; </b></p><p>  }else if(strlen(stationName) > 20 || strlen(stationName) < 4){</p><p>  printf("公交站點名長度不符合要求!請重新輸入公交站點名(輸入0表示返回):

119、");</p><p><b>  }else{</b></p><p>  printf("此公交站點不存在!請重新輸入公交站點名(輸入0表示返回):");</p><p><b>  } </b></p><p><b>  }</b><

120、/p><p>  if(strcmp(stationName,"0")){</p><p>  printf("請輸入新的公交站點名:");</p><p><b>  while(1){</b></p><p>  fflush(stdin);</p><p>

121、;  gets(stationName);</p><p>  if(strlen(stationName) > 20 || strlen(stationName) < 4){</p><p>  printf("公交站點名長度不符合要求!請重新輸入新的公交站點名:");</p><p><b>  }else{</

122、b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  strcpy(p->stationName,stationName);</p><p>

123、;<b>  }</b></p><p>  fclose(fp);</p><p>  fp = fopen("station.txt","w");</p><p><b>  if(fp){</b></p><p>  p = head->next;

124、</p><p>  while(p != NULL){//更新公交站點文件信息 </p><p>  //printf("b");</p><p>  fprintf(fp," %d %s %d",p->stationId,p->stationName,p->cityId);</

125、p><p>  head->next = head->next->next;</p><p>  free(p);//釋放鏈表結(jié)點,節(jié)省內(nèi)存 </p><p>  p = head->next;</p><p><b>  }</b></p><p>  free(

126、head);</p><p>  fclose(fp);</p><p><b>  }else{</b></p><p>  printf("文件'city'打開失敗!");</p><p>  system("pause");</p><p&

127、gt;<b>  return;</b></p><p><b>  }</b></p><p><b>  }else{</b></p><p>  printf("\n\n\n\n\n\t\t文件'station.txt'打開失??!\n\n\n");</p

128、><p>  system("pause");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  //system("pause");</p><p><b>  }&

129、lt;/b></p><p>  void SiteDeleteDeal(int stationId){ //站點刪除處理函數(shù)</p><p>  //printf("\n所有經(jīng)過該站點的公交線路都將跳過該站點!\n");</p><p>  //printf("%d\n",stationId);</p>

130、<p>  FILE *fp,*fp2;</p><p><b>  int sep;</b></p><p>  struct relation *head,*p,*q;</p><p>  struct road *head2,*p2,*q2;</p><p>  fp = fopen("re

131、lation.txt","r");</p><p><b>  if(fp){</b></p><p>  head = (struct relation*)malloc(sizeof(struct relation));</p><p>  head->next = NULL;</p><

132、;p>  head2 = (struct road*)malloc(sizeof(struct road));</p><p>  head2->next = NULL;</p><p>  while(!feof(fp)){</p><p>  p = (struct relation*)malloc(sizeof(struct relation));

133、</p><p>  p->next = NULL;</p><p>  fscanf(fp," %d %d %d %d %d %d",&p->stationId,&p->roadId,&p->sep,&p->distance,&p->time,&p->cityId);</p

134、><p>  if(p->stationId == stationId){</p><p>  p2 = (struct road*)malloc(sizeof(struct road));</p><p>  p2->next = NULL;</p><p>  p2->roadId = p->roadId;</p

135、><p>  printf(" %d ",p->roadId);</p><p>  strcpy(p2->roadName,"");</p><p>  p2->next = head2->next;</p><p>  head2->next = p2;</p>

136、<p><b>  }</b></p><p>  p->next = head->next;</p><p>  head->next = p;</p><p><b>  }</b></p><p>  fclose(fp);</p><p&

137、gt;  p2 = head2->next;</p><p>  while(p2 != NULL){</p><p>  p = head->next;</p><p>  while(p != NULL){</p><p>  if(p->roadId == p2->roadId && p->

138、stationId == stationId){</p><p>  sep = p->sep;</p><p>  //printf(" %d \n",sep);</p><p><b>  break;</b></p><p><b>  }</b></p>

139、<p>  p = p->next;</p><p><b>  }</b></p><p>  p = head->next;</p><p>  while(p != NULL){</p><p>  if(p->roadId == p2->roadId && p

溫馨提示

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

評論

0/150

提交評論