利用Java Swing实现车牌管理系统

您所在的位置:网站首页 如何用图片搜索车名和车牌号 利用Java Swing实现车牌管理系统

利用Java Swing实现车牌管理系统

2024-06-30 20:25| 来源: 网络整理| 查看: 265

如何用Java Swing实现车牌管理系统 前言项目地址作业要求经过整理的项目结构 代码实现对象分类HomePage主类User用户类Registration车牌号类FuncPage功能页类 搜索算法对于数据集的引入和排序车牌对半查找算法车主信息顺序查找算法城市分块索引算法 一些问题的解释 结语

前言

这是我的课程设计周的大作业。这个系统编写中利用了Java Swing作为图形库。在对于车牌的排序和查找算法中,应用了对半查找,顺序查找,分块索引以及快排算法。 项目中使用的车牌号做了简化处理,不进行复杂的车辆类型区分,统一为6位。数据库中的车牌均为信息均为本人伪造。

项目地址

(PS:虽然造福学弟学妹,但是我确实还是有点私心的,希望各位借鉴了代码的给仓库点个星星,毕竟我也想得到点正反馈嘛) github仓库 gitee仓库

作业要求

在汽车数据的信息模型中,汽车牌照是具有结构特点的一类关键字。汽车牌照是字母和数字混编的,例如:苏A0B7238。利用查找和排序算法,实现省内汽车牌照的快速查找。 1、需要设置普通用户、超级管理员不同角色,不同角色登录后的权限各不相同,普通用户可以进行查询;超级管理员有对汽车牌照增加、删除和修改的权限。 2、汽车牌照信息应包含号码、车辆、车主等相应信息,信息保存在文本文件中。 3、对汽车牌照进行排序,并实现顺序查找功能。 4、采用对半查找汽车牌照查询出所对应的车辆及车主信息。 5、可以按城市建立索引表,进行分块索引查找。 6、界面美观,交互方便

经过整理的项目结构

需要编写两种界面,由管理员进入的界面查询,修改车号牌信息,由普通用户进入查询车牌号信息。

普通用户 按照车牌号查找车牌(对半查找算法)按照车主姓名查找车牌(顺序查找算法)按照城市分布查找车牌(分块索引算法) 管理员 增加车牌删除车牌修改车牌信息 代码实现 对象分类

对于该项目进行分析可以知道,需要分出登录界面和应用内界面两个UI类,车牌号类,登录用户类两个信息类。

HomePage主类

没有太多好说的,最先写出来,只需要利用Java Swing画出一个登录面板即可。 画出样式图如下 登录界面 这里需要说明的是,为了使登陆界面好看,我借鉴了一些美化方式,将JTextField 以及JPasswordField和JButton做了一些美化。

//自定义文本框 private class Login_textfield extends JTextField{ MatteBorder matteBorder=new MatteBorder(0, 0, 1, 0, Color.white); public Login_textfield(int n) { super(n); setFont(new Font("宋体", 1, 30)); setPreferredSize(new Dimension(255, 30)); setOpaque(false); setBorder(matteBorder); } } //自定义密码框 private class Login_codefield extends JPasswordField{ MatteBorder matteBorder=new MatteBorder(0, 0, 1, 0, Color.white); public Login_codefield(int n) { super(n); setFont(new Font("宋体", 1, 30)); setPreferredSize(new Dimension(255, 30)); setOpaque(false); setBorder(matteBorder); } } //自定义按钮 private class Login_Button extends JButton{ public Login_Button(String text) { super(text); setBackground(new Color(0,131,255)); setPreferredSize(new Dimension(215, 37)); setForeground(Color.white); setFocusPainted(false); setFont(new Font("微软雅黑", 1, 15)); setHorizontalAlignment(SwingConstants.CENTER); setVisible(true); } } User用户类

用户需要做的是区分管理员和普通用户。由于这个项目简单,就没有加入复杂的注册等功能。以及仅仅需要演示两个界面,故而我的账号都是固定的。

public class User { public static String userName; private static String password; public int isAdmin;//0不是管理员,1是管理员,2为未注册用户 public User (String userName,String password,int i) { this.userName = userName; this.password = password; this.isAdmin =i; } public void FindUser() { int flag = 0;//确认用户用flag FileReader fr = null; try { fr = new FileReader(new File("src/database/User.txt")); } catch (FileNotFoundException e) { e.printStackTrace(); } BufferedReader bf = new BufferedReader(fr); String b = null; while (true) { try { if (!((b = bf.readLine()) != null)) break; } catch (IOException e) { e.printStackTrace(); } // System.out.println(b); int num[] = new int[]{0,0}; for(int i=0,j=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3