一、需求分析

本次Java课程设计本着公交车信息查询管理系统查询管理数据的设计原则,让其满足日常生活中人们对公交查询的基本功能,实现信息查询的基础效果,提供以下功能:

  1. 数据库连接,数据库操作功能;
  2. 管理员登录,管理员退出;
  3. 用户登录,用户注册(两次密码不一致时报错),用户退出,用户查看个人信息
  4. 用户可根据公交车ID进行简单的公交线路查询,刷新表格内部数据;
  5. 管理员可添加车站信息、修改车站信息、删除车站信息、查询车站信息;刷新公交表格数据;
  6. 管理员可添加司机信息、修改司机信息、删除司机信息、刷新司机表格信息。

二、总体设计

        该公交信息查询管理系统基于Java图形化设计界面以及MySQL数据库实现,采用经典的“Dao设计模式”,其中MySQL数据库的各类操作实现了实体间表格的增查改删,并配备了图形设计界面中的JTable表格控件,做到了实时更新数据的效果。下面为实现该系统的功能结构层次图:

具体功能列表细节如下:

功能模块

功能细分

备注

公交线路

信息管理

查询公交信息功能

按公交编号查询指定公交的全部信息

新增公交信息功能

向数据库中添加新的公交信息记录

修改公交信息功能

按公交编号修改需要更正的公交信息

删除公交信息功能

按公交编号删除指定的数据库记录

用户使用功能

用户登录

用户根据查询后用户名密码进行登录

线路查询

用户根据公交车ID对公交信息查询

个人信息确认

根据public方法传入参数显示

用户注册

注册用户个人信息

管理员使用功能

管理员登录

根据管理员输入管理员名称对数据库密码检索

公交车信息查询

根据UID实行简单的“增删改查”操作

司机信息查询操作

根据BID实行简单的“增删改查”操作

三、Mysql数据库设计

经过用户反馈筛选,我们根据公交车信息管理的设计理念,将上述需求分析阶段得到的用户需求进行分析、总结、归纳,得到该公交车信息查询管理系统的实体以及实体属性,并在这里采用E-R图的方式抽象成信息结构即概念模型,其中根据实体间联系,画出局部E-R图,如下所示:

关系模式(关系模型)

管理员(管理员姓名,管理员密码);

用户(用户姓名,用户密码,用户性别);

公交车(公交编号,司机编号,公交名,公交车站,公交类型);

司机(司机编号,司机姓名,司机性别,公交类型,司机生日,司机地址,电话号码,有效期截止时间);

四、详细设计与实现

4.1、登录界面设计

        登录界面设有用户名、密码和用户身份三个字段,在数据库中进行分别匹配,在用户输入信息后,首先判断该用户名是否存在,接着匹配该用户的身份是否正确,最后匹配该身份下的密码是否正确,通过三重判断进行页面跳转,该页面也可以将所填信息进行清楚,效果图如下:

部分代码实现如下:

button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (comboBox.getSelectedItem().equals("普通用户")) {// 获得文本框里的值
String username = textField.getText();String upassword = passwordField.getText();
boolean f = dirverdao.userlogin(username, upassword);if (f) {JOptionPane.showMessageDialog(frame, "登陆成功!欢迎!");// 页面跳转UsersEnroll ue=new UsersEnroll();// 关闭原页面frame.setVisible(false);
} else {JOptionPane.showMessageDialog(frame, "登陆失败!账号或密码错误!");// 账号密码清空textField.setText("");passwordField.setText("");}

4.2、用户注册界面设计

        注册界面设有用户名、性别、密码和确认密码四个字段,其中,若二次输入的密码与第一次不统一,也会做出相应的提醒,点击提交则上交给数据库。效果图如下:

4.3、线路查询界面设计

        用户可以根据自己的需求,输入编号对表格查出相应的所需的数据线路进行数据库查询操作,JTable表格做到实时更新数据的效果,输入信息查找这里也采用了键盘监听事件,即可以根据用户输入的信息实时调用数据库数据,具体展示图如下:

部分代码如下:

protected TableModel getDataModel(String bySth, String keyWord) {// 获得所有字段名,做表头String[] columnNames = bsd.getColumnNames("businfortable");// 获得查询结果的list列表,转换为二维数组,做表中数据List<BusType> buslist = bsd.getBusbySth(bySth, keyWord);int row = buslist.size(); // 获得行数,即数据个数int column = columnNames.length; // 获得列数,即字段个数Object[][] data = new Object[row][column];for (int i = 0; i < buslist.size(); i++) {data[i][0] = buslist.get(i).getBid();data[i][1] = buslist.get(i).getDid();data[i][2] = buslist.get(i).getBnum();data[i][3] = buslist.get(i).getBtype();data[i][4] = buslist.get(i).getBusstop();}
TableModel dataModel=new DefaultTableModel(data,columnNames); // 建立表格数据模型return dataModel;}

4.4、管理员界面设计

        管理员界面即是对公交车与司机二者信息显示的增删改查,这里的修改操作我采用两种方式,一种是利用getSelectedRow()方法,获取索引行,将需要修改的信息自动获取到修改页面,一种则是直接打开修改页面,根据你输入的信息进行主键查找,最终达到修改效果,删除操作也采用同样的方法,同时实时更新系统表格。效果图如下:

部分核心代码如下所示:

JMenuBar menuBar = new JMenuBar();frame.setJMenuBar(menuBar);   JMenu menu = new JMenu("\u5F00\u59CB");menuBar.add(menu);JMenuItem menuItem = new JMenuItem("\u4FE1\u606F\u4FEE\u6539");menu.add(menuItem);menuItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {DriverTableFrame dtf=new DriverTableFrame(); }});JMenu menu_1 = new JMenu("\u5E2E\u52A9");menuBar.add(menu_1);}

部分核心代码如下所示:

public int addBus(BusType bus) {Connection conn=DBTools.getConn();int i=0;String sql="insert into businfortable(bid,did,bnum,btype,busstop) values(?,?,?,?,?)";PreparedStatement pstmt = null;try {pstmt = conn.prepareStatement(sql);pstmt.setInt(1, bus.getBid());pstmt.setInt(2, bus.getDid());pstmt.setString(3, bus.getBnum());pstmt.setString(4, bus.getBtype());pstmt.setString(5, bus.getBusstop());i=pstmt.executeUpdate();}

部分核心代码如下所示:

public void actionPerformed(ActionEvent e) {int frow = table.getSelectedRow();  //获得第一个选中行的索引if(frow == -1) {
JOptionPane.showMessageDialog(frame, "请先单击选择一条记录");}else {//String[]中存入表格选中行的数据String[] sendData = new String[table.getColumnCount()];   for(int i=0; i<sendData.length; i++) {sendData[i] = table.getValueAt(frow, i)+"";}//打开修改页面,并传入信息BusInforChanged bic=new BusInforChanged(sendData);}}});
class MYPanel3 extends JPanel {private Image img;public MYPanel3() {// TODO Auto-generated constructor stubImageIcon icon = new ImageIcon(UsersLoginFrame.class.getResource("/images/背景图3.jpg"));img = icon.getImage();} @Overrideprotected void paintComponent(Graphics g) {// TODO Auto-generated method stubg.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), null);}}

部分核心代码展示如下:

@Overridepublic void itemStateChanged(ItemEvent e) {// TODO Auto-generated method stubif(radioButton.isSelected()){dsex=radioButton.getText();}else if(radioButton_1.isSelected()){
......
if(chckbxA.isSelected()){dtype+=chckbxA.getText();}}
@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubString dname=textField.getText(); ....if(e.getSource()==button){DriverDaoImpl dridao=new DriverDaoImpl();Driver driver=new Driver();......
else  if(e.getSource()==button_2_1){......JOptionPane.showMessageDialog(frame, "删除成功!");frame.setVisible(false);

至此,该公交车信息查询管理系统的基本功能与界面展示完毕。如对您有所帮助,望留下宝贵一赞!谢谢!

需源码以及1w3字课程20页报告 私信扣扣 1092644308!!!!!

公交车信息查询管理系统(Java实现)相关推荐

  1. 航班信息管理系统java_java实现航班信息查询管理系统

    本文实例为大家分享了java航班信息查询管理系统的具体代码,供大家参考,具体内容如下 Air Infomation System 基于控制台的航班信息系统,简称AIS 具体要求如下: (1)显示航班信 ...

  2. Java项目:垃圾分类查询管理系统(java+SSM+jsp+MySQL+bootstrap)

    源码获取:博客首页 "资源" 里下载! jsp+ssm(spring+springmvc+mybatis)+mysql实现的垃圾分类查询管理系统: 系统主要实现的功能有: 1:前端 ...

  3. 物流快递信息查询管理系统网站(JSP+HTML+MySQL)

    目录 摘要 2 Abstract 3 第一章 绪论 6 1.1课题背景 6 1.2目的和意义 6 1.3系统设计思想 7 1.4本文的结构 8 1.5本章小结 8 第二章 可行性研究分析 9 2.1引 ...

  4. python+django车辆违章信息查询管理系统pycharm项目

    本文设计目标为设计车辆违章管理系统,车辆违章管理系统是一种创新的系统,创新点包含了系统框架进行结合,在仔细研究了前后端开源框架之后,最后选择使用开源框架django,且在开源框架的基础上实现了车辆违章 ...

  5. Swing交通罚单管理系统java车辆违章缴费金额查询交警信息jsp源代码Maven数据库mysql

    本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当做编程入门的项目来做,故分享出本项目供初学者参考. 项目描述 交通罚单管理系统java ...

  6. JAVA设计驾驶员信息管理系统_基于jsp的大连驾驶员信息查询-JavaEE实现大连驾驶员信息查询 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的大连驾驶员信息查询, 该项目可用各类java课程设计大作业中, 大连驾驶员信息查询的系统架构分为前后台两部分, 最 ...

  7. (面向对象)员工信息管理系统 1.当有新员工的时候将员工加入到管理系统 2.可以根据工号实现对该员工信息查询 3.可以现实查看所有员工信息 4.可以修改员工的薪水

    1.测试类 package com.hzyc.homework; import java.util.Scanner;public class Test {public static void main ...

  8. 基于javaweb的医院病历信息管理系统(java+ssm+jsp+bootstrap+easyui+mysql)

    基于javaweb的医院病历信息管理系统(java+ssm+jsp+bootstrap+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclips ...

  9. java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构 ...

最新文章

  1. 数组扩容 java_java 实现数组扩容与缩容案例
  2. Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
  3. [hive学习翻译]Hive - Introduction
  4. Angular本地数据存储LocalStorage
  5. 22、java中的注解
  6. android定位会出现的问题,android – 使用GPS_PROVIDER进行定位时出现问题
  7. 2、赶去公司--网易2017春招
  8. UVA12169模运算
  9. python字符串(string)方法整理
  10. Ubuntu Software Center has closed unexpectly解决方案
  11. python小孩子学有什么用_小孩子为什么一定要学习Python编程
  12. 索尼电视android9,索尼电视系统更新通知:解决升级到安卓9.0版本后bug问题
  13. python爬取拉勾网职位信息_python-scrapy爬虫框架爬取拉勾网招聘信息
  14. 计算机丢失msvc80.dll,msvcr80.dll丢失如何解决-msvcr80.dll丢失的解决方法
  15. 需要程序猿了解的 89 个操作系统核心知识
  16. 我的单车游记:向西,向西,到栖霞去(一)
  17. 【公告】博客新皮肤上线啦
  18. Visio绘制跨职能流程图示例
  19. hahabet05-com:大数据与数据科学课程体系--哈哈电竞
  20. 数据分析案例--01 城市餐饮店铺选址分析

热门文章

  1. 从今天开始,请叫我,新生代农民工
  2. android项目实现查询功能,Android实现归属地查询功能(示例代码)
  3. 金融风控-贷款违约预测学习笔记(Part3:特征工程)
  4. 宜信容器云排错工具集
  5. ICV:超声波雷达迎来数字化变革,2026年全球市场规模将达145亿美元
  6. NYOJ 82 迷宫寻宝
  7. 中国移动光猫的拨号和桥接模式的区别
  8. VERSA VGG-4422-U-A120有一种幸福叫微笑
  9. 谨以此篇文章开启我的博客生涯
  10. HttpClient 报错 Invalid cookie header, Invalid 'expires' attribute: Thu, 01 Jan 1970 00:00:00 GMT...