火車售票管理系統(tǒng)--軟件綜合課程設(shè)計(jì)_第1頁(yè)
火車售票管理系統(tǒng)--軟件綜合課程設(shè)計(jì)_第2頁(yè)
火車售票管理系統(tǒng)--軟件綜合課程設(shè)計(jì)_第3頁(yè)
火車售票管理系統(tǒng)--軟件綜合課程設(shè)計(jì)_第4頁(yè)
火車售票管理系統(tǒng)--軟件綜合課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、沈陽(yáng)航空航天大學(xué)課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告課程設(shè)計(jì)名稱:軟件綜合課程設(shè)計(jì)軟件綜合課程設(shè)計(jì)課程設(shè)計(jì)題目:火車售票管理系統(tǒng)火車售票管理系統(tǒng)院(系):計(jì)算機(jī)學(xué)院專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí):學(xué) 號(hào):2姓 名:指導(dǎo)教師:說(shuō)明:結(jié)論(優(yōu)秀、良好、中等、及格、不及格)作為相關(guān)教環(huán)節(jié)考核必要依據(jù);格式不符合要說(shuō)明:結(jié)論(優(yōu)秀、良好、中等、及格、不及格)作為相關(guān)教環(huán)節(jié)考核必要依據(jù);格式不符合要求;數(shù)據(jù)不實(shí)求;數(shù)據(jù)不實(shí),不予通過(guò)。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重復(fù)的關(guān)鍵依據(jù)。不予通過(guò)。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重復(fù)的關(guān)鍵依據(jù)。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 學(xué)術(shù)誠(chéng)信聲明 本人聲明本人聲明:所呈交的報(bào)

2、告(含電子版及數(shù)據(jù)文件)是我個(gè)人在導(dǎo)師指導(dǎo)下獨(dú)立進(jìn)行設(shè)計(jì)工作及取得的研究結(jié)果。盡我所知,除了文中特別加以標(biāo)注或致謝中所羅列的內(nèi)容以外,報(bào)告中不包含其他人己經(jīng)發(fā)表或撰寫過(guò)的研究結(jié)果,也不包含其它教育機(jī)構(gòu)使用過(guò)的材料。與我一同工作的同學(xué)對(duì)本研究所做的任何貢獻(xiàn)均己在報(bào)告中做了明確的說(shuō)明并表示了謝意。報(bào)告資料及實(shí)驗(yàn)數(shù)據(jù)若有不實(shí)之處,本人愿意接受本教學(xué)環(huán)節(jié)“不及格”和“重修或重做”的評(píng)分結(jié)論并承擔(dān)相關(guān)一切后果。 本人簽名: 日期: 年 月 日沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 I 課程設(shè)計(jì)總結(jié):課程設(shè)計(jì)總結(jié):通過(guò)此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了有關(guān)編碼方面的知識(shí),在設(shè)計(jì)過(guò)程中雖然遇到了一些問題,但經(jīng)過(guò)一次又

3、一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識(shí)欠缺和經(jīng)驗(yàn)不足。實(shí)踐出真知,通過(guò)親自動(dòng)手制作,使我們掌握的知識(shí)不再是紙上談兵。 過(guò)而能改,善莫大焉。在課程設(shè)計(jì)過(guò)程中,我們不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正,不斷領(lǐng)悟,不斷獲取。最終的檢測(cè)調(diào)試環(huán)節(jié),本身就是在踐行“過(guò)而能改,善莫大焉”的知行觀。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多問題,最后在同學(xué)和老師的指導(dǎo)下,終于游逆而解。在今后社會(huì)的發(fā)展和學(xué)習(xí)實(shí)踐過(guò)程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進(jìn)行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而

4、退,那樣永遠(yuǎn)不可能收獲成功,收獲喜悅,也永遠(yuǎn)不可能得到社會(huì)及他人對(duì)你的認(rèn)可! 我認(rèn)為,在這學(xué)期的實(shí)驗(yàn)中,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在編碼過(guò)程中,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,真的是受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。這對(duì)于我們的將來(lái)也有很大的幫助。以后,不管有多苦,我想我們都能變苦為樂,找尋有趣的事情,發(fā)現(xiàn)其中珍貴的事情?;仡櫰鸫苏n程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以說(shuō)得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)

5、到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問題,可以說(shuō)得是困難重重,但可喜的是最終都得到了解決。 沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 II 目目 錄錄學(xué)術(shù)誠(chéng)信聲明學(xué)術(shù)誠(chéng)信聲明.I1 1 題目介紹和功能要求題目介紹和功能要求.11.1 題目介紹.11.2 功能要求.12 2 系統(tǒng)功能模塊結(jié)構(gòu)圖系統(tǒng)功能模塊結(jié)構(gòu)圖.22.1 系統(tǒng)功能結(jié)構(gòu)框圖.22.2 系統(tǒng)功能流程圖.32.3 系統(tǒng)主要模塊功能說(shuō)明.42.3.1 初始顯

6、示界面.42.3.2 選擇頁(yè)面.52.3.3 管理員登陸頁(yè)面及修改余票頁(yè)面.62.3.4 用戶購(gòu)票登陸頁(yè)面及購(gòu)票頁(yè)面.72.3.5 用戶查票登陸頁(yè)面.83 3 數(shù)據(jù)結(jié)構(gòu)介紹數(shù)據(jù)結(jié)構(gòu)介紹.93.1 ANDROID架構(gòu).93.2 數(shù)據(jù)庫(kù).94 4 涉及主要方法描述涉及主要方法描述.114.1 數(shù)據(jù)庫(kù)類.114.2 XML 文件.114.3 頁(yè)面配置類.124.4 ANDROIDMANIFEST文件.125 5 主要算法描述主要算法描述.145.1 管理員操作模塊.145.2 用戶買票模塊.155.3 用戶查票模塊.166 6 程序測(cè)試程序測(cè)試.17參考文獻(xiàn)參考文獻(xiàn).19附附 錄(關(guān)鍵部分程序清單)

7、錄(關(guān)鍵部分程序清單).20沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 0 1 題目介紹和功能要求1.11.1 題目介紹題目介紹設(shè)計(jì)一個(gè)火車售票管理系統(tǒng)。1、 車次信息基本管理;2、 放票管理;3、 購(gòu)票管理;4、 車票查詢。1.21.2 功能要求功能要求1、車次、站點(diǎn)、車站間票價(jià)等基本信息的管理;2、對(duì)某車次車票進(jìn)行放票,設(shè)定余票信息;3、根據(jù)用戶的身份證購(gòu)買某次車票,同時(shí)對(duì)余票信息進(jìn)行維護(hù);4、根據(jù)車次、出發(fā)地、目的地等進(jìn)行車次、余票信息進(jìn)行維護(hù);5、實(shí)現(xiàn)已購(gòu)買車票的退票改簽功能,輸入身份證號(hào)進(jìn)行車票打印。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 1 2 系統(tǒng)功能模塊結(jié)構(gòu)圖2.12.1 系統(tǒng)功能結(jié)構(gòu)框圖系統(tǒng)功能結(jié)構(gòu)

8、框圖該系統(tǒng)由選擇、管理員登陸、用戶購(gòu)票登陸、用戶查詢車票等頁(yè)面構(gòu)成,系統(tǒng)功能模塊結(jié)構(gòu)框圖如下圖 2.1.1 所示: 火車票購(gòu)票管理系統(tǒng)用戶選擇頁(yè) 面管理員登陸頁(yè)面用戶購(gòu)票登陸頁(yè) 面用戶查票頁(yè) 面用戶選擇車票頁(yè) 面 圖圖 2.1.1 系統(tǒng)功能模塊結(jié)構(gòu)圖系統(tǒng)功能模塊結(jié)構(gòu)圖沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 2 2.22.2 系統(tǒng)功能流程圖系統(tǒng)功能流程圖該系統(tǒng)是一款基于 Android 系統(tǒng)的 App,執(zhí)行過(guò)程如下:首先是進(jìn)入該系統(tǒng)的界面。進(jìn)入后有管理員登陸、用戶購(gòu)票、用戶查票登陸三個(gè)選項(xiàng)。選擇管理員登陸,可進(jìn)行車次列表的查詢和對(duì)余票的修改,實(shí)現(xiàn)放票功能;選擇用戶購(gòu)票登陸,可進(jìn)行車次、出發(fā)地和目的地的車次

9、查詢,實(shí)現(xiàn)用戶查詢車票功能,選擇所查詢出的車次進(jìn)入購(gòu)票界面,輸入身份證號(hào)即可購(gòu)票,實(shí)現(xiàn)購(gòu)票功能;選擇用戶查票登陸,可根據(jù)上述已購(gòu)票的身份證號(hào)查詢已購(gòu)車次信息。功能流程圖如下圖 2.2.1 所示: 圖圖 .1 系統(tǒng)功能流程圖系統(tǒng)功能流程圖沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 3 2.32.3 系統(tǒng)主要模塊功能說(shuō)明系統(tǒng)主要模塊功能說(shuō)明.1 初始顯示界面初始顯示界面如圖 2.3.1 所示,這是這款 app 的初始顯示界面,圖中有一個(gè)人,人腦上方有一個(gè)燈泡,意思是靈光一閃,閃出了這款 app。這個(gè)界面后臺(tái)由定時(shí)器設(shè)置,大約3 秒后跳入登錄信息輸入頁(yè)面,同時(shí),在此區(qū)間內(nèi),建立初始

10、數(shù)據(jù)庫(kù)。圖圖 .1 初始顯示界面初始顯示界面沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 4 .2 選擇頁(yè)面選擇頁(yè)面如圖 2.3.2 所示,是選擇頁(yè)面,有管理員登陸、用戶購(gòu)票登陸、用戶查票登陸三個(gè)選項(xiàng),根據(jù)不同需求進(jìn)行選擇。管理員可選擇管理員登陸進(jìn)行放票操作;用戶可選擇可根據(jù)需求進(jìn)行購(gòu)票和查票。 圖圖 .2 選擇頁(yè)面選擇頁(yè)面沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 5 .3 管理員登陸頁(yè)面及修改余票頁(yè)面管理員登陸頁(yè)面及修改余票頁(yè)面 如圖 2.3.3 所示,可顯示車次列表,從中可查詢到各車次的情況。選擇其中一項(xiàng)可進(jìn)行余票設(shè)置,設(shè)置完成以后點(diǎn)擊提交即修改完成。

11、圖圖 .3 管理員登陸頁(yè)面及修改余票頁(yè)面管理員登陸頁(yè)面及修改余票頁(yè)面沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 6 .4 用戶購(gòu)票登陸頁(yè)面及購(gòu)票頁(yè)面用戶購(gòu)票登陸頁(yè)面及購(gòu)票頁(yè)面如圖 2.3.4,點(diǎn)擊進(jìn)入用戶購(gòu)票登陸即可進(jìn)入左圖頁(yè)面。在車次、出發(fā)站和終點(diǎn)站輸入所需查詢信息,點(diǎn)擊查詢即可顯示所需查詢的車票信息:票價(jià)和余票;選擇其中車次信息即可進(jìn)入右圖頁(yè)面,在方框內(nèi)輸入身份證號(hào)并點(diǎn)擊購(gòu)票則購(gòu)票成功。完成后,數(shù)據(jù)庫(kù)保存購(gòu)票信息,并更新余票信息。 圖圖 .4 用戶購(gòu)票登陸頁(yè)面及購(gòu)票頁(yè)面用戶購(gòu)票登陸頁(yè)面及購(gòu)票頁(yè)面沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 7 .5 用戶查

12、票登陸頁(yè)面用戶查票登陸頁(yè)面如圖 2.3.5,這個(gè)是這款 app 的查詢頁(yè)面,通過(guò)在上方輸入欄輸入已購(gòu)票身份證號(hào)點(diǎn)擊查票,即可查詢。圖圖 2.3.5 用戶查票登陸頁(yè)面用戶查票登陸頁(yè)面沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 8 3 數(shù)據(jù)結(jié)構(gòu)介紹3.1 Android 架構(gòu)架構(gòu)Android 是一種基于 Linux 的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由 Google 公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。尚未有統(tǒng)一中文名稱,中國(guó)大陸地區(qū)較多人使用“安卓”或“安致”。Android 操作系統(tǒng)最初由 Andy Rubin 開發(fā),主要支持手機(jī)。2005 年 8 月由 Google 收購(gòu)

13、注資。2007 年 11 月,Google 與 84 家硬件制造商、軟件開發(fā)商及電信營(yíng)運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良 Android 系統(tǒng)。隨后 Google 以 Apache 開源許可證的授權(quán)方式,發(fā)布了 Android 的源代碼。第一部 Android 智能手機(jī)發(fā)布于 2008 年 10 月。Android 逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。2011 年第一季度,Android 在全球的市場(chǎng)份額首次超過(guò)塞班系統(tǒng),躍居全球第一。 2013 年的第四季度,Android 平臺(tái)手機(jī)的全球市場(chǎng)份額已經(jīng)達(dá)到 78.1%。2013年 09 月 24 日谷歌開發(fā)的操作系統(tǒng) A

14、ndroid 在迎來(lái)了 5 歲生日,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達(dá)到 10 億臺(tái)。本系統(tǒng)就利用 Android 架構(gòu)編寫,是基于 Android 系統(tǒng)的一款 app,運(yùn)行于Android 手機(jī)上。3.2 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)該系統(tǒng)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)為數(shù)據(jù)庫(kù),分為兩個(gè)表,分別為 user 表和 tran 表,user 表結(jié)構(gòu)如下表 3.2.1屬性名稱屬性類型長(zhǎng)度屬性含義IdnumVarchar20用戶身份證號(hào)碼Beginvarchar20出發(fā)站EndVarchar20終點(diǎn)站CountVarchar40車次表表 3.2.1 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) user 表結(jié)構(gòu)表結(jié)構(gòu)沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 9 tran 表

15、結(jié)構(gòu)如下表 3.2.2屬性名稱屬性類型長(zhǎng)度屬性含義CountVarchar20車次Stationsvarchar40各站點(diǎn)MoneyVarchar20每站價(jià)格NumberVarchar20余票數(shù)表表 3.2.2 數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) tran 表結(jié)構(gòu)表結(jié)構(gòu)沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 10 4 涉及主要方法描述4.1 數(shù)據(jù)庫(kù)類數(shù)據(jù)庫(kù)類該部分是對(duì) Android 封裝數(shù)據(jù)庫(kù) SQLite 方法的重寫,取名為Databasehelper,其中包括 onCreate 方法和 onUpgrade 方法 。SQLite 數(shù)據(jù)庫(kù)根據(jù)版本號(hào)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,若版本號(hào)為 1,代表該數(shù)據(jù)庫(kù)為新創(chuàng)建,執(zhí)行 onCreat

16、e 方法,若版本號(hào)大于 1,代表改數(shù)據(jù)庫(kù)為已存在數(shù)據(jù)庫(kù),執(zhí)行 onUpgrade 對(duì)其進(jìn)行更新訪問。代碼如下:public void onCreate(SQLiteDatabase db) / TODO Auto-generated method stub System.out.println(create a datebase); db.execSQL(create table tran(count varchar(20)primary key, + stations varchar(40),money varchar(20),number varchar(20); Override pub

17、lic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) / TODO Auto-generated method stub System.out.println(update a database); 4.2 XML 文件文件此類文件用于界面元素配置,類似于 JSP、html 等語(yǔ)言中的標(biāo)簽,它也是通過(guò)標(biāo)簽來(lái)設(shè)置頁(yè)面顯示元素,例如按鈕 Button,標(biāo)簽中直接對(duì)其屬性進(jìn)行配置,代碼如下: 沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 11 4.3 頁(yè)面配置類頁(yè)面配置類這種類用于通過(guò) Java 代碼來(lái)實(shí)現(xiàn)對(duì)界面 XML 文件的配

18、置,SetContentView(Layout)方法使該類與相應(yīng)前臺(tái) xml 文件相聯(lián)系,findViewById(ID)方法使界面中的控件與類中定義的變量相聯(lián)系,例如按鈕響應(yīng)事件,變量獲取相應(yīng)控件 ID 后調(diào)用 onClickListener 方法對(duì)其進(jìn)行監(jiān)聽,代碼如下:Overrideprotected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_use

19、rbuy);init();private void init() / TODO Auto-generated method stubshowCount = (TextView)findViewById(R.id.ub_tv_showcount);btn_buy = (Button)findViewById(R.id.ub_btn_buy);id_input = (EditText)findViewById(R.id.ub_et_id);Intent i = getIntent();count = i.getStringExtra(count);begin = i.getStringExtra(

20、begin);end = i.getStringExtra(end);4.4 AndroidManifest 文件文件該文件用來(lái)記錄配置了 XML 文件的類,以及一些特殊權(quán)限、sdk 版本、樣式等信息,是一個(gè)配置文件。代碼如下: 沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 13 5 主要算法描述5.1 管理員操作模塊管理員操作模塊該模塊負(fù)責(zé)管理員用戶的操作,即對(duì)出票信息進(jìn)行管理。通過(guò)點(diǎn)擊管理員登陸按鈕,就可以登陸到管理員界面,這里從數(shù)據(jù)庫(kù)讀取完信息后用 listView 來(lái)顯示車票信息,點(diǎn)擊相應(yīng)車票即可進(jìn)入余票管理界面,通過(guò)輸入要更新的余票數(shù)目對(duì)車票信息進(jìn)行更新,流程圖如下圖 5.1.1 所示。開始進(jìn)入管理

21、員界面點(diǎn)擊車次進(jìn)入余票修改界面修改余票并提交結(jié)束顯示列車信息圖圖 5.1.1 登錄模塊流程圖登錄模塊流程圖沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 14 5.2 用戶買票模塊用戶買票模塊該模塊用于普通用戶買票功能,用戶通過(guò)輸入框輸入初始站和終點(diǎn)站,檢測(cè)輸入無(wú)誤后,即可從數(shù)據(jù)庫(kù)中匹配相應(yīng)信息并導(dǎo)入到 ListView 中顯示,若數(shù)據(jù)庫(kù)中沒有相應(yīng)信息,則顯示為空。點(diǎn)擊看中的車票進(jìn)入買票頁(yè)面,輸入用戶身份在號(hào)碼,即可購(gòu)票,購(gòu)票信息保存如 user 數(shù)據(jù)庫(kù),流程圖如下圖 5.2.1 所示。開始輸入框獲取信息并校驗(yàn)匹配成功?顯示車次結(jié)束NY顯示為空點(diǎn)擊進(jìn)入購(gòu)票頁(yè)面輸入身份證號(hào)碼購(gòu)票成功,數(shù)據(jù)存入數(shù)據(jù)庫(kù)圖圖 5.2.

22、1 用戶買票流程圖用戶買票流程圖沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 15 5.3 用戶查票模塊用戶查票模塊該模塊提供用戶查票功能,通過(guò)輸入框獲取用戶輸入的身份證號(hào)碼,然后在user 數(shù)據(jù)庫(kù)尋找匹配值,找到返回結(jié)果,找不到顯示為空。點(diǎn)擊相應(yīng)車票進(jìn)入詳細(xì)信息界面,該界面打印出選中車票的車次、出發(fā)站、終點(diǎn)站等信息,并提供退票功能,點(diǎn)擊退票按鈕,數(shù)據(jù)庫(kù)信息更新,退票完成。流程圖如圖 5.3.1 所示。開始輸入框獲取信息并校驗(yàn)匹配成功?顯示已買車次結(jié)束NY顯示為空點(diǎn)擊進(jìn)入詳細(xì)信息頁(yè)面點(diǎn)擊退票按鈕,車票退掉,數(shù)據(jù)庫(kù)更新圖圖 5.3.1 用戶查票模塊流程圖用戶查票模塊流程圖 沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 16 6

23、 程序測(cè)試1. 初始界面初始界面如圖 6.1 所示圖圖 6.1 初始界面初始界面2管理員登陸管理員登陸如圖 6.2 所示圖圖 6.2 管理員登陸界面管理員登陸界面沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 17 3. 用戶購(gòu)票用戶購(gòu)票輸入北京到上海的車次,選擇 T123 車次購(gòu)票,輸入身份證號(hào)為123456789,完成購(gòu)票。如圖 6.3 所示 圖圖 6.3 用戶購(gòu)票用戶購(gòu)票4. 用戶查票用戶查票選擇用戶查票登陸,輸入已購(gòu)票的身份證號(hào) 123456789,即可顯示已購(gòu)票信息。如圖 6.4 所示。圖圖 6.4 用戶查票用戶查票沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 18 參考文獻(xiàn)1 梁方明. SQL Server 200

24、0 數(shù)據(jù)庫(kù)編程. 北京: 希望電子出版社, 2002 2 張海藩. 軟件工程導(dǎo)論. 北京: 清華大學(xué)出版社, 20033 立南. SQLServer2000 實(shí)用教程. 北京: 清華大學(xué)出版社, 2004 4 壽志勤.李樂明.崇大志.一個(gè)面向政務(wù)流程的工作流管理系統(tǒng)分析與構(gòu)建J.電子政務(wù),2005.5 蘇翻.基于 J2EE 平臺(tái)的改進(jìn) MVC 的研究及其應(yīng)用J.南京航空航天大學(xué)學(xué)報(bào),20066 Meyer, B. NET is coming Microsoft Web services platform. Computer, 2001. 34(8): p. 92-97.7 Li, M. and

25、 H. Wang. A device management system based on JAVAEE Web.Wuhan, China,20098 Li, Z. and Z. Weixi. Design of tourism e-business system based on JavaEE multi-pattern.Sanya, China,20129 Craig Larman. UML 和模式應(yīng)用. 第 2 版. 北京: 機(jī)械工業(yè)出版社,2004沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 19 附 錄(關(guān)鍵部分程序清單)TranDataBaseHelper 類:類:package com.exam

26、ple.DB;import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper; public class TranDatebaseHelper extends SQLiteOpenHelper public static final int Version=1; public TranDa

27、tebaseHelper(Context context, String name, CursorFactory factory, int version) super(context, name, factory, version); / TODO Auto-generated constructor stub public TranDatebaseHelper(Context context,String name,int version) this(context,name,null,version); public TranDatebaseHelper(Context context,

28、String name) this(context, name, Version); Override public void onCreate(SQLiteDatabase db) / TODO Auto-generated method stub 沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 20 System.out.println(create a datebase); db.execSQL(create table tran(count varchar(20)primary key, + stations varchar(40),money varchar(20),number varchar(20

29、); Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) / TODO Auto-generated method stub System.out.println(update a database); userDataBaseHelper 類:類:package com.example.DB;import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.da

30、tabase.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper; public class UserDatebaseHelper extends SQLiteOpenHelper public static final int Version=1; public UserDatebaseHelper(Context context, String name, CursorFactory factory, int version) super(context, name, fac

31、tory, version); / TODO Auto-generated constructor stub public UserDatebaseHelper(Context context,String name,int version) this(context,name,null,version); public UserDatebaseHelper(Context context,String name) this(context, name, Version); Override public void onCreate(SQLiteDatabase db) / TODO Auto

32、-generated method stub System.out.println(create a datebase); db.execSQL(create table user(idnum varchar(20)primary key,沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 21 + begin varchar(20),end varchar(20),count varchar(40); Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) / TODO Auto-generated met

33、hod stub System.out.println(update a database); MainActivity類:類:package com.example.trans;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.Menu;import a

34、ndroid.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class B_MainActivity extends Activity implements OnClickListenerprivate Button btn_userBuyLogin;private Button btn_userConLogin;private Button btn_admLogin;沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 22 Ove

35、rrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();btn_userBuyLogin.setOnClickListener(this);btn_userConLogin.setOnClickListener(this);btn_admLogin.setOnClickListener(this);/初始化public void init()btn_userBuyLogin =

36、(Button)findViewById(R.id.btn_userBuyLogin);btn_userConLogin = (Button)findViewById(R.id.btn_userConLogin);btn_admLogin = (Button)findViewById(R.id.btn_admLogin);Overridepublic void onClick(View v) / TODO Auto-generated method stubswitch(v.getId()case R.id.btn_admLogin:Intent i = new Intent(B_MainAc

37、tivity.this,C_AdmLoginPage.class);startActivity(i);break;沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 23 case R.id.btn_userBuyLogin:Intent i = new Intent(B_MainActivity.this,C_UserBuyLoginPage.class);startActivity(i);break;case R.id.btn_userConLogin:Intent i = new Intent(B_MainActivity.this,C_UserConLoginPage.class);startActivit

38、y(i);break;default:;Overridepublic void onBackPressed() / TODO Auto-generated method stub/super.onBackPressed();AlertDialog.Builder dialog = new AlertDialog.Builder(B_MainActivity.this);dialog.setTitle().setIcon(android.R.drawable.ic_dialog_info).setMessage(確定退出?).setPositiveButton(確定, new DialogInt

39、erface.OnClickListener() Overridepublic void onClick(DialogInterface dialog, int which) / 轉(zhuǎn)跳到另外一個(gè) Activity/ TODO Auto-generated method stub沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 24 finish();).setNegativeButton(取消, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) / TODO Auto-gener

40、ated method stubdialog.cancel();/ 取消彈出框).create().show();AdmLoginPage 類:類:package com.example.trans;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.example.DB.TranDatebaseHelper;import com.example.util.UserAdspter;import android.app.Activity;

41、import android.content.Intent;import android.content.SharedPreferences;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 25 import android.util.Log;import android.view.View;import android.widget.AdapterView;import android.widget.Adap

42、terView.OnItemClickListener;import android.widget.ListView;import android.widget.TextView;public class C_AdmLoginPage extends Activity implements OnItemClickListenerprivate ListView listview;private SharedPreferences preferences;Overrideprotected void onCreate(Bundle savedInstanceState) / TODO Auto-

43、generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activity_admlogin);init();private void init() listview = (ListView)findViewById(R.id.list_user);listview.setAdapter(new UserAdspter(this, getData();listview.setOnItemClickListener(this);private ListMap getData() ListMap

44、list = new ArrayListMap();preferences = getSharedPreferences(trans, 0);沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 26 int versionCount = preferences.getInt(tranVersion, 2);TranDatebaseHelper dbHelper = new TranDatebaseHelper(C_AdmLoginPage.this,tran,versionCount); Log.d(eric, 管理員模式載入,版本號(hào):+versionCount); SQLiteDatabase dbs=dbHel

45、per.getReadableDatabase(); Cursor cs=dbs.rawQuery(select * from tran,null); while(cs.moveToNext() String count = cs.getString(cs.getColumnIndexOrThrow(count); String number = cs.getString(cs.getColumnIndexOrThrow(number); Log.d(eric, 余票+number); Map map = new HashMap(); map.put(count, 車次:+count); ma

46、p.put(money, 票價(jià):*); map.put(number, 余票:+number); list.add(map); dbs.close();return list;Overridepublic void onItemClick(AdapterView parent, View view, int position, long id) / TODO Auto-generated method stubif(parent = listview)TextView counts = (TextView)view.findViewById(R.id.vl_count);沈陽(yáng)航空航天大學(xué)課程設(shè)

47、計(jì)報(bào)告 27 Intent i = new Intent(C_AdmLoginPage.this,D_YpSet.class);i.putExtra(count, counts.getText().toString();startActivity(i);UserBuyLoginPage 類:類:package com.example.trans;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.example.DB.TranDateb

48、aseHelper;import com.example.util.UserAdspter;import android.app.Activity;import android.content.Intent;import android.content.SharedPreferences;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.renderscript.Int2;import android.util.

49、Log;import android.view.View;import android.view.View.OnClickListener;沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 28 import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.RelativeLay

50、out;import android.widget.TextView;import android.widget.Toast;public class C_UserBuyLoginPage extends Activity implements OnClickListener,OnItemClickListenerprivate EditText countInput;private EditText beginInput;private EditText endInput;private Button btn_consult;private ListView listview;private

51、 String countget;private String beginget;private String endget;private int stationCount;private SharedPreferences preferences;Override沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 29 protected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.activ

52、ity_userbuylogin);init();private void init() / TODO Auto-generated method stubcountInput = (EditText) findViewById(R.id.ul_et_count);beginInput = (EditText) findViewById(R.id.ul_et_begin);endInput = (EditText) findViewById(R.id.ul_et_end);btn_consult = (Button) findViewById(R.id.ul_btn_consult);list

53、view = (ListView) findViewById(R.id.ul_list);stationCount = 0;/ judges();actions();private void judges() / TODO Auto-generated method stubif (countInput.getText().toString().length() = 0 & beginInput.getText().toString().length() = 0 & endInput.getText().toString().length() = 0) Toast.makeText(C_Use

54、rBuyLoginPage.this, 輸入為空, Toast.LENGTH_SHORT).show();return ;沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 30 if (beginInput.getText().toString().length() != 0 & endInput.getText().toString().length() = 0) Toast.makeText(C_UserBuyLoginPage.this, 請(qǐng)輸入終點(diǎn)站, Toast.LENGTH_SHORT).show();return ;if (beginInput.getText().toString().length

55、() = 0 & endInput.getText().toString().length() != 0) Toast.makeText(C_UserBuyLoginPage.this, 請(qǐng)輸入出發(fā)站, Toast.LENGTH_SHORT).show();return ;private void actions() / TODO Auto-generated method stublistview.setOnItemClickListener(this);btn_consult.setOnClickListener(this);private ListMap getData() ListMa

56、p list = new ArrayListMap();preferences = getSharedPreferences(trans, 0); int versionCount = preferences.getInt(tranVersion, 2); Log.d(eric, C+versionCount);沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 31 TranDatebaseHelper dbHelper = new TranDatebaseHelper(C_UserBuyLoginPage.this,tran,versionCount); SQLiteDatabase dbs=dbHelper.

57、getReadableDatabase(); if(countget.length()!=0) Cursor cs=dbs.rawQuery(select * from tran WHERE count=+countget+,null); while(cs.moveToNext() Map map = new HashMap(); String Count = cs.getString(cs.getColumnIndexOrThrow(count); String Number = cs.getString(cs.getColumnIndexOrThrow(number); String Mo

58、ney = cs.getString(cs.getColumnIndexOrThrow(money); map.put(count, 車次:+Count); map.put(money, 票價(jià):+Money); map.put(number, 余票:+Number); list.add(map); else Cursor cs=dbs.rawQuery(select * from tran,null); while(cs.moveToNext() int c = 0; stationCount = 0; String Stations = cs.getString(cs.getColumnIn

59、dexOrThrow(stations); String station = Stations.split( );沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 32 Log.d(eric, beginget+ +endget); for(int i =0;istation.length;i+) Log.d(eric, stationi); if(stationi.equals(beginget)|stationi.equals(endget) c+; if(c!=0) stationCount+; if(c=2) Map map = new HashMap(); String Count = cs.getSt

60、ring(cs.getColumnIndexOrThrow(count); String Number = cs.getString(cs.getColumnIndexOrThrow(number); String Money = cs.getString(cs.getColumnIndexOrThrow(money); map.put(count, 車次:+Count); map.put(money, 票價(jià):+Integer.parseInt(Money)*stationCount+); map.put(number, 余票:+Number); list.add(map); return l

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論