長(zhǎng)途汽車信息管理系統(tǒng) 課程設(shè)計(jì)報(bào)告
《長(zhǎng)途汽車信息管理系統(tǒng) 課程設(shè)計(jì)報(bào)告》由會(huì)員分享,可在線閱讀,更多相關(guān)《長(zhǎng)途汽車信息管理系統(tǒng) 課程設(shè)計(jì)報(bào)告(50頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
. 學(xué)號(hào) 2014-2015學(xué)年 第一學(xué)期 120 《數(shù)據(jù)庫(kù)系統(tǒng)概論》 課程設(shè)計(jì)報(bào)告 題目: 長(zhǎng)途汽車信息管理系統(tǒng) 專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí): 班 姓名: 指導(dǎo)教師: 成績(jī): 計(jì)算機(jī)與信息工程系 2014年 10月 12 日 目錄 1設(shè)計(jì)內(nèi)容及要求 1 1.1設(shè)計(jì)內(nèi)容 1 1.2設(shè)計(jì)任務(wù)及具體要求 1 2原理及分析 2 2.1需求分析 2 2.2系統(tǒng)功能簡(jiǎn)介 2 2.3程序框圖 3 3設(shè)計(jì)過程和程序代碼 5 3.1數(shù)據(jù)庫(kù)表格的設(shè)計(jì)概述 5 3.2數(shù)據(jù)庫(kù)表格的實(shí)現(xiàn)過程 6 3.3程序的構(gòu)造方法及其實(shí)現(xiàn) 15 3.4 數(shù)據(jù)庫(kù)與Java程序的鏈接 24 4設(shè)計(jì)結(jié)果與分析 25 4.1設(shè)計(jì)結(jié)果截圖 25 4.2 設(shè)計(jì)結(jié)果分析 28 5小結(jié) 29 參考文獻(xiàn) 30 致謝 31 附錄:源程序 32 . . 1設(shè)計(jì)內(nèi)容及要求 1.1設(shè)計(jì)內(nèi)容 本次課程設(shè)計(jì)名稱為長(zhǎng)途汽車信息管理系統(tǒng),用戶登錄后主要實(shí)現(xiàn)對(duì)線路信息,汽車信息,售票信息,乘客信息進(jìn)行基本操作的功能。該系統(tǒng)功能主要包括以下幾個(gè)模塊: (1)充分利用所學(xué)過的數(shù)據(jù)庫(kù)的相關(guān)知識(shí)建立長(zhǎng)途汽車信息管理系統(tǒng)所需的數(shù)據(jù)庫(kù)。 (2)對(duì)線路信息(包括出發(fā)地、目的地、出發(fā)時(shí)間、所需時(shí)間等)汽車信息(最大載客量、汽車類型、剩余座位等)售票信息(包括售票情況、票價(jià))乘客信息(包括姓名、年齡、性別等)的查詢、添加和刪除操作。 (3)進(jìn)行詳細(xì)的功能設(shè)計(jì)后,在Java中利用JDBC連接數(shù)據(jù)庫(kù)技術(shù)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行操作,并能進(jìn)行多表之間的鏈接與查詢操作。 1.2設(shè)計(jì)任務(wù)及具體要求 (1)設(shè)計(jì)任務(wù): 長(zhǎng)途汽車信息管理系統(tǒng)運(yùn)用在汽車站部門的系統(tǒng)工具,方便此系統(tǒng)部門的工作人員的工作,該系統(tǒng)主要根據(jù)此部門的特點(diǎn)建立的,是記錄和查詢汽車站信息的的依據(jù)。隨著市場(chǎng)經(jīng)濟(jì)的不斷飛速發(fā)展,交通道路環(huán)境的不斷改善,人們的出行次數(shù)不斷增多,人口流動(dòng)頻繁,數(shù)量不斷加大,車站信息量迅猛增長(zhǎng),長(zhǎng)途汽車站信息管理系統(tǒng)在人們的日常生活中發(fā)揮著越來越重要的作用。本系統(tǒng)實(shí)現(xiàn)了汽車線路信息,汽車信息,票務(wù)信息的查詢和管理,以滿足人們的需求。 (2)具體要求: 車站管理員可以在線路信息管理、汽車信息管理等模塊對(duì)車站線路信息、票價(jià)信息、乘客信息等進(jìn)行管理。管理員首先建立相應(yīng)模塊的信息數(shù)據(jù)庫(kù),輸入原始的線路、汽車、車票、乘客信息,當(dāng)有新數(shù)據(jù)需要添加或者需要對(duì)已有的信息進(jìn)行修改,刪除的時(shí)候,管理員就可以進(jìn)行相應(yīng)的操作。管理員也可以通過本模塊查詢到所有需要查詢的線路、汽車、車票、乘客的詳細(xì)信息。 2原理及分析 2.1需求分析 長(zhǎng)途汽車信息管理數(shù)據(jù)庫(kù)系統(tǒng)是面向所有汽車的數(shù)據(jù)管理系統(tǒng),其目的是使乘車有序化,規(guī)范化,簡(jiǎn)單化,易于車站人員的管理,查詢。本系統(tǒng)主要包括以下幾個(gè)模塊:乘客信息、汽車信息、線路以及車票的信息這四個(gè)功能模塊基本實(shí)現(xiàn)設(shè)計(jì)本系統(tǒng)的目的,從而可以進(jìn)一步滿足車站對(duì)乘客乘車管理的要求。長(zhǎng)途汽車信息管理系統(tǒng)運(yùn)用在汽車站和火車站等車站部門的系統(tǒng)工具,方便此系統(tǒng)部門的工作人員的工作,該系統(tǒng)主要根據(jù)此部門的特點(diǎn)建立的,是記錄和查詢汽車站信息的的依據(jù)。早期的長(zhǎng)途汽車站信息主要是人工記錄和人工管理的,不僅不容易記錄,而且還不容易保存。隨著計(jì)算機(jī)的不斷普及和軟件系統(tǒng)的不斷發(fā)展加上信息系統(tǒng)開發(fā)的迫切需求,計(jì)算機(jī)長(zhǎng)途汽車站信息管理系統(tǒng)應(yīng)運(yùn)而生了。 隨著市場(chǎng)經(jīng)濟(jì)的不斷飛速發(fā)展,交通道路環(huán)境的不斷改善,人們的出行次數(shù)不斷增多,人口流動(dòng)頻繁,數(shù)量不斷加大,車站信息量迅猛增長(zhǎng),長(zhǎng)途汽車站信息管理系統(tǒng)在人們的日常生活中發(fā)揮著越來越重要的作用。本系統(tǒng)實(shí)現(xiàn)了汽車線路信息,汽車信息,票價(jià)信息的查詢和管理,滿足人們的需求。 2.2系統(tǒng)功能簡(jiǎn)介 在Java中利用ODBC訪問技術(shù)操作數(shù)據(jù)庫(kù),建立到數(shù)據(jù)庫(kù)中的映射類,在對(duì)話框類中通過引用映射類完成對(duì)數(shù)據(jù)庫(kù)的操作。 程序分為登陸界面,選擇界面,線路信息界面,汽車信息界面,車票信息這幾個(gè)主體界面。使用時(shí)應(yīng)先知道管理員帳號(hào)和密碼,登陸進(jìn)入系統(tǒng)主菜單界面,里面包括線路信息,汽車信息,車票信息,退出程序菜單選項(xiàng)。所需時(shí)間等,可以對(duì)它們進(jìn)行添加,查詢,刪除,其中線路信息界面包括包括出發(fā)地、目的地、出發(fā)時(shí)間、修改,返回主菜單的操作;汽車信息和車票信息的界面與其類似。 需要特別說明的是,當(dāng)對(duì)數(shù)據(jù)進(jìn)行操作時(shí),在查詢框內(nèi)輸入提示數(shù)據(jù)內(nèi)容,對(duì)話框的表中和提示欄中都會(huì)出現(xiàn)所查詢的數(shù)據(jù),我們可以在提示欄中對(duì)數(shù)據(jù)進(jìn)行刪除和修改操作。 2.3程序框圖 (1)數(shù)據(jù)庫(kù)E—R圖 線路信息圖: 線路信息 出發(fā)地 出發(fā)時(shí)間 行駛總的總時(shí)間 目的地 圖1-1 線路信息圖 汽車信息圖: 汽車信息 最大的載客量 汽車的類型 剩余座位 班次編號(hào) 圖1-2 汽車信息圖 車票信息圖: 車票信息 售票情況 車票查詢 打印相應(yīng)的車票 圖1-3 車票信息圖 乘客信息圖: 乘客信息 姓名 年齡 民族 性別 圖1-4 乘客信息圖 (2)長(zhǎng)途汽車信息管理系統(tǒng)功能模塊圖 圖1-5 系統(tǒng)功能模塊圖 3設(shè)計(jì)過程和程序代碼 3.1數(shù)據(jù)庫(kù)表格的設(shè)計(jì)概述 1實(shí)體類型結(jié)構(gòu) 汽車線路(出發(fā)地,目的地,出發(fā)時(shí)間,行駛的總時(shí)間) 汽車(汽車類型,班次,最大載客數(shù),剩余座位) 車票(已買票數(shù),剩余票數(shù),票價(jià)) 乘客(姓名,年齡,性別,民族) 2聯(lián)系類型結(jié)構(gòu) 乘坐(汽車班次,類型) 供應(yīng)(數(shù)量) 行駛(線路) 3邏輯設(shè)計(jì)階段 根據(jù)ER模型轉(zhuǎn)換成關(guān)系模型的規(guī)則,可把上述ER圖轉(zhuǎn)換成5個(gè)關(guān)系模式,從而實(shí)現(xiàn)對(duì)乘客驗(yàn)證ER模型向關(guān)系數(shù)據(jù)模型的轉(zhuǎn)換,具體如下: 汽車線路(出發(fā)地,目的地,出發(fā)時(shí)間,行駛的總時(shí)間) 汽車(汽車類型,汽車班次,最大載客數(shù),剩余座位數(shù)) 車票(已買票數(shù),剩余票數(shù),票價(jià)) 乘客(姓名,年齡,性別,民族) 乘坐(所需時(shí)間,汽車班次,票價(jià),乘客姓名) 冗余問題檢查: 在各關(guān)系模式中,可得出每個(gè)關(guān)系的屬性值都是不可分的,因此各關(guān)系模式都是規(guī)范化關(guān)系;又可從以上各關(guān)系模式中可得每個(gè)屬性都不傳遞依賴于各關(guān)系模式的候選鍵,且轉(zhuǎn)換后各個(gè)屬性值的數(shù)據(jù)并沒有丟失,數(shù)據(jù)共享率高,所以在ER模型向關(guān)系模式轉(zhuǎn)化時(shí)不存在冗余問題。 3.2數(shù)據(jù)庫(kù)表格的實(shí)現(xiàn)過程 1. 創(chuàng)建汽車線路表 用Microsoft SQL 2000 Server數(shù)據(jù)庫(kù)系統(tǒng)的Transact-SQL語句定義創(chuàng)建這個(gè)表,程序如下: create table Busline ( Source char(20) , Destination char(20) , Start char(15), Alltime smallint primary key, ); 將代碼寫入SQL查詢分析器的SQL編輯窗體中,并運(yùn)行可得創(chuàng)建的Busline表及其屬性如圖1-6: 圖1-6 Busline表格屬性 往表中加數(shù)據(jù)語句如下: insert into Busline values(淮南,合肥,8:00,50); insert into Busline values(淮南,蚌埠,8:30,59); insert into Busline values(淮南,阜陽,7:30,60); insert into Busline values(淮南,宿州,8:10,65); insert into Busline values(淮南,蕪湖,7:00,70); insert into Busline values(淮南,安慶,9:00,71); insert into Busline values(淮南,桐城,9:50,78); insert into Busline values(淮南,亳州,8:50,80); insert into Busline values(淮南,黃山,9:00,100); 由以上可得一個(gè)表名為”Busline”的數(shù)據(jù)表就建成了如圖1-7: 2. 創(chuàng)建汽車表 用Microsoft SQL 2000 Server數(shù)據(jù)庫(kù)系統(tǒng)的Transact-SQL語句定義創(chuàng)建這個(gè)表,程序如下: create table Bus ( Type char(20), Maxpassenger smallint, Turn char (20) primary key, Remainder smallint, ); 將代碼寫入SQL查詢分析器的SQL編輯窗體中,并運(yùn)行可得數(shù)據(jù)空表如圖1-8所示: 創(chuàng)建的Bus表及其屬性如下: 往表中加數(shù)據(jù)語句如下: insert into Bus values(大,50,0001,20) insert into Bus values(大,50,0002,30) insert into Bus values(大,45,0003,15) insert into Bus values(中,35,0004,21) insert into Bus values(中,35,0005,16) insert into Bus values(小,25,0006,5) insert into Bus values(小,25,0007,7) insert into Bus values(小,25,0008,11) 由以上可得一個(gè)表名為”Bus”的數(shù)據(jù)表就建成了如圖1-9: 3. 創(chuàng)建車票表 用Microsoft SQL 2000 Server數(shù)據(jù)庫(kù)系統(tǒng)的Transact-SQL語句定義創(chuàng)建這個(gè)表,程序如下: create table Ticket ( Sold smallint, Remainder smallint, Price smallint primary key, ); 將代碼寫入SQL查詢分析器的SQL編輯窗體中,并運(yùn)行可得數(shù)據(jù)空表如圖2所示: 創(chuàng)建的Ticket表及其屬性如下圖1-10: 往表中加數(shù)據(jù)語句如下: insert into Ticket values(22,3,15) insert into Ticket values(19,6,16) insert into Ticket values(20,5,18) insert into Ticket values(30,15,26) insert into Ticket values(20,30,27) insert into Ticket values(28,6,15) insert into Ticket values(26,4,17) 繼續(xù)添加數(shù)據(jù) 由以上可得一個(gè)表名為”Ticket”的數(shù)據(jù)表就建成了如圖1-11: 4. 創(chuàng)建乘客表 用Microsoft SQL 2000 Server數(shù)據(jù)庫(kù)系統(tǒng)的Transact-SQL語句定義創(chuàng)建這個(gè)表,程序如下: create table Passenger ( Pname char(10) primary key, Psex char(2), Pracial char(5), Psage smallint, ); 將代碼寫入SQL查詢分析器的SQL編輯窗體中,并運(yùn)行可得數(shù)據(jù)空表如圖2所示: 創(chuàng)建的Passenger表及其屬性如下圖1-12: 往表中加數(shù)據(jù)語句如下: insert into Passenger values(高健,男,漢,23) insert into Passenger values(王小明,男,漢,21) insert into Passenger values(安妮,女,漢,19) insert into Passenger values(張凱,男,漢,21) insert into Passenger values(王睿,女,漢,21) insert into Passenger values(姚潔,女,漢,20) insert into Passenger values(劉佳,女,漢,28) insert into Passenger values(楊楓,男,漢,33) insert into Passenger values(李勇,男,漢,29) insert into Passenger values(王妮,女,漢,25) insert into Passenger values(張?jiān)?男,漢,37) insert into Passenger values(李露,女,漢,23) 由以上可得一個(gè)表名為”Passenger”的數(shù)據(jù)表就建成了如圖1-13: 5.創(chuàng)建Bbtp表 用Microsoft SQL 2000 Server數(shù)據(jù)庫(kù)系統(tǒng)的Transact-SQL語句定義創(chuàng)建這個(gè)表,程序如下: create table Bbtp ( Alltime smallint, Turn char (20), Price smallint, Pname char(10) primary key, foreign key (Alltime) references Busline(Alltime), foreign key (Price) references Ticket(Price), foreign key (Turn) references Bus(Turn), ); 將代碼寫入SQL查詢分析器的SQL編輯窗體中,并運(yùn)行可得數(shù)據(jù)空表如圖2所示: 創(chuàng)建的Bbtp表及其屬性如下圖1-14: 往表中加數(shù)據(jù)語句如下: insert into Bbtp values(60,0004,15,高健) insert into Bbtp values(50,0005,16,王小明) insert into Bbtp values(70,0001,18,安妮) insert into Bbtp values(71,0007,15,張凱) insert into Bbtp values(78,0003,15,王睿) insert into Bbtp values(60,0006,16,姚潔) insert into Bbtp values(650,0002,16,劉佳) insert into Bbtp values(70,0004,18,楊楓) insert into Bbtp values(80,0001,18,李勇) insert into Bbtp values(65,0005,18,王妮) insert into Bbtp values(100,0004,18,張?jiān)? insert into Bbtp values(70,0001,16,李露) 由以上可得一個(gè)表名為”Bbtp”的數(shù)據(jù)表就建成了如圖1-15: 3.3程序的構(gòu)造方法及其實(shí)現(xiàn) 因?yàn)殚L(zhǎng)途汽車信息管理系統(tǒng)可以實(shí)現(xiàn)對(duì)不同信息的不同操作,程序中分別構(gòu)造各個(gè)功能模塊供信息操作使用,詳細(xì)設(shè)計(jì)及主要代碼如下: (1)登陸界面代碼 在此模式下通過輸入管理員名及密碼,以獲取權(quán)限,進(jìn)入各項(xiàng)操作的界面。 package changtu; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; import java.io.*; public class denglu extends JFrame implements ActionListener { static JLabel jl=new JLabel("歡迎登陸汽車管理系統(tǒng)"); static JLabel jl2=new JLabel(); static JLabel jl3=new JLabel("姓名"); static JLabel jl4=new JLabel("密碼"); static JButton jb1=new JButton("確定"); static JButton jb2=new JButton("返回"); static JTextField jt1=new JTextField(); static JTextField jt2=new JTextField(); static Opration op=new Opration(); Statement st; public void Dl(Statement sta) { 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)主操作界面 在此模式下,可以實(shí)現(xiàn)查詢,插入,刪除,及總查詢等諸多功能。 package changtu; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Opration extends JFrame implements ActionListener { static JLabel jl=new JLabel("請(qǐng)選擇一種操作:");//定義標(biāo)簽 static JRadioButton jc1=new JRadioButton("查詢操作");//單選按鈕 static JRadioButton jc2=new JRadioButton("插入操作"); static JRadioButton jc3=new JRadioButton("刪除操作"); static JRadioButton jc4=new JRadioButton("修改操作"); static JButton jb1=new JButton("確定");//按鈕 static JButton jb2=new JButton("返回"); static ButtonGroup bg=new ButtonGroup(); public static int flag; static Check ch=new Check(); public void xuanze() { 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)汽車查詢代碼 在此模式下輸入汽車的某一項(xiàng)信息,可以獲得汽車編號(hào)、汽車種類、載客量等信息,如輸入汽車編號(hào)01,便可以顯示01車的其他信息。 package changtu; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; import java.io.*; public class Qchepiao extends JFrame implements ActionListener { Statement st=null; JTextArea ja=new JTextArea("編號(hào) 售票 剩余 已售\n"); JTextField jt=new JTextField(); JRadioButton jc1=new JRadioButton("查詢?nèi)?); JRadioButton jc2=new JRadioButton("部分查詢"); ButtonGroup bg=new ButtonGroup(); JButton jb1=new JButton("查詢"); JButton jb2=new JButton("返回"); JButton jb3=new JButton("退出"); static Opration op=new Opration(); public void Qcp(Statement sta) { 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)汽車插入、修改等代碼 在此模式下,我們可以輕松的實(shí)現(xiàn)對(duì)汽車的信息的修改,以及在增加班車后,實(shí)現(xiàn)插入該車的信息。 package changtu; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class Ichepiao extends JFrame implements ActionListener { Statement st=null; JLabel jl1=new JLabel("編號(hào)"); JLabel jl2=new JLabel("售票"); JLabel jl3=new JLabel("剩余"); JLabel jl4=new JLabel("已售"); JLabel jl5=new JLabel(); JTextField jt1=new JTextField(); JTextField jt2=new JTextField(); JTextField jt3=new JTextField(); JTextField jt4=new JTextField(); JButton jb1=new JButton("插入"); JButton jb2=new JButton("返回"); JButton jb3=new JButton("修改"); static Opration op=new Opration(); public void Icp(Statement sta) { 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) 車票刪除代碼 在此模式下,我們可以刪除指定的無用的汽車信息,以便汽車信息的更新。 package changtu; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class Dchepiao extends JFrame implements ActionListener { Statement st=null; JTextField jt1=new JTextField(); JLabel jl1=new JLabel("刪除的信息"); JLabel jl2=new JLabel(); JButton jb1=new JButton("刪除"); JButton jb2=new JButton("返回"); static Opration op=new Opration(); public void Dcp(Statement sta) { 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); } public void actionPerformed(ActionEvent e) { JButton jb=(JButton)e.getSource(); ResultSet rs=null; if(jb==jb1) { try { String st1="delete from chepiao where bianhao="+jt1.getText()+"or shoupiao="+jt1.getText()+"or shengyu="+jt1.getText()+"or yishou="+jt1.getText()+""; st.executeUpdate(st1); jl2.setText("刪除車票信息成功") ; jl2.setForeground(Color.red); } catch(Exception e1){ System.out.println(e); }} if(jb==jb2) { dispose();//釋放內(nèi)存 op.xuanze();//調(diào)用Opration中xuanze方法 } } } 3.4 數(shù)據(jù)庫(kù)與Java程序的鏈接 圖1-16 數(shù)據(jù)庫(kù)鏈接 4設(shè)計(jì)結(jié)果與分析 4.1設(shè)計(jì)結(jié)果截圖 (1)長(zhǎng)途汽車信息管理系統(tǒng)登錄界面 編譯程序,會(huì)出現(xiàn)如圖5-1的登陸界面,管理員通過輸入管理員姓名和密碼,可以登錄汽車管理系統(tǒng)。 圖1-17 登陸界面 (2)選擇操作界面 管理員通過此操作界面可以選擇要實(shí)現(xiàn)的操作。 圖1-18 操作界面 (3)選擇表界面 通過單擊查詢操作進(jìn)入這個(gè)界面,來選擇要查詢的信息。 圖1-19選擇表界面 (4)查詢界面 圖1-20 查詢界面 (5) 部分查詢界面 圖1-21部分查詢界面 (6)修改、插入界面 管理員可以通過該界面來實(shí)現(xiàn)插入,修改該系統(tǒng)的信息,如圖5-6為插入汽車信息界面。 圖1-22 修改、插入界面 (7)刪除界面 管理員可以通過該界面,刪除無用的信息。 圖1-23刪除界面 4.2 設(shè)計(jì)結(jié)果分析 (1)了解長(zhǎng)途車站信息系統(tǒng)分析:如需求分析和開發(fā)工具選擇,功能分配。思考要實(shí)現(xiàn)整個(gè)程序大體需要的幾個(gè)模塊和其中用到的Java基本操作符、語句等。 (2)畫設(shè)計(jì)方案流程圖并具體化:用流程圖的形式展現(xiàn)基本編程思想。將流圖中的大模塊的具體實(shí)現(xiàn)思考清楚,并想好實(shí)現(xiàn)的代碼。 (3)編輯程序代碼:這是一個(gè)至關(guān)重要復(fù)雜而且需要反復(fù)修改的環(huán)節(jié),在此環(huán)節(jié)中將發(fā)現(xiàn)總體設(shè)計(jì)和模塊思想會(huì)存在很多問題,需不斷改進(jìn).如何實(shí)現(xiàn)各函數(shù)功能,達(dá)到預(yù)期效果也將是一項(xiàng)繁復(fù)的工作。 (4)代碼的調(diào)試:在Java環(huán)境下輸入代碼并進(jìn)行調(diào)試和正確運(yùn)行。在調(diào)試過程中會(huì)遇到很多需要精化的地方,需要十足的耐心與細(xì)心,不斷改進(jìn)完善程序。 (5)最后修飾:程序可以正確運(yùn)行之后,在不影響程序功能的情況下,運(yùn)用各種輔助性符號(hào),使界面更加美觀漂亮,操作更人性化,增強(qiáng)程序的新意與可行性?!? 5小結(jié) 這學(xué)期期中學(xué)校就特安排我們進(jìn)行為期二周的數(shù)據(jù)庫(kù)的課程設(shè)計(jì)制作,并安排了指導(dǎo)老師幫助輔導(dǎo),讓我們?cè)谝?guī)范化、嚴(yán)謹(jǐn)化、實(shí)用化上面有了很大進(jìn)展。在此次長(zhǎng)途汽車信息管理系統(tǒng)的開發(fā)過程中,遇到了許多的問題比如:數(shù)據(jù)庫(kù)連接錯(cuò)誤,代碼、對(duì)象方法名錯(cuò)誤等,但經(jīng)過認(rèn)真思考并在老師和同學(xué)的幫助下順利完成了本次設(shè)計(jì),本次課程設(shè)計(jì)有很多東西值得我思考并總結(jié)。通過本次課程設(shè)計(jì),使我在制作過程中更加熟練的掌握數(shù)據(jù)庫(kù)語言的構(gòu)造方法及技巧,并且使我更加熟悉的掌握了Java語言的運(yùn)用,幫助我復(fù)習(xí)鞏固了Java語言及其功能,提高了我的動(dòng)手能力和思維能力。并且從中學(xué)會(huì)了將數(shù)據(jù)庫(kù)導(dǎo)入到程序系統(tǒng)中的方法,積攢了許多解決實(shí)際問題的寶貴經(jīng)驗(yàn).長(zhǎng)途汽車信息管理系統(tǒng)主要的實(shí)現(xiàn)了對(duì)線路信息、汽車信息、車票信息的查詢刪除和添加功能,用戶在登陸界面后可以對(duì)其信息進(jìn)行簡(jiǎn)單的操作,快速高效的完成人們乘車出行信息的記錄,方便了人們的日常生活,這也是我本次課程設(shè)計(jì)制作的主要目的。最后,在這里鄭重的感謝指導(dǎo)老師的幫助,讓我得到了許多精彩的收獲,也感謝學(xué)校提供給我們這次寶貴的實(shí)踐機(jī)會(huì),讓我們可以在實(shí)踐中充分鍛煉邏輯思維、動(dòng)手制作、查漏補(bǔ)缺的能力,理論與實(shí)踐相結(jié)合,以此來提高自己的編程能力和對(duì)課本知識(shí)的理解, 大大提高了對(duì)學(xué)術(shù)研究的態(tài)度及個(gè)人素質(zhì)的培養(yǎng)。 參考文獻(xiàn) [1] 丁寶康. 數(shù)據(jù)庫(kù)實(shí)用教程習(xí)題解答[M]. 清華大學(xué)出版社. 2004年 [2] 鄭玲利. 數(shù)據(jù)原理與應(yīng)用案例教程[M]. 清華大學(xué)出版社. 2008年 [3] 龍帥. 深入淺出SQL Server 數(shù)據(jù)庫(kù)開發(fā)[M]. 中國(guó)青年出版社. 2006年04月 [4] 劉大瑋. SQL Server 數(shù)據(jù)庫(kù)項(xiàng)目案例導(dǎo)航[M]. 清華大學(xué)出版社. 2005年 [5] 丁寶康. 數(shù)據(jù)庫(kù)實(shí)用教程[M]. 清華大學(xué)出版社. 2002年09月 [6] 萬常選 廖國(guó)瓊. 數(shù)據(jù)庫(kù)系統(tǒng)原理與設(shè)計(jì). 清華大學(xué)出版社. 2009年 [7] 王珊 薩師煊. 數(shù)據(jù)庫(kù)系統(tǒng)概論. 高等教育出版社. 2006年07月 [8] 黃曉東. Java課程設(shè)計(jì)案例精編. 中國(guó)水利水電出版社. 2007年01月 [9] 孫一林 彭波. Java 網(wǎng)絡(luò)編程實(shí)例[M]. 清華大學(xué)出版社. 2003年 [10] 李宗偉. Java語言描述[M]. 第2版. 機(jī)械工業(yè)出版社. 2009年01月 [11] 張銀鶴. Java開發(fā)典型實(shí)例[M]. 電子工業(yè)出版社. 2009年01月 [12] 張峋 楊三成. Java應(yīng)用詳解[M]. 中國(guó)鐵道出版社. 2010年11月 [13] 袁然 鄭自國(guó). java 案例開發(fā)集錦[M]. 電子工業(yè)出版社. 2005年 [14] 耿祥義. Java 基礎(chǔ)教程[M]. 清華大學(xué)出版社. 2004年10月 [15] 王珊 薩師煊. 數(shù)據(jù)庫(kù)系統(tǒng)概論. 高等教育出版社. 2011年03月 致謝 經(jīng)過這一學(xué)期的系統(tǒng)學(xué)習(xí),我們對(duì)數(shù)據(jù)庫(kù)有了一定的了解,并且學(xué)會(huì)了一些常用的操作方法以及熟練應(yīng)用SQL語言。在這次的課程設(shè)計(jì)中,我們都有很大的收益但同時(shí)也遇到了很多的困難,不過最后我們還是完成了任務(wù)。這當(dāng)中與老師的耐心指導(dǎo)是分不開的。由于我們本身知識(shí)的有限性,在遇到困難時(shí),我們不得不上網(wǎng)搜索相關(guān)知識(shí)點(diǎn),解決我們的困難。老師的講解與建議,也給了我們不少的幫助。我們課程設(shè)計(jì)的完成,主要?dú)w功于老師的耐心指導(dǎo)與講解,感謝一直給予我?guī)椭椭С值睦蠋?,也感謝本院系給我這次程序設(shè)計(jì)的機(jī)會(huì),讓我在本次課程設(shè)計(jì)中得到了最大的收獲,今后我會(huì)繼續(xù)學(xué)習(xí),爭(zhēng)取做到最好。 附錄1: 源程序 package changtu; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; import java.io.*; public class denglu extends JFrame implements ActionListener { static JLabel jl=new JLabel("歡迎登陸汽車管理系統(tǒng)"); static JLabel jl2=new JLabel(); static JLabel jl3=new JLabel("姓名"); static JLabel jl4=new JLabel("密碼"); static JButton jb1=new JButton("確定"); static JButton jb2=new JButton("返回"); static JTextField jt1=new JTextField(); static JTextField jt2=new JTextField(); static Opration op=new Opration(); Statement st; public void Dl(Statement sta) { 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); } public static void main(String args[]) { try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(Exception e){ System.out.println("連接失敗!"); return; } try { Connection con=DriverManager.getConnection("jdbc:odbc:changtu", "sa", ""); Statement stmt=con.createStatement(); new denglu().Dl(stmt); } catch(Exception e){ System.out.println(e); } } public void actionPerformed(ActionEvent e) { Object s=e.getSource(); ResultSet rs; if(s.equals(jb1)) { try{ rs=st.executeQuery("select xingmin,mima from manager"); while(rs.next()) { String a=rs.getString("xingmin"); String b=rs.getString("mima"); if(a.equals(jt1.getText())&&b.equals(jt2.getText())) { dispose(); op.opration(); } } jl2.setText("姓名或密碼錯(cuò)誤!"); jl2.setForeground(Color.red); } catch(Exception e1){ System.out.println(e); } } if(s.equals(jb2)) { System.exit(0); } } } (2)主操作界面 在此模式下,可以實(shí)現(xiàn)查詢,插入,刪除,及總查詢等諸多功能。 package changtu; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Opration extends JFrame implements ActionListener { static JLabel jl=new JLabel("請(qǐng)選擇一種操作:");//定義標(biāo)簽 static JRadioButton jc1=new JRadioButton("查詢操作");//單選按鈕 static JRadioButton jc2=new JRadioButton("插入操作"); static JRadioButton jc3=new JRadioButton("刪除操作"); static JRadioButton jc4=new JRadioButton("修改操作"); static JButton jb1=new JButton("確定");//按鈕 static JButton jb2=new JButton("返回"); static ButtonGroup bg=new ButtonGroup(); public static int flag; static Check ch=new Check(); public void xuanze() { 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); } public int getState(){ return flag; } public static void opration() { new Opration().xuanze(); } public void actionPerformed(Ac- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
25 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 長(zhǎng)途汽車信息管理系統(tǒng) 課程設(shè)計(jì)報(bào)告 長(zhǎng)途汽車 信息管理 系統(tǒng) 課程設(shè)計(jì) 報(bào)告
鏈接地址:http://m.appdesigncorp.com/p-12940220.html