




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 數(shù)據(jù)庫課程設(shè)計(jì)341.課程設(shè)計(jì)的目的與意義1.1、課程設(shè)計(jì)的目的 數(shù)據(jù)庫課程設(shè)計(jì)是數(shù)據(jù)庫系統(tǒng)原理實(shí)踐環(huán)節(jié)的及為重要的一部分.其目的 是:(1)培養(yǎng)學(xué)生能夠應(yīng)用數(shù)據(jù)庫系統(tǒng)原理在需求分析的基礎(chǔ)上對系統(tǒng)進(jìn)行概念設(shè)計(jì),學(xué)會設(shè)計(jì)局部ER,全局ER圖;(2)培養(yǎng)學(xué)生能夠應(yīng)用數(shù)據(jù)庫系統(tǒng)在概念設(shè)計(jì)的基礎(chǔ)上應(yīng)用關(guān)系規(guī)范化理論對系統(tǒng)進(jìn)行邏輯設(shè)計(jì),學(xué)會在ER圖基礎(chǔ)上設(shè)計(jì)出易于查詢和操作的合理的規(guī)范化關(guān)系模型;(3)培養(yǎng)學(xué)生能夠應(yīng)用SQL語言對所設(shè)計(jì)的規(guī)范化關(guān)系模型進(jìn)行物理設(shè)計(jì),并且能夠應(yīng)用事務(wù)處理,存儲過程,觸發(fā)器以保證數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)完整性,安全性,一致性,保證數(shù)據(jù)共享和防止數(shù)據(jù)沖突;(4)培養(yǎng)學(xué)生理論與實(shí)際相
2、結(jié)合能力, 培養(yǎng)學(xué)生開發(fā)創(chuàng)新能力; (5)培養(yǎng)學(xué)生獨(dú)立分析問題、解決問題、查閱資料以及自學(xué)能力,以適應(yīng)計(jì)算機(jī)產(chǎn)業(yè)日新月異發(fā)展的形勢;(6)提高和加強(qiáng)學(xué)生的計(jì)算機(jī)應(yīng)用與軟件開發(fā)能力,使學(xué)生由初學(xué)者向?qū)I(yè)的程序員過渡。1.2、課程設(shè)計(jì)的意義目前,我國在計(jì)算機(jī)應(yīng)用、計(jì)算機(jī)軟件和電子類相關(guān)專業(yè)的人才培養(yǎng)方面,取得了長足的發(fā)展,但同時(shí)也讓我們深刻地感覺到缺乏實(shí)際開發(fā)設(shè)計(jì)項(xiàng)目的經(jīng)驗(yàn),不善與綜合運(yùn)用所學(xué)理論,對知識的把握缺乏融會貫通的能力.尤其是我們計(jì)算機(jī)專業(yè)大學(xué)生,由于缺乏具體項(xiàng)目經(jīng)驗(yàn),畢業(yè)之后普遍感到知識不能轉(zhuǎn)化為能力。課程設(shè)計(jì)可以鍛煉我們理論聯(lián)系實(shí)際的能力,為今后工作做鋪墊。信息時(shí)代已經(jīng)來臨,信息處理
3、的利器計(jì)算機(jī)應(yīng)用于火車站售票的日常管理為火車站售票的現(xiàn)代化帶來了從未有過的動力和機(jī)遇,為火車站票務(wù)管理領(lǐng)域的飛速發(fā)展提供了無限潛力。采用計(jì)算機(jī)管理信息系統(tǒng)已成為火車站票務(wù)管理科學(xué)化和現(xiàn)代化的重要標(biāo)志,給火車站票務(wù)帶來了明顯的經(jīng)濟(jì)效益和社會效益。計(jì)算機(jī)已經(jīng)成為人們生活不可卻小的一部分。鐵路票務(wù)管理是一件比較負(fù)責(zé)但又非常重要的事情,它是涉及國家鐵路運(yùn)輸?shù)恼9ぷ?、國民?jīng)濟(jì)的發(fā)展和人民生活水平及質(zhì)量的大事情。隨著經(jīng)濟(jì)的發(fā)展,交通運(yùn)輸越來越便捷,為了提高效率,減輕勞動強(qiáng)度,設(shè)計(jì)開發(fā)高效的鐵路信息查詢系統(tǒng)就顯得頗為重要?;疖囀燮惫芾碇邪S多內(nèi)容,有鐵路乘客運(yùn)輸?shù)倪\(yùn)力問題,有訂票管理問題等等。鐵路信息查
4、詢系統(tǒng)是企業(yè)信息決策和管理的重要的組成部分,是一種典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺的數(shù)據(jù)庫的建立、維護(hù)以及前端的相應(yīng)應(yīng)用程序的開發(fā)兩個(gè)方面的內(nèi)容,數(shù)據(jù)庫的建立和維護(hù)主要要求其管理數(shù)據(jù)的一致性、完整性、安全性等特點(diǎn),而前臺的應(yīng)用程序開發(fā)則要求做到各項(xiàng)功能要完備、操作要簡便、易學(xué)易用等特點(diǎn)。本課程設(shè)計(jì)專門要解決這些問題,由于鐵路火車票務(wù)管理的復(fù)雜性,本設(shè)計(jì)與開發(fā)也僅是一個(gè)嘗試性的工作,但其中有很多重要的思想和方法,涉及一些重要的程序代碼,對于研究開發(fā)該類程序的工程人員可以起一個(gè)拋磚引玉的作用。 2.需求分析2.1. 需求分析的任務(wù) 隨著旅游業(yè)的逐漸的成熟發(fā)達(dá),鐵路客運(yùn)量
5、大幅度的提高,各大省市的列車都顯著的增加,這些都對列車票務(wù)管理系統(tǒng)提出了更高的要求,所以要不斷的完善更新列車票務(wù)管理系統(tǒng),提高列車售票系統(tǒng)的工作效率。隨著科學(xué)的不斷進(jìn)步,計(jì)算機(jī)應(yīng)用已經(jīng)遍布整個(gè)社會的每個(gè)角落。目前社會正處于健保發(fā)展方興未艾的時(shí)代,各火車站莫不兢兢業(yè)業(yè)地改善本身的體制或管理方式,以適應(yīng)健保越來越嚴(yán)格的規(guī)范。列車在我國的人員流動、物資運(yùn)輸中占據(jù)著舉足輕重的地位。全國有大量的人員通過搭乘火車到達(dá)目的地。而與火車的特殊性及可能經(jīng)過多個(gè)城市,每個(gè)城市的車站可以出售此火車的車票。而且同一車站可能有多輛車經(jīng)過。許多希望以最快的方式選擇自己想來乘坐的那一趟列車。所以以人工的方式是不可能實(shí)現(xiàn)這種
6、功能的。一種可行的方案是基于客戶端服務(wù)器的體系結(jié)構(gòu)。服務(wù)器為數(shù)據(jù)庫系統(tǒng),存儲所有必要的信息??蛻舳送ㄟ^連接到服務(wù)的應(yīng)用程序快速、準(zhǔn)確地完成相應(yīng)的工作,通過網(wǎng)上訂購,可以達(dá)到高效、便捷的購票。列車票務(wù)管理系統(tǒng)的實(shí)施,將會在一定程度上促進(jìn)鐵路客運(yùn)生產(chǎn)力和生產(chǎn)關(guān)系的變革,增強(qiáng)市場競爭能力,提高鐵路部門的工作效率,提升管理水平,減少勞動強(qiáng)度,方便廣大旅客購票,有一定的社會和經(jīng)濟(jì)效益。 2.2. 系統(tǒng)需要實(shí)現(xiàn)的功能和操作如下:(1) .查詢:可以通過起點(diǎn)站與終點(diǎn)站在進(jìn)行查詢,也可根據(jù)具體的車次輸入進(jìn)行查詢,同時(shí)每次查詢都會顯示車次號,點(diǎn)擊即可顯示該趟列車所進(jìn)過站點(diǎn)的詳細(xì)信息,其中包括所到達(dá)每個(gè)站的到達(dá)時(shí)
7、間與出發(fā)時(shí)間。(2) .客戶注冊、注銷:由于要進(jìn)行網(wǎng)上訂購車票,用戶需注冊,填寫有關(guān)信息,由物流公司負(fù)責(zé)送車票到客戶手中。如果用戶不再使用本系統(tǒng)可以選擇注銷,從而從數(shù)據(jù)庫中刪除其有關(guān)記錄。(3).訂票業(yè)務(wù):本系統(tǒng)為網(wǎng)上訂票,用戶經(jīng)過查詢車次信息、票務(wù)信息,找到自己所需的車票通過所關(guān)聯(lián)的賬戶進(jìn)行訂購。 (4).退票業(yè)務(wù):根據(jù)客戶提供的情況(車次、時(shí)間、)為客戶辦理退票手續(xù),退票時(shí)按票價(jià)的80%退給客戶金額,若所退票額能滿足他的要求,則為他辦理退票手續(xù),同時(shí)在數(shù)據(jù)庫中進(jìn)行更新。(5) .更新功能:該系統(tǒng)隨時(shí)跟據(jù)車輛的變化情況進(jìn)行更新,增加車輛時(shí)可以在系統(tǒng)中插入該車的詳細(xì)信息,同時(shí)也能根據(jù)需要修改某
8、趟車經(jīng)過的站點(diǎn)與發(fā)車時(shí)間,當(dāng)某趟車停止、開行時(shí)可以刪除該趟車的信息。同時(shí)包括對列車信息、站點(diǎn)信息、管理人員信息、訂票記錄等的更新功能。(6) .車票配送:客戶在訂購了車票之后,管理人員通過后臺管理訂票記錄,然后根據(jù)客戶的要求選擇物流公司及時(shí)為其配送車票。3.系統(tǒng)設(shè)計(jì)3.1總體設(shè)計(jì)1.功能設(shè)計(jì):該鐵路票務(wù)系統(tǒng)流程主要包括客戶操作、管理人員操作、主管操作: 客戶操作: 查詢操作:可以按照車次或始發(fā)站、終點(diǎn)站兩種方式進(jìn)行查詢,只需要輸入關(guān)鍵信息即可查到所需的車次的有關(guān)信息,包括車的類型、所剩票的類型、數(shù)量、票價(jià)等。 注冊操作:網(wǎng)上訂票,需要與客戶的銀行賬號、電話、地址等有關(guān)信息關(guān)聯(lián), 只有進(jìn)行注冊之
9、后才可以進(jìn)行訂票操作。 訂票操作:客戶進(jìn)行注冊后,可以方便地進(jìn)行訂票,可以選擇支付方式與送票方式,以達(dá)到最快速、高效地完成車票的訂購。 退票操作:由于一些原因,可能造成客戶要求退票,系統(tǒng)根據(jù)具體的情況判定是否可以退票,進(jìn)行退票。 注銷操作:客戶可能因?yàn)槟承┰蛞M(jìn)行注銷操作,系統(tǒng)根據(jù)客戶請求完成客戶注銷,刪除數(shù)據(jù)庫中的該客戶有關(guān)信息。2. 功能模塊圖3. 局部ER圖(以客戶為主體)3.2詳細(xì)設(shè)計(jì): 3.2.1邏輯結(jié)構(gòu)設(shè)計(jì) 用戶(用戶賬號,密碼) 用戶詳細(xì)信息(用戶賬號,姓名,性別,電話,地址,支付方式) 支付類型(類型編號,支付類型) 網(wǎng)上銀行(銀行編號,銀行名稱) 訂票記錄(用戶編號,車票編
10、號,數(shù)量,訂票日期) 票務(wù)信息(車票編號,剩余數(shù)量,日期) 票類型1(票類型編號1,票類型名稱1) 票類型2(票類型編號2,票類型名稱2)物流公司(物流公司編號,物流公司名稱) 3.2.2數(shù)據(jù)庫物理設(shè)計(jì)用戶表:字段名稱數(shù)據(jù)類型寬度可否為空是否為主鍵說明ID8char20否是用戶賬號passwordchar16否否用戶密碼用戶詳細(xì)信息表:字段名稱數(shù)據(jù)類型寬度可否為空是否為主鍵說明ID8char20否是用戶賬號Namechar20否否姓名Sexnoint1否否性別編號telchar11否否電話Addresschar30否否地址zhifunoint 1否否支付方式支付類型表:字段名稱數(shù)據(jù)類型寬度可否
11、為空是否為主鍵說明zhifunoint1否是類型編號zhifuchar20否否支付類型 網(wǎng)上銀行:字段名稱數(shù)據(jù)類型寬度可否為空是否為主鍵說明Banknoint1否是銀行編號Bankchar20否否銀行名稱訂票記錄:字段名稱數(shù)據(jù)類型寬度可否為空是否為主鍵說明ID8char20否是用戶帳號IDchar20否是車票編號numint1否否數(shù)量Datedatetime1否否訂票日期票務(wù)信息表:字段名稱數(shù)據(jù)類型寬度可否為空是否為主鍵說明IDchar20否是車票編號num1int1否否剩余數(shù)量Date1datetime1否否日期票類型1表:字段名稱數(shù)據(jù)類型寬度可否為空是否為主鍵說明Type1int1否是票類
12、型編號1Type1nachar20否否票類型名稱1票類型2表:字段名稱數(shù)據(jù)類型寬度可否為空是否為主鍵說明Type2int1否是票類型編號2Type2nachar20否否票類型名稱2物流公司(物流公司編號,物流公司名稱)字段名稱數(shù)據(jù)類型寬度可否為空是否為主鍵說明transnoInt1否是物流公司編號transnaChar20否否物流公司名稱3.2 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)3.2.1.該系統(tǒng)由兩部分組成:登錄部分和車次車票部分。(1).登錄部分:該部分分為管理員與乘客登錄,管理員登錄時(shí)需要設(shè)定賬號與密碼,只有輸入正確的賬號與密碼才能登陸,同時(shí)系統(tǒng)的功能管理員都能操作,乘客不需要賬號與密碼,但是乘客只有查詢的
13、操作權(quán)限。(2).車次車票部分:該部分又分為四個(gè)子系統(tǒng):查詢系統(tǒng):可以查詢車次基本信息與車次詳細(xì)。購票系統(tǒng):用于乘客購票,同時(shí)顯示剩余票數(shù)與票價(jià)。更新系統(tǒng):當(dāng)車次信息有變化時(shí),管理員可以根據(jù)情況插入和刪除車次信息。退票系統(tǒng):用于乘客需要退票時(shí),且退票時(shí)只退票價(jià)的80%。該系統(tǒng)ER圖如圖3.1:目的站出發(fā)站車次賬號n座位類型火車管理管理員n1終點(diǎn)到達(dá)時(shí)間始發(fā)時(shí)間密碼顯示n出發(fā)時(shí)間到達(dá)時(shí)間站點(diǎn)剩余票數(shù)票價(jià)圖3.2該系統(tǒng)流程圖如下開始:錯(cuò)誤選擇登錄類型返回退出乘客退出操作返回操作輸入賬號和密碼管理員正確賬號 類型 查詢系統(tǒng)查詢系統(tǒng)更新系統(tǒng)退票系統(tǒng)購票系統(tǒng)結(jié)束圖3.24.系統(tǒng)實(shí)現(xiàn)設(shè)計(jì)的火車站售票系統(tǒng)主
14、要分為五個(gè)模塊:5.1.登陸模塊。在登陸系統(tǒng)中,所需要的功能就是對輸入的賬號和密碼與數(shù)據(jù)庫中的賬號信息進(jìn)行匹配查詢。其實(shí)現(xiàn)使用了text控件,adodc控件,frame控件,option控件,command控件以及l(fā)abel控件。主要代碼如下:Private Sub Command1_Click() If Option1.Value = True Then '判斷是否是管理員登陸If Text1.Text = "" Then '如果賬號中輸入為空則顯示"請輸入賬號" MsgBox "請輸入賬號" ElseIf Text
15、2.Text = "" Then '如果密碼框輸入為空則顯示"請輸入密碼" MsgBox "請輸入密碼"ElseIf Text1.Text <> "" Then '當(dāng)賬號框中輸入不為空Dim strsql As String strsql = "select * from 表3 Where id=" + "'" + Text1 + "'" '從數(shù)據(jù)庫中找到賬號等于賬號框中輸入的數(shù)據(jù)時(shí) With Adodc
16、1 ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" + App.Path + "db3.mdb;Persist Security Info=False" .RecordSource = strsql .Refresh End With If Adodc1.Recordset.EOF = True Then MsgBox "賬號信息錯(cuò)誤" ElseIf Text2.Text <> Adodc1.Re
17、cordset.Fields("passnum") Then MsgBox "密碼錯(cuò)誤" ElseIf Text2.Text = Adodc1.Recordset.Fields("passnum") Then '當(dāng)密碼框中輸入的數(shù)據(jù)與數(shù)據(jù)庫的密碼相符時(shí) Form1.Hide Form2.Show End IfEnd IfElseIf Option2.Value = True Then '如果選擇為游客登錄則跳轉(zhuǎn)到游客查詢界面Form3.ShowForm1.HideEnd IfEnd Sub 另外為了美化界面,增加登陸界
18、面的功能,添加了time控件,將計(jì)算機(jī)系統(tǒng)時(shí)間顯示在lable控件中,具體代碼如下:Private Sub Timer1_Timer()Label4.Caption = NowEnd Sub5.2.主菜單 即管理員登陸進(jìn)入后的操作菜單。本界面中用到了command控件。作用是跳轉(zhuǎn)到操作員所需要的界面。主要代碼示例如下:Private Sub Command1_Click() 當(dāng)前主菜單隱藏,更新系統(tǒng)顯示。Form2.HideForm4.ShowEnd Sub5.3.更新系統(tǒng) 更新系統(tǒng)中主要要求對數(shù)據(jù)庫中的表的數(shù)據(jù)進(jìn)行修改,主要包括插入,修改,刪除。在這些功能的實(shí)現(xiàn)中我們使用了adodc控件,o
19、ption控件,label控件,datagrid控件。主要代碼如下: Private Sub Command1_Click() 如果選擇的為火車基本信息,則讓datagrid控件中顯示火車基本信息的表。并實(shí)現(xiàn)插入功能。反之則對火車詳細(xì)信息表進(jìn)行插入操作。 If Option1.Value = True Then Set DataGrid1.DataSource = Adodc1 Adodc1.Recordset.AddNew ElseIf Option2.Value = True Then Set DataGrid1.DataSource = Adodc2 Adodc2.Recordset.A
20、ddNew End IfEnd SubPrivate Sub Command2_Click() 允許在datagrid中對數(shù)據(jù)進(jìn)行更新DataGrid1.AllowUpdate = TrueEnd SubPrivate Sub Command3_Click() 如果選擇的為火車基本信息,則讓datagrid控件中顯示火車基本信息的表。并實(shí)現(xiàn)刪除功能。反之則對火車詳細(xì)信息表進(jìn)行刪除操作。 If Option1.Value = True Then Adodc1.Recordset.Delete ElseIf Option2.Value = True Then Set DataGrid1.DataS
21、ource = Adodc2 Adodc2.Recordset.Delete End IfEnd Sub Private Sub Command4_Click() 使用戶不能對datagrid中數(shù)據(jù)進(jìn)行更新,防止出錯(cuò)。DataGrid1.AllowUpdate = FalseEnd Sub5.4.查詢系統(tǒng) 在本系統(tǒng)中主要是要求用戶能對火車進(jìn)行查詢,包括車次查詢,站點(diǎn)查詢以及詳細(xì)查詢。另外要求不能對數(shù)據(jù)進(jìn)行修改。為了實(shí)現(xiàn)這些功能,我們用到了datagrid控件,adodc控件,label控件,command控件,text控件。具體代碼如下:Private Sub Command1_Click()
22、 對輸入的兩個(gè)站點(diǎn)進(jìn)行查詢。查詢進(jìn)過輸入的兩個(gè)站點(diǎn)的所有火車。為了實(shí)現(xiàn)這個(gè)對兩個(gè)站點(diǎn)間的查詢,我們使用了子查詢語句。 Dim strsql As String strsql = "select * from 表2 where 車次 in(select 車次 from 表2 Where 站點(diǎn) in ( '" + Text1 + "', '" + Text2 + "') group by 車次 having count(*)>=2) and 站點(diǎn) in ( '" + Text1 + "
23、;', '" + Text2 + "') order by 編號 asc" With Adodc2 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" + App.Path + "db3.mdb;Persist Security Info=False" .RecordSource = strsql Set DataGrid1.DataSource = Adodc2 .Refre
24、sh End WithEnd SubPrivate Sub Command2_Click() 對 Dim strsql As String strsql = "select * from 表2 Where 車次 =" + "'" + Text3 + "' order by 編號 asc" With Adodc2 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" + App.
25、Path + "db3.mdb;Persist Security Info=False" .RecordSource = strsql Set DataGrid1.DataSource = Adodc2 .Refresh End WithEnd SubPrivate Sub Command3_Click() 對輸入的車次進(jìn)行查詢,輸出該車次的信息。 Dim strsql As String strsql = "select * from 表2 order by 編號 asc" With Adodc2 .ConnectionString = "P
26、rovider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" + App.Path + "db3.mdb;Persist Security Info=False" .RecordSource = strsql Set DataGrid1.DataSource = Adodc2 .Refresh End WithEnd SubPrivate Sub Form_Load() 使datagrid中輸出的數(shù)據(jù)不能進(jìn)行修改。DataGrid1.AllowAddNew = FalseDataGrid1.A
27、llowDelete = FalseDataGrid1.AllowUpdate = FalseEnd Sub5.5.購票退票系統(tǒng) 在該系統(tǒng)中要實(shí)現(xiàn)的功能是支持售票員對游客購票的車次的查詢,以及購票的操作,其中包括對票價(jià)的顯示,座位數(shù)的加減,尤其是實(shí)時(shí)對數(shù)據(jù)庫的車票情況的更新,以及購買硬座、硬臥、軟臥、站票這不同車票的區(qū)別。為此,我們使用了label控件,frame控件,text控件,options控件,datagrid控件,adodc控件以及command控件。具體功能實(shí)現(xiàn)如下:(查詢的實(shí)現(xiàn)與查詢系統(tǒng)的相似,不在這里列出)Private Sub Command1_Click() '實(shí)現(xiàn)
28、乘客購票的顯示,以及實(shí)時(shí)對數(shù)據(jù)庫中的車票信息進(jìn)行更新。 Label9.Caption = Text2.Text Label11.Caption = Text1.Text Label10.Caption = Text3.Text Label12.Caption = Adodc1.Recordset.Fields("發(fā)車時(shí)間") If Option1.Value = True Then Label13.Caption = Option1.Caption Adodc1.Recordset.Fields("軟臥剩余票數(shù)") = Adodc1.Recordset.
29、Fields("軟臥剩余票數(shù)") - 1 Label17.Caption = Adodc1.Recordset.Fields("軟臥剩余票數(shù)") ElseIf Option2.Value = True Then Label13.Caption = Option2.Caption Adodc1.Recordset.Fields("硬臥剩余票數(shù)") = Adodc1.Recordset.Fields("硬臥剩余票數(shù)") - 1 Label17.Caption = Adodc1.Recordset.Fields(&quo
30、t;硬臥剩余票數(shù)") ElseIf Option4.Value = True Then Label13.Caption = Option4.Caption Adodc1.Recordset.Fields("硬座剩余票數(shù)") = Adodc1.Recordset.Fields("硬座剩余票數(shù)") - 1 Label17.Caption = Adodc1.Recordset.Fields("硬座剩余票數(shù)") End If Label14.Caption = Text4.Text Label15.Caption = Adodc1.
31、Recordset.Fields("車次類型") Label16.Caption = Date End SubPrivate Sub Command3_Click() 通過option控件,查詢出不同座位價(jià)格并把價(jià)格顯示到text控件中。If Option1.Value = True ThenLabel20.Caption = (Text4.Text) * 0.8Adodc1.Recordset.Fields("軟臥剩余票數(shù)") = Adodc1.Recordset.Fields("軟臥剩余票數(shù)") + 1Label17.Captio
32、n = Adodc1.Recordset.Fields("軟臥剩余票數(shù)")ElseIf Option2.Value = True ThenLabel20.Caption = (Text4.Text) * 0.8Adodc1.Recordset.Fields("硬臥剩余票數(shù)") = Adodc1.Recordset.Fields("硬臥剩余票數(shù)") + 1Label17.Caption = Adodc1.Recordset.Fields("硬臥剩余票數(shù)")ElseIf Option4.Value = True The
33、nLabel20.Caption = (Text4.Text) * 0.8Adodc1.Recordset.Fields("硬座剩余票數(shù)") = Adodc1.Recordset.Fields("硬座剩余票數(shù)") + 1Label17.Caption = Adodc1.Recordset.Fields("硬座剩余票數(shù)")End IfEnd SubPrivate Sub Option1_Click() 選擇軟臥,并把軟臥的剩余票數(shù)輸出。 Dim a As Double, b As Double Adodc1.Recordset.Move
34、First a = Adodc1.Recordset.Fields("軟臥票價(jià)") Adodc1.Recordset.MoveNext b = Adodc1.Recordset.Fields("軟臥票價(jià)")Text4.Text = b - a Label17.Caption = Adodc1.Recordset.Fields("軟臥剩余票數(shù)")End Sub5.6.此外,在系統(tǒng)設(shè)計(jì)過程中,我們發(fā)現(xiàn)如果直接使用adodc控件對數(shù)據(jù)庫進(jìn)行關(guān)聯(lián),將使得我們設(shè)計(jì)的軟件只能在指定的路徑中才能運(yùn)行,為此,我們查閱了相關(guān)資料,在軟件設(shè)計(jì)過程中動態(tài)設(shè)
35、置我們數(shù)據(jù)庫的路徑,從而使軟件能在不同的路徑中正常運(yùn)行,代碼如下: With Adodc1 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" + App.Path + "db3.mdb;Persist Security Info=False".RefreshEnd With5. 系統(tǒng)調(diào)試5.1.登陸系統(tǒng)圖5.1:此為密碼輸入錯(cuò)誤提示。圖5.2:此為密碼輸入正確后跳轉(zhuǎn)到主菜單的界面。圖5.3:此為選擇乘客后正確跳轉(zhuǎn)到查詢的界面。圖
36、5.1圖5.2圖5.35.2.查詢系統(tǒng)圖5.4:此為輸入長沙到常德的站點(diǎn)查詢后正確查詢出的信息。圖5.5:此為輸入1374車次后正確查詢出的車次信息。圖5.6:此為點(diǎn)擊詳細(xì)查詢后正確輸出的信息。圖5.4圖5.5圖5.65.3.更新系統(tǒng)圖5.7:此為未更新前顯示信息。圖5.8:此為插入1234車次后顯示信息。圖5.9:此為刪除1234車次后顯示信息。圖5.7圖5.8圖5.95.4.購票系統(tǒng)。圖5.10:此為輸入站點(diǎn),車次后過濾出的車次信息。圖5.11:此為在圖十的基礎(chǔ)上選擇軟座后顯示的票價(jià)及剩余票數(shù)信息。圖5.12:此為點(diǎn)擊確定購買后顯示的信息,包括對剩余票數(shù)的更新信息。圖5.10圖5.11圖5
37、.125.5.退票系統(tǒng)圖5.13:此為初始狀態(tài)。圖5.14:此為在輸入與購票系統(tǒng)相同信息后輸出的退還現(xiàn)金數(shù)目。圖5.13圖5.146.小結(jié)對于此次課程設(shè)計(jì)我感慨頗多,的確,從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在整整兩個(gè)星期的日子里,學(xué)到的很多理論知識,在這次課程設(shè)計(jì)實(shí)習(xí)中更具體的體現(xiàn)了出來,在實(shí)踐過程中,不僅鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)到的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,將結(jié)論輔助與理論,才能真正學(xué)到知識并寫出有用的程序,所以提高自己的實(shí)際動手能力和獨(dú)
38、立思考的能力是十分重要的。在設(shè)計(jì)的過程中遇到很多的問題,可以說得是困難重重,由于對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。導(dǎo)致自己在程序設(shè)計(jì)過程中經(jīng)常出錯(cuò),致使程序無法運(yùn)行或無法實(shí)現(xiàn)要求的步驟。還有很多是些小問題,這都是由于我粗心大意而造成的,所以我認(rèn)識到設(shè)計(jì)程序一定要仔細(xì),容不得絲毫的馬虎和粗心大意。當(dāng)然還有其他的問題,尤其是關(guān)于文件的操作,是我們最大的問題,不過,經(jīng)過老師的講解和改錯(cuò)之后,也開始懂得設(shè)計(jì)和運(yùn)用了。在本次實(shí)踐中,我認(rèn)識到了團(tuán)隊(duì)的重要性,團(tuán)隊(duì)需要個(gè)人,個(gè)人也離不開團(tuán)隊(duì),必須發(fā)揚(yáng)團(tuán)結(jié)協(xié)作的精神。某個(gè)人的離群都可能導(dǎo)致整項(xiàng)工作的失敗。只有一個(gè)人知道原理是遠(yuǎn)遠(yuǎn)不夠的,必須讓每
39、個(gè)人都知道,否則一個(gè)人的錯(cuò)誤,就有可能導(dǎo)致整個(gè)工作失敗。團(tuán)結(jié)協(xié)作是我們實(shí)習(xí)成功的一項(xiàng)非常重要的保證。而這次實(shí)習(xí)也正好鍛煉我們這一點(diǎn),這也是非常寶貴的。我很清楚的知道團(tuán)結(jié)協(xié)作的力量是偉大的,如果是我一個(gè)人孤軍奮戰(zhàn)的話,肯定不能在規(guī)定時(shí)間內(nèi)完成這次課程設(shè)計(jì)的要求內(nèi)容,因此我很懷念這兩個(gè)星期的合作,想起我們一起查閱資料,一起討論設(shè)計(jì)程序的思路,成功的時(shí)候一起分享喜悅,失敗的時(shí)候互相鼓勵(lì),我堅(jiān)信,在這兩個(gè)星期的時(shí)間里面,我們的友情和團(tuán)結(jié)精神在歷練中經(jīng)受住了考驗(yàn),變的更加頑強(qiáng),我們是一個(gè)集體的思想已經(jīng)深入人心!附錄源代碼from1(登陸界面):Private Sub Command1_Click()If
40、 Option1.Value = True ThenIf Text1.Text = "" Then MsgBox "請輸入賬號"ElseIf Text2.Text = "" Then MsgBox "請輸入密碼"ElseIf Text1.Text <> "" ThenDim strsql As String strsql = "select * from 表3 Where id=" + "'" + Text1 + "'
41、" With Adodc1 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" + App.Path + "db3.mdb;Persist Security Info=False" .RecordSource = strsql .Refresh End With If Adodc1.Recordset.EOF = True Then MsgBox "賬號信息錯(cuò)誤" ElseIf Text2.Text
42、<> Adodc1.Recordset.Fields("passnum") Then MsgBox "密碼錯(cuò)誤" ElseIf Text2.Text = Adodc1.Recordset.Fields("passnum") Then Form1.Hide Form2.Show End IfEnd IfElseIf Option2.Value = True ThenForm3.ShowForm1.HideEnd IfEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Su
43、b Form_Load()End SubPrivate Sub Timer1_Timer()Label4.Caption = NowEnd Subfrom2(主菜單):Private Sub Command1_Click()Form2.HideForm4.ShowEnd SubPrivate Sub Command2_Click()Form2.HideForm5.ShowEnd SubPrivate Sub Command3_Click()EndEnd SubPrivate Sub Command4_Click()Form2.HideForm5.ShowEnd SubPrivate Sub C
44、ommand5_Click() Form2.Hide Form3.Show End Subfrom3(查詢系統(tǒng)):Private Sub Command1_Click() Dim strsql As String strsql = "select * from 表2 where 車次 in(select 車次 from 表2 Where 站點(diǎn) in ( '" + Text1 + "', '" + Text2 + "') group by 車次 having count(*)>=2) and 站點(diǎn) in (
45、'" + Text1 + "', '" + Text2 + "') order by 編號 asc" With Adodc2 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" + App.Path + "db3.mdb;Persist Security Info=False" .RecordSource = strsql Set DataGrid1
46、.DataSource = Adodc2 .Refresh End WithEnd SubPrivate Sub Command2_Click() Dim strsql As String strsql = "select * from 表2 Where 車次 =" + "'" + Text3 + "' order by 編號 asc" With Adodc2 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "
47、Data Source=" + App.Path + "db3.mdb;Persist Security Info=False" .RecordSource = strsql Set DataGrid1.DataSource = Adodc2 .Refresh End WithEnd SubPrivate Sub Command3_Click() Dim strsql As String strsql = "select * from 表2 order by 編號 asc" With Adodc2 .ConnectionString = &qu
48、ot;Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" + App.Path + "db3.mdb;Persist Security Info=False" .RecordSource = strsql Set DataGrid1.DataSource = Adodc2 .Refresh End WithEnd SubPrivate Sub Form_Load()DataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseD
49、ataGrid1.AllowUpdate = FalseEnd SubPrivate Sub Label4_Click()Form1.ShowForm3.HideEnd SubPrivate Sub Label5_Click()EndEnd Subfrom4(更新系統(tǒng)):Private Sub Command1_Click() If Option1.Value = True Then Set DataGrid1.DataSource = Adodc1 Adodc1.Recordset.AddNew ElseIf Option2.Value = True Then Set DataGrid1.D
50、ataSource = Adodc2 Adodc2.Recordset.AddNew End IfEnd SubPrivate Sub Command2_Click()DataGrid1.AllowUpdate = TrueEnd SubPrivate Sub Command3_Click() If Option1.Value = True Then Adodc1.Recordset.Delete ElseIf Option2.Value = True Then Set DataGrid1.DataSource = Adodc2 Adodc2.Recordset.Delete End If E
51、nd Sub Private Sub Command4_Click()DataGrid1.AllowUpdate = FalseEnd SubPrivate Sub Form_Load() strsql = "select * from 表1 " With Adodc1 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" + App.Path + "db3.mdb;Persist Security Info=False&
52、quot; .RecordSource = strsql .Refresh End With strsql1 = "select * from 表2 " With Adodc2 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" + App.Path + "db3.mdb;Persist Security Info=False" .RecordSource = strsql1 .Refresh End With
53、DataGrid1.AllowUpdate = FalseEnd SubPrivate Sub Label1_Click()EndEnd SubPrivate Sub Label2_Click()Form2.ShowForm4.HideEnd SubPrivate Sub Option1_Click()Set DataGrid1.DataSource = Adodc1End SubPrivate Sub Option2_Click()Set DataGrid1.DataSource = Adodc2End Subfrom5(購票退票系統(tǒng)):Private Sub Command1_Click(
54、)Label9.Caption = Text2.TextLabel11.Caption = Text1.TextLabel10.Caption = Text3.TextLabel12.Caption = Adodc1.Recordset.Fields("發(fā)車時(shí)間")If Option1.Value = True ThenLabel13.Caption = Option1.CaptionAdodc1.Recordset.Fields("軟臥剩余票數(shù)") = Adodc1.Recordset.Fields("軟臥剩余票數(shù)") - 1Lab
55、el17.Caption = Adodc1.Recordset.Fields("軟臥剩余票數(shù)")ElseIf Option2.Value = True ThenLabel13.Caption = Option2.CaptionAdodc1.Recordset.Fields("硬臥剩余票數(shù)") = Adodc1.Recordset.Fields("硬臥剩余票數(shù)") - 1Label17.Caption = Adodc1.Recordset.Fields("硬臥剩余票數(shù)")ElseIf Option4.Value =
56、True ThenLabel13.Caption = Option4.CaptionAdodc1.Recordset.Fields("硬座剩余票數(shù)") = Adodc1.Recordset.Fields("硬座剩余票數(shù)") - 1Label17.Caption = Adodc1.Recordset.Fields("硬座剩余票數(shù)")ElseIf Option5.Value = True ThenLabel13.Caption = Option5.CaptionAdodc1.Recordset.Fields("硬座剩余票數(shù)") = Adodc1.Recordset.Fields("硬座剩余票數(shù)") - 1Label17.Caption = Adodc1.Recordset.Fields("硬座剩余票數(shù)")End IfLabel14.Caption = Text4.TextLabel15.Caption
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新版統(tǒng)編版七年級下冊歷史課件 第7課 隋唐時(shí)期的科技與文化
- 課題開題報(bào)告:道德與法治課教學(xué)方法與策略的研究
- 課題開題報(bào)告:大思政課教育主體“數(shù)字+思政”素養(yǎng)的雙元培育機(jī)制與組態(tài)路徑研
- 課題開題報(bào)告:初中地理學(xué)業(yè)評價(jià)與內(nèi)容標(biāo)準(zhǔn)的一致性研究
- 兼職教師外包協(xié)議
- 水彩畫紙企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 毛巾類制品企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報(bào)告
- 旗幟企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報(bào)告
- 中藥腫瘤心理干預(yù)針劑企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 中藥材精油提取企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025年湖南環(huán)境生物職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫一套
- 2025年黑龍江農(nóng)業(yè)經(jīng)濟(jì)職業(yè)學(xué)院單招職業(yè)傾向性測試題庫參考答案
- 2025年廣東省深圳法院招聘書記員招聘144人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 變電站電網(wǎng)側(cè)儲能項(xiàng)目可行性研究報(bào)告
- 新版統(tǒng)編版一年級道德與法治下冊全冊教案(完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 4.2 同學(xué)相伴 第二課時(shí) 課件 2024-2025學(xué)年三年級下冊道德與法治 統(tǒng)編版
- 2025年春季學(xué)期學(xué)校德育工作計(jì)劃安排表(完整版)
- 2025年全球及中國調(diào)頻儲能行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2024年江西青年職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 2025年度會計(jì)人員繼續(xù)教育會計(jì)法律法規(guī)答題活動測試100題答案
- 消防維保年度工作計(jì)劃
評論
0/150
提交評論