欢迎光临
我们一直在努力

控制台版学生成绩管理系统:

题目要求

使用 Java 基础语法(面向对象、集合、流程控制、Scanner)开发一个控制台学生成绩管理系统,实现以下功能:

  • 系统欢迎界面:提供学生登录、学生注册两个选项。
  • 学生注册:录入姓名、性别、密码、学号(系统自动生成 8 位不重复数字),注册成功返回学号。
  • 学生登录:校验学号与密码,登录成功进入操作界面。
  • 登录后功能:
    • 查询个人信息(姓名、性别、学号、总分)
    • 添加成绩(录入科目成绩,自动计算总分)
  • 技术要求:
    • 定义Student实体类封装信息
    • 定义StudentManager类实现业务逻辑
    • 使用ArrayList存储学生对象
    • 用Scanner实现键盘录入、Random生成学号
代码:

package Test111;

public class Student {
private String id; // 学号(8位)
private String name; // 姓名
private String gender; // 性别
private String password;// 密码
private int totalScore; // 总分

public Student() {
}

public Student(String id, String name, String gender, String password, int totalScore) {
this.id = id;
this.name = name;
this.gender = gender;
this.password = password;
this.totalScore = totalScore;
}

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 getGender() {
return gender;
}

public void setGender(String gender) {
this.gender = gender;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public int getTotalScore() {
return totalScore;
}

public void setTotalScore(int totalScore) {
this.totalScore = totalScore;
}

@Override
public String toString() {
return "Student{" +
"id='" + id + '\\'' +
", name='" + name + '\\'' +
", gender='" + gender + '\\'' +
", password='" + password + '\\'' +
", totalScore=" + totalScore +
'}';
}
public void showInfo() {
System.out.println("学号:" + id);
System.out.println("姓名:" + name);
System.out.println("性别:" + gender);
System.out.println("总分:" + totalScore);
}
}

package Test111;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class StudentManager {
private ArrayList<Student> studentList;
private Random random;
private Scanner sc;

public StudentManager() {
studentList = new ArrayList<>();
random = new Random();
sc = new Scanner(System.in);
}

// 生成8位不重复学号
private String generateId() {
String id;
do {
// 生成8位数字(补前导零)
id = String.format("%08d", random.nextInt(100000000));
} while (isIdExist(id)); // 确保不重复
return id;
}

// 判断学号是否已存在
private boolean isIdExist(String id) {
for (Student s : studentList) {
if (s.getId().equals(id)) {
return true;
}
}
return false;
}
// 学生注册
public void register() {
System.out.print("请输入姓名:");
String name = sc.next();
System.out.print("请输入性别:");
String gender = sc.next();
System.out.print("请输入密码:");
String password = sc.next();

String id = generateId();
Student newStudent = new Student();
studentList.add(newStudent);

System.out.println("注册成功!你的学号是:" + id);
}

// 学生登录,返回登录成功的学生对象
public Student login() {
System.out.print("请输入学号:");
String id = sc.next();
System.out.print("请输入密码:");
String password = sc.next();

for (Student s : studentList) {
if (s.getId().equals(id) && s.getPassword().equals(password)) {
System.out.println("登录成功!");
return s;
}
}
System.out.println("学号或密码错误!");
return null;
}
// 添加成绩并更新总分
public void addScore(Student student) {
System.out.print("请输入科目成绩:");
int score = sc.nextInt();
int newTotal = student.getTotalScore() + score;
student.setTotalScore(newTotal);
System.out.println("成绩添加成功!当前总分:" + newTotal);
}
}

package Test111;

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
StudentManager manager = new StudentManager();
Scanner sc = new Scanner(System.in);
Student currentStudent = null;

while (true) {
// 欢迎界面
System.out.println("\\n===== 学生成绩管理系统 =====");
System.out.println("1. 学生登录");
System.out.println("2. 学生注册");
System.out.println("3. 退出系统");
System.out.print("请选择操作:");
int choice = sc.nextInt();

switch (choice) {
case 1:
currentStudent = manager.login();
if (currentStudent != null) {
// 登录后功能菜单
while (true) {
System.out.println("\\n===== 操作菜单 =====");
System.out.println("1. 查询个人信息");
System.out.println("2. 添加成绩");
System.out.println("3. 退出登录");
System.out.print("请选择操作:");
int op = sc.nextInt();
if (op == 1) {
currentStudent.showInfo();
} else if (op == 2) {
manager.addScore(currentStudent);
} else if (op == 3) {
System.out.println("已退出登录!");
break;
} else {
System.out.println("输入错误,请重新选择!");
}
}
}
break;
case 2:
manager.register();
break;
case 3:
System.out.println("感谢使用,再见!");
sc.close();
return;
default:
System.out.println("输入错误,请重新选择!");
}
}
}
}

赞(0)
未经允许不得转载:171主机测评 » 控制台版学生成绩管理系统:
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址