主函数
//系统给个默认的教师账号:admin 密码:1234
public class Main {
public static void main(String[] args) {
Switchs.loginSwitch();
}
学生类账号 类(用来存储已注册的学生账号)
public class StudentAdmin {
private String admin;
private String password;
// 给get和set方法
public String getAdmin() {
return admin;
}
public void setAdmin(String admin) {
this.admin = admin;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
// 只给代码有参构造
public StudentAdmin(String admin, String password) {
super();
this.admin = admin;
this.password = password;
}
@Override
public String toString() {
return "Admin [admin=" + admin + ", password=" + password + "]";
}
}
学生类(学生的基本信息)
package studentMangerCollections;
public class Student {
private String name; // 姓名
private String sex; // 性别
private int age; // 年龄
private int classNo; // 班级
private int grade; // 成绩
// 有参构造函数
public Student(String name, String sex, int age, int classNo, int grade) {
super();
this.name = name;
this.sex = sex;
this.age = age;
this.classNo = classNo;
this.grade = grade;
}
// 无参构造
public Student() {
super();
}
// 为私有化成员属性进行get和set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getClassNo() {
return classNo;
}
public void setClassNo(int classNo) {
this.classNo = classNo;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
// 重写Student类的toString方法
@Override
public String toString() {
return "Student [name=" + name + ", sex=" + sex + ", age=" + age + ", classNo=" + classNo + ", grade=" + grade
+ "]";
}
}
注册模块
package studentMangerCollections;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Register {
static List students = new ArrayList<>();
public static void register() {
@SuppressWarnings("resource")
Scanner scan = new Scanner(System.in);
boolean m = true;
// 使用正则表达式规范密码:数字和字母一共4到8位,不能纯数字也不能纯字母
String regex = "(?!^\d+$)(?!^[a-zA-Z]+$)[0-9a-zA-Z]{4,8}";
// 使用正则表达式规范用户名,只能是字母4-8位
String regex2 = "[a-zA-z]{4,8}";
System.out.println("请输入要注册的账号-----4至8位字母组成");
String userName = scan.next();
System.out.println("请输入注册的密码--------4至8位字母数字组成");
String password = scan.next();
for (int i = 0; i < students.size(); i++) {
if (students.get(i).getAdmin().equals(userName)) {
m = false;
}
}
if (m && userName.matches(regex2) && password.matches(regex)) {
students.add(new StudentAdmin(userName, password));
System.out.println(students.toString());
Switchs.loginSwitch();
} else {
System.out.println("用户名重复或不符合规定,重新填写");
register();
}
}
}
学生登录模块
package studentMangerCollections;
import java.util.Scanner;
public class StudentLogin {
static Scanner scan = new Scanner(System.in);
public static void login() {
int count=3;
for(int j=1;j<=3;j++) {
boolean m=true;
System.out.println("欢迎来到学生登录端口");
System.out.println("请输入用户名");
String userName=scan.next();
System.out.println("请输入密码");
String password=scan.next();
for(int i=0;i
学生端口操作类
package studentMangerCollections;
public class StuIMP implements StuServate{
TeaIMP t=new TeaIMP();
@Override
public void showAllStuManger() {
t.showAllStuManger();
}
@Override
public void showAllStuMangerAsClass() {
// TODO Auto-generated method stub
t.showAllStuMangerAsClass();
}
@Override
public void showAllStuMangerAsGrade() {
// TODO Auto-generated method stub
t.showAllStuMangerAsGrade();
}
}
学生端口的接口
package studentMangerCollections;
public interface StuServate {
public abstract void showAllStuManger();
public abstract void showAllStuMangerAsClass();
public abstract void showAllStuMangerAsGrade();
}
switch选择类
package studentMangerCollections;
//本管理方法由于没有使用GUI,故给定一些switch选择
import java.util.Scanner;
public class Switchs {
static Scanner scan = new Scanner(System.in);
public static void loginSwitch() {
System.out.println("请选择如下选项:");
System.out.println("1:学生登录端口");
System.out.println("2:教师登录端口");
System.out.println("3:注册端口");
System.out.println("4:退出系统");
System.out.println("输入其它值退出系统");
int choose = scan.nextInt();
switch (choose) {
case 1:
StudentLogin.login();
break;
case 2:
TeacherLogin.login();
break;
case 3:
Register.register();
break;
case 4:
break;
default:
System.out.println("属于有误,重新选择");
loginSwitch();
break;
}
}
public static void TeaChoose() {
TeaIMP t = new TeaIMP();
System.out.println("欢迎来到教师端------------请选择要进行的操作");
System.out.println("1:------查看所有学生信息-------------------");
System.out.println("2:------查看某个学生信息-------------------");
System.out.println("3:------按班级查看所有学生信息--------------");
System.out.println("4:------按成绩排序查看所有学生信息----------");
System.out.println("5:------添加某个学生信息--------------------");
System.out.println("6:------删除某个学生信息---------------------");
System.out.println("7:------修改某个学生信息---------------------");
System.out.println("8:-------------退出-------------------------");
System.out.println("9:--------转到登录处-------------------------");
int choose = scan.nextInt();
switch (choose) {
case 1:
t.showAllStuManger();
break;
case 2:
t.showStuManger();
break;
case 3:
t.showAllStuMangerAsClass();
break;
case 4:
t.showAllStuMangerAsGrade();
break;
case 5:
t.addStu();
break;
case 6:
t.deleteStu();
break;
case 7:
t.SetStu();
break;
case 8:
break;
case 9:
loginSwitch();
break;
default:
System.out.println("无效操作,重输");
TeaChoose();
break;
}
}
public static void stuChoose() {
StuIMP s = new StuIMP();
System.out.println("欢迎来到学生端------------请选择要进行的操作");
System.out.println("1:------查看所有学生信息-------------------");
System.out.println("2:------按班级查看所有学生信息--------------");
System.out.println("3:------按成绩排序查看所有学生信息----------");
System.out.println("4:-------------退出-------------------------");
int choose = scan.nextInt();
switch (choose) {
case 1:
s.showAllStuManger();
break;
case 2:
s.showAllStuMangerAsClass();
break;
case 3:
s.showAllStuMangerAsGrade();
break;
case 4:
break;
default:
System.out.println("输入信息有误,重新输入");
stuChoose();
break;
}
}
}
教师登录端口
package studentMangerCollections;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class TeacherLogin {
static Scanner scan = new Scanner(System.in);
public static void login() {
System.out.println("欢迎来到教师登录窗口");
List teachers = new ArrayList<>();
teachers.add(new TeacherAdmin("admin", "1234"));
teachers.add(new TeacherAdmin("xzc", "1219"));
teachers.add(new TeacherAdmin("sxl", "qwer"));
System.out.println("本次登录共有3次机会");
int count = 3;
boolean m = true;
for (int i = 1; i <= 3; i++) {
System.out.println("请输入用户名");
String admin = scan.next();
System.out.println("请输入密码");
String password = scan.next();
for (int j = 0; j < teachers.size(); j++) {
if (teachers.get(j).getAdmin().equals(admin) && teachers.get(j).getPassword().equals(password)) {
m = false;
break;
}
}
if (m) {
if (i == 3) {
System.out.println("登录失败");
} else {
System.out.println("密码或账号错误,您还有" + (count - i) + "次机会");
}
} else {
Switchs.TeaChoose();
break;
}
}
}
}
教师端口对学生操作类
package studentMangerCollections;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
public class TeaIMP implements TeaServate {
Scanner scan = new Scanner(System.in);
static Map m = new TreeMap<>();
public void showAllStuManger() {
// TODO Auto-generated method stub
Set keySet = m.keySet();
System.out.println(m.size());
for (Integer s : keySet) {
System.out.println("姓名" + m.get(s).getName() + "性别" + m.get(s).getSex() + "学号" + s + "年龄"
+ m.get(s).getAge() + "班级" + m.get(s).getClassNo() + "成绩" + m.get(s).getGrade());
}
}
@Override
public void showAllStuMangerAsClass() {
// TODO Auto-generated method stub
for (int i = 1; i < 10; i++) {
System.out.println(i + "班");
Set ks = m.keySet();
for (Integer s : ks) {
if (m.get(s).getClassNo() == i) {
System.out.println("姓名" + m.get(s).getName() + "性别" + m.get(s).getSex() + "学号" + s + "年龄"
+ m.get(s).getAge() + "班级" + m.get(s).getClassNo() + "成绩" + m.get(s).getGrade());
}
}
}
}
@Override
public void showAllStuMangerAsGrade() {
for (int i = 150; i >= 0; i--) {
Set ks = m.keySet();
for (Integer s : ks) {
if (m.get(s).getGrade() == i) {
System.out.println("姓名" + m.get(s).getName() + "性别" + m.get(s).getSex() + "学号" + s + "年龄"
+ m.get(s).getAge() + "班级" + m.get(s).getClassNo() + "成绩" + m.get(s).getGrade());
}
}
}
}
@Override
public void addStu() {
// TODO Auto-generated method stub
System.out.println("请输入学生姓名");
String name = scan.next();
System.out.println("请输入学生性别");
String sex = scan.next();
System.out.println("请输入学生年龄");
int age = scan.nextInt();
System.out.println("请输入学生学号");
int num = scan.nextInt();
System.out.println("请输入学生班级");
int classNo = scan.nextInt();
System.out.println("请输入学生成绩");
int grade = scan.nextInt();
if (m.containsKey(num)) {
System.out.println("学号重复,重新输入信息");
addStu();
} else {
m.put(num, new Student(name, sex, age, classNo, grade));
Switchs.TeaChoose();
}
Switchs.TeaChoose();
}
@Override
public void deleteStu() {
System.out.println("请输入删除学生的学号");
int num = scan.nextInt();
if (m.containsKey(num)) {
m.remove(num);
} else {
System.out.println("查无此人,请重新输入删除的学号");
}
}
@Override
public void SetStu() {
// TODO Auto-generated method stub
System.out.println("请输入删除学生的学号");
int num = scan.nextInt();
if (m.containsKey(num)) {
System.out.println("请输入要修改操作");
System.out.println("1:姓名 2:性别 3:年龄 4:班级 5:成绩 ");
int n = scan.nextInt();
System.out.println("请输入修改后的数据");
String newData = scan.next();
switch (n) {
case 1:
m.get(num).setName(newData);
break;
case 2:
m.get(num).setSex(newData);
break;
case 3:
m.get(num).setAge(Integer.parseInt(newData));
break;
case 4:
m.get(num).setClassNo(Integer.parseInt(newData));
break;
case 5:
m.get(num).setGrade(Integer.parseInt(newData));
break;
default:
System.out.println("输入信息有误,重新选择");
SetStu();
break;
}
} else {
System.out.println("查无此人,请重新输入删除的学号");
}
}
@Override
public void showStuManger() {
System.out.println("请输入查询学生的学号");
int s = scan.nextInt();
if (m.containsKey(s)) {
System.out.println("姓名" + m.get(s).getName() + "性别" + m.get(s).getSex() + "学号" + s + "年龄"
+ m.get(s).getAge() + "班级" + m.get(s).getClassNo() + "成绩" + m.get(s).getGrade());
Switchs.TeaChoose();
} else {
System.out.println("没有该学生,重写选择");
showStuManger();
}
}
}
教师端口接口
package studentMangerCollections;
public interface TeaServate {
public abstract void showAllStuManger();
public abstract void showStuManger();
public abstract void showAllStuMangerAsClass();
public abstract void showAllStuMangerAsGrade();
public abstract void addStu();
public abstract void deleteStu();
public abstract void SetStu();
}



