版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
沈陽航空航天大學課程設計報告課程設計名稱:軟件綜合課程設計課程設計題目:火車售票管理系統(tǒng)院〔系〕:計算機學院專業(yè):計算機科學與技術班級:學號:2姓名:指導教師:說明:結論〔優(yōu)秀、良好、中等、及格、不及格〕作為相關教環(huán)節(jié)考核必要依據;格式不符合要求;數據不實,不予通過。報告和電子數據必須作為實驗現象重復的關鍵依據。學術誠信聲明本人聲明:所呈交的報告〔含電子版及數據文件〕是我個人在導師指導下獨立進行設計工作及取得的研究結果。盡我所知,除了文中特別加以標注或致謝中所羅列的內容以外,報告中不包含其他人己經發(fā)表或撰寫過的研究結果,也不包含其它教育機構使用過的材料。與我一同工作的同學對本研究所做的任何奉獻均己在報告中做了明確的說明并表示了謝意。報告資料及實驗數據假設有不實之處,本人愿意接受本教學環(huán)節(jié)“不及格〞和“重修或重做〞的評分結論并承當相關一切后果。本人簽名:日期:年月日課程設計總結:通過此次課程設計,使我更加扎實的掌握了有關編碼方面的知識,在設計過程中雖然遇到了一些問題,但經過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經驗缺乏。實踐出真知,通過親自動手制作,使我們掌握的知識不再是紙上談兵。
過而能改,善莫大焉。在課程設計過程中,我們不斷發(fā)現錯誤,不斷改正,不斷領悟,不斷獲取。最終的檢測調試環(huán)節(jié),本身就是在踐行“過而能改,善莫大焉〞的知行觀。這次課程設計終于順利完成了,在設計中遇到了很多問題,最后在同學和老師的指導下,終于游逆而解。在今后社會的開展和學習實踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發(fā)現問題所在,然后一一進行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠不可能收獲成功,收獲喜悅,也永遠不可能得到社會及他人對你的認可!
我認為,在這學期的實驗中,不僅培養(yǎng)了獨立思考、動手操作的能力,在各種其它能力上也都有了提高。更重要的是,在編碼過程中,我們學會了很多學習的方法。而這是日后最實用的,真的是受益匪淺。要面對社會的挑戰(zhàn),只有不斷的學習、實踐,再學習、再實踐。這對于我們的將來也有很大的幫助。以后,不管有多苦,我想我們都能變苦為樂,找尋有趣的事情,發(fā)現其中珍貴的事情?;貞浧鸫苏n程設計,至今我仍感慨頗多,從理論到實踐,在這段日子里,可以說得是苦多于甜,但是可以學到很多很多的東西,同時不僅可以穩(wěn)固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會效勞,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。
目錄學術誠信聲明 I1題目介紹和功能要求 11.1題目介紹 11.2功能要求 12系統(tǒng)功能模塊結構圖 22.1系統(tǒng)功能結構框圖 22.2系統(tǒng)功能流程圖 32.3系統(tǒng)主要模塊功能說明 42.3.1初始顯示界面 42.3.2選擇頁面 52.3.3管理員登陸頁面及修改余票頁面 62.3.4用戶購票登陸頁面及購票頁面 72.3.5用戶查票登陸頁面 83數據結構介紹 93.1Android架構 93.2數據庫 94涉及主要方法描述 114.1數據庫類 114.2XML文件 114.3頁面配置類 124.4AndroidManifest文件 125主要算法描述 145.1管理員操作模塊 145.2用戶買票模塊 155.3用戶查票模塊 166程序測試 17參考文獻 19附錄〔關鍵局部程序清單〕 201題目介紹和功能要求1.1題目介紹 設計一個火車售票管理系統(tǒng)。車次信息根本管理;放票管理;購票管理;車票查詢。1.2功能要求 1、車次、站點、車站間票價等根本信息的管理;2、對某車次車票進行放票,設定余票信息;3、根據用戶的身份證購置某次車票,同時對余票信息進行維護;4、根據車次、出發(fā)地、目的地等進行車次、余票信息進行維護;5、實現已購置車票的退票改簽功能,輸入身份證號進行車票打印。2系統(tǒng)功能模塊結構圖2.1系統(tǒng)功能結構框圖該系統(tǒng)由選擇、管理員登陸、用戶購票登陸、用戶查詢車票等頁面構成,系統(tǒng)功能模塊結構框圖如下列圖2.1.1所示:火車票購票管理系統(tǒng)用戶選擇頁面火車票購票管理系統(tǒng)用戶選擇頁面管理員登陸頁面用戶購票登陸頁面用戶查票頁面用戶選擇車票頁面圖2.1.1系統(tǒng)功能模塊結構圖2.2系統(tǒng)功能流程圖該系統(tǒng)是一款基于Android系統(tǒng)的App,執(zhí)行過程如下:首先是進入該系統(tǒng)的界面。進入后有管理員登陸、用戶購票、用戶查票登陸三個選項。選擇管理員登陸,可進行車次列表的查詢和對余票的修改,實現放票功能;選擇用戶購票登陸,可進行車次、出發(fā)地和目的地的車次查詢,實現用戶查詢車票功能,選擇所查詢出的車次進入購票界面,輸入身份證號即可購票,實現購票功能;選擇用戶查票登陸,可根據上述已購票的身份證號查詢已購車次信息。功能流程圖如下列圖2.2.1所示:圖2.2.1系統(tǒng)功能流程圖2.3系統(tǒng)主要模塊功能說明2.3.1初始顯示界面如圖2.3.1所示,這是這款app的初始顯示界面,圖中有一個人,人腦上方有一個燈泡,意思是靈光一閃,閃出了這款app。這個界面后臺由定時器設置,大約3秒后跳入登錄信息輸入頁面,同時,在此區(qū)間內,建立初始數據庫。圖2.3.1初始顯示界面2.3.2選擇頁面,是選擇頁面,有管理員登陸、用戶購票登陸、用戶查票登陸三個選項,根據不同需求進行選擇。管理員可選擇管理員登陸進行放票操作;用戶可選擇可根據需求進行購票和查票。圖2.3.2選擇頁面2.3.3管理員登陸頁面及修改余票頁面,可顯示車次列表,從中可查詢到各車次的情況。選擇其中一項可進行余票設置,設置完成以后點擊提交即修改完成。圖2.3.3管理員登陸頁面及修改余票頁面2.3.4用戶購票登陸頁面及購票頁面如圖2.3.4,點擊進入用戶購票登陸即可進入左圖頁面。在車次、出發(fā)站和終點站輸入所需查詢信息,點擊查詢即可顯示所需查詢的車票信息:票價和余票;選擇其中車次信息即可進入右圖頁面,在方框內輸入身份證號并點擊購票那么購票成功。完成后,數據庫保存購票信息,并更新余票信息。圖2.3.4用戶購票登陸頁面及購票頁面2.3.5用戶查票登陸頁面 如圖2.3.5,這個是這款app的查詢頁面,通過在上方輸入欄輸入已購票身份證號點擊查票,即可查詢。圖2.3.5用戶查票登陸頁面3數據結構介紹3.1Android架構Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設備,如智能和平板電腦,由Google公司和開放聯盟領導及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓〞或“安致〞。Android操作系統(tǒng)最初由AndyRubin開發(fā),主要支持。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運商組建開放聯盟共同研發(fā)改進Android系統(tǒng)。隨后Google以Apache開源許可證的授權方式,發(fā)布了Android的源代碼。第一部Android智能發(fā)布于2021年10月。Android逐漸擴展到平板電腦及其他領域上,如電視、數碼相機、游戲機等。2021年第一季度,Android在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2021年的第四季度,Android平臺的全球市場份額已經到達78.1%。2021年09月24日谷歌開發(fā)的操作系統(tǒng)Android在迎來了5歲生日,全世界采用這款系統(tǒng)的設備數量已經到達10億臺。本系統(tǒng)就利用Android架構編寫,是基于Android系統(tǒng)的一款app,運行于Android上。3.2數據庫該系統(tǒng)的數據存儲結構為數據庫,分為兩個表,分別為user表和tran表,user屬性名稱屬性類型長度屬性含義IdnumVarchar20用戶身份證號碼Beginvarchar20出發(fā)站EndVarchar20終點站CountVarchar40車次表3.2.1數據庫user表結構tran表結構如下表3.2.2屬性名稱屬性類型長度屬性含義CountVarchar20車次Stationsvarchar40各站點MoneyVarchar20每站價格NumberVarchar20余票數表3.2.2數據庫tran表結構4涉及主要方法描述4.1數據庫類該局部是對Android封裝數據庫SQLite方法的重寫,取名為Databasehelper,其中包括onCreate方法和onUpgrade方法。SQLite數據庫根據版本號對數據庫進行操作,假設版本號為1,代表該數據庫為新創(chuàng)立,執(zhí)行onCreate方法,假設版本號大于1,代表改數據庫為已存在數據庫,執(zhí)行onUpgrade對其進行更新訪問。代碼如下:publicvoidonCreate(SQLiteDatabasedb){//TODOAuto-generatedmethodstubSystem.out.println("createadatebase");db.execSQL("createtabletran(countvarchar(20)primarykey," +"stationsvarchar(40),moneyvarchar(20),numbervarchar(20))");}@OverridepublicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){//TODOAuto-generatedmethodstubSystem.out.println("updateadatabase");4.2XML文件此類文件用于界面元素配置,類似于JSP、html等語言中的標簽,它也是通過標簽來設置頁面顯示元素,例如按鈕Button,標簽中直接對其屬性進行配置,代碼如下:<Buttonandroid:id="@+id/btn_adm_user"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="用戶管理"/>4.3頁面配置類 這種類用于通過Java代碼來實現對界面XML文件的配置,SetContentView(Layout)方法使該類與相應前臺xml文件相聯系,findViewById〔ID〕方法使界面中的控件與類中定義的變量相聯系,例如按鈕響應事件,變量獲取相應控件ID后調用onClickListener方法對其進行監(jiān)聽,代碼如下:@Override protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.activity_userbuy); init(); } privatevoidinit(){ //TODOAuto-generatedmethodstub showCount=(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); Intenti=getIntent(); count=i.getStringExtra("count"); begin=i.getStringExtra("begin"); end=i.getStringExtra("end");} 4.4AndroidManifest文件 該文件用來記錄配置了XML文件的類,以及一些特殊權限、sdk版本、樣式等信息,是一個配置文件。代碼如下: <?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="://schemas.android/apk/res/android"package="com.example.trans"android:versionCode="1"android:versionName="1.0"><uses-sdkandroid:minSdkVersion="14"android:targetSdkVersion="21"/><applicationandroid:allowBackup="true"android:icon="@drawable/trans"android:label="Trans"android:theme="@android:style/Theme.NoTitleBar.Fullscreen"><activityandroid:name=".A_Splash"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity><activityandroid:name=".C_UserConLoginPage"android:label="用戶登錄"></activity><activityandroid:name=".C_AdmLoginPage"android:label="管理員登陸"></activity><activityandroid:name=".D_YpSet"android:label="管理員登陸"></activity><activityandroid:name=".D_UserBuy"android:label="管理員登陸"></activity><activityandroid:name=".D_BackPage"android:label="管理員登陸"></activity></application></manifest>5主要算法描述 5.1管理員操作模塊該模塊負責管理員用戶的操作,即對出票信息進行管理。通過點擊管理員登陸按鈕,就可以登陸到管理員界面,這里從數據庫讀取完信息后用listView來顯示車票信息,點擊相應車票即可進入余票管理界面,通過輸入要更新的余票數目對車票信息進行更新,流程圖如下列圖5.1.1所示。開始進入管理員界面開始進入管理員界面點擊車次進入余票修改界面修改余票并提交結束顯示列車信息圖5.1.1登錄模塊流程圖 5.2用戶買票模塊該模塊用于普通用戶買票功能,用戶通過輸入框輸入初始站和終點站,檢測輸入無誤后,即可從數據庫中匹配相應信息并導入到ListView中顯示,假設數據庫中沒有相應信息,那么顯示為空。點擊看中的車票進入買票頁面,輸入用戶身份在號碼,即可購票,購票信息保存如user數據庫,流程圖如下列圖5.2.1所示。開始輸入框獲取信息并校驗開始輸入框獲取信息并校驗匹配成功?顯示車次結束NY顯示為空點擊進入購票頁面輸入身份證號碼購票成功,數據存入數據庫圖5.2.1用戶買票流程圖5.3用戶查票模塊 該模塊提供用戶查票功能,通過輸入框獲取用戶輸入的身份證號碼,然后在user數據庫尋找匹配值,找到返回結果,找不到顯示為空。點擊相應車票進入詳細信息界面,該界面打印出選中車票的車次、出發(fā)站、終點站等信息,并提供退票功能,點擊退票按鈕,數據庫信息更新,退票完成。流程圖如圖5.3.1所示。開始輸入框獲取信息并校驗開始輸入框獲取信息并校驗匹配成功?顯示已買車次結束NY顯示為空點擊進入詳細信息頁面點擊退票按鈕,車票退掉,數據庫更新圖5.3.1用戶查票模塊流程圖 6程序測試初始界面圖6.1初始界面2.管理員登陸圖6.2管理員登陸界面3.用戶購票輸入北京到上海的車次,選擇T123車次購票,輸入身份證號為123456789,完成購票。圖6.3用戶購票4.用戶查票選擇用戶查票登陸,輸入已購票的身份證號123456789,即可顯示已購票信息。如圖6.4所示。圖6.4用戶查票參考文獻[1]梁方明.SQLServer2000數據庫編程.北京:希望電子出版社,2002[2]張海藩.軟件工程導論.北京:清華大學出版社,2003[3]立南.SQLServer2000實用教程.北京:清華大學出版社,2004[4]壽志勤.李樂明.崇大志.一個面向政務流程的工作流管理系統(tǒng)分析與構建[J].電子政務,2005.[5]蘇翻.基于J2EE平臺的改進MVC的研究及其應用[J].南京航空航天大學學報,2006[6]Meyer,B..NETiscoming[MicrosoftWebservicesplatform].Computer,2001.34(8):p.92--97.[7]Li,M.andH.Wang.AdevicemanagementsystembasedonJAVAEEWeb.Wuhan,China,2021[8]Li,Z.andZ.Weixi.Designoftourisme-businesssystembasedonJavaEEmulti-pattern.Sanya,China,2021[9]CraigLarman.UML和模式應用.第2版.北京:機械工業(yè)出版社,2004附錄〔關鍵局部程序清單〕TranDataBaseHelper類:packagecom.example.DB;importandroid.content.Context;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteDatabase.CursorFactory;importandroid.database.sqlite.SQLiteOpenHelper;publicclassTranDatebaseHelperextendsSQLiteOpenHelper{publicstaticfinalintVersion=1;publicTranDatebaseHelper(Contextcontext,Stringname,CursorFactoryfactory,intversion){super(context,name,factory,version);//TODOAuto-generatedconstructorstub}publicTranDatebaseHelper(Contextcontext,Stringname,intversion){this(context,name,null,version);}publicTranDatebaseHelper(Contextcontext,Stringname){this(context,name,Version);}@OverridepublicvoidonCreate(SQLiteDatabasedb){//TODOAuto-generatedmethodstubSystem.out.println("createadatebase");db.execSQL("createtabletran(countvarchar(20)primarykey," +"stationsvarchar(40),moneyvarchar(20),numbervarchar(20))");}@OverridepublicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){//TODOAuto-generatedmethodstubSystem.out.println("updateadatabase");}}userDataBaseHelper類:packagecom.example.DB;importandroid.content.Context;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteDatabase.CursorFactory;importandroid.database.sqlite.SQLiteOpenHelper;publicclassUserDatebaseHelperextendsSQLiteOpenHelper{publicstaticfinalintVersion=1;publicUserDatebaseHelper(Contextcontext,Stringname,CursorFactoryfactory,intversion){super(context,name,factory,version);//TODOAuto-generatedconstructorstub}publicUserDatebaseHelper(Contextcontext,Stringname,intversion){this(context,name,null,version);}publicUserDatebaseHelper(Contextcontext,Stringname){this(context,name,Version);}@OverridepublicvoidonCreate(SQLiteDatabasedb){//TODOAuto-generatedmethodstubSystem.out.println("createadatebase");db.execSQL("createtableuser(idnumvarchar(20)primarykey," +"beginvarchar(20),endvarchar(20),countvarchar(40))");}@OverridepublicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){//TODOAuto-generatedmethodstubSystem.out.println("updateadatabase");}}MainActivity類:packagecom.example.trans;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.content.DialogInterface;importandroid.content.Intent;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.Menu;importandroid.view.MenuItem;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;publicclassB_MainActivityextendsActivityimplementsOnClickListener{ privateButtonbtn_userBuyLogin; privateButtonbtn_userConLogin; privateButtonbtn_admLogin; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); btn_userBuyLogin.setOnClickListener(this); btn_userConLogin.setOnClickListener(this); btn_admLogin.setOnClickListener(this); } //初始化 publicvoidinit(){ btn_userBuyLogin=(Button)findViewById(R.id.btn_userBuyLogin); btn_userConLogin=(Button)findViewById(R.id.btn_userConLogin); btn_admLogin=(Button)findViewById(R.id.btn_admLogin); } @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub switch(v.getId()){ caseR.id.btn_admLogin:{ Intenti=newIntent(B_MainActivity.this,C_AdmLoginPage.class); startActivity(i); break; } caseR.id.btn_userBuyLogin:{ Intenti=newIntent(B_MainActivity.this,C_UserBuyLoginPage.class); startActivity(i); break; } caseR.id.btn_userConLogin:{ Intenti=newIntent(B_MainActivity.this,C_UserConLoginPage.class); startActivity(i); break; } default:{ } } }; @Override publicvoidonBackPressed(){ //TODOAuto-generatedmethodstub// super.onBackPressed(); AlertDialog.Builderdialog=newAlertDialog.Builder(B_MainActivity.this); dialog.setTitle("").setIcon(android.R.drawable.ic_dialog_info).setMessage("確定退出?") .setPositiveButton("確定",newDialogInterface.OnClickListener(){ @Override publicvoidonClick(DialogInterfacedialog,intwhich){ //轉跳到另外一個Activity //TODOAuto-generatedmethodstub finish(); } }).setNegativeButton("取消",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhich){ //TODOAuto-generatedmethodstub dialog.cancel();//取消彈出框 } }).create().show(); }}AdmLoginPage類:packagecom.example.trans;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importcom.example.DB.TranDatebaseHelper;importcom.example.util.UserAdspter;importandroid.app.Activity;importandroid.content.Intent;importandroid.content.SharedPreferences;importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.AdapterView.OnItemClickListener;importandroid.widget.ListView;importandroid.widget.TextView;publicclassC_AdmLoginPageextendsActivityimplementsOnItemClickListener{ privateListViewlistview; privateSharedPreferencespreferences; @Override protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.activity_admlogin); init(); } privatevoidinit(){ listview=(ListView)findViewById(R.id.list_user); listview.setAdapter(newUserAdspter(this,getData())); listview.setOnItemClickListener(this); } privateList<Map<String,Object>>getData(){ List<Map<String,Object>>list=newArrayList<Map<String,Object>>(); preferences=getSharedPreferences("trans",0);intversionCount=preferences.getInt("tranVersion",2); TranDatebaseHelperdbHelper=newTranDatebaseHelper(C_AdmLoginPage.this, "tran",versionCount); Log.d("eric","管理員模式載入,版本號:"+versionCount);SQLiteDatabasedbs=dbHelper.getReadableDatabase();Cursorcs=dbs.rawQuery("select*fromtran",null);while(cs.moveToNext()){Stringcount=cs.getString(cs.getColumnIndexOrThrow("count"));Stringnumber=cs.getString(cs.getColumnIndexOrThrow("number"));Log.d("eric","余票"+number);Map<String,Object>map=newHashMap<String,Object>();map.put("count","車次:"+count); map.put("money","票價:***"); map.put("number","余票:"+number); list.add(map);}dbs.close(); returnlist; } @Override publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){ //TODOAuto-generatedmethodstub if(parent==listview){ TextViewcounts=(TextView)view.findViewById(R.id.vl_count); Intenti=newIntent(C_AdmLoginPage.this,D_YpSet.class); i.putExtra("count",counts.getText().toString()); startActivity(i); } }}UserBuyLoginPage類:packagecom.example.trans;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importcom.example.DB.TranDatebaseHelper;importcom.example.util.UserAdspter;importandroid.app.Activity;importandroid.content.Intent;importandroid.content.SharedPreferences;importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase;importandroid.os.Bundle;importandroid.renderscript.Int2;importandroid.util.Log;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.AdapterView;importandroid.widget.AdapterView.OnItemClickListener;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.ListView;importandroid.widget.RelativeLayout;importandroid.widget.TextView;importandroid.widget.Toast;publicclassC_UserBuyLoginPageextendsActivityimplementsOnClickListener,OnItemClickListener{ privateEditTextcountInput; privateEditTextbeginInput; privateEditTextendInput; privateButtonbtn_consult; privateListViewlistview; privateStringcountget; privateStringbeginget; privateStringendget; privateintstationCount; privateSharedPreferencespreferences; @Override protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.activity_userbuylogin); init(); } privatevoidinit(){ //TODOAuto-generatedmethodstub countInput=(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); listview=(ListView)findViewById(R.id.ul_list); stationCount=0; //judges(); actions(); } privatevoidjudges(){ //TODOAuto-generatedmethodstub if(countInput.getText().toString().length()==0 &&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()!=0&&endInput.getText().toString().length()==0){ Toast.makeText(C_UserBuyLoginPage.this,"請輸入終點站",Toast.LENGTH_SHORT).show(); return; } if(beginInput.getText().toString().length()==0&&endInput.getText().toString().length()!=0){ Toast.makeText(C_UserBuyLoginPage.this,"請輸入出發(fā)站",Toast.LENGTH_SHORT).show(); return; } } privatevoidactions(){ //TODOAuto-generatedmethodstub listview.setOnItemClickListener(this); btn_consult.setOnClickListener(this); } privateList<Map<String,Object>>getData(){ List<Map<String,Object>>list=newArrayList<Map<String,Object>>(); preferences=getSharedPreferences("trans",0);intversionCount=preferences.getInt("tranVersion",2);Log.d("eric","C"+versionCount); TranDatebaseHelperdbHelper=newTranDatebaseHelper(C_UserBuyLoginPage.this, "tran",versionCount);SQLiteDatabasedbs=dbHelper.getReadableDatabase();if(countget.length()!=0){Cursorcs=dbs.rawQuery("select*fromtranWHEREcount='"+countget+"'",null);while(cs.moveToNext()){ Map<String,Object>map=newHashMap<String,Object>(); StringCount=cs.getString(cs.getColumnIndexOrThrow("count"));StringNumber=cs.getString(cs.getColumnIndexOrThrow("number"));StringMoney=cs.getString(cs.getColumnIndexOrThrow("money")); map.put("count","車次:"+Count); map.put("money","票價:"+Money); map.put("number","余票:"+Number); list.add(map);}}else{ Cursorcs=dbs.rawQuery("select*fromtran",null);while(cs.moveToNext()){ intc=0; stationCount=0; StringStations=cs.getString(cs.getColumnIndexOrThrow("stations")); Stringstation[]=Stations.split(""); Log.d("eric",beginget+""+endget); for(inti=0;i<station.length;i++){ Log.d("eric",station[i]); if(station[i].equals(beginget)||station[i].equals(endget)){ c++; } if(c!=0){ stationCount++; } } if(c==2){ Map<String,Object>map=newHashMap<String,Object>(); StringCount=cs.getString(cs.getColumnIndexOrThrow("count"));StringNumber=cs.getString(cs.getColumnIndexOrThrow("number"));StringMoney=cs.getString(cs.getColumnIndexOrThrow("money")); map.put("count","車次:"+Count); map.put("money","票價:"+Integer.parseInt(Money)*stationCount+""); map.put("number","余票:"+Number); list.add(map); } }} returnlist; } @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethodstub switch(v.getId()){ caseR.id.ul_btn_consult:{ judges(); countget=countInput.getText().toString(); beginget=beginInput.getText().toString(); endget=endInput.getText().toString(); listview.setAdapter(newUserAdspter(this,getData())); break; } default:{ break; } } } @Override publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){ //TODOAuto-generatedmethodstub if(parent==listview){ TextViewcounts=(TextView)view.findViewById(R.id.vl_count); Intenti=newIntent(C_UserBuyLoginPage.this,D_UserBuy.class); i.putExtra("count",counts.getText().toString()); i.putExtra("begin",beginget); i.putExtra("end",endget); startActivity(i); } }}UserConLoginPage類:packagecom.example.trans;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importcom.example.DB.TranDatebaseHelper;importcom.example.util.UserAdspter;importandroid.app.Activity;importandroid.content.Intent;importandroid.content.SharedPreferences;importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.ListView;importandroid.widget.TextView;importandroid.widget.Toast;importandroid.widget.AdapterView;importandroid.widget.AdapterView.OnItemClickListener;publicclassC_UserConLoginPageextendsActivityimplementsOnClickListener,OnItemClickListener{ privateEditTextidInput; privateButtonbtn_consult; privateListViewlistview; privateStringidget; privateSharedPreferencespreferences; @Override protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.activity_userconlogin); init(); } privatevoidinit(){ //TODOAuto-generatedmethodstub idInput=(EditText)findViewById(R.id.uc_et_id); btn_consult=(Button)findViewById(R.id.uc_btn_consult); listview=(ListView)findViewById(R.id.uc_list); actions(); } privatevoidjudges(){ //TODOAuto-generatedmethodstub if(idInput.getText().toString().length()==0){ Toast.makeText(C_UserConLoginPage.this,"輸入為空",Toast.LENGTH_SHORT).show(); return; } } privatevoidactions(){ //TODOAuto-generatedmethodstub listview.setOnItemClickListener(this); btn_consult.setOnClickListener(this); } privateList<Map<String,Object>>getData(){ List<Map<String,Object>>list=newArrayList<Map<String,Object>>(); preferences=getSharedPreferences("trans",0);intversionCount=preferences.getInt("userVersion",2); TranDatebaseHelperdbHelper=newTranDatebaseHelper(C_UserConLoginPage.this, "user",versionCount);SQLiteDatabasedbs=dbHelper.getReadableDatabase();Log.d("eric",idget);if(idget.length()!=0){ Cursorcs=dbs.rawQuery("select*fromuserWHEREidnum='"+idget+"'",null); while(cs.moveToNext()) { Map<String,Object>map=newHashMap<String,Object>(); StringCount=cs.getString(cs.getColumnIndexOrThrow("count")); Log.d("eric",""+Count); map.put("count","車次:"+Count); list.add(map); }} returnlist; } @Override publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){ //TODOAuto-generatedmethodstub if(parent==listview){ TextViewidET=(TextView)view.findViewById(R.id.uc_et_id); Intenti=newIntent(C_UserConLoginPage.this,D_BackPage.class); i.putExtra("id",idget); startActivity(i); } } @Override publicvoidonClick(Viewv){ //TODOAuto-generatedmethod
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度網站建設與維護合同
- 護理安全文化活動
- 三年級數學(上)計算題專項練習附答案集錦
- 工程基礎與訓練中心教學管理制度試行
- 盆底康復治療健康教育
- 骨折合并糖尿病飲食指導
- 2024年技術合作協(xié)議:技術創(chuàng)新與共享
- 地面剝離工程合同模板
- 護理管理者特質的培養(yǎng)
- 科學原理解讀講座模板
- 腦血管病三級預防
- 苗木出庫入庫管理制度
- DB32-4043-2021 池塘養(yǎng)殖尾水排放標準
- (許濟洛平)洛陽市2023-2024學年高三第二次質量檢測 英語試卷(含答案)
- 醫(yī)院培訓課件:《重癥患者安全轉運》
- 金屬切削機床課件
- 陜西師范大學學士學位英語考試題
- 4.3平面鏡成像導學案人教版八年級物理上冊
- 連鎖分店的股權設計方案
- 項目部安全生產責任制矩陣表
- 紅十字應急救護培訓教學:創(chuàng)傷技術
評論
0/150
提交評論