長途汽車管理系統_第1頁
長途汽車管理系統_第2頁
長途汽車管理系統_第3頁
長途汽車管理系統_第4頁
長途汽車管理系統_第5頁
已閱讀5頁,還剩24頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、滁州學院課程設計報告課程名稱: 數據庫系統原理與設計 設計題目: 長途汽車管理系統 系 別: 計算機科學與技術系 專 業: 計算機科學與計算專業 組 別: 第二組 起止日期: 2010年12月7日 2010 年 12月28日指導教師: 周強 計算機科學與技術系二一年制課程設計題目長途汽車信息管理系統組長粱炎光學號2008210768班級08計科系別計算機科學與技術系專業計算機科學與技術專業組員范遠軍、王超、熊國富、張雷指導教師 周強課程設計目的實現長途汽車管理系統的一些基本的功能,能夠熟練地掌握SQL語句的用法,并且懂得如何團隊協作開發程序課程設計所需環境Windows xp系統、SQL se

2、rver 2000、JDK和JCreator課程設計任務要求要求包括汽車信息管理系統、票價信息管理系統、線路信息管理系統課程設計工作進度計劃及分工情況序號起止日期工 作 內 容分工情況111月29日12月1日確定組員分工情況、闡明系統的開發背景組長和組員共同完成212月2日12月3日確定系統功能的基本描述以及需求分析熊國富、范遠軍負責此項312月4日12月9日ER圖的設計、完成數據庫創建粱炎光負責此項412月10日12月13日汽車管理系統系統的界面代碼設計王超負責查詢等操作界面,粱炎光負責系統登陸界面512月14日12月17日汽車管理系統系統的功能代碼設計張雷,熊國富負責此項612月18日12

3、月20日連接數據庫、測試程序、以及調試程序所有人共同完成712月21日12月26日完成課程設計報告的填寫與設計范遠軍負責此項教研室審核意見:教研室主任簽字: 年 月 日目錄1 需求分析41.1課程設計任務及要求41.2 課程設計思想42 概念模型設計52.1 功能設計52.2 長途汽車信息系統功能模塊62.3系統E_R圖73邏輯模型設計與優化74物理設計與實施85詳細設計85.1 登陸界面代碼85.2 主操作界面115.3 汽車查詢代碼145.4 汽車插入、修改等代碼175.5 車票刪除代碼216 調試與操作說明236.1 登陸界面236.2 選擇操作界面236.3 選擇表界面246.4 查詢

4、界面256.5 部分查詢界面256.6 修改、插入界面256.7 刪除界面267設計心得26致謝28參考文獻281 需求分析1.1課程設計任務及要求長途汽車信息管理系統運用在汽車站部門的系統工具,方便此系統部門的工作人員的工作,該系統主要根據此部門的特點建立的,是記錄和查詢汽車站信息的的依據。早期的長途汽車站信息主要是人工記錄和人工管理的,不僅不容易記錄,而且還不容易保存。隨著計算機的不斷普及和軟件系統的不斷發展加上信息系統開發的迫切需求,計算機長途汽車站信息管理系統應運而生了。隨著市場經濟的不斷飛速發展,交通道路環境的不斷改善,人們的出行次數不斷增多,人口流動頻繁,數量不斷加大,車站信息量迅

5、猛增長,長途汽車站信息管理系統在人們的日常生活中發揮著越來越重要的作用。本系統實現了汽車線路信息,汽車信息,票務信息的查詢和管理,以滿足人們的需求。線路信息管理:車站管理員可以在線路信息管理模塊對車站線路信息進行管理。管理員首先建立汽車線路信息數據庫,輸入原始的線路信息,當有新的線路需要添加或者需要對已有的線路信息進行修改,刪除的時候,管理員就可以進行相應的操作。管理員也可以通過本模塊查詢到所有需要查詢的線路的詳細信息。汽車信息管理:管理員可以在汽車信息管理模塊實現對汽車信息的管理。管理員首先應該建立汽車信息數據庫,輸入原始的數據信息,當有新的汽車信息的時候或者管理員需要修改某個汽車的相關信息

6、以及想要刪除某個汽車信息的時候,就可以完成相應的操作。管理員也可以在整個數據庫中查尋相關汽車信息。車票信息管理:管理員可以在車票管理模塊實現對線路車票信息的管理。管理員根據相應的汽車線路信息來設置相應的車票詳細信息。當有新的線路添加的時候,要把相應的車票信息添加到數據庫中,管理員還可以對某條線路的車票信息進行修改,刪除和查詢操作。1.2 課程設計思想(1)充分利用所學過的數據庫的相關知識建立長途汽車管理系統所需的數據庫。(2)進行詳細的功能設計,在Java中利用ODBC連接數據庫技術對數據庫中數據進行操作,并能進行多表之間的鏈接與查詢操作。2 概念模型設計2.1 功能設計在Java中利用ODB

7、C訪問技術操作數據庫,建立到數據庫中的映射類,在對話框類中通過引用映射類完成對數據庫的操作。程序分為登陸界面,選擇界面,線路信息界面,汽車信息界面,車票信息這幾個主體界面。使用時應先知道管理員帳號和密碼,登陸進入系統主菜單界面,里面包括線路信息,汽車信息,車票信息,退出程序菜單選項。所需時間等,可以對它們進行添加,查詢,刪除,其中線路信息界面包括包括出發地、目的地、出發時間、修改,返回主菜單的操作;汽車信息和車票信息的界面與其類似。需要特別說明的是,當對數據進行操作時,在查詢框內輸入提示數據內容,對話框的表中和提示欄中都會出現所查詢的數據,我們可以在提示欄中對數據進行刪除和修改操作。2.2 長

8、途汽車信息系統功能模塊圖 2-12.3系統E_R圖圖 2-23邏輯模型設計與優化管理員登陸:Manager(username,passwd)汽車表:Qiche(busno,zhonglei,zaike)車票表:Chepiao(ticketno,shoupiao,busno,shengyu,yishou,piaojia)線路表:Xianlu(mudidi,chufadi,chushi,yongshi)行駛表:Xingshi(mudidi,busno,licheng)4物理設計與實施表1: 管理員登陸表字段字段名稱數據類型是否為空主碼外碼備注Username用戶名Varchar(20)Not nu

9、ll是Passwd密碼Varchar(20)Not null表2: 路線表字段字段名稱數據類型是否為空主碼外碼備注chufadi出發地Char(20)Not null是mudidi目的地Char(20)Not null是shijian時間timeNot nullbusno汽車號Char(20)Not null是表3: 汽車表字段字段名稱數據類型是否為空主碼外碼備注busno汽車號Char(20)Not null是zhonglei類別Char(20)Not nullzaike載客Char(20)Not null表4: 行駛表字段字段名稱數據類型是否為空主碼外碼備注busno汽車號Char(20)

10、Not nullchufadi出發地Char(20)Not nullmudidi目的地Char(20)Not nulllicheng里程Char(20)Not null表5: 車票表字段字段名稱數據類型是否為空主碼外碼備注busno汽車號Char(20)Not null是ticketno車票號Char(20)Not null是shoupiao售票Char(20)Not nullyishou已售Char(20)Not nullshengyu剩余Char(20)Not nullpiaojia票價Char(20)Not null 5詳細設計5.1 登陸界面代碼在此模式下通過輸入管理員名及密碼,以獲取

11、權限,進入各項操作的界面。package changtu;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;import java.io.*;public class denglu extends JFrame implements ActionListenerstatic JLabel jl=new JLabel("歡迎登陸汽車管理系統");static JLabel jl2=new JLabel();static JLabel jl3=new JLabel(&

12、quot;姓名");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(Statem

13、ent 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);ad

14、d(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)tryClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");catch(Exception e)System.out.println("連接失敗!");return; tryConnection co

15、n=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)tryrs=st.execu

16、teQuery("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("姓名或密碼錯誤!");jl2.setForeground(Color.red);cat

17、ch(Exception e1) System.out.println(e); if(s.equals(jb2)System.exit(0);5.2 主操作界面在此模式下,可以實現查詢,插入,刪除,及總查詢等諸多功能。package changtu;import java.awt.*;import javax.swing.*;import java.awt.event.*;public class Opration extends JFrame implements ActionListenerstatic JLabel jl=new JLabel("請選擇一種操作:");

18、/定義標簽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("確定");/按鈕stat

19、ic JButton jb2=new JButton("返回");static ButtonGroup bg=new ButtonGroup();public static int flag;static Check ch=new Check();public void xuanze()setTitle("操作選擇");/設置界面內容setSize(300,270);/界面大小setLayout(null);/界面布局jl.setBounds(70,10,150,20);/設置位置大小jc1.setBounds(60,50,150,20);jc2.set

20、Bounds(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);/設為選中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)

21、;/加入事件監聽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(ActionEvent e)Object

22、s=e.getSource();/事件源if(s.equals(jb1)if(jc1.isSelected()flag=1;setVisible(false);ch.ch();else if(jc2.isSelected()flag=2;setVisible(false);ch.ch();else if(jc3.isSelected()flag=3;setVisible(false); ch.ch();else if(jc4.isSelected()flag=4;setVisible(false); ch.ch();if(s.equals(jb2)System.exit(0);5.3 汽車查詢

23、代碼在此模式下輸入汽車的某一項信息,可以獲得汽車編號、汽車種類、載客量等信息,如輸入汽車編號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("編號 售票 剩余

24、已售n");JTextField jt=new JTextField();JRadioButton jc1=new JRadioButton("查詢全部");JRadioButton jc2=new JRadioButton("部分查詢");ButtonGroup bg=new ButtonGroup();JButton jb1=new JButton("查詢");JButton jb2=new JButton("返回");JButton jb3=new JButton("退出");s

25、tatic Opration op=new Opration();public void Qcp(Statement sta) this.st=sta;/Statement語句傳輸setSize(400,300);setLayout(null);setVisible(true);/設置界面可見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(2

26、30,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);public void actionPerformed(Acti

27、onEvent e)Object s=e.getSource();ResultSet rs=null;String a1;if(s.equals(jb1)if(jc1.isSelected()tryrs=st.executeQuery("select bianhao,shoupiao,shengyu,yishou from chepiao"); ja.setText(""); ja.setText("編號 售票 剩余 已售n");while(rs.next()String a=rs.getString("bianhao&qu

28、ot;);String b=rs.getString("shoupiao");String c=rs.getString("shengyu");String d=rs.getString("yishou"); ja.append(a+""+b+""+c+""+d+"n"); catch(Exception e1) System.out.println(e); if(jc2.isSelected() try ja.setText("");

29、 ja.setText("編號 售票 剩余 已售n"); rs=st.executeQuery("select bianhao,shoupiao,shengyu,yishou from chepiao where bianhao='"+jt.getText()+"' or shoupiao='"+jt.getText()+"'or shengyu='"+jt.getText()+"'or yishou='"+jt.getText()+&qu

30、ot;'"); while(rs.next() String a=rs.getString("bianhao");String b=rs.getString("shoupiao");String c=rs.getString("shengyu");String d=rs.getString("yishou"); ja.append(a+""+b+""+c+""+d+"n"); catch(Exception e1) S

31、ystem.out.println(e); if(s.equals(jb2)dispose();op.xuanze();if(s.equals(jb3)System.exit(0);5.4 汽車插入、修改等代碼在此模式下,我們可以輕松的實現對汽車的信息的修改,以及在增加班車后,實現插入該車的信息。package changtu;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class Ichepiao extends JFrame implements Action

32、ListenerStatement st=null;JLabel jl1=new JLabel("編號");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();JT

33、extField 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,

34、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.setBou

35、nds(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);public void actionPerformed(ActionEvent e)Object s=e.getSource();if(s.equals(jb1)tryString

36、 st1="insert into chepiao values('"+jt1.getText()+"','"+jt2.getText()+"','"+jt3.getText()+"','"+jt4.getText()+"')"st.executeUpdate(st1);jl5.setText("插入成功");jl5.setForeground(Color.red);catch(Exception e1) Sys

37、tem.out.println(e); if(s.equals(jb2)dispose(); op.xuanze();if(s.equals(jb3)if(jt2.getText()!=null&&!"".equals(jt2.getText()/判斷文本非空tryString str2="update chepiao set shoupiao='"+jt2.getText()+"' where bianhao='"+jt1.getText()+"'" st.exec

38、uteUpdate(str2);/更新數據庫catch(Exception e1) System.out.println(e); if(jt3.getText()!=null&&!"".equals(jt3.getText()tryString str2="update chepiao set shengyu='"+jt3.getText()+"' where bianhao='"+jt1.getText()+"'" st.executeUpdate(str2);ca

39、tch(Exception e1) System.out.println(e); if(jt4.getText()!=null&&!"".equals(jt4.getText()tryString str2="update chepiao set yishou='"+jt4.getText()+"' where bianhao='"+jt1.getText()+"'" st.executeUpdate(str2);catch(Exception e1) System.

40、out.println(e); jl5.setText("修改車票信息成功");jl5.setForeground(Color.blue);/設置字體顏色this.dispose();5.5 車票刪除代碼在此模式下,我們可以刪除指定的無用的汽車信息,以便汽車信息的更新。package changtu;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class Dchepiao extends JFrame implements ActionList

41、enerStatement 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);setLayou

42、t(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(Action

43、Event e)JButton jb=(JButton)e.getSource();ResultSet rs=null;if(jb=jb1)tryString 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();/釋放內存 op.xuanze();/調用Opration中xuanze方法6 調試與操作說明6.1 登陸界面編譯程序,會出現如圖5-1的登陸界面,管理員通過輸入管

溫馨提示

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

評論

0/150

提交評論