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

下載本文檔

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

文檔簡介

軟件開發(fā)綜合技能訓(xùn)練汽車票預(yù)訂系統(tǒng)設(shè)計專業(yè)軟件工程學(xué)生姓名羅劍班級B計算機074學(xué)號0710604414指導(dǎo)教師張靜林完成日期2011.1.6信息學(xué)院目 錄1 課題綜述11.1 課題來源11.2 程序所實現(xiàn)的功能11.3軟硬件運行環(huán)境及開發(fā)工具12 系統(tǒng)分析12.1 系統(tǒng)需求分析12.2功能模塊圖13 系統(tǒng)設(shè)計13.1 數(shù)據(jù)庫設(shè)計13.2車票查詢信息處理對話框的設(shè)計14 代碼編寫14.1 具體代碼15 程序調(diào)試15.1 上機過程中出現(xiàn)的問題和解決方案15.2 程序的擴展方案16 程序運行界面17 小結(jié)11 課題綜述1.1 課題來源本次軟件實習(xí)將用C#制作一個車票查詢預(yù)訂系統(tǒng),具有一般系統(tǒng)的數(shù)據(jù)處理功能,如數(shù)據(jù)錄入、增加、修改、刪除等。1.2 程序所實現(xiàn)的功能本系統(tǒng)通過C# Winforms技術(shù)完成的功能如下:(1)可以實現(xiàn)車票信息的增加、刪除。(2)可以實現(xiàn)車票的基本信息的瀏覽。(3)可以實現(xiàn)車票的預(yù)訂及預(yù)訂信息的刪除、修改(4)管理員登錄密碼的修改1.3軟硬件運行環(huán)境及開發(fā)工具本次軟件設(shè)計的運行環(huán)境:Windows XP操作系統(tǒng),Microsoft Visual Studio 2005以上編譯環(huán)境。開發(fā)工具為C#和Access。C#概述:Microsoft Visual C# 2005(讀作 C#)是一種編程語言,它是為生成在 .NET Framework 上運行的多種應(yīng)用程序而設(shè)計的。C# 簡單、功能強大、類型安全,而且是面向?qū)ο蟮?。C# 憑借它的許多創(chuàng)新,在保持 C 樣式語言的表示形式和優(yōu)美的同時,實現(xiàn)了應(yīng)用程序的快速開發(fā)。Visual Studio 支持 Visual C#,這是通過功能齊全的代碼編輯器、項目模板、設(shè)計器、代碼向?qū)А⒐δ軓姶笄乙子谑褂玫恼{(diào)試器以及其他工具實現(xiàn)的。通過 .NET Framework 類庫,可以訪問多種操作系統(tǒng)服務(wù)和其他有用的精心設(shè)計的類,這些類可顯著加快開發(fā)周期。52 系統(tǒng)分析2.1 系統(tǒng)需求分析(1)前臺部分1.前臺營業(yè):用戶通過此對車票進行購買,該功能可以查看到車票的車次、售價、車票的類型;2.預(yù)定車票:其功能和前臺營業(yè)功能基本類似,它是通過對時間的設(shè)置來進行車票的預(yù)定;3.退回車票:客戶購買了車票后發(fā)生了不可避免的問題,這里就可以對購買的車票進行退訂或是退購,這里也是通過對時間的設(shè)定來進行退回車票;4.汽車票信息查詢:該功能包括售票信息查詢、訂票信息查詢、運營計劃查詢;5.售票信息查詢:以列表的形式將已經(jīng)購買的車票信息進行匯總,并在該頁中顯示出來;6.訂票信息查詢:該功能和售票信息查詢功能相同,也是以列表的形式將預(yù)定的車票信息進行匯總,并在該頁中顯示出來;7.運營計劃查詢:該功能是以列表的形式將停運和正在運營的車次分開顯示出來,從而可以對車輛進行有效的調(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.管理員登錄:當(dāng)管理員要對車票的信息進行管理時,管理員可以通過此登錄到后臺對車票等信息進行添加、刪除、修改等操作;(2)后臺部分1.運營設(shè)置:該功能包括基礎(chǔ)參數(shù)設(shè)置、車票設(shè)置、車次設(shè)置、調(diào)度設(shè)置、車票價格線路設(shè)置;2.基礎(chǔ)參數(shù)設(shè)置:該功能包括賣票時間設(shè)置、訂票時間設(shè)置、退票時間設(shè)置;3.車次設(shè)置:這里包括了對車次的增加、修改、刪除的操作;4.調(diào)度設(shè)置:對停運和正在運營的車次進行調(diào)度;5.線路設(shè)置:線路設(shè)置中包括的增加線路,就是增加起始城市之間里程的信息。2.2功能模塊圖該系統(tǒng)的功能模塊圖如下圖所示:主界面車票預(yù)定車票查詢后臺管理顯示預(yù)訂信息添加車票信息修改/刪除車票信息修改登錄密碼圖2-1 模塊圖車票預(yù)定系統(tǒng)數(shù)據(jù)輸入數(shù)據(jù)輸出數(shù)據(jù)輸入頁面信息錄入旅行社登陸登陸信息 數(shù)據(jù)錄入 數(shù)據(jù)信息 數(shù)據(jù)信息 數(shù)據(jù)信息 數(shù)據(jù)處理、查詢數(shù)據(jù)判斷數(shù)據(jù)信息 準(zhǔn)備SQL判斷查詢數(shù)據(jù)庫操作數(shù)據(jù)信息 判斷信息 判斷結(jié)果 數(shù)據(jù)信息 返回賬單等確定錯誤原因返回車票信息打印賬單等顯示錯誤原因打印車票數(shù)據(jù)信息 軟件結(jié)構(gòu)圖2.3數(shù)據(jù)庫需求分析數(shù)據(jù)庫的設(shè)計通常是以一個已經(jīng)存在的數(shù)據(jù)庫管理系統(tǒng)為基礎(chǔ)的,常用的數(shù)據(jù)庫管理系統(tǒng)有MYSQL,SQL Server, Oracle等。我采用了SQL server2005數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)的輸入是否準(zhǔn)確是數(shù)據(jù)處理的前提,錯誤的輸入會導(dǎo)致系統(tǒng)輸出的不正確和不可用,從而使系統(tǒng)的工作出現(xiàn)錯誤。數(shù)據(jù)的輸入來源是手工輸入,在系統(tǒng)中,數(shù)據(jù)的輸入往往是大量的,因此系統(tǒng)要有一定的處理能力,以保證迅速的處理數(shù)據(jù)。所以系統(tǒng)數(shù)據(jù)一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。一致性是指當(dāng)事務(wù)完成時,必須使所有數(shù)據(jù)都具有一致的狀態(tài)。在關(guān)系型數(shù)據(jù)庫中,所有的規(guī)則必須應(yīng)用到事務(wù)的修改上,以便維護所有數(shù)據(jù)的完整性。3 系統(tǒng)設(shè)計3.1 數(shù)據(jù)庫設(shè)計創(chuàng)建一個“圖書出版管理系統(tǒng)”數(shù)據(jù)庫,含有三個數(shù)據(jù)表:“出版圖書基本信息”、“圖書分類”、“圖書出售信息”。具體格式如下表:表3-1 “Book”數(shù)據(jù)表結(jié)構(gòu)字段名稱字段類型字段大小索引必須填寫name文本50無否phone文本20無否shenfen文本50無無trainnum文本50有(有重復(fù))無neednum數(shù)字長整型有(有重復(fù))無hard是/否是/否無無soft是/否是/否無無booktime日期/時間日期/時間無無ID自動編號自動編號有(有重復(fù))無表3-2 “entry”數(shù)據(jù)表的結(jié)構(gòu)字段名稱字段類型字段大小索引必須填寫adminnum文本50有(無重復(fù))否admincode文本50有(無重復(fù))否表3-3 “Ticket”數(shù)據(jù)表的結(jié)構(gòu)字段名稱字段類型字段大小索引必須填寫ID自動編號長整型 有(有重復(fù))trainnum文本50 有( 有重復(fù)) 否date文本50無 否startpos文本50無 否starttimedestination reachtimehardlefthardcostSoftleftsoftcost日期/時間文本文本數(shù)字貨幣數(shù)字貨幣5050長整型長整型無無無無無 無 無 否 否 否 否 否 否3.2車票查詢信息處理對話框的設(shè)計車票查詢信息對話框的界面如下圖所示:圖3-1 車票查詢信息對話框標(biāo)簽控件的屬性如表3-4所示。表3-4 標(biāo)簽對象的基本屬性ID標(biāo)題內(nèi)容Textbox3火車發(fā)車日期Textbox1火車發(fā)車地Textbox2火車目的地Radiobottom1軟鋪Radiobottom2硬座Datagridview1顯示查詢信息圖3-2 車票預(yù)訂信息對話框表3-6 編輯框?qū)ο蟮幕緦傩訲extbox1預(yù)訂火車發(fā)車日期Textbox2火車出發(fā)地Textbox3火車目的地Textbox4火車車次Textbox5預(yù)訂者聯(lián)系電話Textbox6E_mailTextbox7真實姓名Textbox8身份證Combobox1預(yù)訂車票類型Radiobottom1軟鋪Radiobottom2硬座 圖3-3 車票后臺管理信息對話框表3-7 編輯框?qū)ο蟮幕緦傩訢atagridview1顯示預(yù)訂信息Bottom1刪除預(yù)訂信息Bottom2關(guān)閉Toolstrip1功能對話框按鈕Toolstripbottom1打開添加車次信息對話框Toolstripbottom2打開修改車次信息對話框Toolstripbottom3打開修改管理員密碼對話框圖3-4 車票后臺管理信息對話框表3-8 編輯框?qū)ο蟮幕緦傩訲extbox1預(yù)訂火車發(fā)車日期Textbox2火車車次Textbox3火車發(fā)車地Textbox4火車軟鋪票價Textbox5火車目的地Textbox6火車硬座票價Textbox7軟鋪數(shù)量Textbox8發(fā)車時間Textbox9硬座數(shù)量Textbox10到站時間Bottom1確定提交圖3-5 車票后臺管理信息對話框表3-9 編輯框?qū)ο蟮幕緦傩訢atagridview1顯示車票信息Bottom1提交修改信息Bottom2刪除所選擇的記錄Bottom3關(guān)閉圖3-6 車票后臺管理信息對話框表3-9 編輯框?qū)ο蟮幕緦傩詔extbox1輸入登錄帳號textbox1輸入原登錄密碼textbox1輸入新登錄密碼textbox1再次輸入新登錄密碼Bottom1確定提交修改信息Bottom2關(guān)閉對話框4 代碼編寫4.1 具體代碼“查詢車票記錄”命令按鈕的過程代碼代碼:private void check_Click(object sender, 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, 請輸入發(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&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.Visible = true; this.dataGridView1.Columns10.Visible = true; i+; String connstring = provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb; OleDbConnection conn = new OleDbConnection(connstring); conn.Open(); String commstring = select * from Ticket where date= + this.textBox3.Text + and startpos= + this.textBox1.Text + and destination= + this.textBox2.Text + ; OleDbCommand commd = new OleDbCommand(commstring, conn); OleDbDataAdapter myadap = new OleDbDataAdapter(); myadap.SelectCommand = commd; DataSet myset = new DataSet(); myadap.Fill(myset, Ticket); this.dataGridView1.DataSource = myset.TablesTicket; conn.Close(); if (this.radioButton1.Checked = false)/顯示選擇的車票類型及價格 this.dataGridView1.Columns9.Visible = false; this.dataGridView1.Columns10.Visible = false; else this.dataGridView1.Columns7.Visible = false; this.dataGridView1.Columns8.Visible = false; “預(yù)定車票”命令按鈕的過程代碼如下所示:private void bookdata_insert() int ticketnumber = Convert.ToInt32(this.label6.Text); string datastring = provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb; String datastring1 = insert into Book (booktime,name,phone,shenfen,trainnum,neednum,hard,soft) values( + this.label1.Text + , + this.label9.Text + , + this.label7.Text + , + this.label19.Text + , + this.label2.Text + , + this.label6.Text + ,-1,0); String datastring2 = insert into Book (booktime,name,phone,shenfen,trainnum,neednum,hard,soft) values( + this.label1.Text + , + this.label9.Text + , + this.label7.Text + , + this.label19.Text + , + this.label2.Text + , + this.label6.Text + ,0,-1); OleDbConnection data_insert = new OleDbConnection(datastring); data_insert.Open(); OleDbCommand insertcomm=new OleDbCommand(); insertcomm.Connection=data_insert; if (type = false) insertcomm.CommandText = datastring1; else insertcomm.CommandText = datastring2; insertcomm.ExecuteNonQuery(); String datastring3 = update Ticket set hardleft=hardleft- + boBox1.Text + where trainnum= + chuandi.textBox5.Text + ; String datastring4 = update Ticket set softleft=softleft- + boBox1.Text + where trainnum= + chuandi.textBox5.Text + ; OleDbCommand updatecomm = new OleDbCommand(); updatecomm.Connection = data_insert; if (type = false) updatecomm.CommandText = datastring3; else updatecomm.CommandText = datastring4; updatecomm.ExecuteNonQuery(); data_insert.Close(); “修改車票記錄”命令按鈕的過程代碼如下所示:private void button1_Click(object sender, EventArgs e) string str = this.dataGridView1.CurrentRow.CellsColumn1.Value.ToString(); String connstring = provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb; OleDbConnection conn = new OleDbConnection(connstring); conn.Open(); String commstring = update Ticket set trainnum= + this.dataGridView1.CurrentRow.CellsColumn2.Value + ,date= + this.dataGridView1.CurrentRow.CellsColumn3.Value + ,startpos= + this.dataGridView1.CurrentRow.CellsColumn4.Value + ,starttime= + this.dataGridView1.CurrentRow.CellsColumn5.Value + ,destination= + this.dataGridView1.CurrentRow.CellsColumn6.Value + ,reachtime= + this.dataGridView1.CurrentRow.CellsColumn7.Value + ,hardleft= + this.dataGridView1.CurrentRow.CellsColumn8.Value + ,hardcost= + this.dataGridView1.CurrentRow.CellsColumn9.Value + ,softleft= + this.dataGridView1.CurrentRow.CellsColumn10.Value + ,softcost= + this.dataGridView1.CurrentRow.CellsColumn11.Value + where ID= +str; OleDbCommand commd = new OleDbCommand(commstring, conn); commd.ExecuteNonQuery(); conn.Close(); dataconn(); MessageBox.Show(修改成功!); “刪除預(yù)訂記錄”按鈕的過程代碼如下所示:private void button2_Click(object sender, EventArgs e) string str= this.dataGridView1.CurrentRow.CellsColumn1.Value.ToString(); MessageBox.Show(this, 確定刪除該條預(yù)訂信息? , Phoenix Information:, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); String connstring = provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb; OleDbConnection conn = new OleDbConnection(connstring); conn.Open(); String commstring = delete from Book where ID= +str; OleDbCommand commd = new OleDbCommand(commstring, conn); commd.ExecuteNonQuery(); conn.Close(); preseant_

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論