公交车信息查询管理系统(Java实现)
一、需求分析
本次Java课程设计本着公交车信息查询管理系统查询管理数据的设计原则,让其满足日常生活中人们对公交查询的基本功能,实现信息查询的基础效果,提供以下功能:
- 数据库连接,数据库操作功能;
- 管理员登录,管理员退出;
- 用户登录,用户注册(两次密码不一致时报错),用户退出,用户查看个人信息
- 用户可根据公交车ID进行简单的公交线路查询,刷新表格内部数据;
- 管理员可添加车站信息、修改车站信息、删除车站信息、查询车站信息;刷新公交表格数据;
- 管理员可添加司机信息、修改司机信息、删除司机信息、刷新司机表格信息。
二、总体设计
该公交信息查询管理系统基于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实现)相关推荐
- 航班信息管理系统java_java实现航班信息查询管理系统
本文实例为大家分享了java航班信息查询管理系统的具体代码,供大家参考,具体内容如下 Air Infomation System 基于控制台的航班信息系统,简称AIS 具体要求如下: (1)显示航班信 ...
- Java项目:垃圾分类查询管理系统(java+SSM+jsp+MySQL+bootstrap)
源码获取:博客首页 "资源" 里下载! jsp+ssm(spring+springmvc+mybatis)+mysql实现的垃圾分类查询管理系统: 系统主要实现的功能有: 1:前端 ...
- 物流快递信息查询管理系统网站(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引 ...
- python+django车辆违章信息查询管理系统pycharm项目
本文设计目标为设计车辆违章管理系统,车辆违章管理系统是一种创新的系统,创新点包含了系统框架进行结合,在仔细研究了前后端开源框架之后,最后选择使用开源框架django,且在开源框架的基础上实现了车辆违章 ...
- Swing交通罚单管理系统java车辆违章缴费金额查询交警信息jsp源代码Maven数据库mysql
本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当做编程入门的项目来做,故分享出本项目供初学者参考. 项目描述 交通罚单管理系统java ...
- JAVA设计驾驶员信息管理系统_基于jsp的大连驾驶员信息查询-JavaEE实现大连驾驶员信息查询 - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的大连驾驶员信息查询, 该项目可用各类java课程设计大作业中, 大连驾驶员信息查询的系统架构分为前后台两部分, 最 ...
- (面向对象)员工信息管理系统 1.当有新员工的时候将员工加入到管理系统 2.可以根据工号实现对该员工信息查询 3.可以现实查看所有员工信息 4.可以修改员工的薪水
1.测试类 package com.hzyc.homework; import java.util.Scanner;public class Test {public static void main ...
- 基于javaweb的医院病历信息管理系统(java+ssm+jsp+bootstrap+easyui+mysql)
基于javaweb的医院病历信息管理系统(java+ssm+jsp+bootstrap+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclips ...
- java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计飞机航班信息查询系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构 ...
最新文章
- 数组扩容 java_java 实现数组扩容与缩容案例
- Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
- [hive学习翻译]Hive - Introduction
- Angular本地数据存储LocalStorage
- 22、java中的注解
- android定位会出现的问题,android – 使用GPS_PROVIDER进行定位时出现问题
- 2、赶去公司--网易2017春招
- UVA12169模运算
- python字符串(string)方法整理
- Ubuntu Software Center has closed unexpectly解决方案
- python小孩子学有什么用_小孩子为什么一定要学习Python编程
- 索尼电视android9,索尼电视系统更新通知:解决升级到安卓9.0版本后bug问题
- python爬取拉勾网职位信息_python-scrapy爬虫框架爬取拉勾网招聘信息
- 计算机丢失msvc80.dll,msvcr80.dll丢失如何解决-msvcr80.dll丢失的解决方法
- 需要程序猿了解的 89 个操作系统核心知识
- 我的单车游记:向西,向西,到栖霞去(一)
- 【公告】博客新皮肤上线啦
- Visio绘制跨职能流程图示例
- hahabet05-com:大数据与数据科学课程体系--哈哈电竞
- 数据分析案例--01 城市餐饮店铺选址分析
热门文章
- 从今天开始,请叫我,新生代农民工
- android项目实现查询功能,Android实现归属地查询功能(示例代码)
- 金融风控-贷款违约预测学习笔记(Part3:特征工程)
- 宜信容器云排错工具集
- ICV:超声波雷达迎来数字化变革,2026年全球市场规模将达145亿美元
- NYOJ 82 迷宫寻宝
- 中国移动光猫的拨号和桥接模式的区别
- VERSA VGG-4422-U-A120有一种幸福叫微笑
- 谨以此篇文章开启我的博客生涯
- HttpClient 报错 Invalid cookie header, Invalid 'expires' attribute: Thu, 01 Jan 1970 00:00:00 GMT...