車票查詢預訂系統(tǒng)實習報告_第1頁
車票查詢預訂系統(tǒng)實習報告_第2頁
車票查詢預訂系統(tǒng)實習報告_第3頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件開發(fā)綜合技能訓練汽車票預訂系統(tǒng)設計專業(yè)軟件工程學生姓名羅劍班級B 計算機 074學號0710604414指導教師張靜林完成日期2011.1.6信息學院目 錄1課題綜述 .11.1課題來源 .11.2程序所實現(xiàn)的功能 .11.3軟硬件運行環(huán)境及開發(fā)工具 .12系統(tǒng)分析 .12.1系統(tǒng)需求分析 .12.2功能模塊圖 .13系統(tǒng)設計 .13.1 數(shù)據(jù)庫設計 .13.2車票查詢信息處理對話框的設計.14代碼編寫 .14.1具體代碼 .15程序調(diào)試 .15.1上機過程中出現(xiàn)的問題和解決方案.15.2程序的擴展方案 .16程序運行界面 .17小結(jié).11 課題綜述1.1 課題來源本次軟件實習將用 C#制

2、作一個車票查詢預訂系統(tǒng),具有一般系統(tǒng)的數(shù)據(jù)處理功能,如數(shù)據(jù)錄入、增加、修改、刪除等。1.2 程序所實現(xiàn)的功能本系統(tǒng)通過 C# Winforms 技術完成的功能如下:(1)可以實現(xiàn)車票信息的增加、刪除。( 2)可以實現(xiàn)車票的基本信息的瀏覽。 ( 3)可以實現(xiàn)車票的預訂及預訂信息的刪除、修改( 4)管理員登錄密碼的修改1.3 軟硬件運行環(huán)境及開發(fā)工具本次軟件設計的運行環(huán)境: Windows XP 操作系統(tǒng), Microsoft Visual Studio 2005 以上編譯環(huán)境。開發(fā)工具為 C#和 Access。C#概述:Microsoft Visual C# 2005 (讀作 C# )是一種編程

3、語言,它是為生成在 .NETFramework 上運行的多種應用程序而設計的。C# 簡單、功能強大、類型安全,而且是面向?qū)ο蟮摹# 憑借它的許多創(chuàng)新,在保持 C 樣式語言的表示形式和優(yōu)美的同時,實現(xiàn)了應用程序的快速開發(fā)。Visual Studio支持 Visual C#,這是通過功能齊全的代碼編輯器、項目模板、設計器、代碼向?qū)А⒐δ軓姶笄乙子谑褂玫恼{(diào)試器以及其他工具實現(xiàn)的。通過 .NET Framework類庫,可以訪問多種操作系統(tǒng)服務和其他有用的精心設計的類,這些類可顯著加快開發(fā)周期。12 系統(tǒng)分析2.1 系統(tǒng)需求分析(1) 前臺部分1. 前臺營業(yè):用戶通過此對車票進行購買,該功能可以查看

4、到車票的車次、售價、車票的類型;2. 預定車票:其功能和前臺營業(yè)功能基本類似,它是通過對時間的設置來進行車票的預定;3. 退回車票:客戶購買了車票后發(fā)生了不可避免的問題,這里就可以對購買的車票進行退訂或是退購,這里也是通過對時間的設定來進行退回車票;4. 汽車票信息查詢: 該功能包括售票信息查詢、 訂票信息查詢、 運營計劃查詢;5. 售票信息查詢:以列表的形式將已經(jīng)購買的車票信息進行匯總,并在該頁中顯示出來;6. 訂票信息查詢:該功能和售票信息查詢功能相同,也是以列表的形式將預定的車票信息進行匯總,并在該頁中顯示出來;7. 運營計劃查詢:該功能是以列表的形式將停運和正在運營的車次分開顯示出來,

5、從而可以對車輛進行有效的調(diào)度;8. 營業(yè)統(tǒng)計:該功能包括日售票統(tǒng)計、月售票統(tǒng)計、季度售票統(tǒng)計;9. 日售票統(tǒng)計:這里將一天的銷售情況進行統(tǒng)計并在此顯示出來;10. 月售票統(tǒng)計:和日售票統(tǒng)計相似, 將每月的銷售情況進行統(tǒng)計并在此顯示出來;11. 線路查詢:以列表的形式把將要查詢的起始城市的里程顯示出來;12. 管理員登錄:當管理員要對車票的信息進行管理時, 管理員可以通過此登錄到后臺對車票等信息進行添加、刪除、修改等操作;( 2)后臺部分1. 運營設置:該功能包括基礎參數(shù)設置、車票設置、車次設置、調(diào)度設置、車票價格線路設置;2. 基礎參數(shù)設置:該功能包括賣票時間設置、訂票時間設置、退票時間設置;

6、3. 車次設置:這里包括了對車次的增加、修改、刪除的操作;4. 調(diào)度設置:對停運和正在運營的車次進行調(diào)度;5. 線路設置:線路設置中包括的增加線路, 就是增加起始城市之間里程的信息。2.2 功能模塊圖該系統(tǒng)的功能模塊圖如下圖所示:1主界面車票預定車票查詢后臺管理顯示預訂信息添加車票修改/刪除修改登錄信息車票信息密碼圖 2-1 模塊圖車票預定系統(tǒng)數(shù)據(jù)信息數(shù)據(jù)信息數(shù)據(jù)信息數(shù)據(jù)輸入數(shù)據(jù)輸入數(shù)據(jù)輸出數(shù)據(jù)信息數(shù)據(jù)信息判斷信息判斷結(jié)果數(shù)據(jù)信息數(shù)據(jù)判斷數(shù)據(jù)處理、查詢判斷查詢數(shù)據(jù)信息返回賬單等確定錯誤原因返回車票信息準備 SQL頁面信息錄入打印賬單等顯示錯誤原因打印車票數(shù)據(jù)錄入數(shù)據(jù)庫操作旅行社登陸登陸信息軟件

7、結(jié)構(gòu)圖2.3 數(shù)據(jù)庫需求分析數(shù)據(jù)庫的設計通常是以一個已經(jīng)存在的數(shù)據(jù)庫管理系統(tǒng)為基礎的, 常用的數(shù)據(jù)庫管理系統(tǒng)有 MYSQL,SQL Server, Oracle 等。我采用了 SQL server2005 數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)的輸入是否準確是數(shù)據(jù)處理的前提,錯誤的輸入會導致系統(tǒng)輸出的不正確和2不可用,從而使系統(tǒng)的工作出現(xiàn)錯誤。數(shù)據(jù)的輸入來源是手工輸入,在系統(tǒng)中,數(shù)據(jù)的輸入往往是大量的, 因此系統(tǒng)要有一定的處理能力, 以保證迅速的處理數(shù)據(jù)。所以系統(tǒng)數(shù)據(jù)一致性: 事務執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。一致性是指當事務完成時, 必須使所有數(shù)據(jù)都具有一致的狀態(tài)。在關系型數(shù)據(jù)

8、庫中, 所有的規(guī)則必須應用到事務的修改上, 以便維護所有數(shù)據(jù)的完整性。33 系統(tǒng)設計3.1 數(shù)據(jù)庫設計創(chuàng)建一個“圖書出版管理系統(tǒng)”數(shù)據(jù)庫,含有三個數(shù)據(jù)表: “出版圖書基本信息”、“圖書分類”、“圖書出售信息”。具體格式如下表:字段名稱namephoneshenfentrainnumneednumhardsoftbooktimeID字段名稱adminnumadmincode字段名稱IDtrainnumdatestartposstarttimedestinationreachtimehardlefthardcostSoftleftsoftcost表 3-1“ Book ”數(shù)據(jù)表結(jié)構(gòu)字段類型字段大小

9、索引必須填寫文本50無否文本20無否文本50無無文本50有(有重復 )無數(shù)字長整型有(有重復 )無是 /否是 /否無無是 /否是 /否無無日期 /時間日期 /時間無無自動編號自動編號有(有重復 )無表 3-2 “ entry”數(shù)據(jù)表的結(jié)構(gòu)字段類型字段大小索引必須填寫文本50有(無重復)否文本50有(無重復)否表 3-3 “ Ticket ”數(shù)據(jù)表的結(jié)構(gòu)字段類型字段大小索引必須填寫自動編號長整型有 (有重復 )文本50有( 有重復 )否文本50無否文本50無否日期 /時間無文本50無否文本50無否數(shù)字長整型無否貨幣無否數(shù)字長整型無否貨幣無否3.2 車票查詢信息處理對話框的設計車票查詢信息對話框的

10、界面如下圖所示:1圖 3-1 車票查詢信息對話框標簽控件的屬性如表3-4 所示。表 3-4標簽對象的基本屬性ID標題內(nèi)容Textbox3火車發(fā)車日期Textbox1火車發(fā)車地Textbox2火車目的地Radiobottom1軟鋪Radiobottom2硬座Datagridview1顯示查詢信息2圖 3-2 車票預訂信息對話框表 3-6 編輯框?qū)ο蟮幕緦傩訲extbox1預訂火車發(fā)車日期Textbox2火車出發(fā)地Textbox3火車目的地Textbox4火車車次Textbox5預訂者聯(lián)系電話Textbox6E_mailTextbox7真實姓名Textbox8身份證Combobox1預訂車票類型

11、Radiobottom1軟鋪Radiobottom2硬座3圖 3-3車票后臺管理信息對話框表 3-7編輯框?qū)ο蟮幕緦傩訢atagridview1顯示預訂信息Bottom1刪除預訂信息Bottom2關閉Toolstrip1功能對話框按鈕Toolstripbottom1打開添加車次信息對話框Toolstripbottom2打開修改車次信息對話框Toolstripbottom3打開修改管理員密碼對話框4圖 3-4 車票后臺管理信息對話框表 3-8 編輯框?qū)ο蟮幕緦傩訲extbox1預訂火車發(fā)車日期Textbox2火車車次Textbox3火車發(fā)車地Textbox4火車軟鋪票價Textbox5火車目

12、的地Textbox6火車硬座票價Textbox7軟鋪數(shù)量Textbox8發(fā)車時間Textbox9硬座數(shù)量Textbox10到站時間Bottom1確定提交5圖 3-5 車票后臺管理信息對話框表 3-9 編輯框?qū)ο蟮幕緦傩訢atagridview1顯示車票信息Bottom1提交修改信息Bottom2刪除所選擇的記錄Bottom3關閉6圖 3-6 車票后臺管理信息對話框表 3-9 編輯框?qū)ο蟮幕緦傩詔extbox1輸入登錄帳號textbox1輸入原登錄密碼textbox1輸入新登錄密碼textbox1再次輸入新登錄密碼Bottom1確定提交修改信息Bottom2關閉對話框74 代碼編寫4.1 具

13、體代碼“查詢車票記錄”命令按鈕的過程代碼代碼:privatevoid check_Click(objectsender,EventArgs e)if(textBox3.Text=string.Empty)MessageBox.Show( this ,"請輸入日期時間!","Phoenix Information:",MessageBoxButtons .OK,MessageBoxIcon .Exclamation);return ;if(textBox1.Text=string.Empty)MessageBox.Show( this ,"請輸入

14、發(fā)車地點!","Phoenix Information:",MessageBoxButtons .OK,MessageBoxIcon .Exclamation);return ;if(textBox2.Text=string.Empty)MessageBox.Show( this ,"請輸入目的點!","Phoenix Information:",MessageBoxButtons .OK,MessageBoxIcon .Exclamation);return ;if(radioButton1.Checked=false &

15、amp;&radioButton2.Checked=false )MessageBox.Show( this ,"請選擇車票類型!","Phoenix Information:",MessageBoxButtons .OK,MessageBoxIcon .Exclamation);return ;if(i > 0)this.dataGridView1.Columns7.Visible =true;this.dataGridView1.Columns8.Visible =true;this.dataGridView1.Columns9.Vis

16、ible =true;this.dataGridView1.Columns10.Visible =true ;i+;Stringconnstring ="provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb"OleDbConnection conn = new OleDbConnection (connstring); conn.Open();Stringcommstring = "select* from Ticket wheredate='"+ this .textBox3.Text+ &q

17、uot;'andstartpos='"+ this .textBox1.Text +"'and destination='"+this .textBox2.Text +"'"OleDbCommandcommd = new OleDbCommand(commstring, conn);OleDbDataAdapter myadap =new OleDbDataAdapter ();myadap.SelectCommand = commd;DataSet myset =new DataSet ();myada

18、p.Fill(myset,"Ticket");this .dataGridView1.DataSource = myset.Tables"Ticket"conn.Close();if( this .radioButton1.Checked =false ) / 顯示選擇的車票類型及價格this .dataGridView1.Columns9.Visible =false ;this .dataGridView1.Columns10.Visible =false ;elsethis .dataGridView1.Columns7.Visible =fals

19、e ;this .dataGridView1.Columns8.Visible =false ;“預定車票”命令按鈕的過程代碼如下所示:privatevoid bookdata_insert()intticketnumber =Convert .ToInt32(this .label6.Text);stringdatastring ="provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb"Stringdatastring1 ="insert into Book(booktime,name,phone,shenfe

20、n,trainnum,neednum,hard,soft) values('"+ this .label1.Text +"','"+ this .label9.Text +"','"+this .label7.Text +"','"+this .label19.Text +"','"+this .label2.Text +"','"+this .label6.Text +"',&#

21、39;-1','0')"Stringdatastring2 ="insert into Book(booktime,name,phone,shenfen,trainnum,neednum,hard,soft) values('"+ this .label1.Text +"','"+ this .label9.Text +"','"+this .label7.Text +"','"+this .label19.Text +&qu

22、ot;','"+this .label2.Text +"','"+this .label6.Text +"','0','-1')"OleDbConnectiondata_insert =new OleDbConnection (datastring);data_insert.Open();OleDbCommandinsertcomm= new OleDbCommand();insertcomm.Connection=data_insert;if(type =false )i

23、nsertcomm.CommandText = datastring1;elseinsertcomm.CommandText = datastring2;insertcomm.ExecuteNonQuery();2Stringdatastring3 ="update Ticket set hardleft=hardleft-'"+boBox1.Text +"' where trainnum='"+ chuandi.textBox5.Text +"'" ;Stringdatastring4 ="

24、update Ticket set softleft=softleft-'"+boBox1.Text +"' where trainnum='"+ chuandi.textBox5.Text +"'" ;OleDbCommandupdatecomm =new OleDbCommand();updatecomm.Connection = data_insert;if(type =false )updatecomm.CommandText = datastring3;elseupdatecomm.CommandTex

25、t = datastring4;updatecomm.ExecuteNonQuery();data_insert.Close();“修改車票記錄”命令按鈕的過程代碼如下所示:privatevoid button1_Click(objectsender,EventArgs e)stringstr =this .dataGridView1.CurrentRow.Cells"Column1" .Value.ToString();Stringconnstring ="provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb&

26、quot;OleDbConnectionconn =new OleDbConnection (connstring);conn.Open();Stringcommstring ="update Ticket set trainnum='"+this .dataGridView1.CurrentRow.Cells"Column2" .Value +"',date='"+this .dataGridView1.CurrentRow.Cells"Column3" .Value +"

27、9;,startpos='"+this .dataGridView1.CurrentRow.Cells"Column4" .Value +"',starttime='"+this .dataGridView1.CurrentRow.Cells"Column5" .Value +"',destination='"+this .dataGridView1.CurrentRow.Cells"Column6" .Value +"',re

28、achtime='"+this .dataGridView1.CurrentRow.Cells"Column7" .Value +"',hardleft='"+this .dataGridView1.CurrentRow.Cells"Column8" .Value +"',hardcost='"+this .dataGridView1.CurrentRow.Cells"Column9" .Value +"',softleft=&

29、#39;"+this .dataGridView1.CurrentRow.Cells"Column10" .Value +"',softcost='"+this .dataGridView1.CurrentRow.Cells"Column11" .Value +"' where ID="+str;OleDbCommandcommd = new OleDbCommand(commstring, conn);commd.ExecuteNonQuery();conn.Close();da

30、taconn();MessageBox.Show( " 修改成功! " );“刪除預訂記錄”按鈕的過程代碼如下所示:privatevoid button2_Click(objectsender,EventArgs e)stringstr=this .dataGridView1.CurrentRow.Cells"Column1" .Value.ToString();MessageBox.Show( this ,"確定刪除該條預訂信息?","Phoenix Information:",MessageBoxButtons .OK,MessageBoxIcon .Exclamation);Stringconnstring ="provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb"3OleDbConnection conn = new OleDbConnection (connstring); conn.Open();Stringcommstring ="delete from Book where ID="+str;OleDbCommandcommd = new OleDbC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論