- 该系统由学生、教师、课程和系统管理员四个对象组成。
2.系统管理员(用户名:admin,密码: 123456) 登录系统后,具有录入学生信息、录入课程信息、录入教师信息、录入学生成绩和统计学生成绩5个方法。
3.学生对象有学号、学生姓名属性,具有显示学生信息的方法。 - 课程对象有课程号、课程名属性,具有显示课程信息的方法。
- 教师对象有教师工号、教师姓名属性,具有显示教师信息的方法。
- 程序运行后,显示“登录界面(图 1)”,如果输入的系统管理员用户名和密码正确,则进入系统‘主界面(图2)”,否则,提示“用户名或密码错误,重新输入”,可以多次重复输入,直到输入正确为止。
具体如图所示



import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String username = "";
String password = "";
System.out.println("登录界面");
while(true) {
System.out.println("请输入用户名:");
username = scanner.nextLine();
System.out.println("请输入密码:");
password = scanner.nextLine();
if(username.equals("admin") && password.equals("123456")) {
System.out.println("登录成功!");
break;
}
System.out.println("用户名或密码错误,请重新输入!");
}
//已登录,进入主界面
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("请输入操作编号:");
int chooseNo = scanner.nextInt();
switch(chooseNo) {
case 1:
//录入学生信息
ArrayList<Student> students = new ArrayList<>();
System.out.println("请依次输入学生学号和姓名,输入\"end\"结束:");
String id, name;
while(true) {
id = scanner.nextLine();
if(id.equals("end"))
break;
name = scanner.nextLine();
Student student = new Student(id, name);
students.add(student);
}
System.out.println("录入成功!");
break;
case 2:
//录入课程信息
ArrayList<Course> courses = new ArrayList<>();
System.out.println("请依次输入课程号和名称,输入\"end\"结束:");
String code, cname;
while(true) {
code = scanner.nextLine();
if(code.equals("end"))
break;
cname = scanner.nextLine();
Course course = new Course(code, cname);
courses.add(course);
}
System.out.println("录入成功!");
break;
case 3:
//录入教师信息
ArrayList<Teacher> teachers = new ArrayList<>();
System.out.println("请依次输入教师工号和姓名,输入\"end\"结束:");
String tId, tName;
while(true) {
tId = scanner.nextLine();
if(tId.equals("end"))
break;
tName = scanner.nextLine();
Teacher teacher = new Teacher(tId, tName);
teachers.add(teacher);
}
System.out.println("录入成功!");
break;
case 4:
//录入学生成绩
System.out.println("请依次输入学生学号、课程号、分数,输入\"end\"结束:");
String sId, cCode;
double score;
while(true) {
sId = scanner.nextLine();
if(sId.equals("end"))
break;
cCode = scanner.nextLine();
score = scanner.nextDouble();
Student student = findStudentById(sId, students);
Course course = findCourseByCode(cCode, courses);
if(student == null || course == null) {
System.out.println("输入有误,请重新输入!");
continue;
}
student.addScore(new Score(course, score));
}
System.out.println("录入成功!");
break;
case 5:
//统计学生成绩
System.out.println("请输入要统计成绩的学生学号:");
sId = scanner.nextLine();
Student student = findStudentById(sId, students);
if(student == null) {
System.out.println("学生不存在!");
} else {
System.out.println(student.getInfo());
}
break;
default:
System.out.println("输入有误,请重新输入!");
break;
}
}
//根据学号查找学生
public static Student findStudentById(String id, ArrayList<Student> students) {
for(Student student : students) {
if(student.getId().equals(id)) {
return student;
}
}
return null;
}
//根据课程号查找课程
public static Course findCourseByCode(String code, ArrayList<Course> courses) {
for(Course course : courses) {
if(course.getCode().equals(code)) {
return course;
}
}
return null;
}
}
class Student {
private String id;
private String name;
private ArrayList<Score> scores = new ArrayList<>();
public Student(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void addScore(Score score) {
scores.add(score);
}
public String getInfo() {
StringBuilder sb = new StringBuilder();
sb.append("学号:").append(id).append("\n");
sb.append("姓名:").append(name).append("\n");
sb.append("成绩:\n");
for(Score score : scores) {
sb.append(score.getCourse().getName()).append(": ").append(score.getScore()).append("\n");
}
return sb.toString();
}
}
class Course {
private String code;
private String name;
public Course(String code, String name) {
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
StringBuilder sb = new StringBuilder();
sb.append("课程号:").append(code).append("\n");
sb.append("课程名:").append(name).append("\n");
return sb.toString();
}
}
class Teacher {
private String id;
private String name;
public Teacher(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
StringBuilder sb = new StringBuilder();
sb.append("教师工号:").append(id).append("\n");
sb.append("教师姓名:").append(name).append("\n");
return sb.toString();
}
}
class Score {
private Course course;
private double score;
public Score(Course course, double score) {
this.course = course;
this.score = score;
}
public Course getCourse() {
return course;
}
public void setCourse(Course course) {
this.course = course;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}