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

下載本文檔

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

文檔簡介

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

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

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

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

5、到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。 沈陽航空航天大學(xué)課程設(shè)計報告 II 目目 錄錄學(xué)術(shù)誠信聲明學(xué)術(shù)誠信聲明.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)主要模塊功能說明.42.3.1 初始顯

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

7、錄(關(guān)鍵部分程序清單).20沈陽航空航天大學(xué)課程設(shè)計報告 0 1 題目介紹和功能要求1.11.1 題目介紹題目介紹設(shè)計一個火車售票管理系統(tǒng)。1、 車次信息基本管理;2、 放票管理;3、 購票管理;4、 車票查詢。1.21.2 功能要求功能要求1、車次、站點、車站間票價等基本信息的管理;2、對某車次車票進(jìn)行放票,設(shè)定余票信息;3、根據(jù)用戶的身份證購買某次車票,同時對余票信息進(jìn)行維護(hù);4、根據(jù)車次、出發(fā)地、目的地等進(jìn)行車次、余票信息進(jìn)行維護(hù);5、實現(xiàn)已購買車票的退票改簽功能,輸入身份證號進(jìn)行車票打印。沈陽航空航天大學(xué)課程設(shè)計報告 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)成,系統(tǒng)功能模塊結(jié)構(gòu)框圖如下圖 2.1.1 所示: 火車票購票管理系統(tǒng)用戶選擇頁 面管理員登陸頁面用戶購票登陸頁 面用戶查票頁 面用戶選擇車票頁 面 圖圖 2.1.1 系統(tǒng)功能模塊結(jié)構(gòu)圖系統(tǒng)功能模塊結(jié)構(gòu)圖沈陽航空航天大學(xué)課程設(shè)計報告 2 2.22.2 系統(tǒng)功能流程圖系統(tǒng)功能流程圖該系統(tǒng)是一款基于 Android 系統(tǒng)的 App,執(zhí)行過程如下:首先是進(jìn)入該系統(tǒng)的界面。進(jìn)入后有管理員登陸、用戶購票、用戶查票登陸三個選項。選擇管理員登陸,可進(jìn)行車次列表的查詢和對余票的修改,實現(xiàn)放票功能;選擇用戶購票登陸,可進(jìn)行車次、出發(fā)地和目的地的車次

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

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

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

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

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

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

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

16、e 方法,若版本號大于 1,代表改數(shù)據(jù)庫為已存在數(shù)據(jù)庫,執(zhí)行 onUpgrade 對其進(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 等語言中的標(biāo)簽,它也是通過標(biāo)簽來設(shè)置頁面顯示元素,例如按鈕 Button,標(biāo)簽中直接對其屬性進(jìn)行配置,代碼如下: 沈陽航空航天大學(xué)課程設(shè)計報告 11 4.3 頁面配置類頁面配置類這種類用于通過 Java 代碼來實現(xiàn)對界面 XML 文件的配

18、置,SetContentView(Layout)方法使該類與相應(yīng)前臺 xml 文件相聯(lián)系,findViewById(ID)方法使界面中的控件與類中定義的變量相聯(lián)系,例如按鈕響應(yīng)事件,變量獲取相應(yīng)控件 ID 后調(diào)用 onClickListener 方法對其進(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 文件文件該文件用來記錄配置了 XML 文件的類,以及一些特殊權(quán)限、sdk 版本、樣式等信息,是一個配置文件。代碼如下: 沈陽航空航天大學(xué)課程設(shè)計報告 13 5 主要算法描述5.1 管理員操作模塊管理員操作模塊該模塊負(fù)責(zé)管理員用戶的操作,即對出票信息進(jìn)行管理。通過點擊管理員登陸按鈕,就可以登陸到管理員界面,這里從數(shù)據(jù)庫讀取完信息后用 listView 來顯示車票信息,點擊相應(yīng)車票即可進(jìn)入余票管理界面,通過輸入要更新的余票數(shù)目對車票信息進(jìn)行更新,流程圖如下圖 5.1.1 所示。開始進(jìn)入管理

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

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

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

24、0 數(shù)據(jù)庫編程. 北京: 希望電子出版社, 2002 2 張海藩. 軟件工程導(dǎo)論. 北京: 清華大學(xué)出版社, 20033 立南. SQLServer2000 實用教程. 北京: 清華大學(xué)出版社, 2004 4 壽志勤.李樂明.崇大志.一個面向政務(wù)流程的工作流管理系統(tǒng)分析與構(gòu)建J.電子政務(wù),2005.5 蘇翻.基于 J2EE 平臺的改進(jìn) MVC 的研究及其應(yīng)用J.南京航空航天大學(xué)學(xué)報,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 版. 北京: 機械工業(yè)出版社,2004沈陽航空航天大學(xué)課程設(shè)計報告 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 沈陽航空航天大學(xué)課程設(shè)計報告 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,沈陽航空航天大學(xué)課程設(shè)計報告 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;沈陽航空航天大學(xué)課程設(shè)計報告 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;沈陽航空航天大學(xué)課程設(shè)計報告 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)跳到另外一個 Activity/ TODO Auto-generated method stub沈陽航空航天大學(xué)課程設(shè)計報告 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;沈陽航空航天大學(xué)課程設(shè)計報告 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);沈陽航空航天大學(xué)課程設(shè)計報告 26 int versionCount = preferences.getInt(tranVersion, 2);TranDatebaseHelper dbHelper = new TranDatebaseHelper(C_AdmLoginPage.this,tran,versionCount); Log.d(eric, 管理員模式載入,版本號:+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, 票價:*); 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);沈陽航空航天大學(xué)課程設(shè)

47、計報告 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;沈陽航空航天大學(xué)課程設(shè)計報告 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沈陽航空航天大學(xué)課程設(shè)計報告 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 ;沈陽航空航天大學(xué)課程設(shè)計報告 30 if (beginInput.getText().toString().length() != 0 & endInput.getText().toString().length() = 0) Toast.makeText(C_UserBuyLoginPage.this, 請輸入終點站, Toast.LENGTH_SHORT).show();return ;if (beginInput.getText().toString().length

55、() = 0 & endInput.getText().toString().length() != 0) Toast.makeText(C_UserBuyLoginPage.this, 請輸入出發(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);沈陽航空航天大學(xué)課程設(shè)計報告 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, 票價:+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( );沈陽航空航天大學(xué)課程設(shè)計報告 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, 票價:+Integer.parseInt(Money)*stationCount+); map.put(number, 余票:+Number); list.add(map); return l

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論