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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、“及格”、“不及格”五等。摘要c語(yǔ)言編寫(xiě)的一個(gè)公交查詢(xún)軟件,分為管理用戶(hù)和普通用戶(hù),管理用戶(hù)可以實(shí)現(xiàn)用戶(hù)管理、站點(diǎn)管理、線(xiàn)路管理幾個(gè)模塊,而普通用戶(hù)可以實(shí)現(xiàn)用戶(hù)管理、公交查詢(xún)兩個(gè)模塊。用結(jié)構(gòu)體來(lái)存儲(chǔ)數(shù)據(jù),并采用鄰接矩陣構(gòu)造一個(gè)有權(quán)無(wú)向網(wǎng),使迪杰斯特拉算法對(duì)圖進(jìn)行查詢(xún)。關(guān)鍵詞:圖,最短路徑,公交查詢(xún)目錄一、引言11.1 編寫(xiě)目的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ì)說(shuō)明154.2 管理員用戶(hù)主界面用例設(shè)計(jì)說(shuō)明154.3普通用戶(hù)主界面用例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

21、識(shí)說(shuō)明useridchar4否是loginNamechar20否否用戶(hù)登錄名loginPassWdInt6否否用戶(hù)登錄密碼主要結(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ì)說(shuō)明給出每個(gè)數(shù)據(jù)結(jié)構(gòu)的C語(yǔ)言定義。4.2 管理員用戶(hù)主界面用例設(shè)計(jì)說(shuō)明表4.1 主處理函數(shù)函數(shù)名menu()源文件主程序.cpp參數(shù)void返回值int類(lèi)型,0表示成功,-1表示失敗功能描述實(shí)現(xiàn)主功能界面的繪制和菜單處理設(shè)計(jì)方案1、利用while循環(huán),在界面上繪制主功能選擇菜單項(xiàng),且對(duì)每個(gè)選項(xiàng)進(jìn)行編號(hào)。2、利用switch結(jié)構(gòu),根據(jù)用戶(hù)輸入的功能選項(xiàng),調(diào)用相應(yīng)模塊的業(yè)務(wù)處理主函數(shù),進(jìn)入不同的業(yè)務(wù)模塊進(jìn)行處理。4.3普通用戶(hù)主界面用例設(shè)計(jì)說(shuō)明表4.2 普通用戶(hù)主界面函數(shù)函數(shù)名menu()源文件

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

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

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

27、的線(xiàn)路名稱(chēng)修改圖12.線(xiàn)路刪除圖13.公交查詢(xún)之站點(diǎn)查詢(xún)圖14,公交查詢(xún)之線(xiàn)路查詢(xún)圖15.公交查詢(xún)之最短距離查詢(xún)圖16.用戶(hù)管理之信息修改圖17.用戶(hù)管理之密碼修改圖18.用戶(hù)管理之用戶(hù)注銷(xiāo)附錄2 程序源代碼1. 后臺(tái)站點(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 汽車(chē)北站 1 開(kāi)福區(qū)政府 2 伍家?guī)X北 3馬場(chǎng) 4 八家大屋 5 洪山橋 6 長(zhǎng)沙大學(xué) 7 月湖公園 8 世界之窗 9 汽車(chē)東站 10華夏 11九尾沖 12 國(guó)防科大 13喻家沖 14 三一大道口 15德雅路口 16長(zhǎng)沙晚報(bào) 17

29、南湖大市場(chǎng) 18 車(chē)站北路口 19 蓉園小區(qū) 20 五里牌 21火車(chē)站 22 袁家?guī)X 23 省軍區(qū) 24 中山亭 25 湘雅醫(yī)院 26省博物館 27長(zhǎng)沙市一中 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,"汽車(chē)北站 "); strcpy_s( BG1.stationName ,11,"開(kāi)福區(qū)政府"); strcpy_s( BG2.stationName ,9,"伍家?guī)X北"); strcpy_s( BG3.stationName ,6,&qu

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

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

33、strcpy_s( BG16.stationName ,9,"長(zhǎng)沙晚報(bào)"); strcpy_s( BG17.stationName ,11,"南湖大市場(chǎng)"); strcpy_s( BG18.stationName ,11,"車(chē)站北路口"); strcpy_s( BG19.stationName ,10,"蓉園小區(qū) "); strcpy_s( BG20.stationName ,8," 五里牌"); strcpy_s( BG21.stationName ,7,"火車(chē)站"); 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,"長(zhǎng)沙市一中 "); 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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論