长途汽车管理系统_第1页
长途汽车管理系统_第2页
长途汽车管理系统_第3页
长途汽车管理系统_第4页
长途汽车管理系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、滁滁州州学学院院 课课程程设设计计报报告告 课程名称:课程名称: 数据库系统原理与设计 设计题目设计题目: 长途汽车管理系统 系系 别:别: 计算机科学与技术系 专专 业:业: 计算机科学与计算专业 组组 别:别: 第二组 起止日期起止日期: 2010 年 12 月 7 日 2010 年 12 月 28 日 指导教师指导教师: 周强 计算机科学与技术系二计算机科学与技术系二一一年制年制 课程设计题目长途汽车信息管理系统 组长粱炎光学号2008210768班级08 计科 系别计算机科学与技术系专业计算机科学与技术专业 组员 范远军、王超、熊国富、张雷 指导教师 周强 课程设计目的 实现长途汽车管

2、理系统的一些基本的功能,能够熟练地掌 握 SQL 语句的用法,并且懂得如何团队协作开发程序 课程设计所需环境Windows xp 系统、SQL server 2000、JDK 和 JCreator 课程设计任务要求 要求包括汽车信息管理系统、票价信息管理系统、线路信 息管理系统 课程设计工作进度计划及分工情况 序号起止日期工 作 内 容分工情况 111 月 29 日12 月 1 日 确定组员分工情况、阐明系统 的开发背景 组长和组员共同完成 212 月 2 日12 月 3 日确定系统功能的基本描述以及 需求分析 熊国富、范远军负责此 项 312 月 4 日12 月 9 日ER 图的设计、完成数

3、据库创建粱炎光负责此项 412 月 10 日12 月 13 日 汽车管理系统系统的界面代码 设计 王超负责查询等操作界 面,粱炎光负责系统登 陆界面 512 月 14 日12 月 17 日 汽车管理系统系统的功能代码 设计 张雷,熊国富负责此项 612 月 18 日12 月 20 日 连接数据库、测试程序、以及 调试程序 所有人共同完成 712 月 21 日12 月 26 日 完成课程设计报告的填写与设 计 范远军负责此项 教研室审核意见: 教研室主任签字: 年 月 日 目录 1 1 需需求求分分析析 . . . . . . . . . . . . . . . . . . . . . . .

4、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 4 1.1 课程设计任务及要求.4 1.2 课程设计思想.4 2 2 概概念念模模型型设设计计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 5 2.1 功能

5、设计.5 2.2 长途汽车信息系统功能模块.6 2.3 系统 E_R 图.7 3 3 逻逻辑辑模模型型设设计计与与优优化化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 7 4 4 物物理理设设计计与与实实施施. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6、. . . . . . . . . . . . . . . . . . . . . . . . .8 8 5 5 详详细细设设计计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 8 5.1 登陆界面代码.8 5.2 主操作界面.11 5.3 汽车查询代码.14 5.4 汽车插入、修改等代码.17 5.5 车票删除代码.21 6 6 调调试试与与

7、操操作作说说明明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 23 3 6.1 登陆界面 .23 6.2 选择操作界面.23 6.3 选择表界面.24 6.4 查询界面 .25 6.5 部分查询界面.25 6.6 修改、插入界面.25 6.7 删除界面 .26 7 7 设设计计心心得得. . . . . . . . . . . . . . . . . . . . . .

8、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 26 6 致致谢谢 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 28 8 参参考考文文献献 . . . . . .

9、. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 28 8 1 1 需求分析需求分析 1.11.1 课程设计任务及要求课程设计任务及要求 长途汽车信息管理系统运用在汽车站部门的系统工具,方便此系统部门的 工作人员的工作,该系统主要根据此部门的特点建立的,是记录和查询汽车站 信息的的依据。早期的长途汽车站信息主要是人工记录和人工管理的,不仅不 容易记录,而且还不容易保存。

10、随着计算机的不断普及和软件系统的不断发展 加上信息系统开发的迫切需求,计算机长途汽车站信息管理系统应运而生了。 随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次 数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,长途汽车 站信息管理系统在人们的日常生活中发挥着越来越重要的作用。本系统实现了 汽车线路信息,汽车信息,票务信息的查询和管理,以满足人们的需求。 线路信息管理: 车站管理员可以在线路信息管理模块对车站线路信息进行管理。管理员首先建 立汽车线路信息数据库,输入原始的线路信息,当有新的线路需要添加或者需 要对已有的线路信息进行修改,删除的时候,管理员就可以进行相应

11、的操作。 管理员也可以通过本模块查询到所有需要查询的线路的详细信息。 汽车信息管理: 管理员可以在汽车信息管理模块实现对汽车信息的管理。管理员首先应该 建立汽车信息数据库,输入原始的数据信息,当有新的汽车信息的时候或者管 理员需要修改某个汽车的相关信息以及想要删除某个汽车信息的时候,就可以 完成相应的操作。管理员也可以在整个数据库中查寻相关汽车信息。 车票信息管理: 管理员可以在车票管理模块实现对线路车票信息的管理。管理员根据相应 的汽车线路信息来设置相应的车票详细信息。当有新的线路添加的时候,要把 相应的车票信息添加到数据库中,管理员还可以对某条线路的车票信息进行修 改,删除和查询操作。 1

12、.21.2 课程设计思想课程设计思想 (1)充分利用所学过的数据库的相关知识建立长途汽车管理系统所需的数 据库。 (2)进行详细的功能设计,在 Java 中利用 ODBC 连接数据库技术对数据 库中数据进行操作,并能进行多表之间的链接与查询操作。 2 2 概念模型设计概念模型设计 2.12.1 功能设计功能设计 在 Java 中利用 ODBC 访问技术操作数据库,建立到数据库中的映射类,在 对话框类中通过引用映射类完成对数据库的操作。 程序分为登陆界面,选择界面,线路信息界面,汽车信息界面,车票信息 这几个主体界面。使用时应先知道管理员帐号和密码,登陆进入系统主菜单界 面,里面包括线路信息,汽

13、车信息,车票信息,退出程序菜单选项。所需时间 等,可以对它们进行添加,查询,删除,其中线路信息界面包括包括出发地、目 的地、出发时间、修改,返回主菜单的操作;汽车信息和车票信息的界面与其 类似。 需要特别说明的是,当对数据进行操作时,在查询框内输入提示数据内容, 对话框的表中和提示栏中都会出现所查询的数据,我们可以在提示栏中对数据 进行删除和修改操作。 2.22.2 长途汽车信息系统功能模块长途汽车信息系统功能模块 图 2-1 2.32.3 系统系统 E_RE_R 图图 图 2-2 3 3 逻辑模型设计与优化逻辑模型设计与优化 管理员登陆: Manager(username,passwd) 汽

14、车表: Qiche(busno,zhonglei,zaike) 车票表: Chepiao(ticketno,shoupiao,busno,shengyu,yishou,piaojia) 线路表: Xianlu(mudidi,chufadi,chushi,yongshi) 行驶表: Xingshi(mudidi,busno,licheng) 4 4 物理设计与实施物理设计与实施 表 1: 管理员登陆表 字段字段名称数据类型是否为空主码外码备注 Username用户名Varchar(20 ) Not null是 Passwd密码Varchar(20 ) Not null 表 2: 路线表 字段字段

15、名称数据类型是否为空主码外码备注 chufadi出发地Char(20)Not null是 mudidi目的地Char(20)Not null是 shijian时间timeNot null busno汽车号Char(20)Not null是 表 3: 汽车表 字段字段名称数据类型是否为空主码外码备注 busno汽车号Char(20)Not null是 zhonglei类别Char(20)Not null zaike载客Char(20)Not null 表 4: 行驶表 字段字段名称数据类型是否为空主码外码备注 busno汽车号Char(20)Not null chufadi出发地Char(20)

16、Not null mudidi目的地Char(20)Not null licheng里程Char(20)Not null 表 5: 车票表 字段字段名称数据类型是否为空主码外码备注 busno汽车号Char(20)Not null是 ticketno车票号Char(20)Not null是 shoupiao售票Char(20)Not null yishou已售Char(20)Not null shengyu剩余Char(20)Not null piaojia票价Char(20)Not null 5 5 详细设计详细设计 5.1 登陆界面代码登陆界面代码 在此模式下通过输入管理员名及密码,以获取

17、权限,进入各项操作的界面。 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(欢迎登陆汽车管理系统); static JLabel jl2=new JLabel(); static JLabel jl3=new JLabel(姓名)

18、; 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); se

19、tVisible(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); ad

20、d(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:od

21、bc: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

22、 a=rs.getString(xingmin); String b=rs.getString(mima); if(a.equals(jt1.getText() op.opration(); jl2.setText(姓名或密码错误!); jl2.setForeground(Color.red); catch(Exception e1) System.out.println(e); if(s.equals(jb2) System.exit(0); 5.25.2 主操作界面主操作界面 在此模式下,可以实现查询,插入,删除,及总查询等诸多功能。 package changtu; import jav

23、a.awt.*; import javax.swing.*; import java.awt.event.*; public class Opration extends JFrame implements ActionListener static JLabel jl=new JLabel(请选择一种操作:);/定义标签 static JRadioButton jc1=new JRadioButton(查询操作);/单选按钮 static JRadioButton jc2=new JRadioButton(插入操作); static JRadioButton jc3=new JRadioBu

24、tton(删除操作); 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(操作选择);/设置界面内容 setSize(300,270);/界面大小 setL

25、ayout(null);/界面布局 jl.setBounds(70,10,150,20);/设置位置大小 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);/设为选中 bg.add(jc1); bg.add(jc2); bg.add(jc3); bg.

26、add(jc4); add(jl); add(jc1); add(jc2); add(jc3); add(jc4); add(jb1); add(jb2); jc1.addActionListener(this);/加入事件监听 jc2.addActionListener(this); jc3.addActionListener(this); jc4.addActionListener(this); jb1.addActionListener(this); jb2.addActionListener(this); setVisible(true); public int getState()

27、return flag; public static void opration() new Opration().xuanze(); public void actionPerformed(ActionEvent e) Object 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() fl

28、ag=3; setVisible(false); ch.ch(); else if(jc4.isSelected() flag=4; setVisible(false); ch.ch(); if(s.equals(jb2) System.exit(0); 5.35.3 汽车查询代码汽车查询代码 在此模式下输入汽车的某一项信息,可以获得汽车编号、汽车种类、载客量等 信息,如输入汽车编号 01,便可以显示 01 车的其他信息。 package changtu; import java.awt.*; import java.awt.event.*; import javax.swing.*; imp

29、ort java.sql.*; import java.io.*; public class Qchepiao extends JFrame implements ActionListener Statement st=null; JTextArea ja=new JTextArea(编号 售票 剩余 已售n); JTextField jt=new JTextField(); JRadioButton jc1=new JRadioButton(查询全部); JRadioButton jc2=new JRadioButton(部分查询); ButtonGroup bg=new ButtonGro

30、up(); 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);/设置界面可见 jc1.setBounds(20,20,80,20); jc2.setBounds(20,60,80,20

31、); 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)

32、; jb1.addActionListener(this); jb2.addActionListener(this); jb3.addActionListener(this); public void actionPerformed(ActionEvent e) Object s=e.getSource(); ResultSet rs=null; String a1; if(s.equals(jb1) if(jc1.isSelected() try rs=st.executeQuery(select bianhao,shoupiao,shengyu,yishou from chepiao);

33、ja.setText(); ja.setText(编号 售票 剩余 已售n); 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) System.out.println(e); if(jc2.isSelected() try ja.setText(); ja.setText(编号

34、 售票 剩余 已售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()+); while(rs.next() String a=rs.getString(bianhao); String b=rs.getString(shoupiao); String c=rs.getString(shengy

35、u); String d=rs.getString(yishou); ja.append(a+b+c+d+n); catch(Exception e1) System.out.println(e); if(s.equals(jb2) dispose(); op.xuanze(); if(s.equals(jb3) System.exit(0); 5.45.4 汽车插入、修改等代码汽车插入、修改等代码 在此模式下,我们可以轻松的实现对汽车的信息的修改,以及在增加班车后, 实现插入该车的信息。 package changtu; import java.awt.*; import java.awt.

36、event.*; import javax.swing.*; import java.sql.*; public class Ichepiao extends JFrame implements ActionListener Statement 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(); JT

37、extField 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); se

38、tVisible(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

39、,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); public void actionPerform

40、ed(ActionEvent e) Object s=e.getSource(); if(s.equals(jb1) try String 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) System.out.println(e); if(s.equals(jb2) d

41、ispose(); op.xuanze(); if(s.equals(jb3) if(jt2.getText()!=null st.executeUpdate(str2);/更新数据库 catch(Exception e1) System.out.println(e); if(jt3.getText()!=null st.executeUpdate(str2); catch(Exception e1) System.out.println(e); if(jt4.getText()!=null st.executeUpdate(str2); catch(Exception e1) System.

42、out.println(e); jl5.setText(修改车票信息成功); jl5.setForeground(Color.blue);/设置字体颜色 this.dispose(); 5.55.5 车票删除代码车票删除代码 在此模式下,我们可以删除指定的无用的汽车信息,以便汽车信息的更新。 package changtu; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class Dchepiao extends JFrame implements Act

43、ionListener 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); setVisibl

44、e(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(ActionEven

45、t 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();/释放内存 op.xuanze();/调用 Opration 中 xuanze 方法 6 6 调试与操作说明调试与操作说明 6.16.1 登陆界面登陆界面 编译程序,会出现如图 5-1 的登陆界面,管理员通过输入管理员姓名和密码, 可以登录汽车管理系统。 图 5-1:登陆界面 6.26.2 选择操作界面选择操作界面 管理员通过此操作界面可以选择要实现的操作。 图 5-2:操作界面 6.36

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论