長途汽車信息管理系統(tǒng)課程設(shè)計報告_第1頁
長途汽車信息管理系統(tǒng)課程設(shè)計報告_第2頁
長途汽車信息管理系統(tǒng)課程設(shè)計報告_第3頁
長途汽車信息管理系統(tǒng)課程設(shè)計報告_第4頁
長途汽車信息管理系統(tǒng)課程設(shè)計報告_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

40/42學(xué)號20142014-2015學(xué)年第一學(xué)期《數(shù)據(jù)庫系統(tǒng)概論》課程設(shè)計報告題目:長途汽車信息管理系統(tǒng)專業(yè):計算機科學(xué)與技術(shù)班級:班姓名:指導(dǎo)教師:成績:計算機與信息工程系20XX10月12日目錄TOC\o"1-3"\h\u202181設(shè)計內(nèi)容及要求197781.1設(shè)計內(nèi)容159791.2設(shè)計任務(wù)及具體要求1308122原理及分析2115432.1需求分析2266542.2系統(tǒng)功能簡介2189632.3程序框圖3202343設(shè)計過程和程序代碼5214553.1數(shù)據(jù)庫表格的設(shè)計概述535723.2數(shù)據(jù)庫表格的實現(xiàn)過程6153273.3程序的構(gòu)造方法及其實現(xiàn)15153553.4數(shù)據(jù)庫與Java程序的鏈接243164設(shè)計結(jié)果與分析25305114.1設(shè)計結(jié)果截圖25166074.2設(shè)計結(jié)果分析28110445小結(jié)2930860參考文獻301308致謝3129889附錄:源程序321設(shè)計內(nèi)容及要求1.1設(shè)計內(nèi)容本次課程設(shè)計名稱為長途汽車信息管理系統(tǒng),用戶登錄后主要實現(xiàn)對線路信息,汽車信息,售票信息,乘客信息進行基本操作的功能。該系統(tǒng)功能主要包括以下幾個模塊:〔1充分利用所學(xué)過的數(shù)據(jù)庫的相關(guān)知識建立長途汽車信息管理系統(tǒng)所需的數(shù)據(jù)庫?!?對線路信息〔包括出發(fā)地、目的地、出發(fā)時間、所需時間等汽車信息〔最大載客量、汽車類型、剩余座位等售票信息〔包括售票情況、票價乘客信息〔包括姓名、年齡、性別等的查詢、添加和刪除操作?!?進行詳細的功能設(shè)計后,在Java中利用JDBC連接數(shù)據(jù)庫技術(shù)對數(shù)據(jù)庫中數(shù)據(jù)進行操作,并能進行多表之間的鏈接與查詢操作。1.2設(shè)計任務(wù)及具體要求〔1設(shè)計任務(wù):長途汽車信息管理系統(tǒng)運用在汽車站部門的系統(tǒng)工具,方便此系統(tǒng)部門的工作人員的工作,該系統(tǒng)主要根據(jù)此部門的特點建立的,是記錄和查詢汽車站信息的的依據(jù)。隨著市場經(jīng)濟的不斷飛速發(fā)展,交通道路環(huán)境的不斷改善,人們的出行次數(shù)不斷增多,人口流動頻繁,數(shù)量不斷加大,車站信息量迅猛增長,長途汽車站信息管理系統(tǒng)在人們的日常生活中發(fā)揮著越來越重要的作用。本系統(tǒng)實現(xiàn)了汽車線路信息,汽車信息,票務(wù)信息的查詢和管理,以滿足人們的需求。〔2具體要求:車站管理員可以在線路信息管理、汽車信息管理等模塊對車站線路信息、票價信息、乘客信息等進行管理。管理員首先建立相應(yīng)模塊的信息數(shù)據(jù)庫,輸入原始的線路、汽車、車票、乘客信息,當(dāng)有新數(shù)據(jù)需要添加或者需要對已有的信息進行修改,刪除的時候,管理員就可以進行相應(yīng)的操作。管理員也可以通過本模塊查詢到所有需要查詢的線路、汽車、車票、乘客的詳細信息。2原理及分析2.1需求分析長途汽車信息管理數(shù)據(jù)庫系統(tǒng)是面向所有汽車的數(shù)據(jù)管理系統(tǒng),其目的是使乘車有序化,規(guī)范化,簡單化,易于車站人員的管理,查詢。本系統(tǒng)主要包括以下幾個模塊:乘客信息、汽車信息、線路以及車票的信息這四個功能模塊基本實現(xiàn)設(shè)計本系統(tǒng)的目的,從而可以進一步滿足車站對乘客乘車管理的要求。長途汽車信息管理系統(tǒng)運用在汽車站和火車站等車站部門的系統(tǒng)工具,方便此系統(tǒng)部門的工作人員的工作,該系統(tǒng)主要根據(jù)此部門的特點建立的,是記錄和查詢汽車站信息的的依據(jù)。早期的長途汽車站信息主要是人工記錄和人工管理的,不僅不容易記錄,而且還不容易保存。隨著計算機的不斷普及和軟件系統(tǒng)的不斷發(fā)展加上信息系統(tǒng)開發(fā)的迫切需求,計算機長途汽車站信息管理系統(tǒng)應(yīng)運而生了。隨著市場經(jīng)濟的不斷飛速發(fā)展,交通道路環(huán)境的不斷改善,人們的出行次數(shù)不斷增多,人口流動頻繁,數(shù)量不斷加大,車站信息量迅猛增長,長途汽車站信息管理系統(tǒng)在人們的日常生活中發(fā)揮著越來越重要的作用。本系統(tǒng)實現(xiàn)了汽車線路信息,汽車信息,票價信息的查詢和管理,滿足人們的需求。2.2系統(tǒng)功能簡介在Java中利用ODBC訪問技術(shù)操作數(shù)據(jù)庫,建立到數(shù)據(jù)庫中的映射類,在對話框類中通過引用映射類完成對數(shù)據(jù)庫的操作。程序分為登陸界面,選擇界面,線路信息界面,汽車信息界面,車票信息這幾個主體界面。使用時應(yīng)先知道管理員帳號和密碼,登陸進入系統(tǒng)主菜單界面,里面包括線路信息,汽車信息,車票信息,退出程序菜單選項。所需時間等,可以對它們進行添加,查詢,刪除,其中線路信息界面包括包括出發(fā)地、目的地、出發(fā)時間、修改,返回主菜單的操作;汽車信息和車票信息的界面與其類似。需要特別說明的是,當(dāng)對數(shù)據(jù)進行操作時,在查詢框內(nèi)輸入提示數(shù)據(jù)內(nèi)容,對話框的表中和提示欄中都會出現(xiàn)所查詢的數(shù)據(jù),我們可以在提示欄中對數(shù)據(jù)進行刪除和修改操作。2.3程序框圖〔1數(shù)據(jù)庫E—R圖線路信息圖:線路信息線路信息出發(fā)地出發(fā)時間行駛總的總時間目的地圖1-1線路信息圖汽車信息圖:汽車信息汽車信息最大的載客量汽車的類型剩余座位班次編號圖1-2汽車信息圖車票信息圖:車票信息車票信息售票情況車票查詢打印相應(yīng)的車票圖1-3車票信息圖乘客信息圖:乘客信息乘客信息姓名年齡民族性別圖1-4乘客信息圖〔2長途汽車信息管理系統(tǒng)功能模塊圖圖1-5系統(tǒng)功能模塊圖3設(shè)計過程和程序代碼3.1數(shù)據(jù)庫表格的設(shè)計概述1實體類型結(jié)構(gòu)汽車線路〔出發(fā)地,目的地,出發(fā)時間,行駛的總時間汽車〔汽車類型,班次,最大載客數(shù),剩余座位車票〔已買票數(shù),剩余票數(shù),票價乘客〔姓名,年齡,性別,民族2聯(lián)系類型結(jié)構(gòu)乘坐〔汽車班次,類型供應(yīng)〔數(shù)量行駛〔線路3邏輯設(shè)計階段根據(jù)ER模型轉(zhuǎn)換成關(guān)系模型的規(guī)則,可把上述ER圖轉(zhuǎn)換成5個關(guān)系模式,從而實現(xiàn)對乘客驗證ER模型向關(guān)系數(shù)據(jù)模型的轉(zhuǎn)換,具體如下:汽車線路〔出發(fā)地,目的地,出發(fā)時間,行駛的總時間汽車〔汽車類型,汽車班次,最大載客數(shù),剩余座位數(shù)車票〔已買票數(shù),剩余票數(shù),票價乘客〔姓名,年齡,性別,民族乘坐〔所需時間,汽車班次,票價,乘客姓名冗余問題檢查:在各關(guān)系模式中,可得出每個關(guān)系的屬性值都是不可分的,因此各關(guān)系模式都是規(guī)范化關(guān)系;又可從以上各關(guān)系模式中可得每個屬性都不傳遞依賴于各關(guān)系模式的候選鍵,且轉(zhuǎn)換后各個屬性值的數(shù)據(jù)并沒有丟失,數(shù)據(jù)共享率高,所以在ER模型向關(guān)系模式轉(zhuǎn)化時不存在冗余問題。3.2數(shù)據(jù)庫表格的實現(xiàn)過程1.創(chuàng)建汽車線路表用MicrosoftSQL2000Server數(shù)據(jù)庫系統(tǒng)的Transact-SQL語句定義創(chuàng)建這個表,程序如下:createtableBusline<Sourcechar<20>,Destinationchar<20>,Startchar<15>,Alltimesmallintprimarykey,>;將代碼寫入SQL查詢分析器的SQL編輯窗體中,并運行可得創(chuàng)建的Busline表及其屬性如圖1-6:圖1-6Busline表格屬性往表中加數(shù)據(jù)語句如下:insertintoBuslinevalues<'XX','XX','8:00','50'>;insertintoBuslinevalues<'XX','XX','8:30','59'>;insertintoBuslinevalues<'XX','XX','7:30','60'>;insertintoBuslinevalues<'XX','XX','8:10','65'>;insertintoBuslinevalues<'XX','XX','7:00','70'>;insertintoBuslinevalues<'XX','XX','9:00','71'>;insertintoBuslinevalues<'XX','桐城','9:50','78'>;insertintoBuslinevalues<'XX','亳州','8:50','80'>;insertintoBuslinevalues<'XX','XX','9:00','100'>;由以上可得一個表名為"Busline"的數(shù)據(jù)表就建成了如圖1-7:2.創(chuàng)建汽車表用MicrosoftSQL2000Server數(shù)據(jù)庫系統(tǒng)的Transact-SQL語句定義創(chuàng)建這個表,程序如下:createtableBus<Typechar<20>,Maxpassengersmallint,Turnchar<20>primarykey,Remaindersmallint,>;將代碼寫入SQL查詢分析器的SQL編輯窗體中,并運行可得數(shù)據(jù)空表如圖1-8所示:創(chuàng)建的Bus表及其屬性如下:往表中加數(shù)據(jù)語句如下:insertintoBusvalues<'大','50','0001','20'>insertintoBusvalues<'大','50','0002','30'>insertintoBusvalues<'大','45','0003','15'>insertintoBusvalues<'中','35','0004','21'>insertintoBusvalues<'中','35','0005','16'>insertintoBusvalues<'小','25','0006','5'>insertintoBusvalues<'小','25','0007','7'>insertintoBusvalues<'小','25','0008','11'>由以上可得一個表名為"Bus"的數(shù)據(jù)表就建成了如圖1-9:3.創(chuàng)建車票表用MicrosoftSQL2000Server數(shù)據(jù)庫系統(tǒng)的Transact-SQL語句定義創(chuàng)建這個表,程序如下:createtableTicket<Soldsmallint,Remaindersmallint,Pricesmallintprimarykey,>;將代碼寫入SQL查詢分析器的SQL編輯窗體中,并運行可得數(shù)據(jù)空表如圖2所示:創(chuàng)建的Ticket表及其屬性如下圖1-10:往表中加數(shù)據(jù)語句如下:insertintoTicketvalues〔'22','3','15'insertintoTicketvalues〔'19','6','16'insertintoTicketvalues〔'20','5','18'insertintoTicketvalues〔'30','15','26'insertintoTicketvalues〔'20','30','27'insertintoTicketvalues〔'28','6','15'insertintoTicketvalues〔'26','4','17'繼續(xù)添加數(shù)據(jù)由以上可得一個表名為"Ticket"的數(shù)據(jù)表就建成了如圖1-11:4.創(chuàng)建乘客表用MicrosoftSQL2000Server數(shù)據(jù)庫系統(tǒng)的Transact-SQL語句定義創(chuàng)建這個表,程序如下:createtablePassenger<Pnamechar<10>primarykey,Psexchar<2>,Pracialchar<5>,Psagesmallint,>;將代碼寫入SQL查詢分析器的SQL編輯窗體中,并運行可得數(shù)據(jù)空表如圖2所示:創(chuàng)建的Passenger表及其屬性如下圖1-12:往表中加數(shù)據(jù)語句如下:insertintoPassengervalues<'高健','男','漢','23'>insertintoPassengervalues<'王小明','男','漢','21'>insertintoPassengervalues<'安妮','女','漢','19'>insertintoPassengervalues<'張凱','男','漢','21'>insertintoPassengervalues<'王睿','女','漢','21'>insertintoPassengervalues<'姚潔','女','漢','20'>insertintoPassengervalues<'劉佳','女','漢','28'>insertintoPassengervalues<'楊楓','男','漢','33'>insertintoPassengervalues<'李勇','男','漢','29'>insertintoPassengervalues<'王妮','女','漢','25'>insertintoPassengervalues<'張云','男','漢','37'>insertintoPassengervalues<'李露','女','漢','23'>由以上可得一個表名為"Passenger"的數(shù)據(jù)表就建成了如圖1-13:5.創(chuàng)建Bbtp表用MicrosoftSQL2000Server數(shù)據(jù)庫系統(tǒng)的Transact-SQL語句定義創(chuàng)建這個表,程序如下:createtableBbtp<Alltimesmallint,Turnchar<20>,Pricesmallint,Pnamechar<10>primarykey,foreignkey<Alltime>referencesBusline<Alltime>,foreignkey<Price>referencesTicket<Price>,foreignkey<Turn>referencesBus<Turn>,>;將代碼寫入SQL查詢分析器的SQL編輯窗體中,并運行可得數(shù)據(jù)空表如圖2所示:創(chuàng)建的Bbtp表及其屬性如下圖1-14:往表中加數(shù)據(jù)語句如下:insertintoBbtpvalues<'60','0004','15','高健'>insertintoBbtpvalues<'50','0005','16','王小明'>insertintoBbtpvalues<'70','0001','18','安妮'>insertintoBbtpvalues<'71','0007','15','張凱'>insertintoBbtpvalues<'78','0003','15','王睿'>insertintoBbtpvalues<'60','0006','16','姚潔'>insertintoBbtpvalues<'650','0002','16','劉佳'>insertintoBbtpvalues<'70','0004','18','楊楓'>insertintoBbtpvalues<'80','0001','18','李勇'>insertintoBbtpvalues<'65','0005','18','王妮'>insertintoBbtpvalues<'100','0004','18','張云'>insertintoBbtpvalues<'70','0001','16','李露'>由以上可得一個表名為"Bbtp"的數(shù)據(jù)表就建成了如圖1-15:3.3程序的構(gòu)造方法及其實現(xiàn)因為長途汽車信息管理系統(tǒng)可以實現(xiàn)對不同信息的不同操作,程序中分別構(gòu)造各個功能模塊供信息操作使用,詳細設(shè)計及主要代碼如下:〔1登陸界面代碼在此模式下通過輸入管理員名及密碼,以獲取權(quán)限,進入各項操作的界面。packagechangtu;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;importjava.io.*;publicclassdengluextendsJFrameimplementsActionListener{ staticJLabeljl=newJLabel<"歡迎登陸汽車管理系統(tǒng)">; staticJLabeljl2=newJLabel<>; staticJLabeljl3=newJLabel<"姓名">; staticJLabeljl4=newJLabel<"密碼">; staticJButtonjb1=newJButton<"確定">; staticJButtonjb2=newJButton<"返回">; staticJTextFieldjt1=newJTextField<>; staticJTextFieldjt2=newJTextField<>; staticOprationop=newOpration<>; Statementst; publicvoidDl<Statementsta> { this.st=sta; setSize<300,250>; setVisible<true>; setLayout<null>; jl.setBounds<80,20,200,20>; jl3.setBounds<60,60,50,20>; jl4.setBounds<60,100,50,20>; jl2.setBounds<100,140,200,20>; jb1.setBounds<80,180,60,30>; jb2.setBounds<160,180,60,30>; jt1.setBounds<100,60,100,20>; jt2.setBounds<100,100,100,20>; add<jl>; add<jl2>; add<jl3>; add<jl4>; add<jt1>; add<jt2>; add<jb1>; add<jb2>; jb1.addActionListener<this>; jb2.addActionListener<this>; } 〔2主操作界面在此模式下,可以實現(xiàn)查詢,插入,刪除,及總查詢等諸多功能。packagechangtu;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassOprationextendsJFrameimplementsActionListener{ staticJLabeljl=newJLabel<"請選擇一種操作:">;//定義標(biāo)簽 staticJRadioButtonjc1=newJRadioButton<"查詢操作">;//單選按鈕 staticJRadioButtonjc2=newJRadioButton<"插入操作">; staticJRadioButtonjc3=newJRadioButton<"刪除操作">; staticJRadioButtonjc4=newJRadioButton<"修改操作">; staticJButtonjb1=newJButton<"確定">;//按鈕 staticJButtonjb2=newJButton<"返回">; staticButtonGroupbg=newButtonGroup<>; publicstaticintflag; staticCheckch=newCheck<>; publicvoidxuanze<> { setTitle<"操作選擇">;//設(shè)置界面內(nèi)容 setSize<300,270>;//界面大小 setLayout<null>;//界面布局 jl.setBounds<70,10,150,20>;//設(shè)置位置大小 jc1.setBounds<60,50,150,20>; jc2.setBounds<60,90,150,20>; jc3.setBounds<60,130,150,20>; jc4.setBounds<60,170,150,20>; jb1.setBounds<80,210,60,20>; jb2.setBounds<160,210,60,20>; jc1.setSelected<true>;//設(shè)為選中 bg.add<jc1>; bg.add<jc2>; bg.add<jc3>; bg.add<jc4>; add<jl>; add<jc1>; add<jc2>; add<jc3>; add<jc4>; add<jb1>; add<jb2>; jc1.addActionListener<this>;//加入事件監(jiān)聽 jc2.addActionListener<this>; jc3.addActionListener<this>; jc4.addActionListener<this>; jb1.addActionListener<this>; jb2.addActionListener<this>; setVisible<true>; }〔3汽車查詢代碼在此模式下輸入汽車的某一項信息,可以獲得汽車編號、汽車種類、載客量等信息,如輸入汽車編號01,便可以顯示01車的其他信息。packagechangtu; importjava.awt.*; importjava.awt.event.*; importjavax.swing.*; importjava.sql.*; importjava.io.*; publicclassQchepiaoextendsJFrameimplementsActionListener { Statementst=null; JTextAreaja=newJTextArea<"編號售票剩余已售\n">; JTextFieldjt=newJTextField<>; JRadioButtonjc1=newJRadioButton<"查詢?nèi)?>; JRadioButtonjc2=newJRadioButton<"部分查詢">; ButtonGroupbg=newButtonGroup<>; JButtonjb1=newJButton<"查詢">; JButtonjb2=newJButton<"返回">; JButtonjb3=newJButton<"退出">; staticOprationop=newOpration<>; publicvoidQcp<Statementsta> { this.st=sta;//Statement語句傳輸 setSize<400,300>; setLayout<null>; setVisible<true>;//設(shè)置界面可見 jc1.setBounds<20,20,80,20>; jc2.setBounds<20,60,80,20>; jt.setBounds<20,100,80,30>; jb1.setBounds<30,150,60,30>; jb2.setBounds<120,220,60,30>; jb3.setBounds<230,220,60,30>; ja.setBounds<120,20,250,200>; bg.add<jc1>; bg.add<jc2>; add<jc1>; add<jc2>; add<jt>; add<jb1>; add<jb2>; add<jb3>; add<ja>; jc1.addActionListener<this>; jc2.addActionListener<this>; jb1.addActionListener<this>; jb2.addActionListener<this>; jb3.addActionListener<this>; }〔4汽車插入、修改等代碼在此模式下,我們可以輕松的實現(xiàn)對汽車的信息的修改,以及在增加班車后,實現(xiàn)插入該車的信息。packagechangtu;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;publicclassIchepiaoextendsJFrameimplementsActionListener{ Statementst=null; JLabeljl1=newJLabel<"編號">; JLabeljl2=newJLabel<"售票">; JLabeljl3=newJLabel<"剩余">; JLabeljl4=newJLabel<"已售">; JLabeljl5=newJLabel<>; JTextFieldjt1=newJTextField<>; JTextFieldjt2=newJTextField<>; JTextFieldjt3=newJTextField<>; JTextFieldjt4=newJTextField<>; JButtonjb1=newJButton<"插入">; JButtonjb2=newJButton<"返回">; JButtonjb3=newJButton<"修改">;staticOprationop=newOpration<>; publicvoidIcp<Statementsta> { this.st=sta; setLayout<null>; setSize<300,300>; setVisible<true>; jl1.setBounds<20,20,80,20>; jl2.setBounds<20,60,80,20>; jl3.setBounds<20,100,80,20>; jl4.setBounds<20,140,80,20>; jt1.setBounds<100,20,40,20>; jt2.setBounds<100,60,40,20>; jt3.setBounds<100,100,40,20>; jt4.setBounds<100,140,40,20>; jl5.setBounds<100,180,100,20>; jb1.setBounds<200,100,60,20>; jb2.setBounds<200,140,60,20>; jb3.setBounds<200,60,60,20>; add<jl1>; add<jl2>; add<jl3>; add<jl4>; add<jl5>; add<jt1>; add<jt2>; add<jt3>; add<jt4>; add<jb1>; add<jb2>; add<jb3>; jb1.addActionListener<this>; jb2.addActionListener<this>; jb3.addActionListener<this>; }〔5車票刪除代碼在此模式下,我們可以刪除指定的無用的汽車信息,以便汽車信息的更新。packagechangtu;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;publicclassDchepiaoextendsJFrameimplementsActionListener{ Statementst=null; JTextFieldjt1=newJTextField<>; JLabeljl1=newJLabel<"刪除的信息">; JLabeljl2=newJLabel<>; JButtonjb1=newJButton<"刪除">; JButtonjb2=newJButton<"返回">; staticOprationop=newOpration<>; publicvoidDcp<Statementsta> { this.st=sta; setSize<200,200>; setLayout<null>; setVisible<true>; jl1.setBounds<60,20,100,20>; jt1.setBounds<70,40,40,20>; jl2.setBounds<40,80,140,20>; jb1.setBounds<40,120,60,20>; jb2.setBounds<110,120,60,20>; add<jl1>; add<jl2>; add<jb1>; add<jb2>; add<jt1>; jb1.addActionListener<this>; jb2.addActionListener<this>; } publicvoidactionPerformed<ActionEvente> { JButtonjb=<JButton>e.getSource<>; ResultSetrs=null; if<jb==jb1> { try { Stringst1="deletefromchepiaowherebianhao='"+jt1.getText<>+"'orshoupiao='"+jt1.getText<>+"'orshengyu='"+jt1.getText<>+"'oryishou='"+jt1.getText<>+"'"; st.executeUpdate<st1>; jl2.setText<"刪除車票信息成功"> ; jl2.setForeground<Color.red>; } catch<Exceptione1>{ System.out.println<e>; }} if<jb==jb2> { dispose<>;//釋放內(nèi)存 op.xuanze<>;//調(diào)用Opration中xuanze方法 } } }3.4數(shù)據(jù)庫與Java程序的鏈接圖1-16數(shù)據(jù)庫鏈接4設(shè)計結(jié)果與分析4.1設(shè)計結(jié)果截圖〔1長途汽車信息管理系統(tǒng)登錄界面編譯程序,會出現(xiàn)如圖5-1的登陸界面,管理員通過輸入管理員姓名和密碼,可以登錄汽車管理系統(tǒng)。圖1-17登陸界面〔2選擇操作界面管理員通過此操作界面可以選擇要實現(xiàn)的操作。圖1-18操作界面〔3選擇表界面通過單擊查詢操作進入這個界面,來選擇要查詢的信息。圖1-19選擇表界面〔4查詢界面圖1-20查詢界面部分查詢界面圖1-21部分查詢界面〔6修改、插入界面管理員可以通過該界面來實現(xiàn)插入,修改該系統(tǒng)的信息,如圖5-6為插入汽車信息界面。圖1-22修改、插入界面〔7刪除界面管理員可以通過該界面,刪除無用的信息。圖1-23刪除界面4.2設(shè)計結(jié)果分析〔1了解長途車站信息系統(tǒng)分析:如需求分析和開發(fā)工具選擇,功能分配。思考要實現(xiàn)整個程序大體需要的幾個模塊和其中用到的Java基本操作符、語句等?!?畫設(shè)計方案流程圖并具體化:用流程圖的形式展現(xiàn)基本編程思想。將流圖中的大模塊的具體實現(xiàn)思考清楚,并想好實現(xiàn)的代碼?!?編輯程序代碼:這是一個至關(guān)重要復(fù)雜而且需要反復(fù)修改的環(huán)節(jié),在此環(huán)節(jié)中將發(fā)現(xiàn)總體設(shè)計和模塊思想會存在很多問題,需不斷改進.如何實現(xiàn)各函數(shù)功能,達到預(yù)期效果也將是一項繁復(fù)的工作?!?代碼的調(diào)試:在Java環(huán)境下輸入代碼并進行調(diào)試和正確運行。在調(diào)試過程中會遇到很多需要精化的地方,需要十足的耐心與細心,不斷改進完善程序?!?最后修飾:程序可以正確運行之后,在不影響程序功能的情況下,運用各種輔助性符號,使界面更加美觀漂亮,操作更人性化,增強程序的新意與可行性。5小結(jié)這學(xué)期期中學(xué)校就特安排我們進行為期二周的數(shù)據(jù)庫的課程設(shè)計制作,并安排了指導(dǎo)老師幫助輔導(dǎo),讓我們在規(guī)范化、嚴謹化、實用化上面有了很大進展。在此次長途汽車信息管理系統(tǒng)的開發(fā)過程中,遇到了許多的問題比如:數(shù)據(jù)庫連接錯誤,代碼、對象方法名錯誤等,但經(jīng)過認真思考并在老師和同學(xué)的幫助下順利完成了本次設(shè)計,本次課程設(shè)計有很多東西值得我思考并總結(jié)。通過本次課程設(shè)計,使我在制作過程中更加熟練的掌握數(shù)據(jù)庫語言的構(gòu)造方法及技巧,并且使我更加熟悉的掌握了Java語言的運用,幫助我復(fù)習(xí)鞏固了Java語言及其功能,提高了我的動手能力和思維能力。并且從中學(xué)會了將數(shù)據(jù)庫導(dǎo)入到程序系統(tǒng)中的方法,積攢了許多解決實際問題的寶貴經(jīng)驗.長途汽車信息管理系統(tǒng)主要的實現(xiàn)了對線路信息、汽車信息、車票信息的查詢刪除和添加功能,用戶在登陸界面后可以對其信息進行簡單的操作,快速高效的完成人們乘車出行信息的記錄,方便了人們的日常生活,這也是我本次課程設(shè)計制作的主要目的。最后,在這里鄭重的感謝指導(dǎo)老師的幫助,讓我得到了許多精彩的收獲,也感謝學(xué)校提供給我們這次寶貴的實踐機會,讓我們可以在實踐中充分鍛煉邏輯思維、動手制作、查漏補缺的能力,理論與實踐相結(jié)合,以此來提高自己的編程能力和對課本知識的理解,大大提高了對學(xué)術(shù)研究的態(tài)度及個人素質(zhì)的培養(yǎng)。參考文獻[1]丁寶康.數(shù)據(jù)庫實用教程習(xí)題解答[M].清華大學(xué)出版社.20XX[2]鄭玲利.數(shù)據(jù)原理與應(yīng)用案例教程[M].清華大學(xué)出版社.20XX[3]龍帥.深入淺出SQLServer數(shù)據(jù)庫開發(fā)[M].中國青年出版社.20XX04月[4]劉大瑋.SQLServer數(shù)據(jù)庫項目案例導(dǎo)航[M].清華大學(xué)出版社.20XX[5]丁寶康.數(shù)據(jù)庫實用教程[M].清華大學(xué)出版社.20XX09月[6]萬常選廖國瓊.數(shù)據(jù)庫系統(tǒng)原理與設(shè)計.清華大學(xué)出版社.20XX[7]王珊薩師煊.數(shù)據(jù)庫系統(tǒng)概論.高等教育出版社.20XX07月[8]黃曉東.Java課程設(shè)計案例精編.中國水利水電出版社.20XX01月[9]孫一林彭波.Java網(wǎng)絡(luò)編程實例[M].清華大學(xué)出版社.20XX[10]李宗偉.Java語言描述[M].第2版.機械工業(yè)出版社.20XX01月[11]張銀鶴.Java開發(fā)典型實例[M].電子工業(yè)出版社.20XX01月[12]張峋楊三成.Java應(yīng)用詳解[M].中國鐵道出版社.20XX11月[13]袁然鄭自國.java案例開發(fā)集錦[M].電子工業(yè)出版社.20XX[14]耿祥義.Java基礎(chǔ)教程[M].清華大學(xué)出版社.20XX10月[15]王珊薩師煊.數(shù)據(jù)庫系統(tǒng)概論.高等教育出版社.20XX03月致謝經(jīng)過這一學(xué)期的系統(tǒng)學(xué)習(xí),我們對數(shù)據(jù)庫有了一定的了解,并且學(xué)會了一些常用的操作方法以及熟練應(yīng)用SQL語言。在這次的課程設(shè)計中,我們都有很大的收益但同時也遇到了很多的困難,不過最后我們還是完成了任務(wù)。這當(dāng)中與老師的耐心指導(dǎo)是分不開的。由于我們本身知識的有限性,在遇到困難時,我們不得不上網(wǎng)搜索相關(guān)知識點,解決我們的困難。老師的講解與建議,也給了我們不少的幫助。我們課程設(shè)計的完成,主要歸功于老師的耐心指導(dǎo)與講解,感謝一直給予我?guī)椭椭С值睦蠋?也感謝本院系給我這次程序設(shè)計的機會,讓我在本次課程設(shè)計中得到了最大的收獲,今后我會繼續(xù)學(xué)習(xí),爭取做到最好。附錄1:源程序packagechangtu;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;importjava.io.*;publicclassdengluextendsJFrameimplementsActionListener{ staticJLabeljl=newJLabel<"歡迎登陸汽車管理系統(tǒng)">; staticJLabeljl2=newJLabel<>; staticJLabeljl3=newJLabel<"姓名">; staticJLabeljl4=newJLabel<"密碼">; staticJButtonjb1=newJButton<"確定">; staticJButtonjb2=newJButton<"返回">; staticJTextFieldjt1=newJTextField<>; staticJTextFieldjt2=newJTextField<>; staticOprationop=newOpration<>; Statementst; publicvoidDl<Statementsta> { this.st=sta; setSize<300,250>; setVisible<true>; setLayout<null>; jl.setBounds<80,20,200,20>; jl3.setBounds<60,60,50,20>; jl4.setBounds<60,100,50,20>; jl2.setBounds<100,140,200,20>; jb1.setBounds<80,180,60,30>; jb2.setBounds<160,180,60,30>; jt1.setBounds<100,60,100,20>; jt2.setBounds<100,100,100,20>; add<jl>; add<jl2>; add<jl3>; add<jl4>; add<jt1>; add<jt2>; add<jb1>; add<jb2>; jb1.addActionListener<this>; jb2.addActionListener<this>; } publicstaticvoidmain<Stringargs[]> { try{ Class.forName<"sun.jdbc.odbc.JdbcOdbcDriver">; } catch<Exceptione>{ System.out.println<"連接失敗!">; return; } try { Connectioncon=DriverManager.getConnection<"jdbc:odbc:changtu","sa","">; Statementstmt=con.createStatement<>; newdenglu<>.Dl<stmt>; } catch<Exceptione>{ intln<e>; } } publicvoidactionPerformed<ActionEvente> { Objects=e.getSource<>; ResultSetrs; if<s.equals<jb1>> { try{ rs=st.executeQuery<"selectxingmin,mimafrommanager">; while<rs.next<>> { Stringa=rs.getString<"xingmin">; Stringb=rs.getString<"mima">; if<a.equals<jt1.getText<>>&&b.equals<jt2.getText<>>> { dispose<>; op.opration<>; } } jl2.setText<"姓名或密碼錯誤!">; jl2.setForeground<Color.red>; } catch<Exceptione1>{ System.out.println<e>; } } if<s.equals<jb2>> { System.exit<0>; } } }〔2主操作界面在此模式下,可以實現(xiàn)查詢,插入,刪除,及總查詢等諸多功能。packagechangtu;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassOprationextendsJFrameimplementsActionListener{ staticJLabeljl=newJLabel<"請選擇一種操作:">;//定義標(biāo)簽 staticJRadioButtonjc1=newJRadioButton<"查詢操作">;//單選按鈕 staticJRadioButtonjc2=newJRadioButton<"插入操作">; staticJRadioButtonjc3=newJRadioButton<"刪除操作">; staticJRadioButtonjc4=newJRadioButton<"修改操作">; staticJButtonjb1=newJButton<"確定">;//按鈕 staticJButtonjb2=newJButton<"返回">; staticButtonGroupbg=newButtonGroup<>; publicstaticintflag; staticCheckch=newCheck<>; publicvoidxuanze<> { setTitle<"操作選擇">;//設(shè)置界面內(nèi)容 setSize<300,270>;//界面大小 setLayout<null>;//界面布局 jl.setBounds<70,10,150,20>;//設(shè)置位置大小 jc1.setBounds<60,50,150,20>; jc2.setBounds<60,90,150,20>; jc3.setBounds<60,130,150,20>; jc4.setBounds<60,170,150,20>; jb1.setBounds<80,210,60,20>; jb2.setBounds<160,210,60,20>; jc1.setSelected<true>;//設(shè)為選中 bg.add<jc1>; bg.add<jc2>; bg.add<jc3>; bg.add<jc4>; add<jl>; add<jc1>; add<jc2>; add<jc3>; add<jc4>; add<jb1>; add<jb2>; jc1.addActionListener<this>;//加入事件監(jiān)聽 jc2.addActionListener<this>; jc3.addActionListener<this>; jc4.addActionListener<this>; jb1.addActionListener<this>; jb2.addActionListener<this>; setVisible<true>; } publicintgetState<>{ returnflag; } publicstaticvoidopration<> { newOpration<>.xuanze<>; } publicvoidactionPerformed<ActionEvente> { Objects=e.getSource<>;//事件源 if<s.equals<jb1>> { if<jc1.isSelected<>>{ flag=1; setVisible<false>; ch.ch<>; } elseif<jc2.isSelected<>>{ flag=2; setVisible<false>; ch.ch<>; } elseif<jc3.isSelected<>>{ flag=3; setVisible<false>; ch.ch<>; } elseif<jc4.isSelected<>>{ flag=4; setVisible<false>; ch.ch<>; } } if<s.equals<jb2>> { System.exit<0>; } }}〔3汽車查詢代碼在此模式下輸入汽車的某一項信息,可以獲得汽車編號、汽車種類、載客量等信息,如輸入汽車編號01,便可以顯示01車的其他信息。packagechangtu; importjava.awt.*; importjava.awt.event.*; importjavax.swing.*; importjava.sql.*; importjava.io.*; publicclassQchepiaoextendsJFrameimplementsActionListener { Statementst=null; JTextAreaja=newJTextArea<"編號售票剩余已售\n">; JTextFieldjt=newJTextField<>; JRadioButtonjc1=newJRadioButton<"查詢?nèi)?>; JRadioButtonjc2=newJRadioButton<"部分查詢">; ButtonGroupbg=newButtonGroup<>; JButtonjb1=newJButton<"查詢">; JButtonjb2=newJButton<"返回">; JButtonjb3=newJButton<"退出">; staticOprationop=newOpration<>; publicvoidQcp<Statementsta> { this.st=sta;//Statement語句傳輸 setSize<400,300>; setLayout<null>; setVisible<true>;//設(shè)置界面可見 jc1.setBounds<20,20,80,20>; jc2.setBounds<20,60,80,20>; jt.setBounds<20,100,80,30>; jb1.setBounds<30,150,60,30>; jb2.setBounds<120,220,60,30>; jb3.setBounds<230,220,60,30>; ja.setBounds<120,20,250,200>; bg.add<jc1>; bg.add<jc2>; add<jc1>; add<jc2>; add<jt>; add<jb1>; add<jb2>; add<jb3>; add<ja>; jc1.addActionListener<this>; jc2.addActionListener<this>; jb1.addActionListener<this>; jb2.addActionListener<this>; jb3.addActionListener<this>; } publicvoidactionPerformed<ActionEvente> { Objects=e.getSource<>; ResultSetrs=null; Stringa1; if<s.equals<jb1>> { if<jc1.isSelected<>> { try{ rs=st.executeQuery<"selectbianhao,shoupiao,shengyu,yishoufromchepiao">; ja.setText<"">; ja.setText<"編號售票剩余已售\n">; while<rs.next<>>{ Stringa=rs.getString<"bianhao">; Stringb=rs.getString<"shoupiao">; Stringc=rs.getString<"shengyu">; Stringd=rs.getString<"yishou">; ja.append<a+""+b+""+c+""+d+"\n">; } } catch<Exceptione1>{ System.out.println<e>; } } if<jc2.isSelected<>> { try{ ja.setText<"">; ja.setText<"編號售票剩余已售\n">; rs=st.executeQuery<"selectbianhao,shoupiao,shengyu,yishoufromchepiaowherebianhao='"+jt.getText<>+"'orshoupiao='"+jt.getText<>+"'orshengyu='"+jt.getText<>+"'oryishou='"+jt.getText<>+"'">; while<rs.next<>>{ Stringa=rs.getString<"bianhao">; Stringb=rs.getString<"shoupiao">; Stringc=rs.getString<"shengyu">; Stringd=rs.getString<"yishou">; ja.append<a+""+b+""+c+""+d+"\n">; } } catch<Exceptione1>{ System.out.println<e>; } } } if<s.equals<jb2>> { dispose<>; op.xuanze<>; } if<s.equals<jb3>> { System.exit<0>; } } }〔4汽車插入、修改等代碼在此模式下,我們可以輕松的實現(xiàn)對汽車的信息的修改,以及在增加班車后,實現(xiàn)插入該車的信息。packagechangtu;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.sql.*;publicclassIchepiaoextendsJFrameimplementsActionListener{ Statementst=null; JLabeljl1=newJLabel<"編號">; JLabeljl2=newJLabel<"售票">; JLabeljl3=newJLabel<"剩余">; JLabeljl4=newJLabel<"已售">; JLabeljl5=newJLabel<>; JTextFieldjt1=newJTextField<>; JTextFieldjt2=newJTextField<>; JTextFieldjt3=newJTextField<>; JTextFieldjt4=newJTextField<>; JButtonjb1=newJButton<"插入">; JButtonjb2=newJButton<"返回">; JButtonjb3=newJButton<"修改">;staticOprationop=newOpration<>; publicvoidIcp<Statementsta> { this.st=sta; setLayout<null>; setSize<300,300>; setVisible<true>; jl1.setBounds<20,20,80,20>; jl2.setBounds<20,60,80,20>; jl3.setBounds<20,100,80,20>; jl4.setBounds<20,140,80,20>; jt1.setBounds<100,20,40,20>; jt2.setBounds<100,60,40,20>; jt3.setBounds<100,100,40,20>; jt4.setBounds<100,140,40,20>; jl5.setBounds<100,180,100,20>; jb1.setBounds<200,100,60,20>; jb2.setBounds<200,140,60,20>; jb3.setBounds<200,60,60,20>; add<jl1>; add<jl2>; add<jl3>; add<jl4>; add<jl5>; add<jt1>; add<jt2>; add<jt3>; add<jt4>; add<jb1>; add<jb2>; add<jb3>; jb1.addActionListener<this>; jb2.addActionListener<this>; jb3.addActionListener<this>; } publicvoidactionPerformed<ActionEvente> { Objects=e.getSource<>; if<s.equals<jb1>> { try { Str

溫馨提示

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

最新文檔

評論

0/150

提交評論