系统是拥有验证码验证功能,账户登录功能,数据的增删改查功能,数据库内容是建立了学生表,院系表,学生账户表,管理员账户表,学生表与院系表之间还存在外键联系。

我把系统做成两个菜单页面,管理员账户与学生账户登录后显示的菜单功能不同,而只有管理员账户才能够实现修改删除添加学籍数据,学生账户只有查询功能。

系统难度不高,但是就是gui页面比较复杂。

要求:

本课程设计综合应用面向对象程序设计所学的知识设计一个考试系统或管理系统,主题自拟,数据库采用MySQL。设计要求如下:

  1. 管理系统

管理系统如学籍信息管理系统、图书信息管理系统、学生成绩管理系统等。学籍信息管理系统实现对学生学籍的管理,学籍信息包括学号、姓名、性别、籍贯、政治面貌、学院、专业和班级等,系统能够实现对学籍信息的添加、删除、修改、查找、汇总等功能。

  • 目录

    需要自行修改内容

    数据库结构设计

    系统详细设计:

    测试结果:

    关键功能代码:



大致思路可以总结为:

  1. 在MYSQL数据库中建user表和studentuser表,用于存放管理员账户密码与学生账户密码,建Depart表,用来存放院系班级信息,建studentinfor表来存放学生信息;
  2. 用JDBC来连接、操作数据库。
  3. 管理员账户将展示studentinfor、Depart数据,实现多种增删改查功能。学生账户将只实现简单的查询与Depart数据                                                                                                                                                                                                                                                                              类的分析和设计
  4. main包中有1个类:

Main类(作为主程序,调用构建登录页面类LoginFrame);

  1. Gui.LoginSwing包中有4个类,分别是:

BackGroundPanel类(用于页面背景图片设置中的声明图片与绘制背景);

LoginFrame类(制作登录页面的gui,初始化登录并且连接账户验证功能);

ScreenUtils类(用于获取电脑屏幕数据,便于页面生成时位于电脑屏幕中央);

LoginTry包下的LoginTry类(系统登录的验证码验证,并且进行账户密码与数据库内user表内容的比对验证,两者都成功都能进入菜单);

  1. connect包中有2个类,分别是:

JDBCUtils类(jdbc连接的工具类,通过自定义保存有连接jdbc的url、user、password和driver的.properties资源包,定义jdbc的连接与jdbc类的关闭,方便后续的书写);

jdbcConnect类(JDBC类,与功能类分开,可以被多次重复调用,相似功能可以调用相同的JDBC类,起到代码重复性低高效的特点,其中还调用JDBCUtils工具类,简化每次连接和关闭数据库的代码)

  1. 各项功能包有:

StuDAO类(是功能库,保存各功能的mysql语句部分,在StuDAO函数中再调用JDBC类与数据库进行连接,完成相应功能。)

  1. Gui.CheckSwing包中有2个类,分别是:

CheckSwing类(管理员账户中的查询功能,根据选中的内容生成查询页面以及查询学生学籍详细内容显示);

CheckSwingStu类(学生账户中的查询功能,根据学生用户输入的学号进行搜索并进行详细展示)

  1. Gui.DepartSwing包中有2个类:

DepartSwing类(院系管理功能,对现有的院系班级进行展示,以及根据选中的班级查询当前选中班级的人数总数。)

DepartSwingStu类(院系管理功能,对现有的院系班级进行展示,以及根据选中的班级查询当前选中班级的人数总数。)

  1. Gui.InsertSwing包中有1个类:

InsertSwing类(插入函数,插入新的数据,插入成功后将刷新菜单,生成插入后的信息总表在菜单)

  1. Gui.MeunSwing包中有2个类:

MenuSwing类(菜单显示页面,设置管理员账户菜单布局以及各功能的按钮);

MenuSwingStu类(菜单显示页面,设置学生账户菜单布局以及各功能的按钮);

  1. Gui,UpdateSwing包中有1个类:

UpdateSwing类(修改功能页面,修改选中的学号,可以修改学生的姓名,性别,籍贯,政治面貌以及班级)

需要自行修改内容

1.数据库的建立:(列名也要相同,否则里面的sql语句都要修改)

user表(存放管理员账户密码)如图:

studentuser(存放学生账户密码),如图:

studentinfor(学生基础信息表),如图:

depart(学生院系信息表,班级名是学生基础信息表的外键),如图:

还可以添加级联关系,也就是在建表语句班级名后加入on update cascade。(当修改学生院系表的班级名时也会自动修改学生基础信息表的班级,而当添加入不存在于depart表中的班级名时,由于外键的约束将会添加失败,保证了表格信息的安全性和合理性)

2.修改jdbc配置(由于每个人的数据库密码用户等不同)

担心修改的麻烦,建立了一个资源,可以直接在资源修改全部jdbc的连接。

在src目录下找到jdbc.properties资源

3.自定义项目背景图路径(也可以不管)

图片内容可以直接复制后粘贴在src目录下的images包中,然后在下面标记出来的这三个类中找到图片右边这句代码。

将代码绿色部分(也就是双引号内)的内容删除,替换成images/你想加入的背景图片名称(记得不要忘记图片格式,比如名称后加“.jpg”)。

数据库结构设计

学生学籍管理系统采用的数据库中有四张表,分别为学生信息表、院系表、管理员账户表、学生账户表。

系统详细设计:

测试结果:

登录页面

验证码验证

管理员菜单

学生菜单

关键功能代码:

LoginFrame类://登录页面的设置
package Gui.LoginSwing;import Gui.LoginSwing.LoginTry.LoginTry;import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;/*** 登录页面的gui*/
public class LoginFrame extends JFrame {//初始化,设置登录页面显示失败弹窗public LoginFrame(){try {init();} catch (Exception e) {System.out.println("页面加载失败");throw new RuntimeException(e);}}//登录页面布局void init() throws Exception{//设置窗口的内容BackGroundPanel bgPanel = new BackGroundPanel(ImageIO.read(new File(ClassLoader.getSystemResource("images/v2-8299d5eae2d7c4ac66450baad1a1496a_r.jpg").toURI())));bgPanel.setBounds(0,0,400,250);//组装登录相关元素,使用盒式布局Box vBox = Box.createVerticalBox();//组装标题Box TBox = Box.createHorizontalBox();TBox.add(Box.createHorizontalStrut(-10));JLabel null1 = new JLabel("   ");JLabel Titile = new JLabel("学生信息管理系统");Titile.setFont(new Font("微软雅黑",Font.BOLD,18));Titile.setForeground(new Color(120,150,4));TBox.add(null1);TBox.add(Titile);//组装用户名Box uBox = Box.createHorizontalBox();JLabel uLabel = new JLabel("用户名:");JTextField uField = new JTextField(15);uBox.add(uLabel);uBox.add(Box.createHorizontalStrut(20));uBox.add(uField);//组装密码Box pBox = Box.createHorizontalBox();JLabel pLabel = new JLabel("  密 码:");JTextField pField = new JTextField(15);pBox.add(pLabel);pBox.add(Box.createHorizontalStrut(20));pBox.add(pField);//组装按钮Box btnBox = Box.createHorizontalBox();JButton loginBtn = new JButton("登录");JButton registerB = new JButton("退出");btnBox.add(registerB);btnBox.add(Box.createHorizontalStrut(50));btnBox.add(loginBtn);//组装单选按钮Box JRBox = Box.createHorizontalBox();ButtonGroup group = new ButtonGroup();JRadioButton user = new JRadioButton("管理员");JRadioButton Stuuser = new JRadioButton("学生");group.add(user);group.add(Stuuser);JRBox.add(user);JRBox.add(Box.createHorizontalStrut(20));JRBox.add(Stuuser);//将所有组件组装起来vBox.add(Box.createVerticalStrut(30));vBox.add(TBox);vBox.add(Box.createVerticalStrut(20));vBox.add(uBox);vBox.add(Box.createVerticalStrut(20));vBox.add(pBox);vBox.add(Box.createVerticalStrut(10));vBox.add(JRBox);vBox.add(Box.createVerticalStrut(20));vBox.add(btnBox);bgPanel.add(vBox);add(bgPanel);pack();//定义变量来记录单选按钮的选择内容,当choice数组第一个数是1时表示选择了管理员账号,2表示选择登录学生账号final int[] choice = {0};//单选按钮的监听器:登录管理员账号或者是学生账号user.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {choice[0] = 1;}});Stuuser.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {choice[0] = 2;}});//验证码查验并验证密码loginBtn.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (choice[0] == 0){//弹出当前单选按钮为选择登录的账户类型的提醒JOptionPane.showMessageDialog(null, "请选择登录账户类型", "注意",JOptionPane.WARNING_MESSAGE);}else {//获取用户输入的数据String UserName = uField.getText().trim();String PassWord = pField.getText().trim();//验证码验证//flag为登录验证器,当登录成功时关闭登录页面,否则则不关闭new LoginTry(choice, UserName, PassWord);}}});//退出系统registerB.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {JOptionPane.showMessageDialog(null,"退出成功,欢迎下次登录");System.exit(0);}});}
}

《学籍信息管理系统》java+mysql+gui实现(全套免费代码+保姆教学+60页实验报告)相关推荐

  1. java学籍管理系统课设报告,基于SSM+Redis+LayUI的大学生学籍信息管理系统-java学生学籍信息管理系统mysql数据源...

    "基于SSM+Redis+LayUI的大学生学籍信息管理系统-java学生学籍信息管理系统mysql数据源 1.包含源程序,数据库脚本.代码和数据库脚本都有详细注释. 2.课题设计仅供参考学 ...

  2. Jsp+MySQL学生学籍信息管理系统 Java毕业设计

    中学生学籍信息管理系统主要有三个访问权限.首先是管理员,管理员是整个系统的所有功能的管理者,有对学科.班级.教师.学生学籍信息.课表.学生身体素质以及教务公告的管理权限,可以对以上所有信息进行增删改查 ...

  3. 实验管理系统java,大学生创新实验室信息管理系统 java+mysql

    本系统主要针对计算机科学与工程学院,下设专业 比如 信息管理与信息系统 计算机科学与技术 软件工程等. 功能说明: 前台主要拟实现功能详情: 1.登录.注册:大学生创新实验管理系统应分设教师.学生和 ...

  4. java计算机毕业设计学生学籍信息管理系统源码+mysql数据库+lw文档+系统+调试部署

    java计算机毕业设计学生学籍信息管理系统源码+mysql数据库+lw文档+系统+调试部署 java计算机毕业设计学生学籍信息管理系统源码+mysql数据库+lw文档+系统+调试部署 本源码技术栈: ...

  5. java毕业生设计学生学籍信息管理系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计学生学籍信息管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计学生学籍信息管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S ...

  6. 基于Java毕业设计学生学籍信息管理系统源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计学生学籍信息管理系统源码+系统+mysql+lw文档+部署软件 基于Java毕业设计学生学籍信息管理系统源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S ...

  7. 计算机毕业设计Java学生学籍信息管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java学生学籍信息管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java学生学籍信息管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B ...

  8. 基于java+mysql的Swing+MySQL图书管理系统(java+swing+gui+mysql)

    基于java+mysql的Swing+MySQL图书管理系统(java+swing+gui+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclip ...

  9. 学生档案信息管理系统java_基于jsp的学籍档案信息管理系统-JavaEE实现学籍档案信息管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的学籍档案信息管理系统, 该项目可用各类java课程设计大作业中, 学籍档案信息管理系统的系统架构分为前后台两部分, ...

最新文章

  1. mysqldump 忽略视图_mysqldump的使用--解决不能导出视图的问题
  2. linux命令more
  3. 支持三个cpu的服务器,基于第三代至强可扩展处理器,宁畅G40系列服务器正式发布...
  4. android edittext seterror,EditText之setError方法一二
  5. Git使用教程:最详细、最傻瓜、最浅显、真正手把手教
  6. 234C. Weather
  7. ipv6地址为什么显示两个_【聚焦】IPv6进行时,别被这些因素绊住脚
  8. 使用Eclipse切换TFS工作区
  9. 设置 iOS 应用的图标和名称
  10. html 二维表_焦虑症自测量表SAS焦虑症自测表
  11. 阿里最新组织架构大轮岗,主要涉及HR线
  12. 医院耗材管理系统开发_15
  13. 基于SSM实现手机销售商城系统
  14. REST-assured简介
  15. linux内核空间和用户空间认识和区别
  16. Teaching Machines to Read and Comprehend
  17. Web上的推箱子游戏Sokoban
  18. Flutter For App——一个简单的豆瓣APP
  19. 【完整代码】用HTML/CSS制作一个美观的个人简介网页
  20. [Layui]主页tab选项卡操作(刷新页面,刷新选项卡,关闭,关闭其他,全部关闭)

热门文章

  1. php date('Y-m-d H:i:s',time())获取时间不对问题解决
  2. linux中ls l wc,linux wc命令有什么用
  3. C语言中,a+=a-= a*a与a+=a-=a*=a
  4. 从零开始学习CANoe(五)—— 设计panel
  5. matlab gui excel,matlab在GUI中生成excel文件
  6. 谷歌地图商户客户数据提取:G-Business Extractor
  7. 常见的人工神经网络模型,人工智能神经网络模型
  8. 导数大题练习(2023年高考真题)
  9. 西门子医疗投资超10亿元加码深圳基地;赛莱默75亿美元完成收购懿华水处理;希尔顿集团在华引入两个新品牌 | 美通企业周刊...
  10. html超链接去虾线,教你三个快速去除虾线的小妙招