公交查詢系統(tǒng)_第1頁
公交查詢系統(tǒng)_第2頁
公交查詢系統(tǒng)_第3頁
公交查詢系統(tǒng)_第4頁
公交查詢系統(tǒng)_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、長 沙 學(xué) 院課程設(shè)計(jì)說明書題目系(部)專業(yè)(班級)姓名學(xué)號指導(dǎo)教師起止日期課程設(shè)計(jì)任務(wù)書課程名稱:軟件工程基礎(chǔ)實(shí)訓(xùn)設(shè)計(jì)題目:城市公交查詢軟件已知技術(shù)參數(shù)和設(shè)計(jì)要求:需求說明及要求1.主要功能模塊:(1)用戶管理用戶管理模塊為用戶提供用戶信息管理的功能,包括用戶注冊、用戶登錄、用戶信息修改、用戶密碼修改、用戶注銷等功能。用戶注冊:用戶可以利用此功能完成注冊,用戶在界面輸入注冊信息,回車后,軟件將注冊信息保存到用戶信息數(shù)據(jù)文件中。用戶登錄:用戶可以利用此功能完成登錄,用戶在界面輸入登錄信息,回車后,軟件驗(yàn)證登錄信息,登錄成功后,軟件進(jìn)入主功能選擇界面。用戶信息修改:用戶可以利用此功能完成用戶信息

2、修改。用戶密碼修改:用戶可以利用此功能完成密碼修改。用戶注銷:用戶可以利用此功能完成用戶信息注銷,某用戶注銷后,便不能再次登錄。(2)線路管理線路管理模塊為用戶提供公交線路數(shù)據(jù)的管理和維護(hù),包括線路添加、線路修改、線路刪除等功能。線路添加:用戶可以利用此功能增加一條線路。線路修改:用戶可以利用此功能修改一條線路。線路刪除:用戶可以利用此功能刪除一條線路。(3)站點(diǎn)管理站點(diǎn)管理模塊為用戶提供公交站點(diǎn)數(shù)據(jù)的管理和維護(hù),包括站點(diǎn)添加、站點(diǎn)修改、站點(diǎn)刪除等功能。站點(diǎn)添加:用戶可以利用此功能增加一個(gè)站點(diǎn)。站點(diǎn)修改:用戶可以利用此功能修改一個(gè)站點(diǎn)。站點(diǎn)刪除:用戶可以利用此功能刪除一個(gè)站點(diǎn)。(4)公交查詢公

3、交查詢模塊為用戶提供公交信息查詢的功能,包括站點(diǎn)查詢、線路查詢、站站查詢、最短距離查詢、最少換乘查詢等功能。站點(diǎn)查詢:用戶可以利用此功能查看某個(gè)站點(diǎn)所停靠的公交線路。線路查詢:用戶可以利用此功能查看某條線路所路經(jīng)的公交站點(diǎn)。站站查詢:用戶可以利用此功能查詢出發(fā)地和目的地之間的所有公交乘車方案。最短距離查詢:用戶可以利用此功能查詢出發(fā)地和目的地之間最短距離的公交乘車方案。最少換乘查詢:用戶可以利用此功能查詢出發(fā)地和目的地之間最少換乘的公交乘車方案。 3.要求:界面友好,易于操作;數(shù)據(jù)結(jié)構(gòu)運(yùn)用靈活,編碼規(guī)范,設(shè)計(jì)合理。各階段具體要求:1、需求分析階段(1)寫出需求分析(做什么) (2)要求問題分析

4、和功能定義準(zhǔn)確2、系統(tǒng)設(shè)計(jì)階段(1)根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的結(jié)構(gòu)(3)完成數(shù)據(jù)結(jié)構(gòu)中各個(gè)函數(shù)的定義(4)用戶界面的設(shè)計(jì)(5)要求數(shù)據(jù)結(jié)構(gòu)定義合理,類層次結(jié)構(gòu)清晰3、編碼實(shí)現(xiàn)階段(1)完成代碼編寫 (2)要求代碼編寫規(guī)范4、系統(tǒng)測試階段(1)完成功能調(diào)試(2)要求完成必要的測試工作5、交付實(shí)施階段(1)提交可正常執(zhí)行的系統(tǒng)(2)提交系統(tǒng)需求說明書、設(shè)計(jì)說明書、程序代碼(3)撰寫實(shí)訓(xùn)報(bào)告書(4)要求規(guī)范地書寫文檔設(shè)計(jì)工作量:(1)軟件設(shè)計(jì):完成問題陳述中所提到的所有需求功能。(2)論文:要求撰寫不少于3000個(gè)文字的文檔,詳細(xì)說明各階段具體要求。工作計(jì)劃:安排兩周時(shí)間進(jìn)行課程設(shè)計(jì),軟件開發(fā)步驟如下

5、,2天完成13,3-5天完成46,論文同步進(jìn)行;1)選定題目2)需求分析3)系統(tǒng)設(shè)計(jì)4)編碼實(shí)現(xiàn)5)系統(tǒng)測試6)交付實(shí)施注意事項(xiàng)n 提交文檔Ø 長沙學(xué)院實(shí)訓(xùn)任務(wù)書(每學(xué)生1份)Ø 長沙學(xué)院實(shí)訓(xùn)說明書(每學(xué)生1份)Ø 長沙學(xué)院實(shí)訓(xùn)鑒定表(每學(xué)生1份)指導(dǎo)教師簽名: 日期: 教研室主任簽名: 日期:系主任簽名: 日期:長沙學(xué)院課程設(shè)計(jì)鑒定表姓名學(xué)號班級設(shè)計(jì)題目城市公交查詢軟件指導(dǎo)教師指導(dǎo)教師意見:評定成績: 教師簽名: 日期: 答辯小組意見:評定成績:答辯小組長簽名:日期:教研室意見:最終評定等級:教研室主任簽名:日期:說明課程設(shè)計(jì)成績分“優(yōu)秀”、“良好”、“中等”、

6、“及格”、“不及格”五等。摘要c語言編寫的一個(gè)公交查詢軟件,分為管理用戶和普通用戶,管理用戶可以實(shí)現(xiàn)用戶管理、站點(diǎn)管理、線路管理幾個(gè)模塊,而普通用戶可以實(shí)現(xiàn)用戶管理、公交查詢兩個(gè)模塊。用結(jié)構(gòu)體來存儲數(shù)據(jù),并采用鄰接矩陣構(gòu)造一個(gè)有權(quán)無向網(wǎng),使迪杰斯特拉算法對圖進(jìn)行查詢。關(guān)鍵詞:圖,最短路徑,公交查詢目錄一、引言11.1 編寫目的11.2 參考資料1二、需求規(guī)約22.1 功能需求22.2 界面需求112.2 數(shù)據(jù)需求11三、概要設(shè)計(jì)113.1系統(tǒng)結(jié)構(gòu)113.2 界面設(shè)計(jì)123.3數(shù)據(jù)設(shè)計(jì)14四、詳細(xì)設(shè)計(jì)154.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)說明154.2 管理員用戶主界面用例設(shè)計(jì)說明154.3普通用戶主界面用例

7、設(shè)計(jì)說明16五、測試用例設(shè)計(jì)16六、總結(jié)17附錄17附錄1 程序運(yùn)行結(jié)果17附錄2 程序源代碼28一、引言1.1 編寫目的本文檔是“城市公交查詢軟件”的軟件設(shè)計(jì)說明書,編寫目的是:明確軟件需求、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和功能測試用例,為軟件后續(xù)開發(fā)和維護(hù)提供指導(dǎo)。本文檔的讀者對象是需求分析人員、系統(tǒng)設(shè)計(jì)人員、系統(tǒng)開發(fā)人員、系統(tǒng)測試人員。1.2 參考資料列出有關(guān)資料的名稱、作者、文件編號或版本等。1 嚴(yán)蔚敏,吳偉明.數(shù)據(jù)結(jié)構(gòu)(C語言版). 北京:清華大學(xué)出版社,2007(2015.5重?。? 嚴(yán)蔚敏,吳偉明.數(shù)據(jù)結(jié)構(gòu)(C語言版). 北京:清華大學(xué)出版社,1996二、需求規(guī)約2.1 功能需求功能點(diǎn)編號1

8、功能點(diǎn)名稱管理員用戶注冊角色管理員功能說明管理員用戶能通過本功能點(diǎn)完成注冊操作。事件流程1、 管理員用戶輸入用戶名并回車2、 軟件判斷用戶名是否重復(fù)3、 輸入兩次密碼,軟件檢驗(yàn)兩次輸入的密碼是否相同4、 若正確,則跳到管理員功能處理界面 前置條件無后置條件管理員用戶成功進(jìn)入軟件管理員主功能處理界面。輸入數(shù)據(jù)用戶名和密碼輸出數(shù)據(jù)管理員主功能處理界面?zhèn)渥o功能點(diǎn)編號2功能點(diǎn)名稱普通用戶注冊角色普通用戶功能說明普通用戶能通過本功能點(diǎn)完成注冊操作。事件流程1、 普通用戶輸入用戶名并回車2、 軟件判斷用戶名是否重復(fù)3、 輸入兩次密碼,軟件檢驗(yàn)兩次輸入的密碼是否相同4、 若正確,則跳到普通用戶主功能處理界

9、面 前置條件無后置條件普通用戶成功進(jìn)入軟件管理員功能處理界面。輸入數(shù)據(jù)用戶名和密碼輸出數(shù)據(jù)普通用戶主功能處理界面?zhèn)渥o功能點(diǎn)編號3功能點(diǎn)名稱登陸角色管理員或者普通用戶功能說明管理員用戶或者普通用戶能通過本功能點(diǎn)完成登陸操作。事件流程1、 輸入用戶名和密碼,并回車。2、 軟件校驗(yàn)用戶名和密碼格式是否合法。3、 軟件校驗(yàn)用戶名和密碼是否正確。4、 若正確,則跳轉(zhuǎn)到主功能處理界面;否則,提示“用戶或密碼輸入錯(cuò)誤,請重新輸入!”。前置條件管理員或普通用戶成功注冊。后置條件管理員用戶或普通用戶成功進(jìn)入軟件主功能處理界面。輸入數(shù)據(jù)用戶名和密碼輸出數(shù)據(jù)軟件主功能處理界面?zhèn)渥o功能點(diǎn)編號4功能點(diǎn)名稱修改信息角

10、色管理員或者普通用戶功能說明管理員用戶或者普通用戶能通過本功能點(diǎn)完成修改信息操作。事件流程1、 管理員或者普通用戶輸入曾經(jīng)的用戶名2、 如果曾經(jīng)的用戶名和當(dāng)前用戶相同,則提示輸入新的用戶名3、 判斷新用戶名是否和已經(jīng)注冊的用戶名沖突4、若沒有沖突,則提示修改成功,返回用戶管理界面;若沖突,直接返回用戶管理界面前置條件管理員或普通用戶成功登陸,并進(jìn)入用戶管理界面后置條件登陸、注冊界面輸入數(shù)據(jù)老用戶名和新用戶名輸出數(shù)據(jù)登陸、注冊界面?zhèn)渥o功能點(diǎn)編號5功能點(diǎn)名稱修改密碼角色管理員或者普通用戶功能說明管理員用戶或者普通用戶能通過本功能點(diǎn)完成密碼信息操作。事件流程1、 管理員或者普通用戶輸入原來的密碼2

11、、 如果密碼正確,則提示輸入新的密碼;若不正確,返回用戶管理界面3、 提示修改成功,返回用戶管理界面前置條件管理員或普通用戶成功登陸,并進(jìn)入用戶管理界面后置條件登陸、注冊界面輸入數(shù)據(jù)舊密碼和新密碼輸出數(shù)據(jù)用戶管理界面?zhèn)渥o功能點(diǎn)編號6功能點(diǎn)名稱注銷用戶角色管理員或者普通用戶功能說明管理員用戶或者普通用戶能通過本功能點(diǎn)完成注銷操作。事件流程1、 輸入select,確定是否注銷2、 如果確定注銷,則提示注銷成功,返回登陸、注冊界面;若不注銷返回用戶管理界面前置條件管理員或普通用戶成功登陸,并進(jìn)入用戶管理界面后置條件登陸、注冊界面輸入數(shù)據(jù)Select輸出數(shù)據(jù)登陸、注冊界面?zhèn)渥o功能點(diǎn)編號7功能點(diǎn)名稱

12、線路添加角色管理員功能說明管理員用戶能通過本功能點(diǎn)完成線路添加操作。事件流程1、 輸入添加的線路n,添加的多少個(gè)站點(diǎn)m,輸入添加的站點(diǎn)編號2、 將所添加的線路寫進(jìn)文件3、 輸出所有線路前置條件管理員成功登陸,并進(jìn)入線路管理界面后置條件線路管理界面輸入數(shù)據(jù)添加的線路n,站點(diǎn)數(shù)m,站點(diǎn)編號輸出數(shù)據(jù)所有線路備注無功能點(diǎn)編號8功能點(diǎn)名稱線路修改角色管理員功能說明管理員用戶能通過本功能點(diǎn)完成線路修改操作。事件流程1、 輸入修改的類型2、 把修改的路線全部寫進(jìn)文件3、 輸出所有線路前置條件管理員成功登陸,并進(jìn)入線路管理界面中的線路修改界面后置條件線路修改界面輸入數(shù)據(jù)線路修改的類型輸出數(shù)據(jù)所有線路備注無功能

13、點(diǎn)編號9功能點(diǎn)名稱線路刪除角色管理員功能說明管理員用戶能通過本功能點(diǎn)完成線路刪除操作。事件流程1、 輸出所有的線路2、 輸入要?jiǎng)h除的線路編號3、 輸出刪除后的所有線路前置條件管理員成功登陸,并進(jìn)入線路管理界面后置條件線路管理界面輸入數(shù)據(jù)刪除線路編號輸出數(shù)據(jù)所有線路備注無功能點(diǎn)編號10功能點(diǎn)名稱站點(diǎn)添加角色管理員功能說明管理員用戶能通過本功能點(diǎn)完成站點(diǎn)添加操作。事件流程1、 輸出所有的原有的所有站點(diǎn)2、 輸入所要增加的站點(diǎn)的名稱和與相鄰站點(diǎn)的距離3、 寫入文件,并輸出添加后的所有站點(diǎn)前置條件管理員成功登陸,并進(jìn)入站點(diǎn)管理界面后置條件站點(diǎn)管理界面輸入數(shù)據(jù)站點(diǎn)名稱和與相鄰站點(diǎn)的距離輸出數(shù)據(jù)添加前后的

14、所有站點(diǎn)備注無功能點(diǎn)編號11功能點(diǎn)名稱站點(diǎn)修改角色管理員功能說明管理員用戶能通過本功能點(diǎn)完成站點(diǎn)修改操作。事件流程1、 輸出所有的原有的所有站點(diǎn)2、 輸入所要修改站點(diǎn)的編號和新站點(diǎn)的名稱3、 寫入文件,并輸出修改后的所有站點(diǎn)前置條件管理員成功登陸,并進(jìn)入站點(diǎn)管理界面后置條件站點(diǎn)管理界面輸入數(shù)據(jù)修改的站點(diǎn)的編號和新站點(diǎn)名稱輸出數(shù)據(jù)修改前后的所有站點(diǎn)備注無功能點(diǎn)編號12功能點(diǎn)名稱站點(diǎn)刪除角色管理員功能說明管理員用戶能通過本功能點(diǎn)完成站點(diǎn)刪除操作。事件流程1、 輸出所有的原有的所有站點(diǎn)2、 輸入所要?jiǎng)h除站點(diǎn)的編號3、 寫入文件,并輸出刪除后的所有站點(diǎn)前置條件管理員成功登陸,并進(jìn)入站點(diǎn)管理界面后置條件

15、站點(diǎn)管理界面輸入數(shù)據(jù)刪除站點(diǎn)的編號輸出數(shù)據(jù)刪除前后的所有站點(diǎn)備注無功能點(diǎn)編號13功能點(diǎn)名稱站點(diǎn)查詢角色普通用戶功能說明普通用戶能通過本功能點(diǎn)完成站點(diǎn)操作。事件流程1、 輸入所在站點(diǎn)的編號2、 輸出經(jīng)過該站點(diǎn)所有線路的名稱和所經(jīng)過的站點(diǎn)3、 返回公交查詢界面前置條件普通用戶成功登陸,并進(jìn)入公交查詢界面后置條件公交查詢界面輸入數(shù)據(jù)所在站點(diǎn)的編號輸出數(shù)據(jù)線路名稱和經(jīng)過的站點(diǎn)備注無功能點(diǎn)編號13功能點(diǎn)名稱線線查詢角色普通用戶功能說明普通用戶能通過本功能點(diǎn)完成線線查詢操作。事件流程1、 輸入要查詢的公交路線的編號2、 輸出該線路所經(jīng)過的所有站點(diǎn)的編號3、 查詢成功,返回公交查詢界面前置條件管理員成功登陸

16、,并進(jìn)入公交查詢界面后置條件公交查詢界面輸入數(shù)據(jù)查詢的線路的編號輸出數(shù)據(jù)該線路所經(jīng)過的站點(diǎn)備注無功能點(diǎn)編號14功能點(diǎn)名稱站站查詢角色普通用戶功能說明管理員用戶能通過本功能點(diǎn)完成站站查詢操作。事件流程1、 輸入起點(diǎn)和終點(diǎn)的站點(diǎn)編號2、 輸出所有的乘車方案3、 返回公交查詢界面前置條件普通用戶成功登陸,并進(jìn)入公交查詢界面后置條件公交查詢界面輸入數(shù)據(jù)起點(diǎn)和終點(diǎn)的編號輸出數(shù)據(jù)所有的乘車方案備注要求沒有實(shí)現(xiàn)功能點(diǎn)編號14功能點(diǎn)名稱最短距離查詢角色普通用戶功能說明普通用戶能通過本功能點(diǎn)完成最短距離查詢操作。事件流程1、 起點(diǎn)和終點(diǎn)的編號2、 用迪杰斯特拉算法求出最短路徑3、 輸出最短路徑,返回公交查詢界面

17、前置條件普通用戶成功登陸,并進(jìn)入公交查詢界面后置條件公交查詢界面輸入數(shù)據(jù)起點(diǎn)和終點(diǎn)站點(diǎn)的編號輸出數(shù)據(jù)最短路徑備注沒有實(shí)現(xiàn)最短路徑乘車方案功能點(diǎn)編號15功能點(diǎn)名稱最少換乘查詢角色普通用戶功能說明普通用戶能通過本功能點(diǎn)完成最少換乘操作。事件流程1、 輸入起點(diǎn)和終點(diǎn)站點(diǎn)的編號2、 輸出最少換乘乘車方案3、 返回公交查詢界面前置條件普通用戶成功登陸,并進(jìn)入公交查詢界面后置條件公交查詢界面輸入數(shù)據(jù)起點(diǎn)和終點(diǎn)站點(diǎn)的編號輸出數(shù)據(jù)最少換乘方案備注沒有實(shí)現(xiàn)最少換乘查詢2.2 界面需求能夠用鍵盤輸入,進(jìn)行最簡單的人機(jī)交互。2.2 數(shù)據(jù)需求表2.1 管理員用戶實(shí)體屬性名稱類型 長度是否為空唯一標(biāo)識說明姓名字符串5否

18、是用戶名表2.2 普通用戶實(shí)體屬性名稱類型 長度是否為空唯一標(biāo)識說明姓名字符串5否是用戶名三、概要設(shè)計(jì)這里陳述總體設(shè)計(jì)思路。說明系統(tǒng)需求中的每個(gè)功能實(shí)現(xiàn)思路。3.1系統(tǒng)結(jié)構(gòu)初始界面main_menu()管理員界面menu()普通用戶界面menu()用戶管理模塊User_Mangement()站點(diǎn)管理模塊Site_Mangement()線路管理模塊Line_Mangement()用戶管理模塊User_Mangement()公交查詢模塊bus_query() 圖3.1 程序結(jié)圖功能與程序模塊的關(guān)系說明用戶管理模塊對用戶進(jìn)行信息修改、密碼修改、用戶注銷站點(diǎn)管理模塊對站點(diǎn)進(jìn)行添加、修改、刪除線路管理模

19、塊對線路進(jìn)行添加、修改、刪除公交查詢模塊進(jìn)行站點(diǎn)查詢、線路查詢、站站查詢、最短距離查詢、最少換乘查詢3.2 界面設(shè)計(jì)說明每個(gè)界面的布局(要求畫布局圖,如圖3.3所示),若果采用圖形界面,則要說明每個(gè)界面的控件(列表說明,如表3.1所示)。簡要說明交互過程。- 開福區(qū)公交查詢系統(tǒng) - 1.注冊 - 2.登陸 - 3.退出系統(tǒng) - 請輸入你所要的服務(wù)! 圖3.2用戶登錄對話框-公交查詢系統(tǒng)主界面-1.用戶管理-2.站點(diǎn)管理-3.線路管理-4.返回-請輸入您要的功能:圖3.3管理員用戶對話框-公交查詢系統(tǒng)主界面-1.用戶管理-2.公交查詢-3.返回-請輸入您要的功能:圖3.4普通用戶對話框-用戶管理

20、界面-1.信息修改-2.密碼修改-3.用戶注銷-4.返回-請輸入您要的功能:圖3.5用戶管理對話框-線路管理界面-1.線路添加-2.線路修改-3.線路刪除-4.返回-請輸入您要的功能:圖3.6線路管理對話框-站點(diǎn)管理界面-1.站點(diǎn)添加-2.站點(diǎn)修改-3.站點(diǎn)刪除-4.返回-請輸入您要的功能:圖3.7站點(diǎn)管理對話框-公交查詢界面-1.站點(diǎn)查詢-2.線路查詢-3.站站查詢-4.最短距離查詢-5.最少換乘查詢-6.返回-請輸入您要的功能:圖3.8公交查詢對話框3.3數(shù)據(jù)設(shè)計(jì)說明采用那些數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)的存儲方式??闪斜磔敵觯绫?.2所示。表3.2 用戶信息數(shù)據(jù)記錄數(shù)據(jù)項(xiàng)名數(shù)據(jù)類型長度是否為空唯一標(biāo)

21、識說明useridchar4否是loginNamechar20否否用戶登錄名loginPassWdInt6否否用戶登錄密碼主要結(jié)構(gòu)體: typedef struct user char name5;int password;int power;struct user *next;user;user *active_user;struct busGraph char stationName25;int theStationToOthersPathMAX_STATION;int busLinesMAX_LINE;int linesCount;int exist;struct busLinesInf

22、ormationint saveStationInLineMAX_STATION;int stationCount;bool vistMax_Vertex_Num;typedef char Vertxtype25;typedef int VerType;typedef struct ArcCell VerType adj;/距離ArcCell, AdjMatrixMax_Vertex_NumMax_Vertex_Num;typedef struct Vertxtype vexsMax_Vertex_Num;AdjMatrix arcs;int vexnum;int arcnum;MGraph;

23、四、詳細(xì)設(shè)計(jì)要求逐個(gè)地給出需求規(guī)格的每個(gè)用例的設(shè)計(jì)考慮。要求給出所有用例的實(shí)現(xiàn)方法。4.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)說明給出每個(gè)數(shù)據(jù)結(jié)構(gòu)的C語言定義。4.2 管理員用戶主界面用例設(shè)計(jì)說明表4.1 主處理函數(shù)函數(shù)名menu()源文件主程序.cpp參數(shù)void返回值int類型,0表示成功,-1表示失敗功能描述實(shí)現(xiàn)主功能界面的繪制和菜單處理設(shè)計(jì)方案1、利用while循環(huán),在界面上繪制主功能選擇菜單項(xiàng),且對每個(gè)選項(xiàng)進(jìn)行編號。2、利用switch結(jié)構(gòu),根據(jù)用戶輸入的功能選項(xiàng),調(diào)用相應(yīng)模塊的業(yè)務(wù)處理主函數(shù),進(jìn)入不同的業(yè)務(wù)模塊進(jìn)行處理。4.3普通用戶主界面用例設(shè)計(jì)說明表4.2 普通用戶主界面函數(shù)函數(shù)名menu()源文件

24、主程序.cpp參數(shù)void返回值int類型,0表示成功,-1表示失敗功能描述實(shí)現(xiàn)主功能界面的繪制和菜單處理設(shè)計(jì)方案1、利用while循環(huán),在界面上繪制主功能選擇菜單項(xiàng),且對每個(gè)選項(xiàng)進(jìn)行編號。2、利用switch結(jié)構(gòu),根據(jù)用戶輸入的功能選項(xiàng),調(diào)用相應(yīng)模塊的業(yè)務(wù)處理主函數(shù),進(jìn)入不同的業(yè)務(wù)模塊進(jìn)行處理。五、測試用例設(shè)計(jì)表6.1 登錄-注冊測試用例功能用例編號操作步驟(輸入條件)測試數(shù)據(jù)預(yù)期結(jié)果實(shí)際結(jié)果/判定登錄yl-001輸入用戶名和密碼admin,123456登錄成功通過yl-002admin,1234567登錄失敗通過yl-003admin1,123456登錄失敗通過yl-004admin,空登

25、錄失敗通過yl-005空,123456登錄失敗通過yl-006admin,一個(gè)空格登錄失敗通過yl-007一個(gè)空格,123456登錄失敗通過yl-008admin,密碼不為數(shù)字登錄失敗通過yl-009用戶名超過5,123456登錄失敗通過注冊yl-010用戶名,密碼,確認(rèn)密碼 Tony,123456創(chuàng)建成功通過六、總結(jié)城市公交系統(tǒng)的主要的難點(diǎn)在于線路管理模塊的站點(diǎn)修改以及查詢模塊中的站站查詢、最短距離查詢、最少換乘查詢,其中站站查詢、最短距離查詢、最少換乘查詢這幾個(gè)功能也可以說成一個(gè)功能,可以通過枚舉出兩站點(diǎn)之間的所有路徑,在對其距離和換乘進(jìn)行排序,就可以得到,但很難實(shí)現(xiàn)。整個(gè)公交網(wǎng)絡(luò)采用鄰接

26、矩陣進(jìn)行存儲,運(yùn)用了迪杰斯特拉算法;對于用戶用鏈表進(jìn)行數(shù)據(jù)存儲,要注意的是:在對用戶的信息進(jìn)行修改的時(shí)候要注意指針的使用。本次設(shè)計(jì)不足的是:在進(jìn)行站點(diǎn)刪除是沒有考慮到刪除該站點(diǎn)對于其他站點(diǎn)的影響;在進(jìn)行線路添加的時(shí)候沒有判斷添加的站點(diǎn)之間是否是連通;在查詢模塊中,站站查詢和最少換乘查詢兩個(gè)功能沒有實(shí)現(xiàn),而最短距離查詢中,只求出起點(diǎn)和終點(diǎn)之間的最短路徑,沒有轉(zhuǎn)換成乘車方案。附錄附錄1 程序運(yùn)行結(jié)果 圖1.主界面圖2.用戶注冊模塊圖3.管理員用戶主界面圖4.站點(diǎn)管理主界面圖5.站點(diǎn)添加圖6.站點(diǎn)修改圖7.站點(diǎn)刪除圖8.線路添加圖9.線路修改中的站點(diǎn)添加圖10.線路修改中的站點(diǎn)刪除圖11.線路修改中

27、的線路名稱修改圖12.線路刪除圖13.公交查詢之站點(diǎn)查詢圖14,公交查詢之線路查詢圖15.公交查詢之最短距離查詢圖16.用戶管理之信息修改圖17.用戶管理之密碼修改圖18.用戶管理之用戶注銷附錄2 程序源代碼1. 后臺站點(diǎn)文件#include<cstdio>#include<cstdlib>#include<cstring>using namespace std;#define MAX_USER 100#define INIT_STATION 30#define MAX_STATION 50#define MAX_LINE 10/#define INT_MA

28、X 0x3f3f3f3f struct busGraph char stationName25; int theStationToOthersPathMAX_STATION; int busLinesMAX_LINE; int linesCount; int exist; int main() struct busGraph BGMAX_STATION; /* 0 汽車北站 1 開福區(qū)政府 2 伍家?guī)X北 3馬場 4 八家大屋 5 洪山橋 6 長沙大學(xué) 7 月湖公園 8 世界之窗 9 汽車東站 10華夏 11九尾沖 12 國防科大 13喻家沖 14 三一大道口 15德雅路口 16長沙晚報(bào) 17

29、南湖大市場 18 車站北路口 19 蓉園小區(qū) 20 五里牌 21火車站 22 袁家?guī)X 23 省軍區(qū) 24 中山亭 25 湘雅醫(yī)院 26省博物館 27長沙市一中 28烈士公園 29 年嘉湖 */ for(int i = 0 ; i < MAX_STATION ;i+) BGi.exist = 0; for(int j = 0 ; j < MAX_STATION ;j+) BGi .theStationToOthersPathj = INT_MAX; for(int i = 0 ; i < MAX_STATION ;i+) BGi.linesCount = 0; for(int

30、j = 0 ; j < MAX_LINE ; j +) BGi .busLinesj = 0; / BGi .busLinesj = 0; for(int i = 0 ; i < 30 ; i+) BGi.exist = 1; strcpy_s( BG0.stationName ,10,"汽車北站 "); strcpy_s( BG1.stationName ,11,"開福區(qū)政府"); strcpy_s( BG2.stationName ,9,"伍家?guī)X北"); strcpy_s( BG3.stationName ,6,&qu

31、ot;馬場 "); strcpy_s( BG4.stationName ,10,"八家大屋 "); strcpy_s( BG5.stationName ,7,"洪山橋"); strcpy_s( BG6.stationName ,9,"長沙大學(xué)"); strcpy_s( BG7.stationName ,10,"月湖公園 "); strcpy_s( BG8.stationName ,9,"世界之窗"); strcpy_s( BG9.stationName ,10,"汽車東站 &

32、quot;); strcpy_s( BG10.stationName ,5,"華夏"); strcpy_s( BG11.stationName ,7,"九尾沖"); strcpy_s( BG12.stationName ,9,"國防科大"); strcpy_s( BG13.stationName ,7,"喻家沖"); strcpy_s( BG14.stationName ,11,"三一大道口"); strcpy_s( BG15.stationName ,9,"德雅路口");

33、strcpy_s( BG16.stationName ,9,"長沙晚報(bào)"); strcpy_s( BG17.stationName ,11,"南湖大市場"); strcpy_s( BG18.stationName ,11,"車站北路口"); strcpy_s( BG19.stationName ,10,"蓉園小區(qū) "); strcpy_s( BG20.stationName ,8," 五里牌"); strcpy_s( BG21.stationName ,7,"火車站"); s

34、trcpy_s( BG22.stationName ,7,"袁家?guī)X"); strcpy_s( BG23.stationName ,7,"省軍區(qū)"); strcpy_s( BG24.stationName ,7,"中山亭"); strcpy_s( BG25.stationName ,9,"湘雅醫(yī)院"); strcpy_s( BG26.stationName ,9,"省博物館"); strcpy_s( BG27.stationName ,12,"長沙市一中 "); strcpy_

35、s( BG28.stationName ,10,"烈士公園 "); strcpy_s( BG29.stationName ,7,"年嘉湖"); BG0.busLines0=1; BG0.busLines1=1; BG0.busLines2=1; BG0.busLines4=1; BG0.linesCount = 4; BG1.busLines0=1; BG1.busLines1=1; BG1.busLines2=1; BG1.busLines4=1; BG1.linesCount = 4; BG2.busLines0=1; BG2.busLines1=1

36、; BG2.busLines2=1; BG2.busLines4=1; BG2.linesCount = 4; BG3.busLines0=1; BG3.busLines1=1; BG3.linesCount = 2; BG4.busLines0=1; BG4.busLines1=1; BG4.linesCount = 2; BG5.busLines0=1; BG5.busLines1=1; BG5.linesCount = 2; BG6.busLines0=1; BG6.busLines1=1; BG6.busLines5=1; BG6.linesCount = 3; BG7.busLine

37、s0=1; BG7.busLines5=1; BG7.linesCount = 2; BG8.busLines0=1; BG8.busLines2=1; BG8.busLines3=1; BG8.busLines5=1; BG8.linesCount = 3; BG9.busLines0=1; BG9.busLines1=1; BG9.busLines3=1; BG9.busLines5=1; BG9.linesCount = 4; BG10.busLines3=1; BG10.busLines4=1; BG10.linesCount = 2; BG11.busLines2=1; BG11.b

38、usLines4=1; BG11.linesCount = 2; BG12.busLines2=1; BG12.linesCount = 1; BG13.busLines2=1; BG13.linesCount = 1; BG14.busLines1=1; BG14.busLines2=1; BG14.busLines3=1; BG14.linesCount = 3; BG15.busLines1=1; BG15.busLines2=1; BG15.busLines3=1; BG15.busLines5=1; BG15.linesCount = 4; BG16.busLines5=1; BG1

39、6.linesCount = 1; BG17.busLines5=1; BG17.linesCount = 1; BG18.busLines5=1; BG18.linesCount = 1; BG19.busLines5=1; BG19.linesCount = 1; BG20.busLines5=1; BG20.linesCount = 1; BG21.busLines1=1; BG21.busLines4=1; BG21.busLines5=1; BG21.linesCount = 1; BG22.busLines4=1; BG22.linesCount = 1; BG23.busLine

40、s4=1; BG23.linesCount = 1; BG24.busLines4=1; BG24.linesCount = 1; BG25.busLines3=1; BG25.linesCount = 1; BG26.busLines3=1; BG26.linesCount = 1; BG27.busLines3=1; BG27.linesCount = 1; BG28.busLines1=1; BG28.busLines3=1; BG28.linesCount = 2; BG29.busLines1=1; BG29.busLines3=1; BG29.linesCount = 2; BG0

41、.theStationToOthersPath1=100; BG1.theStationToOthersPath0=100; BG1.theStationToOthersPath2=150; BG2.theStationToOthersPath1=150; BG2.theStationToOthersPath3=170; BG2.theStationToOthersPath11=100; BG3.theStationToOthersPath2=170; BG3.theStationToOthersPath4=130; BG4.theStationToOthersPath3=130; BG4.t

42、heStationToOthersPath5=70; BG5.theStationToOthersPath4=70; BG5.theStationToOthersPath6=100; BG6.theStationToOthersPath5=100; BG6.theStationToOthersPath7=50; BG6.theStationToOthersPath15=250; BG7.theStationToOthersPath6=50; BG7.theStationToOthersPath8=170; BG8.theStationToOthersPath7=170; BG8.theStat

43、ionToOthersPath9=160; BG8.theStationToOthersPath15=80; BG9.theStationToOthersPath8=160; BG10.theStationToOthersPath11=100; BG10.theStationToOthersPath24=130; BG10.theStationToOthersPath25=110; BG11.theStationToOthersPath2=100; BG11.theStationToOthersPath10=100; BG11.theStationToOthersPath12=50; BG12

44、.theStationToOthersPath11=50; BG12.theStationToOthersPath13=100; BG13.theStationToOthersPath12=100; BG13.theStationToOthersPath14=150; BG14.theStationToOthersPath13=150; BG14.theStationToOthersPath15=100; BG14.theStationToOthersPath29=120; BG15.theStationToOthersPath6=250; BG15.theStationToOthersPat

45、h8=80; BG15.theStationToOthersPath14=100; BG15.theStationToOthersPath16=120; BG16.theStationToOthersPath15=120; BG16.theStationToOthersPath17=60; BG17.theStationToOthersPath16=60; BG17.theStationToOthersPath18=70; BG18.theStationToOthersPath17=70; BG18.theStationToOthersPath19=90; BG19.theStationToO

46、thersPath18=90; BG19.theStationToOthersPath20=190; BG20.theStationToOthersPath19=190; BG20.theStationToOthersPath21=130; BG21.theStationToOthersPath20=130; BG21.theStationToOthersPath22=100; BG21.theStationToOthersPath28=220; BG22.theStationToOthersPath21=100; BG22.theStationToOthersPath23=110; BG23.theStationToOthersPath22=110; BG23.theS

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論