![](https://i-blog.csdnimg.cn/direct/bff6a42715cb4065b3715f496691c56a.png)
part1起始入口及功能
![](https://i-blog.csdnimg.cn/direct/9fffcd2c210e4618820c77691f0bad01.png)
//======================起始入口及功能=================================================
private Connection getConnection() throws Exception {// 加载MySQL JDBC驱动
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/stumanagementsystem?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false",
"root",
"123456");// 使用DriverManager获取数据库连接
return con;
}//数据库建立连接模块
public void main(String[] args) throws Exception {
}//main程序控制主方法
public void choise() throws Exception {
// checkmodel();
for (;;){
flag6=0;
flag5=0;
flag7=0;
System.out.println("=============================");
System.out.println("欢迎来到在线考试系统");
System.out.println("1:学员系统");
System.out.println("2:管理员系统");
System.out.println("3:退出");
System.out.println("请选择1---3:");
System.out.println("=============================");
int choise1 = sc.nextInt();
if (choise1 == 1) {
studentManagementSystem stu =new studentManagementSystem();
stu.stulogin();
} else if (choise1 == 2) {
studentManagementSystem stu =new studentManagementSystem();
stu.mangmentLogin();
}
}
}//程序入口模块
part2学生自我管理入口及功能
![](https://i-blog.csdnimg.cn/direct/fcf4ebbe67fb4a16b5649805d0982495.png)
![](https://i-blog.csdnimg.cn/direct/5778858f3ca54cffad987a457c619abd.png)
//========学生自我管理入口及功能=====================================================
public void stulogin() throws Exception {
for (;;){
flag1=0;//标签聚集地之重置标签
flag2=0;
System.out.println("您的身份是学生,请(1.登录 !) 或( 2.注册 !) 或( 3.退出 !)");
int chose1= sc.nextInt();
if (chose1==1){
System.out.println("==========");
System.out.println("登陆界面");
System.out.println("==========");
System.out.println("Name:");
String stuname = sc.next();
System.out.println("Password:");
String stupw = sc.next();
studentManagementSystem stu =new studentManagementSystem();
stu.loginjudge(stuname, stupw);//判断账号密码;
}
if (chose1==2){
zhuce();
}
if (chose1==3){
System.out.println("退出学生系统!");
break;
}
}
}//学生登录面板模块
private void zhuce() throws Exception {
System.out.println("==========");
System.out.println("注册界面");
System.out.println("==========");
Connection con = getConnection();
System.out.println("姓名:");
String zhucexingming = sc.next();
System.out.println("账号:");
int zhanghao = sc.nextInt();
System.out.println("密码:");
int mima = sc.nextInt();
PreparedStatement ps = con.prepareStatement("insert into studentmessage values (?,?,?,?)");
ps.setString(1,zhucexingming);
ps.setInt(2,zhanghao);
ps.setInt(3,mima);
ps.setInt(4,0);
int updatedRows = ps.executeUpdate(); // 这将返回受影响的行数输出结果
System.out.println("成功更新了 " + updatedRows + " 行。");
}//学生注册面板模块
private void loginjudge(String stuname, String stupw) throws SQLException {
try (PreparedStatement ps = con.prepareStatement("select name,password from studentmessage where name =?")){
ps.setString(1, stuname);
// 执行查询并获取结果集
try (ResultSet rs = ps.executeQuery()) {
// 检查是否有匹配的用户名
if (rs.next()) { // 如果有匹配项
// 从结果集中获取数据库中的用户名和密码
String Name = rs.getString("name");
String Pw = rs.getString("password");
// 比较输入的用户名和密码与数据库中的是否匹配
if (Name.equals(stuname) && Pw.equals(stupw)) {// 如果匹配,则登录成功
studentManagementSystem stu =new studentManagementSystem();
stu.studentSumSystem();
} else {
// 如果密码不匹配,则显示错误
System.out.println("密码错误!");
}
} else {
// 如果没有找到匹配的用户名,则显示错误
System.out.println("用户名不存在!");
}
}catch (SQLException e){
e.printStackTrace();
} catch (Exception e) {
throw new RuntimeException(e);
}
// ResultSet的try-with-resources语句块结束,自动关闭ResultSet
}
// PreparedStatement的try-with-resources语句块结束,自动关闭PreparedStatement
}//学生登录实现模块
private void studentSumSystem() throws Exception {
for(;flag1==0;){
flag2=0;
System.out.println("==========");
System.out.println("学生用户界面");
System.out.println("==========");
System.out.println("( 1.学生用户模块 )( 2.考试模块 )( 3.退出 )");
int choise2= sc.nextInt();
for (;flag2==0;){
if (choise2==1){
System.out.println("==========");
System.out.println("学生用户界面");
System.out.println("==========");
System.out.println("( 1.修改密码模块 )( 2.退出 )");
int choise3 =sc.nextInt();
if (choise3==1){
studentManagementSystem stu =new studentManagementSystem();
stu.changepw();
flag1=1;
break ;
}
if (choise3==2){
System.out.println("退出!");
break ;
}
}
if (choise2==2){
studentManagementSystem stu =new studentManagementSystem();
stu.kaoshi();
}
if (choise2==3){
System.out.println("退出!");
flag1=1;
break ;
}
}
}
}//学生自我管理界面
private void changepw() throws SQLException {
System.out.println("==========");
System.out.println("修改密码界面");
System.out.println("==========");
studentManagementSystem stu =new studentManagementSystem();
while (true){
if (stu.changepw1()) break;
}
}//修改密码前置模块
private boolean changepw1() throws SQLException {
System.out.println("请输入你的账号:");
String oralname =sc.next();
System.out.println("请输入你的密码:");
String oralpw=sc.next();
System.out.println("请输入你修改后的密码:");
String changepw= sc.next();
PreparedStatement ps = con.prepareStatement("select password from studentmessage where name =?");
ps.setString(1,oralname);
try (ResultSet rs = ps.executeQuery()) {
// 检查是否有匹配的用户名
if (rs.next()) { // 如果有匹配项
// 从结果集中获取数据库中的用户名和密码
String Pw = rs.getString("password");
// 比较输入的用户名和密码与数据库中的是否匹配
if ( Pw.equals(oralpw)) {// 如果匹配,则登录成功
ps = con.prepareStatement("update studentmessage set password=? where name=?");
ps.setString(1,changepw);
ps.setString(2,oralname);
int i=ps.executeUpdate();
if (i>0){
System.out.println("修改成功!");
return true;
}
} else {
// 如果密码不匹配,则显示错误
System.out.println("密码错误!");
}
} else {
// 如果没有找到匹配的用户名,则显示错误
System.out.println("用户名不存在!");
}
}catch (SQLException e){
e.printStackTrace();
}
return false;
}//修改密码实现模块
public void checkmodel() throws Exception {
studentManagementSystem stu =new studentManagementSystem();
Connection con = stu.getConnection();
String sql = "SELECT * FROM studentmessage";
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
System.out.println("=================================");
while (rs.next()) { // 遍历结果集
// 使用rs.getXXX("columnName")方法获取每一列的值,并打印出来
System.out.println("姓名: " + rs.getString("mingzi") +
" 账号: " + rs.getString("name") +
" 密码: " + rs.getString("password")
+" 分数: "+rs.getInt("grade"));
}
ps.execute();
System.out.println("=================================");
}//查询模块
part3考试入口及功能
![](https://i-blog.csdnimg.cn/direct/e1af09e4490042ca89c72e7cae73e90c.png)
//=============================================考试入口及功能=====================================================
private void kaoshi() {
try {
for (; ;){
System.out.println("==========");
System.out.println("考试界面");
System.out.println("==========");
System.out.println("( 1.开始考试 )( 2.查询考试成绩 )( 3.导出成绩 )( 4.退出 )");
int choise3= sc.nextInt();
if (choise3==1){
System.out.println("==========");
System.out.println("开始考试!");
System.out.println("==========");
System.out.println("请输入考生姓名:");
String kaoshixuesheng = sc.next();
studentManagementSystem stu =new studentManagementSystem();
stu.jisuanchengji();
stu.luruchengjiu(kaoshixuesheng, grades, finallycount);
}
//考试!!!!
if (choise3==2){
System.out.println("查询!");
System.out.println("请输入姓名:");
String name =sc.next();
Connection con = getConnection();
PreparedStatement ps = con.prepareStatement("select grade from studentmessage where mingzi=?");
ResultSet rs = ps.executeQuery();
int chaxun= rs.getInt(name);
System.out.println("你的成绩是:"+chaxun);
}
//查询成绩;
if (choise3==3){
System.out.println("导出!");
Connection con = getConnection();
String sql = "SELECT * FROM studentmessage";
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
System.out.println("=================================");
while (rs.next()) { // 遍历结果集
// 使用rs.getXXX("columnName")方法获取每一列的值,并打印出来
System.out.println(" mingzi: " + rs.getString("mingzi") +
" grade: " + rs.getString("grade") );
}
ps.execute();
System.out.println("=================================");
}
//导出成绩;
if (choise3==4){
System.out.println("退出!");
flag2=1;
break ;
}
//OUT
}
}catch (Exception e){
e.printStackTrace();
}
}
//考试模块
private int jisuanchengji() throws Exception {
int count=0;
studentManagementSystem stu =new studentManagementSystem();
Connection con = stu.getConnection();
PreparedStatement ps = con.prepareStatement("select * from kaoshiti ");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
finallycount++;//总题数
System.out.println("=====第" + count + "题=====");
System.out.println(rs.getString("topic"));
System.out.print("请输答案:");
String userAnswer = sc.next(); // 假设sc是Scanner对象
String correctAnswer = rs.getString("answer"); // 假设答案存储在answer列
if (userAnswer.equals(correctAnswer)) {
grades++;//得分题数
}
}
return grades;
}
//计算成绩模块
private void luruchengjiu(String kaoshixuesheng, int grades, int finallycount) throws Exception {
Connection con;
int finallygrade= grades * 100 / finallycount;
System.out.println(kaoshixuesheng + finallygrade + "分(每题20分)");
con = getConnection();
PreparedStatement ps = con.prepareStatement("update studentmessage set grade=? where mingzi =?");
ps.setInt(1, finallygrade);
ps.setString(2, kaoshixuesheng);
int updatedRows = ps.executeUpdate(); // 这将返回受影响的行数输出结果
System.out.println("成功更新了 " + updatedRows + " 行。");
}
//录入成绩模块
part4学员管理模块
![](https://i-blog.csdnimg.cn/direct/ef1fe251c7c842b5bcd5d36734deb741.png)
![](https://i-blog.csdnimg.cn/direct/78a4ee7011184d878ed40517da3e5d79.png)
//=========================================学员管理模块======================================
private void mangmentLogin() throws SQLException {
for (;flag6==0;){
System.out.println("您的身份是管理员,请登录!");
System.out.println("==========");
System.out.println("管理员登陆界面");
System.out.println("==========");
System.out.println("Name:");
String manname = sc.next();
System.out.println("Password:");
String manpw = sc.next();
//判断账号密码;
studentManagementSystem stu =new studentManagementSystem();
stu.manLogin(manname,manpw);
}
}//管理员登录面板模块
private void manLogin(String manname,String manpw) throws SQLException {
try (PreparedStatement ps = con.prepareStatement("select name,password from manager where name =?")){
ps.setString(1, manname);
// 执行查询并获取结果集
try (ResultSet rs = ps.executeQuery()) {
// 检查是否有匹配的用户名
if (rs.next()) { // 如果有匹配项
// 从结果集中获取数据库中的用户名和密码
String Name = rs.getString("name");
String Pw = rs.getString("password");
// 比较输入的用户名和密码与数据库中的是否匹配
if (Name.equals(manname) && Pw.equals(manpw)) {// 如果匹配,则登录成功
for (; flag5 == 0;){
flag3=0;
flag4=0;
System.out.println("==========");
System.out.println("管理员界面");
System.out.println("==========");
System.out.println("( 1.学生管理模块 )( 2.考题管理模块 )( 3.退出 )");
int choise4=sc.nextInt();
for (;flag3==0;){
if (choise4==1){
System.out.println("==========");
System.out.println("学生管理界面");
System.out.println("==========");
System.out.println("( 1.添加学员模块 )( 2.删除学员模块 )( 3.修改学员模块 )( 4.查询学员模块 )( 5.显示所有学员模块 )( 6.退出 )");
int choise5 =sc.nextInt();
if (choise5==1){
Connection con = getConnection();
addstu(con);
}
if (choise5==2){
System.out.println("请输入要删除的学生姓名:");
del();
}
if (choise5==3){
change();
}
if (choise5==4){
jingzhunchaxun();
}
if (choise5==5){
checkmodel();
}
if (choise5==6){
flag3 =1;
flag4=1;
break;
}
}
if (choise4==2){
for (;flag4==0;){
System.out.println("==========");
System.out.println("考题管理界面");
System.out.println("==========");
System.out.println("( 1.添加考题模块 )( 2.查询考题模块 )( 3.修改考题答案 )( 4.删除考题模块 )( 5.显示所有考题模块 )( 6.退出 )");
int choise5 =sc.nextInt();
if (choise5==1){
addtopic();
}
if (choise5==2){
check();
}
if (choise5==3){
changeanswer();
}
if (choise5==4){
deleatTopic();
}
if (choise5==5){
dayin();
}
if (choise5==6){
flag3 =1;
flag4=1;
break;
}
}
}
if (choise4==3){
System.out.println("退出!");
flag3=1;
flag5=1;
flag6=1;
break ;
}
}
}
} else {
// 如果密码不匹配,则显示错误
System.out.println("密码错误!");
}
} else {
// 如果没有找到匹配的用户名,则显示错误
System.out.println("用户名不存在!");
}
}catch (SQLException e){
e.printStackTrace();
} catch (Exception e) {
throw new RuntimeException(e);
}
// ResultSet的try-with-resources语句块结束,自动关闭ResultSet
}
// PreparedStatement的try-with-resources语句块结束,自动关闭PreparedStatement
}//管理员登录实现模块【大选择结构】
private void jingzhunchaxun() throws Exception {
System.out.println("请输入精准查询学生姓名:");
String name = sc.next();
Connection con = getConnection();
PreparedStatement ps = con.prepareStatement("SELECT * FROM studentmessage WHERE mingzi = ?");
ps.setString(1,name);
ResultSet rs = ps.executeQuery();
// 处理查询结果
while (rs.next()) {
int score = rs.getInt("grade");
String na = rs.getString("mingzi");
int zhanghao = rs.getInt("name");
int mima = rs.getInt("password");
// 输出查询结果
System.out.print("姓名: " +" ["+ na +"] "+ ", 账号: " +" ["+ zhanghao +"] "+ ", 密码: " +" ["+ mima +"] "+", 分数: "+" ["+score+"] ");
}
} //管理员按姓名索引实现模块
private void change() throws Exception {
Connection con =getConnection();
System.out.println("请输入修改学生的姓名:");
String xiugaixingming = sc.next();
System.out.println("账号:");
int zhanghao = sc.nextInt();
System.out.println("密码:");
int mima = sc.nextInt();
System.out.println("分数");
int score = sc.nextInt();
PreparedStatement ps = con.prepareStatement("update studentmessage set name =? , password=?,grade=? where mingzi= ?");
ps.setInt(1,zhanghao);
ps.setInt(2,mima);
ps.setInt(3,score);
ps.setString(4,xiugaixingming);
int updatedRows = ps.executeUpdate(); // 这将返回受影响的行数输出结果
System.out.println("成功更新了 " + updatedRows + " 行。");
}//管理员修改信息实现模块
private void del() throws Exception {
String name = sc.next();
Connection con = getConnection();
PreparedStatement ps = con.prepareStatement("delete from studentmessage where mingzi =?");
ps.setString(1,name);
int updatedRows = ps.executeUpdate(); // 这将返回受影响的行数输出结果
System.out.println("成功更新了 " + updatedRows + " 行。");
} //管理员删除学生
private void addstu(Connection con) throws SQLException {
System.out.println("输入学员姓名:");
String zhucexingming = sc.next();
System.out.println("输入学员账号:");
int zhanghao = sc.nextInt();
System.out.println("输入学员密码:");
int mima = sc.nextInt();
PreparedStatement ps1 = con.prepareStatement("insert into studentmessage values (?,?,?,?)");
ps1.setString(1,zhucexingming);
ps1.setInt(2,zhanghao);
ps1.setInt(3,mima);
ps1.setInt(4,0);
int updatedRows = ps1.executeUpdate(); // 这将返回受影响的行数输出结果
System.out.println("成功更新了 " + updatedRows + " 行。");
} //管理员添加学生
part5考试管理模块
![](https://i-blog.csdnimg.cn/direct/323e80588b0c411db8e779e0cf5ba49d.png)
//===============考试管理模块======================================
private void addtopic() throws Exception {
System.out.println("==========");
System.out.println("添加考题界面");
System.out.println("==========");
Connection con = getConnection();
System.out.println("题目标号:");
int id = sc.nextInt();
System.out.println("题目描述:");
String topic = sc.next();
System.out.println("答案:");
String answer = sc.next();
PreparedStatement ps = con.prepareStatement("insert into kaoshiti values (?,?,?)");
ps.setInt(1,id);
ps.setString(2,topic);
ps.setString(3,answer);
int updatedRows = ps.executeUpdate(); // 这将返回受影响的行数输出结果
System.out.println("成功更新了 " + updatedRows + " 行。");
}//增加考试题实现模块
private void check() throws Exception {
System.out.println("请输入查询考试题的id:");
int id = sc.nextInt();
studentManagementSystem stu =new studentManagementSystem();
Connection con = stu.getConnection();
PreparedStatement ps = con.prepareStatement("SELECT * FROM kaoshiti where id=?");
ps.setInt(1,id);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
String topic = rs.getString("topic");
String answer = rs.getString("answer");
// 输出查询结果
System.out.println( "id: " +" ["+ id +"] "+ ", 题目:: " +" ["+ topic +"] "+ ", 答案: " +" ["+ answer +"] ");
}
}//查询考试题
private void changeanswer() throws Exception {
Connection con =getConnection();
System.out.println("请输入修改考题的ID:");
int id= sc.nextInt();
System.out.println("请输入修改考题的答案:");
String answer= sc.next();
PreparedStatement ps = con.prepareStatement("update kaoshiti set answer=? where id= ?");
ps.setString(1,answer);
ps.setInt(2,id);
int updatedRows = ps.executeUpdate(); // 这将返回受影响的行数输出结果
System.out.println("成功更新了 " + updatedRows + " 行。");
}//管理员修改考题答案实现模块
private void dayin() throws Exception {
studentManagementSystem stu =new studentManagementSystem();
Connection con = stu.getConnection();
String sql = "SELECT * FROM kaoshiti";
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
System.out.println("=================================");
while (rs.next()) { // 遍历结果集
// 使用rs.getXXX("columnName")方法获取每一列的值,并打印出来
System.out.println(" id: "+" ["+rs.getInt("id")+"] "+
"考试题目: " +" ["+ rs.getString("topic")+"] " +
" 答案: " +" ["+ rs.getString("answer")+"] "
);
}
ps.execute();
System.out.println("=================================");
}//显示所有考题
private void deleatTopic() throws Exception {
System.out.println("请输入删除考题的ID:");
int id =sc.nextInt();
Connection con = getConnection();
PreparedStatement ps = con.prepareStatement("delete from kaoshiti where id =?");
ps.setInt(1,id);
int updatedRows = ps.executeUpdate(); // 这将返回受影响的行数输出结果
System.out.println("成功更新了 " + updatedRows + " 行。");
}//根据ID删除题目
}