畢業(yè)設(shè)計(jì)(論文)汽運(yùn)售票系統(tǒng)的開(kāi)發(fā)與應(yīng)用_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)汽運(yùn)售票系統(tǒng)的開(kāi)發(fā)與應(yīng)用_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)汽運(yùn)售票系統(tǒng)的開(kāi)發(fā)與應(yīng)用_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)汽運(yùn)售票系統(tǒng)的開(kāi)發(fā)與應(yīng)用_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)汽運(yùn)售票系統(tǒng)的開(kāi)發(fā)與應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、鄭州大學(xué)升達(dá)經(jīng)貿(mào)管理學(xué)院鄭州大學(xué)升達(dá)經(jīng)貿(mào)管理學(xué)院畢業(yè)論文汽運(yùn)售票系統(tǒng)的開(kāi)發(fā)與應(yīng)用姓名: 班級(jí): 07計(jì)科二班 專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 指導(dǎo)老師: 日期: 2011.04.20 33汽運(yùn)售票系統(tǒng)的開(kāi)發(fā)與應(yīng)用摘 要:汽運(yùn)售票系統(tǒng)是典型的信息管理系統(tǒng). 其開(kāi)發(fā)的功能主要包括: 管理部分的車(chē)輛管理、目的站管理、用戶(hù)管理和運(yùn)輸管理;售票部分的售票、退票和修改密碼功能。     經(jīng)過(guò)分析, 系統(tǒng)數(shù)據(jù)庫(kù)采用microsoft sql server ,開(kāi)發(fā)語(yǔ)言為c#語(yǔ)言,數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)為vs.net framework中的ado.net數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)。關(guān)鍵字: 數(shù)據(jù)庫(kù)

2、ado.net 售票系統(tǒng) bus transport booking system development and applicationabstract: bus transport booking system is the typical information management system. the main functions of the system are: bus management, stop management, user management and transport management; booking, ticket refund and change

3、 passwords.after analysis, the system database uses microsoft sql server. development language uses c#. database access technology uses ado.net in visual studio.net framework.key word: database ado.net booking system 目錄1 緒論51.1選題的背景及研究意義51.2 系統(tǒng)基本簡(jiǎn)介52系統(tǒng)的關(guān)鍵技術(shù)及介紹62.1 使用sql server來(lái)建立數(shù)據(jù)庫(kù)62.2 ado.net

4、對(duì)象模型62.3 使用c#為開(kāi)發(fā)語(yǔ)言73 系統(tǒng)的整體分析與設(shè)計(jì)83.1 需求分析83.2 總體設(shè)計(jì)83.3 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)104 部分界面實(shí)現(xiàn)詳解134.1 登陸界面相關(guān)功能的實(shí)現(xiàn)134.2 售票主窗體相關(guān)功能的實(shí)現(xiàn)144.3 售票界面相關(guān)功能的實(shí)現(xiàn)154.4 退票界面相關(guān)功能的實(shí)現(xiàn)174.5 售票員修改密碼界面相關(guān)功能的實(shí)現(xiàn)194.6 運(yùn)輸管理主界面相關(guān)功能的實(shí)現(xiàn)204.7 運(yùn)輸管理中增加運(yùn)輸界面相關(guān)功能的實(shí)現(xiàn)214.8 運(yùn)輸管理中編輯運(yùn)輸界面相關(guān)功能的實(shí)現(xiàn)224.9 數(shù)據(jù)訪問(wèn)類(lèi)dataclass 所在的文件dataclass.cs225 小結(jié)25致謝26參考文獻(xiàn)27 1 緒論1.

5、1選題的背景及研究意義隨著信息技術(shù)的迅速發(fā)展,計(jì)算機(jī)在經(jīng)濟(jì)建設(shè)及人們的日常生活中的應(yīng)用日益普及,它正在改變著人們的日常生活的各個(gè)方面. 長(zhǎng)途汽車(chē)站售票系統(tǒng)就是用現(xiàn)代的、發(fā)展的、系統(tǒng)的思想和觀念管理企業(yè)而建設(shè)起來(lái)的,其主要目標(biāo)是實(shí)現(xiàn)長(zhǎng)途汽車(chē)站的標(biāo)準(zhǔn)化、科學(xué)化和現(xiàn)代化的管理,以提高汽車(chē)站的社會(huì)效益和經(jīng)濟(jì)效益。目前一些長(zhǎng)途運(yùn)輸公司仍然采用人工管理,不但效率低,而且易出錯(cuò);耗費(fèi)人力,隨著人們生活水平的提高, 長(zhǎng)途運(yùn)輸公司的發(fā)展前景應(yīng)該是非常寬廣的,所以提高效率;減少錯(cuò)誤非常必要。開(kāi)發(fā)此系統(tǒng),能夠有效的解決現(xiàn)階段存在的諸如低效率;易出錯(cuò);浪費(fèi)人力等問(wèn)題,很好的提高長(zhǎng)途運(yùn)輸公司的服務(wù),減少公司的日常支出,

6、同時(shí)為人們的出行提供更加便捷的服務(wù)。1.2 系統(tǒng)基本簡(jiǎn)介技術(shù)屬性:此系統(tǒng)采用microsoft visual studio 2008為開(kāi)發(fā)工具,使用microsoft sql server 為數(shù)據(jù)庫(kù)平臺(tái),以.net技術(shù)依托,ado.net為數(shù)據(jù)訪問(wèn)技術(shù),使用c#語(yǔ)言實(shí)現(xiàn)的。功能屬性:系統(tǒng)有自己的登錄界面。用戶(hù)憑借自己的工號(hào)和密碼登陸系統(tǒng),系統(tǒng)自動(dòng)識(shí)別你是不是具有管理員權(quán)限。如果你有管理員權(quán)限:你會(huì)有車(chē)輛管理、目的站管理、用戶(hù)管理和運(yùn)輸管理功能。如果你是普通售票員:登陸后可以看到售票界面、退票界面和修改自己的密碼功能。2系統(tǒng)的關(guān)鍵技術(shù)及介紹 在汽運(yùn)售票系統(tǒng)的開(kāi)發(fā)與應(yīng)用的設(shè)計(jì)過(guò)程中,主要考慮了以下

7、幾方面的問(wèn)題:(1)     建立數(shù)據(jù)庫(kù),使用sql server來(lái)建立;(2)     ado.net對(duì)象模型;(3)     c#語(yǔ)言。2.1 使用sql server來(lái)建立數(shù)據(jù)庫(kù) microsoft sql server是一種關(guān)系型數(shù)據(jù)庫(kù)。此種數(shù)據(jù)庫(kù)采用數(shù)據(jù)分類(lèi)表格化的架構(gòu),將相關(guān)的數(shù)據(jù)組成表格,表格和表格之間可以有關(guān)聯(lián)性,因此稱(chēng)為關(guān)系型數(shù)據(jù)庫(kù)。系統(tǒng)管理員可透過(guò)應(yīng)用程序進(jìn)入服務(wù)器,更改數(shù)據(jù)型態(tài),管理及處理服務(wù)器資源。sql server 也是一種具備延展性的數(shù)據(jù)庫(kù)(sc

8、alable distributed database),換句話(huà)說(shuō), sql server 可以支持多位使用者同時(shí)進(jìn)入數(shù)據(jù)庫(kù)中處理大量的數(shù)據(jù)。2.2 ado.net對(duì)象模型ado.net對(duì)象模型中有五個(gè)主要的組件,分別是connection對(duì)象、command對(duì)象、dataadapter、dataset以及datareader。這些組件中負(fù)責(zé)建立聯(lián)機(jī)和數(shù)據(jù)操作的部分我們稱(chēng)為數(shù)據(jù)操作組件(managed providers)分別由connection對(duì)象、command對(duì)象、dataadapter對(duì)象以及datareader對(duì)象所組成。數(shù)據(jù)操作組件最主要是當(dāng)作dataset對(duì)象以及數(shù)據(jù)源之間的橋

9、梁,負(fù)責(zé)將數(shù)據(jù)源中的數(shù)據(jù)取出后植入dataset對(duì)象中,以及將數(shù)據(jù)存回?cái)?shù)據(jù)源的工作。ado.net對(duì)象模型如圖2-1所示:圖2-1 ado.net對(duì)象模型connection組件connection對(duì)象主要是開(kāi)啟程序和數(shù)據(jù)庫(kù)之間的連結(jié)。沒(méi)有利用連結(jié)對(duì)象將數(shù)據(jù)庫(kù)打開(kāi),是無(wú)法從數(shù)據(jù)庫(kù)中取得數(shù)據(jù)的。這個(gè)物件在ado.net的最底層,我們可以自己產(chǎn)生這個(gè)對(duì)象,或是由其它的對(duì)象自動(dòng)產(chǎn)生。command組件command對(duì)象主要可以用來(lái)對(duì)數(shù)據(jù)庫(kù)發(fā)出一些指令,例如可以對(duì)數(shù)據(jù)庫(kù)下達(dá)查詢(xún)、新增、修改、刪除數(shù)據(jù)等指令,以及呼叫存在數(shù)據(jù)庫(kù)中的預(yù)存程序等。這個(gè)對(duì)象是架構(gòu)在connection對(duì)象上,也就是comman

10、d對(duì)象是透過(guò)連結(jié)到數(shù)據(jù)源的connection對(duì)象來(lái)下命令的。所以connection連結(jié)到哪個(gè)數(shù)據(jù)庫(kù),command對(duì)象的命令就下到哪里。dataadapter組件dataadapter對(duì)象主要是在數(shù)據(jù)源以及dataset之間執(zhí)行數(shù)據(jù)傳輸?shù)墓ぷ?,它可以透過(guò)command對(duì)象下達(dá)命令后,并將取得的數(shù)據(jù)放入dataset對(duì)象中。這個(gè)對(duì)象是架構(gòu)在command對(duì)象上,并提供了許多配合dataset使用的功能。dataset組件dataset這個(gè)對(duì)象可以視為一個(gè)暫存區(qū)(cache),可以把從數(shù)據(jù)庫(kù)中所查詢(xún)到的數(shù)據(jù)保留起來(lái),甚至可以將整個(gè)數(shù)據(jù)庫(kù)顯示出來(lái)。dataset的能力不只是可以?xún)?chǔ)存多個(gè)table

11、而已,還可以透過(guò)dataadapter對(duì)象取得一些例如主鍵等的數(shù)據(jù)表結(jié)構(gòu),并可以記錄數(shù)據(jù)表間的關(guān)聯(lián)。dataset對(duì)象可以說(shuō)是ado.net中重量級(jí)的對(duì)象,這個(gè)對(duì)象架構(gòu)在dataadapter對(duì)象上,本身不具備和數(shù)據(jù)源溝通的能力,也就是說(shuō)我們是將dataadapter對(duì)象當(dāng)做dataset對(duì)象以及數(shù)據(jù)源間傳輸數(shù)據(jù)的橋梁。datareader組件當(dāng)我們只需要循序的讀取數(shù)據(jù)而不需要其它操作時(shí),可以使用datareader對(duì)象。datareader對(duì)象只是一次一筆向下循序的讀取數(shù)據(jù)源中的數(shù)據(jù),而且這些數(shù)據(jù)是只讀的,并不允許作其它的操作。因?yàn)閐atareade在讀取數(shù)據(jù)的時(shí)候限制了每次只讀取一筆,而且

12、只能只讀,所以使用起來(lái)不但節(jié)省資源而且效率很好。使用datareader對(duì)象除了效率較好之外,因?yàn)椴挥冒褦?shù)據(jù)全部傳回,故可以降低網(wǎng)絡(luò)的負(fù)載。2.3 使用c#為開(kāi)發(fā)語(yǔ)言c#是微軟公司在2000年7月發(fā)布的一種全新且簡(jiǎn)單、安全、面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,是專(zhuān)門(mén)為.net的應(yīng)用而開(kāi)發(fā)的語(yǔ)言。它吸收了c+、visual basic、delphi、java等語(yǔ)言的優(yōu)點(diǎn),體現(xiàn)了當(dāng)今最新的程序設(shè)計(jì)技術(shù)的功能和精華。c#繼承了c語(yǔ)言的語(yǔ)法風(fēng)格,同時(shí)又繼承了c+的面向?qū)ο筇匦?。不同的是,c#的對(duì)象模型已經(jīng)面向internet進(jìn)行了重新設(shè)計(jì),使用的是.net框架的類(lèi)庫(kù);c#不再提供對(duì)指針類(lèi)型的支持,使得程序不能隨便

13、訪問(wèn)內(nèi)存地址空間,從而更加健壯;c#不再支持多重繼承,避免了以往類(lèi)層次結(jié)構(gòu)中由于多重繼承帶來(lái)的可怕后果。.net框架為c#提供了一個(gè)強(qiáng)大的、易用的、邏輯結(jié)構(gòu)一致的程序設(shè)計(jì)環(huán)境。同時(shí),公共語(yǔ)言運(yùn)行時(shí)(common language runtime)為c#程序語(yǔ)言提供了一個(gè)托管的運(yùn)行時(shí)環(huán)境,使程序比以往更加穩(wěn)定、安全。其特點(diǎn)有: · 語(yǔ)言簡(jiǎn)潔。 · 保留了c+的強(qiáng)大功能。 · 快速應(yīng)用開(kāi)發(fā)功能。 · 語(yǔ)言的自由性。 · 強(qiáng)大的web服務(wù)器控件。 · 支持跨平臺(tái)。 · 與xml相融合。3 系統(tǒng)的整體分析與設(shè)計(jì)3.1 需求分析 3.

14、1.1 系統(tǒng)需要解決的主要問(wèn)題 用戶(hù)進(jìn)入系統(tǒng)應(yīng)該進(jìn)行身份驗(yàn)證。用戶(hù)進(jìn)入系統(tǒng)后,根據(jù)用戶(hù)的身份(工號(hào))判別是管理員還是一般的售票員,管理員進(jìn)入管理界面,一般售票員只能進(jìn)入相應(yīng)的售票、退票等界面。根據(jù)汽運(yùn)售票本身的特點(diǎn),經(jīng)過(guò)分析,管理員具有車(chē)輛管理、目的站管理和運(yùn)輸管理是必須的。然后管理員要有管理一般用戶(hù)(售票員)的能力,所以添加了管理員針對(duì)用戶(hù)管理的模塊。而對(duì)一般售票員來(lái)講,一般僅需要售票、退票、修改自己的密碼的界面。3.1.2 系統(tǒng)功能模塊劃分 本汽運(yùn)售票系統(tǒng)可分為兩個(gè)主要功能模塊進(jìn)行設(shè)計(jì),這兩個(gè)功能模塊分別為:(1)售票員功能模塊: 具有車(chē)輛管理、目的站管理、用戶(hù)管理和運(yùn)輸管理的功能。(2)

15、管理員模塊:具有售票、退票和修改自己密碼的功能。系統(tǒng)功能模塊劃分如圖3-1所示:圖3-1 系統(tǒng)功能模塊劃分圖3.2 總體設(shè)計(jì) 總體設(shè)計(jì)主要包括公用登錄模塊的設(shè)計(jì),管理員功能模塊的設(shè)計(jì),售票員(一般用戶(hù))功能模塊的設(shè)計(jì)。程序總體流程圖如圖3-2所示: 圖3-2 程序總體流程圖3.2.1 公共登陸模塊設(shè)計(jì) 所有用戶(hù)都從本模塊登陸,用戶(hù)填寫(xiě)自己的工號(hào)和密碼后,系統(tǒng)會(huì)根據(jù)所輸入獲得相應(yīng)管理員flag。如果獲取不到這個(gè)flag,系統(tǒng)會(huì)報(bào)密碼錯(cuò)誤。如果獲得管理員flag為1(true),系統(tǒng)自動(dòng)進(jìn)入管理界面進(jìn)行管理。如果為0(false),系統(tǒng)自動(dòng)進(jìn)入售票界面。3.2.2售票員(一般用戶(hù))功能模塊設(shè)計(jì) 售

16、票員(一般用戶(hù))登錄后,進(jìn)入售票員的主界面,然后按照菜單的提示進(jìn)入售票界面,退票界面和修改密碼(只能修改售票員本人的密碼)的界面。3.2.3 管理員功能模塊設(shè)計(jì) 管理員登錄后進(jìn)入后臺(tái)管理主界面(圖3-3),由此主界面可進(jìn)入車(chē)輛管理,運(yùn)輸管理,目的站管理和用戶(hù)(權(quán)限)管理(圖3-4)等功能。其中,用戶(hù)(權(quán)限)管理的部分,管理員能修改自己的密碼,也能創(chuàng)建新用戶(hù)時(shí)賦予該新用戶(hù)密碼,但是對(duì)系統(tǒng)現(xiàn)有用戶(hù)的密碼不具有更改權(quán)限。圖3-3管理主界面圖3-4 用戶(hù)(權(quán)限)管理界面3.3 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì) 3.3.1 數(shù)據(jù)庫(kù)結(jié)構(gòu)及說(shuō)明 數(shù)據(jù)庫(kù)結(jié)構(gòu)是汽運(yùn)售票系統(tǒng)設(shè)計(jì)方案中的一個(gè)重要組成部分,目的在于滿(mǎn)足售票員、管理員

17、用戶(hù)實(shí)現(xiàn)其操作功能。數(shù)據(jù)庫(kù)中表的設(shè)計(jì):1) 車(chē)輛信息表結(jié)構(gòu)車(chē)輛:圖3-5 車(chē)輛信息表2) 車(chē)票信息表結(jié)構(gòu)車(chē)票:圖3-6 車(chē)票信息表3) 目的地信息表結(jié)構(gòu)目的地:圖3-7 目的地信息表4)運(yùn)輸信息表結(jié)構(gòu)運(yùn)輸:圖3-8 運(yùn)輸信息表5) 賬戶(hù)信息表結(jié)構(gòu)賬戶(hù):圖3-9 賬戶(hù)信息表3.3.2 用戶(hù)權(quán)限簡(jiǎn)介 1)管理員在此系統(tǒng)中系統(tǒng)管理員具有車(chē)輛管理、目的站管理、用戶(hù)管理和運(yùn)輸管理的權(quán)力。他不需注冊(cè)。管理員管理一般用戶(hù)。2)一般用戶(hù)主要是指普通售票員,進(jìn)行售票和退票等。4 部分界面實(shí)現(xiàn)詳解4.1 登陸界面相關(guān)功能的實(shí)現(xiàn)登陸界面(圖4-1):圖4-1  用戶(hù)登錄界面登陸按鈕下的代碼: privat

18、e void button1_click(object sender, eventargs e) string sqlstmt = "select * from 賬戶(hù) where 工號(hào)='" + txtusername.text + "' and 密碼='" + txtpassword.text + "'" datatable dt = dc1.readtable(sqlstmt); if (dt.rows.count = 0) messagebox.show("密碼錯(cuò)誤!"); e

19、lse this.hide(); dataclass.myno = txtusername.text; if (dt.rows02.tostring().trim() = "1") form frmmain = new frmmain(); frmmain.showdialog(); else form 售票窗口 = new 售票窗口(); 售票窗口.showdialog(); 4.2 售票主窗體相關(guān)功能的實(shí)現(xiàn)售票員的主界面(圖4-2):圖4-2 售票員的主界面自動(dòng)加載主窗體時(shí)窗體最大化的代碼: public 售票窗口() initializecomponent(); th

20、is.windowstate = system.windows.forms.formwindowstate.maximized; 點(diǎn)擊售票界面菜單時(shí)會(huì)觸動(dòng)showform(售票界面)方法: private void 售票界面toolstripmenuitem_click(object sender, eventargs e) form 售票界面 = new 售票界面(); showform(售票界面); showform()方法代碼: private void showform(form frmtoshow) foreach (form frmchild in this.mdichildren

21、) if (frmchild.gettype() = frmtoshow.gettype() frmtoshow.dispose(); frmchild.activate(); return; frmtoshow.mdiparent = this; frmtoshow.show(); frmtoshow.windowstate = system.windows.forms.formwindowstate.maximized; 4.3 售票界面相關(guān)功能的實(shí)現(xiàn)售票界面(圖4-3):圖4-3 售票界面查詢(xún)按鈕下的代碼: private void btnquery_click(object sende

22、r, eventargs e) string strsql = "select c.流水號(hào),y.目的城市,y.目的站名,y.車(chē)輛編號(hào),y.發(fā)車(chē)日期,y.發(fā)車(chē)時(shí)間,y.車(chē)次,y.參考全程時(shí)間,y.價(jià)格,c.座位號(hào) from 車(chē)票 c inner join 運(yùn)輸 y on c.運(yùn)輸編號(hào)=y.運(yùn)輸編號(hào) where c.售出標(biāo)志 <> 'y' " if (checkbox1.checked) strsql = strsql + "and y.發(fā)車(chē)日期='" + datetimepicker1.text.tostring().t

23、rim() + "' " if (combocity .text .tostring ().trim ()!="") strsql = strsql + "and y.目的城市='" + combocity.text.tostring().trim() + "' " if (combostop.text.tostring().trim() != "") strsql = strsql + "and y.目的站名='" + combostop.t

24、ext.tostring().trim() + "' " datatable dt = new datatable(); dt = dc1.readtable(strsql); datagridview1.datasource = dt; 售出按鈕下的代碼: private void btnsale_click(object sender, eventargs e) if (datagridview1.rowcount <= 1) messagebox.show("數(shù)據(jù)表為空,不可以賣(mài)票!"); return; string ticketi

25、d = datagridview10, datagridview1.currentcell.rowindex.value.tostring(); dc1.execsql("update 車(chē)票 set 售出標(biāo)志='y', 售票員工號(hào)='"+dataclass .myno +"'where 流水號(hào)='"+ticketid +"'"); /打印信息: /string ticketid = datagridview10, datagridview1.currentcell.rowindex.va

26、lue.tostring(); string city = datagridview11, datagridview1.currentcell.rowindex.value.tostring(); string stop = datagridview12, datagridview1.currentcell.rowindex.value.tostring(); /string busid = datagridview13, datagridview1.currentcell.rowindex.value.tostring(); string date = datagridview14, dat

27、agridview1.currentcell.rowindex.value.tostring(); string time = datagridview15, datagridview1.currentcell.rowindex.value.tostring(); string chechi = datagridview16, datagridview1.currentcell.rowindex.value.tostring(); /string alltime = datagridview17, datagridview1.currentcell.rowindex.value.tostrin

28、g(); string price = datagridview18, datagridview1.currentcell.rowindex.value.tostring(); string zuowei = datagridview19, datagridview1.currentcell.rowindex.value.tostring(); /售票員工號(hào)dataclass .myno string comeouttime = datetime.now.tostring("yyyymmdd hhmmss"); streamwriter sw = file.createte

29、xt("d:" + ticketid +"_"+ comeouttime + ".txt"); sw.writeline("流水號(hào):"+ticketid+""); sw.writeline("出售時(shí)間:" + comeouttime + ""); sw.writeline("目的城市:" + city + ""); sw.writeline("目的站別:" + stop + ""

30、;); sw.writeline("發(fā)車(chē)日期:" + date + ""); sw.writeline("發(fā)車(chē)時(shí)間:" + time + ""); sw.writeline("車(chē)次:" + chechi + ""); sw.writeline("價(jià)格:" + price + ""); sw.writeline("座位號(hào):" + zuowei + ""); sw.writeline("售票

31、員工號(hào):" + dataclass.myno + ""); sw.writeline("+"); sw.writeline("歡迎您的乘坐本次班車(chē)"); sw.close(); messagebox.show("車(chē)票信息請(qǐng)見(jiàn)d盤(pán)"); combocity.text = "" combostop.text = "" /datetimepicker1.text = datetime.now.tostring("yyyymmdd"); checkbox

32、1.checked = true; this.btnquery_click(this, e); 打開(kāi)d盤(pán)可見(jiàn)2_20110409 104711.txt的文件,其內(nèi)容如圖4-4:圖4-4 2_20110409 104711.txt 文件的內(nèi)容4.4 退票界面相關(guān)功能的實(shí)現(xiàn)退票界面(圖4-5):圖4-5 退票界面scan 器scan車(chē)票的流水號(hào)的時(shí)候觸動(dòng)事件代碼:private void textbox1_keypress(object sender, keypresseventargs e) if (e.keychar >= 47 && e.keychar <= 58

33、 | e.keychar = 8 | e.keychar = 13)/ascii=8退格鍵 e.handled = false; else e.handled = true; if (e.keychar = 13) string sqlstmt = "select * from 車(chē)票 where 流水號(hào)='" + textbox1.text.tostring().trim() + "' " datatable dt = dc1.readtable(sqlstmt); if (dt.rows.count != 0) dc1.execsql(

34、"update 車(chē)票 set 售出標(biāo)志='n', 售票員工號(hào)='' where 流水號(hào)='" + textbox1.text.tostring().trim() + "'"); messagebox.show("退票成功!流水號(hào):" + textbox1.text.tostring().trim() + ""); else messagebox.show("系統(tǒng)中不存在此票!無(wú)法退票!"); 4.5 售票員修改密碼界面相關(guān)功能的實(shí)現(xiàn)修改密碼的界面(

35、圖4-6):圖4-6 修改密碼的界面更新密碼按鈕下的代碼: private void button1_click(object sender, eventargs e) /獲得密碼 string sqlstmt = "select 密碼 from 賬戶(hù) where 工號(hào)='" + dataclass.myno + "' " datatable dt = dc1.readtable(sqlstmt); string mima = dt.rows00.tostring().trim(); if (textbox1.text.tostring(

36、).trim() = mima) if (textbox2.text.tostring().trim() != "" && textbox2.text.tostring().trim() = textbox3.text.tostring().trim() dc1.execsql("update 賬戶(hù) set 密碼='" + textbox2.text.tostring().trim() + "' where 工號(hào)='" + dataclass.myno + "'");

37、 messagebox.show("更新密碼成功!"); else messagebox.show("兩次輸入新密碼不一致"); else messagebox.show("原始密碼有誤!"); 4.6 運(yùn)輸管理主界面相關(guān)功能的實(shí)現(xiàn)此界面中有導(dǎo)入售票系統(tǒng)按鈕,該按鈕被管理員點(diǎn)擊之后售票員才能售此運(yùn)輸號(hào)下的票。運(yùn)輸管理界面(圖4-7):圖4-7 運(yùn)輸管理界面導(dǎo)入售票系統(tǒng)按鈕下的代碼: private void input_click(object sender, eventargs e) if (datagridview1.rowcou

38、nt <= 1) messagebox.show("數(shù)據(jù)表為空,不能導(dǎo)入。"); return; string id = datagridview10, datagridview1.currentcell.rowindex.value.tostring(); string sqlstmt = "select * from 車(chē)票 where 運(yùn)輸編號(hào)='" + id + "' " datatable dt = new datatable(); dt = dc1.readtable(sqlstmt); if (dt.

39、rows.count != 0) messagebox.show("已經(jīng)導(dǎo)入售票系統(tǒng)"); return; /獲取座位數(shù)目 /第一步:獲取車(chē)輛編號(hào) string bus_id = datagridview13, datagridview1.currentcell.rowindex.value.tostring(); /第二步:根據(jù)bus_id獲取座位號(hào) sqlstmt = "select 座位數(shù) from 車(chē)輛 where 車(chē)輛編號(hào)='" + bus_id + "' " dt = dc1.readtable(sqlst

40、mt); string zuowei_string=dt.rows 00.tostring ().trim (); int zunwei_int =convert.toint32(zuowei_string); string sql = "" for (int i = 1; i <= zunwei_int; i+) sql = "insert into 車(chē)票(運(yùn)輸編號(hào),座位號(hào),售出標(biāo)志) values ('"+id +"','"+i.tostring ()+"','n')

41、" dc1.execsql(sql); sql = "update 運(yùn)輸 set 是否已經(jīng)導(dǎo)入售票系統(tǒng)='y' where 運(yùn)輸編號(hào)='"+id+"'" dc1.execsql(sql); messagebox.show("成功導(dǎo)入售票系統(tǒng)!"); combocity.text = "" combostop.text = "" combobusid.text = "" combogoofftime.text = ""

42、; this.chaxun_click(this, e); 4.7 運(yùn)輸管理中增加運(yùn)輸界面相關(guān)功能的實(shí)現(xiàn)添加按鈕下的代碼: private void insert_click(object sender, eventargs e) if (combocity.text.tostring().trim() = "" | combostop.text.tostring().trim() = "" | combobusid.text.tostring().trim() = "" | outtime.text.tostring().trim(

43、) = "" | price.text.tostring().trim() = "") messagebox.show("信息不全,拒絕插入!"); else string sqlstmt = "select count(*) from 運(yùn)輸 where 目的城市='"+combocity .text .tostring ().trim ()+"' and 目的站名='"+combostop .text .tostring ().trim ()+"' a

44、nd 車(chē)輛編號(hào)='"+combobusid .text .tostring ().trim ()+"' and 發(fā)車(chē)日期='"+datetimepicker1 .text .tostring ().trim ()+"' and 發(fā)車(chē)時(shí)間='"+outtime .text .tostring ().trim ()+"'" datatable dt = dc1.readtable(sqlstmt); if (dt.rows00.tostring ().trim () = "

45、;1") messagebox.show("系統(tǒng)中已經(jīng)存在!"); else dc1.execsql("insert into 運(yùn)輸 (目的城市 ,目的站名,車(chē)輛編號(hào),發(fā)車(chē)日期,發(fā)車(chē)時(shí)間,車(chē)次,參考全程時(shí)間,價(jià)格) values('" + combocity .text .tostring ().trim () + "','" + combostop.text.tostring().trim() + "','" + combobusid.text.tostring(

46、).trim() + "','" + datetimepicker1 .text.tostring().trim() + "','" + outtime.text.tostring().trim() + "','" + chechi.text.tostring().trim() + "','" + alltime.text.tostring().trim() + "','" + price.text.tostring

47、().trim() + "')"); label10.text = "添加成功!" 4.8 運(yùn)輸管理中編輯運(yùn)輸界面相關(guān)功能的實(shí)現(xiàn)更新按鈕下的代碼: private void btnupdate_click(object sender, eventargs e) if (txtprice.text.tostring().trim() != "") dc1.execsql("update 運(yùn)輸 set 車(chē)次='" + txtchechi.text.tostring().trim() + "&#

48、39;,參考全程時(shí)間='" + txtalltime.text.tostring().trim() + "',價(jià)格='"+txtprice .text .tostring ().trim ()+"' where 運(yùn)輸編號(hào)='"+lblyunshu.text + "'"); label5.text = "修改成功!" else messagebox.show("價(jià)格不能為空的!"); 4.9 數(shù)據(jù)訪問(wèn)類(lèi)dataclass 所在的文件data

49、class.csusing system;using system.collections.generic;using system.linq;using system.text;using system.data;using system.data.sqlclient;namespace 汽運(yùn)售票系統(tǒng) class dataclass #region 全局變量 public static string myno = "" /定義全局變量,記錄當(dāng)前誰(shuí)在使用該系統(tǒng) public static string user_name = "" /定義全局變量,記錄當(dāng)前修改的學(xué)生編號(hào) public static string city = "" /定義全局變量 public static string stop = "" /定義全局變量 public static string bus_id = "" public static string transportid = "" #endregion string strconn; public dataclass() strconn = system.c

溫馨提示

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

評(píng)論

0/150

提交評(píng)論