-
Java学生管理系统功能结构图
2019-06-17 08:51:20利用Java SE基本知识是开发【学生信息管理系统】。本系统包括登录注册、系统设置(设置学校信息、设置状态栏信息、修改用户密码)、数据操作(增加学生记录、编辑学生记录、删除学生记录、浏览学生记录)、查询学生...利用Java SE基本知识是开发【学生信息管理系统】。本系统包括登录注册、系统设置(设置学校信息、设置状态栏信息、修改用户密码)、数据操作(增加学生记录、编辑学生记录、删除学生记录、浏览学生记录)、查询学生(按学号查询、按姓名查询、按班级查询、按系部查询)、人数统计(按性别统计人数、按班级统计人数、按系部统计人数)等功能。
-
JAVA学生管理系统
2020-12-05 18:38:55学生基本信息和学生成绩的管理 学生基本信息:姓名、学号、专业、班级、所属院系。 各科成绩:高等数学、英语、数据结构、计算机组成原理、面向对象程序设计 系统可以完成对各类信息的添加、修改、删除等功能。 成绩... -
java学生管理系统
2013-10-27 22:58:29通过学生 教师或管理员身份登录学生管理系统 实现学生信息注册 学生选课 学生系部班级信息管理 学生课程查询删除修改等功能 教师信息管理功能 商业模式 分控制层 模型层 视图层结构 构建数据库信息 所上传内容需要和... -
java学生信息管理系统
2018-07-13 14:53:00java学生信息管理系统:实现功能: 1,登录系统时-要登录,注册; 2,对学生:(1)查询所有,查询年级;(2)增加学生,修改学生信息;(3)删除学生,(4)退出系统 单纯javase,没用swing,纯控制台查看 -
java学生管理系统分享
2019-12-29 19:25:54此项目为博主自主研发的学生管理系统,包含了登录,注册,公告,教师,学生,消息,班级等多个模块的管理,也利用iview-admin提供的权限内容,对不同的角色进行了权限分配,也实现了图片上传,文件导入导入等这些...项目描述
此项目为博主自主研发的学生管理系统,包含了登录,注册,公告,教师,学生,消息,班级等多个模块的管理,也利用iview-admin提供的权限内容,对不同的角色进行了权限分配,也实现了图片上传,文件导入导入等这些零散的功能。
项目不大,但前台vue的确是一个非常不错的框架,一步一个坑,学习到了很多。运行环境
jdk8+jetty+mysql+eclipse+maven+nodejs(IntelliJ IDEA,tomcat 应该也可以,可以尝试一下)
项目技术
spring+spring mvc+mybatis+iview-admin+vue+shiro
项目截图
后端截图
前端截图
运行效果
注意事项
1.有且只有一个超级管理员admin,密码 admin,对数据库操作不要对其删除,也不建议多添加。
2.请先启动后台项目再启动vue项目,后台端口为8080(不要修改),vue项目启动端口便会自动为8081,我不知道前台端口如何配置,有懂的可以自行配置。
3.vue项目需要安装node.js,百度官网即可安装。nodejs环境必须安装
4.前台启动步骤,请参考此文档https://www.cnblogs.com/webdom/p/8780890.html,
在根目录中按照 shift+右键,然后选择“在此处打开命令窗口”输入 npm run dev 启动
注意npm install 安装相关的模块包,这一步应该已经安装好了,请跳过此步骤
npm run dev启动后会下载插件,比较慢,请耐心等待
加入我们
如果有需要,欢迎可以加入我们的QQ群!(QQ搜索 1074281704, 加入我们的QQ群吧!)
有任何问题,也可以加入我们的QQ群,欢迎交(che)流(dan)! -
Java学生信息管理系统
2020-09-25 14:06:06(无数据库)txt文件进行保存数据有完整的登录注册和学生信息录入界面1.登录界面:有登录,注册,重置功能,实现用户登录和无用户人员注册登录账号以及登录密码,注册完成的账号密码可登录系统,重置按钮拥有对输错... -
学习做学生管理系统——java swing+Mysql 第三章(注册功能+优化代码)
2019-07-29 15:05:22学习做学生管理系统——java swing+Mysql 第二章(登录功能) 这一章将会对注册功能进行重点讲解,在讲解的同时,优化原先的代码。 在讲解实现功能时,我要先说明一下,我的注册功能是基于什么思路来进行注册的。 1.我...日常回顾上一章内容(有需要可以回去看看)
学习做学生管理系统——java swing+Mysql 第二章(登录功能)这一章将会对注册功能进行重点讲解,在讲解的同时,优化原先的代码。
在讲解实现功能时,我要先说明一下,我的注册功能是基于什么思路来进行注册的。
1.我的注册是有条件的注册,不是随便注册,根据工号来注册账号
2.每个工号限制帐号数量
3.禁止重复帐号和重复使用工号
如下图,我特地建了新表access,用于存放工号信息和工号拥有的帐号数量,注册将会先根据工号搜索access表,在根据帐号搜索账号表,当条件都符合的时候,注册功能才开始进行。(当然如果自己有其他的需要可以根据我后续给出的代码进行相应的修改)
为了代码的简洁,我在工程下面新建了两个类,main.java是前两章内容,这次的注册功能是额外建的register类,为了方便我把数据库连接用的帐号密码那些信息放到Mysql类
把数据库用的帐号密码这些信息放到一个新的类,就不用再后续写各种功能的时候重新定义,可以直接调用
Mysql.java的内容public class Mysql { static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/StudentManage?useSSL=false&serverTimezone=UTC"; static final String USER = "root"; static final String PASS = "123"; }
现在开始说明register.java的内容,也是本章要说的重点
先上图看最终成果
在建好的class类文件后,定义注册功能要用的窗口,添加上你所需要的一切信息,标签,输入框,按钮等东西(不记得怎么添加组件的记得回看第一章,或者百度),这里直接上代码public class register { public void reg() { JFrame jf=new JFrame("注册"); jf.setSize(350, 250); JPanel jp=new JPanel(); jf.add(jp); jp.setLayout(null); JLabel acc=new JLabel("帐号"); JLabel pass=new JLabel("密码"); JLabel id=new JLabel("工号"); jp.add(pass); jp.add(id); jp.add(acc); acc.setBounds(40, 20, 80, 25); pass.setBounds(40, 60, 80, 25); id.setBounds(40, 100, 80, 25); JTextField text1=new JTextField();//帐号输入 JPasswordField text2=new JPasswordField();//密码输入 JTextField text3=new JTextField();//工号输入 text1.setBounds(80, 20, 165, 25); text2.setBounds(80, 60, 165, 25); text3.setBounds(80, 100, 165, 25); jp.add(text1); jp.add(text2); jp.add(text3); JButton regButton=new JButton("注册");//注册按钮 regButton.setBounds(125, 150, 80, 20); jp.add(regButton); jf.setVisible(true); Mysql sql=new Mysql();//为后续调用数据库信息 } }
这时候就已经画好程序框图了,接下来就是添加实用功能。
还是同样的步骤,给按钮编写触发regButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { } });
为了实现上述功能,需要对三个输入框进行数据的读取
String s1=text1.getText().toString();//账号获取 String s2=new String(text2.getPassword());//密码获取 String s3=text3.getText().toString();//工号获取
由于我个人为了实现帐号注册的要求,所以我就编写了4个状态和一个控制量
PreparedStatement stmt1=null; PreparedStatement stmt2=null; PreparedStatement stmt3=null; PreparedStatement stmt4=null; int i;//注册限制
连接数据库并且实现注册功能(注释在代码里面)
try { Class.forName(sql.JDBC_DRIVER);//sql.都是直接调用原先写的mysql.java c = DriverManager.getConnection(sql.DB_URL,sql.USER,sql.PASS); if(s1.length()==0||s2.length()==0||s3.length()==0) { JOptionPane.showMessageDialog(null, "还有信息未填", "错误", ERROR_MESSAGE);//判断是否信息填写完整 } else if(s1.length()!=0&&s2.length()!=0&&s3.length()!=0) { //当信息填写完整时 String sql1="SELECT * FROM access where id=?"; stmt1=c.prepareStatement(sql1); stmt1.setString(1, s3); ResultSet rs1 = stmt1.executeQuery(); if(rs1.next()) {//判断工号是否正确 i=rs1.getInt("acc_num");//读取工号是否有帐号 if(i==0) {//没有就进行注册 String sql2="SELECT * FROM account where user=?"; stmt2=c.prepareStatement(sql2); stmt2.setString(1, s1); ResultSet rs2 = stmt2.executeQuery(); if(!rs2.next()) {//判断帐号是否已经注册过 JOptionPane.showMessageDialog(null, "注册成功"); String sql3="INSERT INTO account (user,password,id) VALUES (?,?,?)"; stmt3=c.prepareStatement(sql3); stmt3.setString(1, s1); stmt3.setString(2, s2); stmt3.setString(3, s3); stmt3.executeUpdate(); String sql4="UPDATE access SET acc_num=? WHERE id=?"; stmt4=c.prepareStatement(sql4); stmt4.setString(1, "1"); stmt4.setString(2, s3); stmt4.executeUpdate(); } else {//帐号已经存在,跳转提醒 JOptionPane.showMessageDialog(null, "账号已经存在", "错误", ERROR_MESSAGE); } } else {//工号已经注册过帐号,跳转提醒 JOptionPane.showMessageDialog(null, "工号已经被使用", "错误", ERROR_MESSAGE); } } else {//输入工号错误,跳转提醒 JOptionPane.showMessageDialog(null, "工号有误", "错误", ERROR_MESSAGE); } } }catch(Exception e1) { System.err.println( e1.getClass().getName() + ": " + e1.getMessage() ); System.exit(0); }
把这些整合起来,最后的完整版本
public class register { public void reg() { JFrame jf=new JFrame("注册"); jf.setSize(350, 250); JPanel jp=new JPanel(); jf.add(jp); jp.setLayout(null); JLabel acc=new JLabel("帐号"); JLabel pass=new JLabel("密码"); JLabel id=new JLabel("工号"); jp.add(pass); jp.add(id); jp.add(acc); acc.setBounds(40, 20, 80, 25); pass.setBounds(40, 60, 80, 25); id.setBounds(40, 100, 80, 25); JTextField text1=new JTextField();//帐号输入 JPasswordField text2=new JPasswordField();//密码输入 JTextField text3=new JTextField();//工号输入 text1.setBounds(80, 20, 165, 25); text2.setBounds(80, 60, 165, 25); text3.setBounds(80, 100, 165, 25); jp.add(text1); jp.add(text2); jp.add(text3); JButton regButton=new JButton("注册");//注册按钮 regButton.setBounds(125, 150, 80, 20); jp.add(regButton); jf.setVisible(true); Mysql sql=new Mysql(); regButton.addActionListener(new ActionListener() { private int ERROR_MESSAGE; public void actionPerformed(ActionEvent e) { String s1=text1.getText().toString();//账号获取 String s2=new String(text2.getPassword());//密码获取 String s3=text3.getText().toString();//工号获取 Connection c=null; PreparedStatement stmt1=null; PreparedStatement stmt2=null; PreparedStatement stmt3=null; PreparedStatement stmt4=null; int i;//注册限制 try { Class.forName(sql.JDBC_DRIVER); c = DriverManager.getConnection(sql.DB_URL,sql.USER,sql.PASS); if(s1.length()==0||s2.length()==0||s3.length()==0) { JOptionPane.showMessageDialog(null, "还有信息未填", "错误", ERROR_MESSAGE); } else if(s1.length()!=0&&s2.length()!=0&&s3.length()!=0) { String sql1="SELECT * FROM access where id=?"; stmt1=c.prepareStatement(sql1); stmt1.setString(1, s3); ResultSet rs1 = stmt1.executeQuery(); if(rs1.next()) { i=rs1.getInt("acc_num"); if(i==0) { String sql2="SELECT * FROM account where user=?"; stmt2=c.prepareStatement(sql2); stmt2.setString(1, s1); ResultSet rs2 = stmt2.executeQuery(); if(!rs2.next()) { JOptionPane.showMessageDialog(null, "注册成功"); String sql3="INSERT INTO account (user,password,id) VALUES (?,?,?)"; stmt3=c.prepareStatement(sql3); stmt3.setString(1, s1); stmt3.setString(2, s2); stmt3.setString(3, s3); stmt3.executeUpdate(); String sql4="UPDATE access SET acc_num=? WHERE id=?"; stmt4=c.prepareStatement(sql4); stmt4.setString(1, "1"); stmt4.setString(2, s3); stmt4.executeUpdate(); } else { JOptionPane.showMessageDialog(null, "账号已经存在", "错误", ERROR_MESSAGE); } } else { JOptionPane.showMessageDialog(null, "工号已经被使用", "错误", ERROR_MESSAGE); } } else { JOptionPane.showMessageDialog(null, "工号有误", "错误", ERROR_MESSAGE); } } }catch(Exception e1) { System.err.println( e1.getClass().getName() + ": " + e1.getMessage() ); System.exit(0); } } }); } }
接着就是返回到main.java,也就是登录界面的class类,继续在原有的基础上,编写注册按钮的触发,直接调用register.java的功能就完成了。
调用范例
regButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { register re=new register(); re.reg(); } });
这样一个登录界面就算大工搞成了,下一次就是制作管理界面了。
-
学生管理系统_Java实现
2019-06-23 00:47:01这是一个使用Java语言和SQLServer数据库实现的学生管理系统,系统实现了学生信息查询、修改、添加、删除功能,实现了管理员账号注册、登录、修改密码,退出登录的功能。 -
学生管理系统(JAVA版) —— 注册页面
2020-07-27 10:25:41在登录页面点击注册后,跳转到如下注册页面,该页面可完成注册功能 如果要注册的用户名已存在,则在下方显示提示,如图: 如果用户名不存在,则提示注册成功,如图: 点击返回,可回到登录界面 UI界面设计如下: ...在登录页面点击注册后,跳转到如下注册页面,该页面可完成注册功能
如果要注册的用户名已存在,则在下方显示提示,如图:
如果用户名不存在,则提示注册成功,如图:
点击返回,可回到登录界面
UI界面设计如下:package ui; import java.awt.Container; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import daoImp.AccountDaoImp; import entity.Account; public class Register extends JFrame implements ActionListener { JLabel title,account,password,lbl; JTextField act,pwd; JButton rgt,cla,rtn; JPanel line,line1,line2,line3,line4; public Register() { // TODO Auto-generated constructor stub Container con=getContentPane(); con.setLayout(new GridLayout(5,1)); line=new JPanel(); line1=new JPanel(); line2=new JPanel(); line3=new JPanel(); line4=new JPanel(); title=new JLabel("欢迎进入学生管理系统"); title.setFont(new Font("黑体", Font.PLAIN, 20)); account=new JLabel("账号:"); password=new JLabel("密码:"); lbl=new JLabel(); act=new JTextField(10); pwd=new JTextField(10); rgt=new JButton("注册"); rgt.addActionListener(this); cla=new JButton("清空"); cla.addActionListener(new ActionListener() { //点击清空按钮,将账号密码和提示标签置空 @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub act.setText(""); pwd.setText(""); lbl.setText(""); } }); rtn=new JButton("返回"); rtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub setVisible(false); new Enter().setVisible(true); } }); line.add(title); line1.add(account); line1.add(act); line2.add(password); line2.add(pwd); line3.add(rgt); line3.add(cla); line3.add(rtn); line4.add(lbl); con.add(line); con.add(line1); con.add(line2); con.add(line3); con.add(line4); setTitle("注册"); setSize(340,210); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub AccountDaoImp adi=new AccountDaoImp(); Account ac=new Account(); //实例化一个账户对象,暂存输入的账户和密码 if(adi.search(act.getText())!=null) { //调用查找函数,判断输入的账户是否与已存在的重复 lbl.setText("该用户已存在"); }else { //不存在账户名重复,则将输入的账户密码保存到数据库,注册成功 ac.setName(act.getText()); ac.setPassword(pwd.getText()); if(adi.add(ac)==true) { lbl.setText("注册成功"); } } } }
重写AccountDaoImp类的添加方法,实现注册功能*(省略查找方法,请查看上一步登录界面内容)*:
package daoImp; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import dao.accountDao; import db.DBCon; import entity.Account; public class AccountDaoImp implements accountDao { Connection cn; PreparedStatement psm=null; private ResultSet rs; @Override public boolean add(Account account) { // TODO Auto-generated method stub boolean flag=false; DBCon dbcon=new DBCon(); cn=dbcon.getConnection(); String sql="insert into account(name,password) values(?,?)"; try { psm=cn.prepareStatement(sql); psm.setString(1, account.getName()); //将account对象的name值置于sql语句的第1个?处 psm.setString(2, account.getPassword());//将account对象的password值置于sql语句的第2个?处 psm.executeUpdate(); cn.close(); psm.close(); flag=true; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return flag; } @Override public Account search(String name) { // TODO Auto-generated method stub return null; } }
-
java 学生简易登录,注册管理系统
2019-08-12 18:24:221、编写程序:实现登录注册功能,程序一进来如果没有账号就选择注册,如果有账号就直接登录。 注册功能的时候要输入注册账号、设置密码、输入确认密码、输入邮箱号码、输入性别、输入个人简介、输入你的身份证号码... -
Java EE 学生作业管理系统
2020-06-18 22:53:10Java EE 学生作业管理系统 该学生作业管理系统用到的技术:Springboot ,Jsp ,Jpa。 一、功能: 1、学生,教师登录注册; 2、教师发布作业,查看作业,删除作业; 3、学生查看作业,提交作业。 二、界面展示 1、登录... -
java实现学生管理系统(控制台)
2018-12-26 20:24:26编写学生管理系统,学生信息(学员信息:学号、姓名、年龄、性别、家庭住址,其他属性可以自行给定)以对象方式存入数组中,利用控制台显示; 需求:1.用户需要登陆,如果无法登陆的用户需要先注册(登陆,注册,... -
java学生选课系统
2020-12-24 14:12:50(2)本系统将用户角色分为两种,分别为学生模块和管理模块,学生可以选择课程,管理员可以添加、修改、删除课程。 开发框架 spring+struts+hibernate mysql数据库 功能包含用户个人信息维护 , 管理员添加课程 ,... -
java实现学生管理系统
2017-08-14 22:44:351、首先先创建两张表admin和student表--管理员 create table admin( mid int primary key, username varchar2(25), pwd varchar2(20)--一定注意最后一行没有逗号 ...--由于这里我们不做注册验证的功能 --所 -
Java实现简单的学生管理系统
2019-04-15 20:07:11在java控制台上实现学生信息的管理 环境:ide + mysql 数据库: 学生的一张表 老师的一张表: 目录建成后是这样的: 实现的功能有: 教师登陆 1、学生信息添加 2、学生信息查看 3、学生信息删除 4、学生信息... -
HNUST Java 数据库系统课程设计:学生管理系统
2021-01-27 23:27:21目录实验要求叙述系统需求分析系统功能分析系统功能模块设计(划分)与其它系统的关系数据流程图数据库设计数据库需求分析...功能模块的实现界面演示及讲解(GUI界面设计)注册界面登陆界面学生管理系统界面组件(按钮... -
Java +servlet+mysql 学生管理系统
2019-07-13 13:36:41引言:学生管理系统属于小型的Java web系统,由java web+mysql+servlet实现,采用mvc的设计模式,jdbc编程,具备增删改查以及模糊查询,用户登陆注册的功能,版本为eclipse版,如果需要别的版本如idea版,系统架构... -
java构建学生管理系统(一)
2018-01-23 09:57:00用java搭建学生管理系统,重要还是对数据库的操作,诸如增删改查等。 1.基本的功能: 老师完成对学生信息的查看和修改,完成对班级的信息的概览。 学生可以看自己的成绩和对自己信息的修改。 学生和老师有完好的... -
java+mysql学生管理系统(附源码)
2020-03-08 16:31:18需要不用数据库的学生管理系统的小伙伴,请移步至:java学生管理系统(swing) (没用数据库,附源码) 事先声明:代码简易,只是实现基本的增删改查功能,大佬们轻点喷 相较于我写的没带数据库的代码,这次增加了几项... -
CourseManagementSystem:一个学生注册系统,它使用Java OOP原理在机构中管理学生数据-源码
2021-02-13 09:30:40一个学生注册程序,用于管理诸如注册学生,向学生的日程安排中添加课程,取消课程,设置成绩以及打印学生的日程安排等管理功能。 添加/删除学生 添加/删除学生课程 打印/排序学生名单 等级 时间表 客观的 构造以下... -
【每日Java】注册登录系统——学生信息管理系统的实现详解
2020-12-08 20:12:02登录注册系统的实现 1、功能 用户输入电话(用户名)和密码可以: 1、查看账户 2、登录 3、注册 4、注销 5、退出系统 2、我们可以把系统分成几层,方便进行实现 第一层:运行层Run类:负责运行并控制系统。 第... -
Java学生信息管理系统源码(含数据库脚本等).zip
2019-12-24 11:22:27学生信息管理系统 功能说明 学生信息管理,包括学生、班级、院系、课程、成绩等的管理。 本程序仅供学习食用。 工程环境 JDK IntelliJ IDEA MySQL 运行说明 1、安装JDK。 2、导入SQL脚本并配置。 使用前...
-
2021-02-26
-
LAN8720A中文手册,LWIP STM32F407+LAN8720
-
如何写好PRD?站在用户角度是关键
-
牛牛量化策略交易
-
标准化装配式配电房辅控巡检系统.doc
-
手机号银行卡格式化
-
培训效果调查表.docx
-
全国各地企业补贴政策.xlsx
-
c安卓开发视频教程!我把所有Android第三方库整理成了PDF,醍醐灌顶!
-
程序员必修基础套餐课
-
Java数据类型扩展
-
画出目标的位置,当箱子被全部推到目标位置时,显示游戏结束界面。在游戏结束界面按下Enter键返回菜单界面,再次进入地图界面将初始化界面。
-
【Python-随到随学】 FLask第一周
-
libFuzzer视频教程
-
基于不变矩特征的二维码模糊类型辨识算法
-
在 Linux 上构建企业级 DNS 域名解析服务
-
基于Qt的LibVLC开发教程
-
用C语言编写multipart/form-data实现上传文件
-
谷歌浏览器跳转IE
-
物联网基础篇:快速玩转MQTT