JAVA+GUI界面+MysSQL的学生信息管理系统

这篇具有很好参考价值的文章主要介绍了JAVA+GUI界面+MysSQL的学生信息管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学生信息管理系统

一、背景及目的要求

本文将介绍如何使用Java Swing GUI库和MySQL数据库来编写一个简单的学生信息管理系统,同时也将讲解GUI的基本布局、事件处理和MySQL数据库的连接、数据操作等知识。编写java和sql语句需要安装JDKMySQL数据库。

二、设计思路

首先是系统登录界面,用户选择账号类型(教师账号、学生账号、管理员账号)。如果账号和密码与数据库系统中的账号数据一致,则成功进入系统;如果账户不正确则弹出密码错误窗口,当密码错误三次,登录界面锁死无法再次登录。
学生账号登录成功:进入学生信息管理系统,可选择查看个人信息并修改、查看个人所有科目成绩、选择下学期的课程、退出登录功能。
老师账号登录成功:进入教师管理系统,可以选择查看个人信息并修改、查看各班级各学科所有学生成绩、查询教学工作、录入学生的成绩、退出登录功能。
管理员账户登录成功,进入管理员系统,可选择增加或删除学生、增加或删除教师、增加或者删除课程、退出登录功能。

附:功能流程图

2、教师登录成功后,有以下功能:(登录界面用jframe),java,数据库,mysql,开发语言,后端

附:E-R图

2、教师登录成功后,有以下功能:(登录界面用jframe),java,数据库,mysql,开发语言,后端

三、设计实现及代码分析

系统所有程序都在一个学生信息管理系统包,共有九个类。代码过于繁多仅展示主要内容的部分组件属性(绝对位置、颜色、字体、加入监听等)设计在此处不再展示。
(一)数据库连接类(Shujuku.java)用来连接关闭数据库。

public class Shujuku {
public Shujuku() {		
		try { 
Class.forName("com.mysql.jdbc.Driver");				DriverManager.getConnection("jdbc:mysql://localhost:3306/stusystem","root","gyq4674");
		} catch (Exception e) {
			e.printStackTrace();
	}   }
public static Connection getConnection() {	//连接
try {			
Return DriverManager.getConnection("jdbc:mysql://localhost:3306/stu
system","root","gyq4674");
		} catch (SQLException e) {
			e.printStackTrace(); }
	}
		return null;		
	}
public static void close(Connection conn, Statement statement, ResultSet result) {//释放资源
	try {  if (result != null) {   result.close(); }			
			if(statement != null) {  	statement.close(); }	
			if(conn!=null) {	  conn.close(); }
} catch (SQLException e) {     e.printStackTrace();
}	}	}

(二)是数据库登录GUI界面代码
系统登录:登陆界面设计的类(LoginGUI.java)和数据库连(Shujukull.java),使用Swing中各类型组件设计登陆界面,单选按钮确定用户类别,监听“确认”按钮并运行查看数据库admin表的用户账户密码是否与输入的一致。密码正确则利用多线程的休眠sleep语句延缓1.5秒执行“提示密码正确面板”语句,而后进入对应的分系统。

public class LoginGUI {
static String account=null;
static String ypass=null;
static int num;
static String role="学生" ;//定义默认登录角色为学生
public void denglu() {
	JFrame jf = new JFrame("登录界面");
		jf.setBounds(500, 300, 600, 450);
		jf.setLayout(null);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JLabel l = new JLabel("欢迎登录学生信息管理系统");//欢迎语
		jf.add(l);
		ButtonGroup bg=new ButtonGroup();//对象选择
		JRadioButton jb1=new JRadioButton("学生",true);
		JRadioButton jb2=new JRadioButton("教师",false);
		JRadioButton jb3=new JRadioButton("管理员",false);
		ActionListener actionListener=new ActionListener() {//对角色按钮监听   @Override
	public void actionPerformed(ActionEvent e) {		
	if(e.getActionCommand().equals("教师")) {   role="教师";	
		}else if(e.getActionCommand().equals("管理员")) {role="管理员";
}else {role="学生";
} } };		
		JLabel l1 = new JLabel("用户名:");	//账户密码
		JLabel l2 = new JLabel("密  码:");
		JTextField txt1 = new JTextField("");
JPasswordField pass = new JPasswordField("");//密码框*号
		pass.setEchoChar('*');
		jf.add(l1);	jf.add(l2);jf.add(txt1);	jf.add(pass);
		jf.setVisible(true);
		JButton btn = new JButton("登录");
		btn.addActionListener(new ActionListener() {
		@Override
		public void actionPerformed(ActionEvent e) {
			boolean b=false;
			Connection con=学生信息管理系统.Shujuku.getConnection();			Statement st = null;
			ResultSet rs = null;
			try { st=con.createStatement();
			rs = st.executeQuery("SELECT * FROM accpass WHERE uso='"+txt1.getText()+"'AND role='"+role+"'");
			while(rs.next()) {//只有在遍历时才能用geystring			if(rs.getString("pass").equals(String.valueOf(pass.getPassword()))) {			b=true;
}}} catch (SQLException e1) {
 e1.printStackTrace();
}finally{  Shujuku.close(con, st, rs);
}			num++;//密码输入次数
if(b==false) {					
			if (num >=3 ) {
			JOptionPane.showMessageDialog(jf, "您已经输错三次!"+"\n"+" 此账户已冻结!");//弹出消息框
			txt1.setEditable(false);// 锁住文本框
			pass.setEditable(false);					
			}else { 
JOptionPane.showMessageDialog(jf, "密码错误");
				}	}
			if (b) {// 登录成功页面					
				num=0;
				jf.setVisible(false);
				JFrame jf1 = new JFrame();
				JLabel lb1 = new JLabel("用户名&密码正确");
				JLabel lb2 = new JLabel("正在登录中.....");
				f1.setVisible(true);
			new Thread(){//延时页面
				public void run(){
					try {
					 Thread.sleep(1000);
						jf1.setVisible(false);// 进入主页面
					if(role.equals("学生")) {
					new StudentZhuGUI().zhu(txt1.getText(),"学生");						}if(role.equals("教师")) {
						newTeacherZhuGUI().zhu(txt1.getText());							}if(role.equals("管理员")) {
						new AdminZhuGUI().zhu(txt1.getText());
						}		
						} catch (InterruptedException e) { }}
					}.start(); 
				}}});
		JButton btn2 = new JButton("取消");//关闭系统
		btn2.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}});
		jf.add(btn);
		jf.add(btn2);
	}}

(三)学生系统主页面
学生管理系统:学生系统GUI界面设计类(StudentZhuGUI.java)、操作接口类(Student_interf.java)、接口实现类(Student_interf_imp.java)。系统的GUI界面,使用JFrame的BorderLayout布局的北边栏作为导航界面(JPanel使用流式布局添加四个功能以及首页和退出按钮)。在接口实现类里重写三个功能方法,各个方法里编写所需的GUI界面以及功能实现代码和SQL语句,方法的返回值类型为JPanel,在StudentZhuGUI.java界面接收其返回值并根据监听的按钮切换JFrame的中间主面板。

public class StudentZhuGUI {//学生系统
	public void zhu(String stuno,String role) {//学生首页面,		JFrame jf = new JFrame("学生信息管理系统");
		JPanel jpn1=new JPanel();	//页首
		JLabel jb=new JLabel("学生信息系统",0);
		JButton jbt1=new JButton("首    页");
		JButton jbt2=new JButton("个人信息");
		JButton jbt3=new JButton("查询成绩");
		JButton jbt4=new JButton("网上选课");
		JButton jbt5=new JButton("退    出");
		jpn1.add(jbt1);jpn1.add(jbt2);
	jpn1.add(jbt3);jpn1.add(jbt4);
		jpn1.add(jbt5);	jf.add(jpn1,BorderLayout.NORTH);		
		JPanel jpm=new JPanel();	//中间
		jpm.setLayout(new BorderLayout());//使得插入jpm的面板位于居中
		JLabel jl=new JLabel("欢迎进入学生管理系统!",0);
		ActionListener lis=new ActionListener() {
		@Override
		public void actionPerformed(ActionEvent e) {
			String actioncommend = e.getActionCommand();
			JPanel panel=null;
			switch (actioncommend) {
			case "个人信息":
				jpm.removeAll();jpm.repaint();//清空面板内容//重写		jpm.add(newStudent_interf_imple().personalinformation(jf,stuno));//加入个人信息面板
				jpm.updateUI();break;//刷新
				case "查询成绩":
				jpm.removeAll();jpm.repaint();//清空面板内容//重写
	jpm.add(new Student_interf_imple().lookgrade(jf, stuno));//加入个人信息面板
				jpm.updateUI();//刷新					break;
			case "网上选课":	
				jpm.removeAll();jpm.repaint();//清空面板内容//重写
				jpm.add(new Student_interf_imple().electivecourse(jf, stuno));//加入个人信息面板
					jpm.updateUI();//刷新
				break;					
				case "首    页"://返回操作主页面	
					jf.setVisible(false);	zhu(stuno,role);break;
				case "退    出"://返回操作主页面	
					jf.setVisible(false);new LoginGUI().denglu();break}		}};}}

注:其余界面的代码过多不在暂时,需要JAVA源码的私信发送。

四、程序功能测试及截图

2、教师登录成功后,有以下功能:(登录界面用jframe),java,数据库,mysql,开发语言,后端
2、教师登录成功后,有以下功能:(登录界面用jframe),java,数据库,mysql,开发语言,后端

五、课程设计总结

本系统拥有三个子系统:学生管理、教师管理、管理员管理,通过可视化GUI界面和数据库连接实现完整学生成绩管理功能。登录注册功能实现不同用户的不同操作权限。系统未关闭也可再次登录。待改进之处包括整理代码包结构,添加教师课程系统以及加强学生选课约束。通过此项目,整合了两个学期的知识并进行了综合应用,通知这个项目提升了GUI和数据库的应用能力,并且锤炼了编程思维和算法实现能力。文章来源地址https://www.toymoban.com/news/detail-761485.html

注意:页面篇幅有限,仅仅展示部分项目报告+JAVA源码,有需要的私信我!

到了这里,关于JAVA+GUI界面+MysSQL的学生信息管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 面向对象程序设计(Java)课程设计——学生信息管理系统(GUI+文件)

    一、团队成员及任务 组长:宗庆亮  计科(智能)22-1  202203200021 负责模块:静态登录界面实现以及学生信息系统管理界面的创建 组员:郑金洲  计科(智能)22-1  202203200022 负责模块:增加,删除,修改以及查询功能的实现 团队博客:面向对象程序设计(Java)课程设计——学生

    2024年02月03日
    浏览(43)
  • 学生信息后台管理系统(GUI)

    通过制作学生信息后台管理系统熟悉java中JDBC和CUI(图形用户接口)的使用。 1.Eclipse IDE Version: 2020-12 (4.18.0) 2.mysql 3.Navicat Premium 15(数据库管理工具) 4.WindowBuilder(java图形用户界面插件) 具体下载和使用可以参考以下链接: 下载安装WindowBuilder插件教程_jay_musu的博客-CSDN博客 学生信息

    2024年02月07日
    浏览(31)
  • 基于Python guI的学生信息管理系统的设计与实现

            讲述的是一个使用Python GUI的学习资料管理工具。通过使用Python的Tkinter库和mysql数据库,这个工具可以方便地记录、检索、更新学习资料。本文详细描述了系统的架构设计和实现过程,并对系统进行了功能测试和性能测试。结果表明,该系统具有良好的用户界面和

    2024年02月03日
    浏览(29)
  • 学生信息管理系统(c++,可视化界面,文件操作)

    大一期末作业,老师要求设计一个学生信息管理系统,还要可视化界面。说实话,之前从来没接触过可视化界面,一直都是黑窗口,还以为可视化界面离我还远,直到我开始去了解,去网上查资料,搜索自学,才发现…额,原来这么简单,只要会写程序就可以做,只是老师从

    2024年02月12日
    浏览(31)
  • 学生成绩管理系统(JAVA_GUI+Mysql)

    提示:该系统是基于Java界面编程+mysql的 源码在这里,需要的自取 SAMS分享包 提取码: 49ji SAMS学生成绩管理系统功能展示 IDEA开发工具 Java界面编程 jdk1.8 mysql8.0.26 Druid数据连接池 MVC三层架构模型 exe4j可执行文件生成工具(将jar包变成可运行的exe程序) 三层架构简单介绍: 三层

    2024年02月06日
    浏览(36)
  • Java基于MVC的学生成绩管理系统(mysql+GUI)

    目录   一、实验目的及要求 二、实验内容 三、结果展示 四、源代码 1 .  实验要求:管理系统采用MVC结构,实验前对可能出现的数据库连接、事件响应等问题预先分析,确定调试步骤和测试方法,编写源程序,实现可行的应用程序,尽可能考虑程序的健壮性,对实验中出现

    2024年02月06日
    浏览(34)
  • 【JAVA GUI+MYSQL]社团信息管理系统

    本社团信息管理系统 主要实现登录注册、管理员信息管理、社团用户信息管理、用户申请信息管理功能模块。 目录 1.系统主要功能介绍 2. 数据库概念模型设计 3.具体功能模块的实现   3.1模型类 3.1.1Student.java 3.1.2User .java 3.1.3Club.java 3.2页面类 3.2.1LoginInterface.java 3.2.2Us

    2024年02月02日
    浏览(28)
  • 学生信息管理系统——JAVA

          学生信息管理系统是一个实现信息管理的多功能平台,本文主要介绍一个简易功能的java 程序。 1、添加学生信息。 2、删除学生信息。 3、查看学生信息。 4、修改学生信息。 1、创建一个标准的学生类 2、分布实现功能         (1)添加学生信息         (2)删除

    2024年02月08日
    浏览(38)
  • 【JAVA】学生信息管理系统

    目录 前言 一、环境搭建 二、功能实现 1.学生信息类的创建 2.学生信息的添加功能 3.学生信息的删除功能 4.学生信息的修改功能  5.学生信息的查看功能  三、主类的调用 1.界面的搭建 2.学生端和教师端 3.系统和功能的选择 总结         JAVA实现的学生信息管理系统(包含教

    2024年02月03日
    浏览(39)
  • java学生成绩管理信息系统

    学生成绩管理信息系统是一个基于Java Swing的桌面应用程序,旨在方便学校、老师和学生对学生成绩进行管理和查询。本文档将提供系统的详细说明,包括系统特性、使用方法和技术实现。 添加学生信息:录入学生基本信息,包括学号、姓名、班级等。 编辑学生信息:修改学

    2024年01月18日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包