package user;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import course.Course;
import inputErr.UsrInput;
public class User {
public String name; //用户名
public String pwd; //密码
public User() {}
/**
* 显示用户信息
*/
public void showInfo() {
System.out.println(name+":"+pwd);
}
/**
* 设置用户密码
*/
public void changePwd() {
System.out.print("输入原密码:");
String originalPwd = UsrInput.getString();
if (originalPwd.equals(this.pwd))
while(true) {
System.out.print("输入新的密码(6-12位):");
String pwd = UsrInput.getString();
System.out.print("确认密码:");
String pwd2 = UsrInput.getString();
if (pwd.length()>=6 && pwd.length()<=12 && pwd.equals(pwd2)) {
this.pwd = pwd;
System.out.println("密码修改成功...");
break;
} else {
continue;
}
}
else {
System.out.println("原密码不正确...");
}
}
public User login() {
// get admin pwd for .txt file
User.getAdminInfo();
System.out.print("输入管理员密码:");
String pwd = UsrInput.getString();
if (pwd.equals(AdminUsers.admin.pwd)) {
System.out.println(AdminUsers.admin.name + ", 欢迎您!");
return AdminUsers.admin; //成功
} else {
System.out.println("登陆失败,密码错误...");
return null; //失败
}
}
public static void getAdminInfo() {
File f = new File("admin pwd.txt");
try {
if (!f.exists())
f.createNewFile();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f.getAbsoluteFile())));
String info = null;
if ((info=br.readLine())==null) {
AdminUsers.admin.name = "admin"; //管理员初始名称
AdminUsers.admin.pwd = "123456"; //管理员初始密码123456
} else {
String info_[] = info.split(" ");
AdminUsers.admin.name = info_[0];
AdminUsers.admin.pwd = info_[1];
}
br.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void saveAdminInfo() {
try {
BufferedWriter out = new BufferedWriter(new FileWriter("admin pwd.txt"));
out.write(AdminUsers.admin.name + " " + AdminUsers.admin.pwd); // write password
out.flush();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void adminMenu() {
int choice=0, innerChoice=0;
while (true) {
System.out.println("1.管理课程\n2.管理教师\n3.管理学生\n4.修改管理员密码\n5.修改管理员名称\n0.退出");
choice = UsrInput.getInt();
switch(choice) {
case 1:
do {
innerChoice=User.adminCourseMenu();
if (innerChoice!=0)
User.funcDistribute(innerChoice);
} while (innerChoice!=0);
break;
case 2:
do {
innerChoice=User.adminTchMenu();
if (innerChoice!=0)
User.funcDistribute(innerChoice);
} while (innerChoice!=0);
break;
case 3:
do {
innerChoice=User.adminStuMenu();
if (innerChoice!=0)
User.funcDistribute(innerChoice);
} while (innerChoice!=0);
break;
case 4:
AdminUsers.admin.changePwd();
break;
case 5:
User.changeAdminName();
break;
case 0:
Course.saveTofile(); // 保存所有课程信息
User.saveStuInfo();
User.saveTchInfo();
return;
default: break;
}
}
}
public static void changeAdminName() {
System.out.print("输入新的管理员名称:");
String newAdminName = UsrInput.getString();
AdminUsers.admin.name = newAdminName;
System.out.println("名称修改成功...");
}
public static void funcDistribute(int funcId) {
switch (funcId) {
case 1: Course.addCourses(); break;
case 2: Course.deleteCourses(); break;
case 3: Course.setCourseTeacher(); break;
case 4: Course.showAllCourses(); break;
case 5: Course.sortCourses(); break;
case 6: User.addTeachers(); break;
case 7: User.deleteTeachers(); break;
case 8: Course.searchCourseByTeacher(); break;
case 9: AdminUsers.showAllTcher(); break;
case 10: User.resetPwd(1); break;
case 11: User.addStudents(); break;
case 12: User.deleteStudents(); break;
case 13: AdminUsers.showAllStudent(); break;
case 14: User.resetPwd(0); break;
default:
}
}
public static int adminCourseMenu() {
System.out.println("选择功能:\n1.添加课程\n2.删除课程\n"
+ "3.设置课程教师\n4.显示课程列表\n5.按选课人数排序\n"
+ "0.退出");
while (true) {
int choice = UsrInput.getInt();
if (choice==0) return 0;
else if (choice>=1 && choice<=5)
return choice;
}
}
public static int adminTchMenu() {
System.out.println("选择功能:\n1.添加教师\n2.删除教师\n"
+ "3.查看教师所授课程\n4.显示教师列表\n"
+ "5.教师密码恢复\n0.退出");
while (true) {
int choice = UsrInput.getInt();
if (choice==0) return 0;
else if (choice>=1 && choice<=5)
return choice+5;
}
}
public static int adminStuMenu() {
System.out.println("选择功能:\n1.添加学生\n2.删除学生\n"
+ "3.查看学生列表\n"
+ "4.学生密码恢复\n0.退出");
while (true) {
int choice = UsrInput.getInt();
if (choice==0) return 0;
else if (choice>=1 && choice<=4)
return choice+10;
}
}
public static void addTeacher() {
System.out.print("姓名:");
String name = UsrInput.getString();
System.out.print("工号:");
int workId = UsrInput.getInt();
System.out.print("职位:");
String occupation = UsrInput.getString();
AdminUsers.t.add(new Teacher(name, "123456", workId, occupation));
}
public static void addTeachers() {
while(true) {
User.addTeacher();
System.out.print("教师信息添加成功,是否继续添加?(y/n)");
if (UsrInput.getString().equals("y"))
continue;
else
break;
}
}
public static boolean deleteTeacher() {
System.out.print("输入要删除的教师信息工号:");
int objTeacher = UsrInput.getInt();
Teacher tmp = null;
for (int i=0; i<AdminUsers.t.size(); ++i)
if ((tmp=AdminUsers.t.get(i)).getWorkId()==objTeacher) {
AdminUsers.t.remove(i); // 删除教师信息
//首先级联置空其教授的课程
for (Course c : Course.courseSet)
if (c.teacher.equals(tmp.name))
c.teacher = "---";
return true;
}
return false;
}
public static void deleteTeachers() {
if (AdminUsers.t==null || AdminUsers.t.size()==0) {
System.out.println("暂无任何教师信息...");
return; //空
}
while(true) {
if (User.deleteTeacher())
System.out.print("教师信息删除成功,是否继续删除?(y/n)");
else
System.out.print("删除失败,无匹配的教师信息...\n输入y继续删除,输入n退出:");
if (UsrInput.getString().equals("y")) {
continue;
} else
break;
}
}
public static void addStudent() {
System.out.print("姓名:");
String name = UsrInput.getString();
System.out.print("学号:");
int stuId = UsrInput.getInt();
System.out.print("班级:");
String class_ = UsrInput.getString();
AdminUsers.s.add(new Student(name, "123456", stuId, class_));
}
public static void addStudents() {
while(true) {
User.addStudent();
System.out.print("学生信息添加成功,是否继续添加?(y/n)");
if (UsrInput.getString().equals("y"))
continue;
else
break;
}
}
public static boolean deleteStudent() {
System.out.print("输入要删除的学生信息学号:");
int objStu = UsrInput.getInt();
Student tmp = null;
for (int i=0; i<AdminUsers.s.size(); ++i)
if (objStu==(tmp=AdminUs
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
java控制台-学生选课管理系统(高分期末大作业) 已获导师指导并通过的95分的高分期末大作业项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值 系统实现了: 管理员: 1.管理课程 2.管理教师 3.管理学生 4.修改管理员密码 5.修改管理员名称 0.退出 老师: 1.修改密码 2.查看所授课程 3.查看课程学生 0.退出 学生: 1.修改密码 2.查看所选课程 3.选课 0.退出 详情:https://blog.csdn.net/Timi2019/article/details/124654332
资源推荐
资源详情
资源评论
收起资源包目录
java控制台-学生选课管理系统(高分期末大作业).rar (21个子文件)
java控制台-学生选课管理系统(高分期末大作业)
Stu
.classpath 396B
.settings
org.eclipse.jdt.core.prefs 781B
src
inputErr
UsrInput.java 905B
user
Teacher.java 3KB
AdminUsers.java 738B
Student.java 5KB
User.java 12KB
course
RequiredCourse.java 519B
Course.java 7KB
OptionalCourse.java 531B
main
MainControl.java 1KB
bin
inputErr
UsrInput.class 1KB
user
User.class 11KB
Student.class 7KB
Teacher.class 5KB
AdminUsers.class 1KB
course
RequiredCourse.class 1KB
OptionalCourse.class 1KB
Course.class 8KB
main
MainControl.class 2KB
.project 379B
共 21 条
- 1
资源评论
- m0_740942882024-01-10资源内容总结地很全面,值得借鉴,对我来说很有用,解决了我的燃眉之急。
小码叔
- 粉丝: 4261
- 资源: 1207
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python 程序语言设计模式思路-创建型模式:原型模式:通过复制现有对象来创建新对象,面向对象编程
- 卸载软件geek卸载软件geek
- Python 程序语言设计模式思路-创建型模式:单例模式,确保一个类的唯一实例(装饰器)面向对象编程、继承
- skywalking-plugins.jar skywalking-alarm.jar
- 独栋别墅图纸D020-两层-10.00&11.00米- 施工图.dwg
- Python 程序语言设计模式思路-创建型模式:工厂模式,创建对象的统一接口,封装对象的创建逻辑
- python自学教程-05-json数据格式的介绍.ev4.rar
- python自学教程-04-自定义JavaScript.ev4.rar
- 《淘宝后台系统...》
- skywalking-plugins.jar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功