長(zhǎng)途汽車(chē)信息管理系統(tǒng) 課程設(shè)計(jì)報(bào)告
《長(zhǎng)途汽車(chē)信息管理系統(tǒng) 課程設(shè)計(jì)報(bào)告》由會(huì)員分享,可在線閱讀,更多相關(guān)《長(zhǎng)途汽車(chē)信息管理系統(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)途汽車(chē)信息管理系統(tǒng) 專(zhuān)業(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ì)過(guò)程和程序代碼 5 3.1數(shù)據(jù)庫(kù)表格的設(shè)計(jì)概述 5 3.2數(shù)據(jù)庫(kù)表格的實(shí)現(xiàn)過(guò)程 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ì)名稱(chēng)為長(zhǎng)途汽車(chē)信息管理系統(tǒng),用戶(hù)登錄后主要實(shí)現(xiàn)對(duì)線路信息,汽車(chē)信息,售票信息,乘客信息進(jìn)行基本操作的功能。該系統(tǒng)功能主要包括以下幾個(gè)模塊: (1)充分利用所學(xué)過(guò)的數(shù)據(jù)庫(kù)的相關(guān)知識(shí)建立長(zhǎng)途汽車(chē)信息管理系統(tǒng)所需的數(shù)據(jù)庫(kù)。 (2)對(duì)線路信息(包括出發(fā)地、目的地、出發(fā)時(shí)間、所需時(shí)間等)汽車(chē)信息(最大載客量、汽車(chē)類(lèi)型、剩余座位等)售票信息(包括售票情況、票價(jià))乘客信息(包括姓名、年齡、性別等)的查詢(xún)、添加和刪除操作。 (3)進(jìn)行詳細(xì)的功能設(shè)計(jì)后,在Java中利用JDBC連接數(shù)據(jù)庫(kù)技術(shù)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行操作,并能進(jìn)行多表之間的鏈接與查詢(xún)操作。 1.2設(shè)計(jì)任務(wù)及具體要求 (1)設(shè)計(jì)任務(wù): 長(zhǎng)途汽車(chē)信息管理系統(tǒng)運(yùn)用在汽車(chē)站部門(mén)的系統(tǒng)工具,方便此系統(tǒng)部門(mén)的工作人員的工作,該系統(tǒng)主要根據(jù)此部門(mén)的特點(diǎn)建立的,是記錄和查詢(xún)汽車(chē)站信息的的依據(jù)。隨著市場(chǎng)經(jīng)濟(jì)的不斷飛速發(fā)展,交通道路環(huán)境的不斷改善,人們的出行次數(shù)不斷增多,人口流動(dòng)頻繁,數(shù)量不斷加大,車(chē)站信息量迅猛增長(zhǎng),長(zhǎng)途汽車(chē)站信息管理系統(tǒng)在人們的日常生活中發(fā)揮著越來(lái)越重要的作用。本系統(tǒng)實(shí)現(xiàn)了汽車(chē)線路信息,汽車(chē)信息,票務(wù)信息的查詢(xún)和管理,以滿(mǎn)足人們的需求。 (2)具體要求: 車(chē)站管理員可以在線路信息管理、汽車(chē)信息管理等模塊對(duì)車(chē)站線路信息、票價(jià)信息、乘客信息等進(jìn)行管理。管理員首先建立相應(yīng)模塊的信息數(shù)據(jù)庫(kù),輸入原始的線路、汽車(chē)、車(chē)票、乘客信息,當(dāng)有新數(shù)據(jù)需要添加或者需要對(duì)已有的信息進(jìn)行修改,刪除的時(shí)候,管理員就可以進(jìn)行相應(yīng)的操作。管理員也可以通過(guò)本模塊查詢(xún)到所有需要查詢(xún)的線路、汽車(chē)、車(chē)票、乘客的詳細(xì)信息。 2原理及分析 2.1需求分析 長(zhǎng)途汽車(chē)信息管理數(shù)據(jù)庫(kù)系統(tǒng)是面向所有汽車(chē)的數(shù)據(jù)管理系統(tǒng),其目的是使乘車(chē)有序化,規(guī)范化,簡(jiǎn)單化,易于車(chē)站人員的管理,查詢(xún)。本系統(tǒng)主要包括以下幾個(gè)模塊:乘客信息、汽車(chē)信息、線路以及車(chē)票的信息這四個(gè)功能模塊基本實(shí)現(xiàn)設(shè)計(jì)本系統(tǒng)的目的,從而可以進(jìn)一步滿(mǎn)足車(chē)站對(duì)乘客乘車(chē)管理的要求。長(zhǎng)途汽車(chē)信息管理系統(tǒng)運(yùn)用在汽車(chē)站和火車(chē)站等車(chē)站部門(mén)的系統(tǒng)工具,方便此系統(tǒng)部門(mén)的工作人員的工作,該系統(tǒng)主要根據(jù)此部門(mén)的特點(diǎn)建立的,是記錄和查詢(xún)汽車(chē)站信息的的依據(jù)。早期的長(zhǎng)途汽車(chē)站信息主要是人工記錄和人工管理的,不僅不容易記錄,而且還不容易保存。隨著計(jì)算機(jī)的不斷普及和軟件系統(tǒng)的不斷發(fā)展加上信息系統(tǒng)開(kāi)發(fā)的迫切需求,計(jì)算機(jī)長(zhǎng)途汽車(chē)站信息管理系統(tǒng)應(yīng)運(yùn)而生了。 隨著市場(chǎng)經(jīng)濟(jì)的不斷飛速發(fā)展,交通道路環(huán)境的不斷改善,人們的出行次數(shù)不斷增多,人口流動(dòng)頻繁,數(shù)量不斷加大,車(chē)站信息量迅猛增長(zhǎng),長(zhǎng)途汽車(chē)站信息管理系統(tǒng)在人們的日常生活中發(fā)揮著越來(lái)越重要的作用。本系統(tǒng)實(shí)現(xiàn)了汽車(chē)線路信息,汽車(chē)信息,票價(jià)信息的查詢(xún)和管理,滿(mǎn)足人們的需求。 2.2系統(tǒng)功能簡(jiǎn)介 在Java中利用ODBC訪問(wèn)技術(shù)操作數(shù)據(jù)庫(kù),建立到數(shù)據(jù)庫(kù)中的映射類(lèi),在對(duì)話框類(lèi)中通過(guò)引用映射類(lèi)完成對(duì)數(shù)據(jù)庫(kù)的操作。 程序分為登陸界面,選擇界面,線路信息界面,汽車(chē)信息界面,車(chē)票信息這幾個(gè)主體界面。使用時(shí)應(yīng)先知道管理員帳號(hào)和密碼,登陸進(jìn)入系統(tǒng)主菜單界面,里面包括線路信息,汽車(chē)信息,車(chē)票信息,退出程序菜單選項(xiàng)。所需時(shí)間等,可以對(duì)它們進(jìn)行添加,查詢(xún),刪除,其中線路信息界面包括包括出發(fā)地、目的地、出發(fā)時(shí)間、修改,返回主菜單的操作;汽車(chē)信息和車(chē)票信息的界面與其類(lèi)似。 需要特別說(shuō)明的是,當(dāng)對(duì)數(shù)據(jù)進(jìn)行操作時(shí),在查詢(xún)框內(nèi)輸入提示數(shù)據(jù)內(nèi)容,對(duì)話框的表中和提示欄中都會(huì)出現(xiàn)所查詢(xún)的數(shù)據(jù),我們可以在提示欄中對(duì)數(shù)據(jù)進(jìn)行刪除和修改操作。 2.3程序框圖 (1)數(shù)據(jù)庫(kù)E—R圖 線路信息圖: 線路信息 出發(fā)地 出發(fā)時(shí)間 行駛總的總時(shí)間 目的地 圖1-1 線路信息圖 汽車(chē)信息圖: 汽車(chē)信息 最大的載客量 汽車(chē)的類(lèi)型 剩余座位 班次編號(hào) 圖1-2 汽車(chē)信息圖 車(chē)票信息圖: 車(chē)票信息 售票情況 車(chē)票查詢(xún) 打印相應(yīng)的車(chē)票 圖1-3 車(chē)票信息圖 乘客信息圖: 乘客信息 姓名 年齡 民族 性別 圖1-4 乘客信息圖 (2)長(zhǎng)途汽車(chē)信息管理系統(tǒng)功能模塊圖 圖1-5 系統(tǒng)功能模塊圖 3設(shè)計(jì)過(guò)程和程序代碼 3.1數(shù)據(jù)庫(kù)表格的設(shè)計(jì)概述 1實(shí)體類(lèi)型結(jié)構(gòu) 汽車(chē)線路(出發(fā)地,目的地,出發(fā)時(shí)間,行駛的總時(shí)間) 汽車(chē)(汽車(chē)類(lèi)型,班次,最大載客數(shù),剩余座位) 車(chē)票(已買(mǎi)票數(shù),剩余票數(shù),票價(jià)) 乘客(姓名,年齡,性別,民族) 2聯(lián)系類(lèi)型結(jié)構(gòu) 乘坐(汽車(chē)班次,類(lèi)型) 供應(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)換,具體如下: 汽車(chē)線路(出發(fā)地,目的地,出發(fā)時(shí)間,行駛的總時(shí)間) 汽車(chē)(汽車(chē)類(lèi)型,汽車(chē)班次,最大載客數(shù),剩余座位數(shù)) 車(chē)票(已買(mǎi)票數(shù),剩余票數(shù),票價(jià)) 乘客(姓名,年齡,性別,民族) 乘坐(所需時(shí)間,汽車(chē)班次,票價(jià),乘客姓名) 冗余問(wèn)題檢查: 在各關(guān)系模式中,可得出每個(gè)關(guān)系的屬性值都是不可分的,因此各關(guān)系模式都是規(guī)范化關(guān)系;又可從以上各關(guān)系模式中可得每個(gè)屬性都不傳遞依賴(lài)于各關(guān)系模式的候選鍵,且轉(zhuǎn)換后各個(gè)屬性值的數(shù)據(jù)并沒(méi)有丟失,數(shù)據(jù)共享率高,所以在ER模型向關(guān)系模式轉(zhuǎn)化時(shí)不存在冗余問(wèn)題。 3.2數(shù)據(jù)庫(kù)表格的實(shí)現(xiàn)過(guò)程 1. 創(chuàng)建汽車(chē)線路表 用Microsoft SQL 2000 Server數(shù)據(jù)庫(kù)系統(tǒng)的Transact-SQL語(yǔ)句定義創(chuàng)建這個(gè)表,程序如下: create table Busline ( Source char(20) , Destination char(20) , Start char(15), Alltime smallint primary key, ); 將代碼寫(xiě)入SQL查詢(xún)分析器的SQL編輯窗體中,并運(yùn)行可得創(chuàng)建的Busline表及其屬性如圖1-6: 圖1-6 Busline表格屬性 往表中加數(shù)據(jù)語(yǔ)句如下: insert into Busline values(淮南,合肥,8:00,50); insert into Busline values(淮南,蚌埠,8:30,59); insert into Busline values(淮南,阜陽(yáng),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)建汽車(chē)表 用Microsoft SQL 2000 Server數(shù)據(jù)庫(kù)系統(tǒng)的Transact-SQL語(yǔ)句定義創(chuàng)建這個(gè)表,程序如下: create table Bus ( Type char(20), Maxpassenger smallint, Turn char (20) primary key, Remainder smallint, ); 將代碼寫(xiě)入SQL查詢(xún)分析器的SQL編輯窗體中,并運(yùn)行可得數(shù)據(jù)空表如圖1-8所示: 創(chuàng)建的Bus表及其屬性如下: 往表中加數(shù)據(jù)語(yǔ)句如下: 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)建車(chē)票表 用Microsoft SQL 2000 Server數(shù)據(jù)庫(kù)系統(tǒng)的Transact-SQL語(yǔ)句定義創(chuàng)建這個(gè)表,程序如下: create table Ticket ( Sold smallint, Remainder smallint, Price smallint primary key, ); 將代碼寫(xiě)入SQL查詢(xún)分析器的SQL編輯窗體中,并運(yùn)行可得數(shù)據(jù)空表如圖2所示: 創(chuàng)建的Ticket表及其屬性如下圖1-10: 往表中加數(shù)據(jù)語(yǔ)句如下: 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語(yǔ)句定義創(chuàng)建這個(gè)表,程序如下: create table Passenger ( Pname char(10) primary key, Psex char(2), Pracial char(5), Psage smallint, ); 將代碼寫(xiě)入SQL查詢(xún)分析器的SQL編輯窗體中,并運(yùn)行可得數(shù)據(jù)空表如圖2所示: 創(chuàng)建的Passenger表及其屬性如下圖1-12: 往表中加數(shù)據(jù)語(yǔ)句如下: 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è)表名為”P(pán)assenger”的數(shù)據(jù)表就建成了如圖1-13: 5.創(chuàng)建Bbtp表 用Microsoft SQL 2000 Server數(shù)據(jù)庫(kù)系統(tǒng)的Transact-SQL語(yǔ)句定義創(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), ); 將代碼寫(xiě)入SQL查詢(xún)分析器的SQL編輯窗體中,并運(yùn)行可得數(shù)據(jù)空表如圖2所示: 創(chuàng)建的Bbtp表及其屬性如下圖1-14: 往表中加數(shù)據(jù)語(yǔ)句如下: 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)途汽車(chē)信息管理系統(tǒng)可以實(shí)現(xiàn)對(duì)不同信息的不同操作,程序中分別構(gòu)造各個(gè)功能模塊供信息操作使用,詳細(xì)設(shè)計(jì)及主要代碼如下: (1)登陸界面代碼 在此模式下通過(guò)輸入管理員名及密碼,以獲取權(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("歡迎登陸汽車(chē)管理系統(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)查詢(xún),插入,刪除,及總查詢(xú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("查詢(xún)操作");//單選按鈕 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)聽(tīng) jc2.addActionListener(this); jc3.addActionListener(this); jc4.addActionListener(this); jb1.addActionListener(this); jb2.addActionListener(this); setVisible(true); } (3)汽車(chē)查詢(xún)代碼 在此模式下輸入汽車(chē)的某一項(xiàng)信息,可以獲得汽車(chē)編號(hào)、汽車(chē)種類(lèi)、載客量等信息,如輸入汽車(chē)編號(hào)01,便可以顯示01車(chē)的其他信息。 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("查詢(xún)?nèi)?); JRadioButton jc2=new JRadioButton("部分查詢(xún)"); ButtonGroup bg=new ButtonGroup(); JButton jb1=new JButton("查詢(xún)"); JButton jb2=new JButton("返回"); JButton jb3=new JButton("退出"); static Opration op=new Opration(); public void Qcp(Statement sta) { this.st=sta;//Statement語(yǔ)句傳輸 setSize(400,300); setLayout(null); setVisible(true);//設(shè)置界面可見(jiàn) 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)汽車(chē)插入、修改等代碼 在此模式下,我們可以輕松的實(shí)現(xiàn)對(duì)汽車(chē)的信息的修改,以及在增加班車(chē)后,實(shí)現(xiàn)插入該車(chē)的信息。 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) 車(chē)票刪除代碼 在此模式下,我們可以刪除指定的無(wú)用的汽車(chē)信息,以便汽車(chē)信息的更新。 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("刪除車(chē)票信息成功") ; 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)途汽車(chē)信息管理系統(tǒng)登錄界面 編譯程序,會(huì)出現(xiàn)如圖5-1的登陸界面,管理員通過(guò)輸入管理員姓名和密碼,可以登錄汽車(chē)管理系統(tǒng)。 圖1-17 登陸界面 (2)選擇操作界面 管理員通過(guò)此操作界面可以選擇要實(shí)現(xiàn)的操作。 圖1-18 操作界面 (3)選擇表界面 通過(guò)單擊查詢(xún)操作進(jìn)入這個(gè)界面,來(lái)選擇要查詢(xún)的信息。 圖1-19選擇表界面 (4)查詢(xún)界面 圖1-20 查詢(xún)界面 (5) 部分查詢(xún)界面 圖1-21部分查詢(xún)界面 (6)修改、插入界面 管理員可以通過(guò)該界面來(lái)實(shí)現(xiàn)插入,修改該系統(tǒng)的信息,如圖5-6為插入汽車(chē)信息界面。 圖1-22 修改、插入界面 (7)刪除界面 管理員可以通過(guò)該界面,刪除無(wú)用的信息。 圖1-23刪除界面 4.2 設(shè)計(jì)結(jié)果分析 (1)了解長(zhǎng)途車(chē)站信息系統(tǒng)分析:如需求分析和開(kāi)發(fā)工具選擇,功能分配。思考要實(shí)現(xiàn)整個(gè)程序大體需要的幾個(gè)模塊和其中用到的Java基本操作符、語(yǔ)句等。 (2)畫(huà)設(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ì)存在很多問(wèn)題,需不斷改進(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)試過(guò)程中會(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)途汽車(chē)信息管理系統(tǒng)的開(kāi)發(fā)過(guò)程中,遇到了許多的問(wèn)題比如:數(shù)據(jù)庫(kù)連接錯(cuò)誤,代碼、對(duì)象方法名錯(cuò)誤等,但經(jīng)過(guò)認(rèn)真思考并在老師和同學(xué)的幫助下順利完成了本次設(shè)計(jì),本次課程設(shè)計(jì)有很多東西值得我思考并總結(jié)。通過(guò)本次課程設(shè)計(jì),使我在制作過(guò)程中更加熟練的掌握數(shù)據(jù)庫(kù)語(yǔ)言的構(gòu)造方法及技巧,并且使我更加熟悉的掌握了Java語(yǔ)言的運(yùn)用,幫助我復(fù)習(xí)鞏固了Java語(yǔ)言及其功能,提高了我的動(dòng)手能力和思維能力。并且從中學(xué)會(huì)了將數(shù)據(jù)庫(kù)導(dǎo)入到程序系統(tǒng)中的方法,積攢了許多解決實(shí)際問(wèn)題的寶貴經(jīng)驗(yàn).長(zhǎng)途汽車(chē)信息管理系統(tǒng)主要的實(shí)現(xiàn)了對(duì)線路信息、汽車(chē)信息、車(chē)票信息的查詢(xún)刪除和添加功能,用戶(hù)在登陸界面后可以對(duì)其信息進(jìn)行簡(jiǎn)單的操作,快速高效的完成人們乘車(chē)出行信息的記錄,方便了人們的日常生活,這也是我本次課程設(shè)計(jì)制作的主要目的。最后,在這里鄭重的感謝指導(dǎo)老師的幫助,讓我得到了許多精彩的收獲,也感謝學(xué)校提供給我們這次寶貴的實(shí)踐機(jī)會(huì),讓我們可以在實(shí)踐中充分鍛煉邏輯思維、動(dòng)手制作、查漏補(bǔ)缺的能力,理論與實(shí)踐相結(jié)合,以此來(lái)提高自己的編程能力和對(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ù)開(kāi)發(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] 萬(wàn)常選 廖國(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語(yǔ)言描述[M]. 第2版. 機(jī)械工業(yè)出版社. 2009年01月 [11] 張銀鶴. Java開(kāi)發(fā)典型實(shí)例[M]. 電子工業(yè)出版社. 2009年01月 [12] 張峋 楊三成. Java應(yīng)用詳解[M]. 中國(guó)鐵道出版社. 2010年11月 [13] 袁然 鄭自國(guó). java 案例開(kāi)發(fā)集錦[M]. 電子工業(yè)出版社. 2005年 [14] 耿祥義. Java 基礎(chǔ)教程[M]. 清華大學(xué)出版社. 2004年10月 [15] 王珊 薩師煊. 數(shù)據(jù)庫(kù)系統(tǒng)概論. 高等教育出版社. 2011年03月 致謝 經(jīng)過(guò)這一學(xué)期的系統(tǒng)學(xué)習(xí),我們對(duì)數(shù)據(jù)庫(kù)有了一定的了解,并且學(xué)會(huì)了一些常用的操作方法以及熟練應(yīng)用SQL語(yǔ)言。在這次的課程設(shè)計(jì)中,我們都有很大的收益但同時(shí)也遇到了很多的困難,不過(guò)最后我們還是完成了任務(wù)。這當(dāng)中與老師的耐心指導(dǎo)是分不開(kāi)的。由于我們本身知識(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("歡迎登陸汽車(chē)管理系統(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)查詢(xún),插入,刪除,及總查詢(xú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("查詢(xún)操作");//單選按鈕 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)聽(tīng) 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)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 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)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 長(zhǎng)途汽車(chē)信息管理系統(tǒng) 課程設(shè)計(jì)報(bào)告 長(zhǎng)途汽車(chē) 信息管理 系統(tǒng) 課程設(shè)計(jì) 報(bào)告
鏈接地址:http://kudomayuko.com/p-12940220.html