2024.9.24- java开学测

LiuHuWei / 2024-09-25 / 原文

1、定义student类,其中包括五个私有变量(stunumber,name,age,sex,score)。
各成员的含义如下:
变量stunumber为字符串类型String,用于存储学生的学号(有8位数字组成)。
变量name为字符串类型String,用于存储学生的姓名。
变量age为int类型,用于存储学生的年龄。
变量sex为boolean类型,用于存储学生的性别,男生为false,女生为true。变量score为double类型,用于存储学生的成绩。
并对每个变量定义get()(读取变量信息)和set()(设置变量信息)的方法。
赋初值方法包括五个参数,用于为变量(stunumber ,name,age,sex和score)赋值。
2、定义StudentManager类实现下列要求。
(1)利用数组实现至少存储五个学生的信息;(将考生信息作为第一条记录)。
(2)定义showStudent()方法打印输出所有的学生信息;
(3)定义addStudent (stunumber,name,age,sex,score)方法增加一名新学生的信息,需要判断学号是否重复,如果重复提示用户,并禁止增加新学生信息;
(4)定义deleteStudent(stunumber)方法删除一名学生信息(将该学生所有信息清空);
(5)定义updateStudent (stunumber,name,age,sex,score)方法修改学生信息;
(6)定义selectStudent(stunumber)查询并且输出该名学生的全部信息。
(7)定义一个输入界面如下图所示,选择相应的数字执行相应的功能
***************************************************************
石家庄铁道大学软件工程系学生信息管理系统


1、遍历输出学生信息;
2、新学生信息录入;
3、删除学生信息;
4、修改学生信息;
5、查询学生信息;


import java.util.Scanner;

public class StudentManager {
private Student[] students = new Student[5];
private int count = 0;
private Scanner scanner = new Scanner(System.in);

public void menu() {
    System.out.println("********************************************");
    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("********************************************");
}

public void showStudents() {
    if (count == 0) {
        System.out.println("没有学生信息可显示");
        return;
    }
    for (int i = 0; i < count; i++) {
        System.out.println(students[i]);
    }
}

public void addStudent(String stunumber, String name, int age, boolean sex, double score) {
    if (count >= students.length) {
        System.out.println("存储内存已满,无法添加更多学生");
        return;
    }
    for (int i = 0; i < count; i++) {
        if (stunumber.equals(students[i].getStunumber())) {
            System.out.println("该生已存在");
            return;
        }
    }
    students[count++] = new Student(stunumber, name, age, sex, score);
    System.out.println("已存入新学生信息");
}

public void deleteStudent(String stunumber) {
    for (int i = 0; i < count; i++) {
        if (stunumber.equals(students[i].getStunumber())) {
            for (int j = i; j < count - 1; j++) {
                students[j] = students[j + 1];
            }
            students[--count] = null;  // Clear last reference
            System.out.println("已删除学生信息");
            return;
        }
    }
    System.out.println("未找到该学号的学生");
}

public void updateStudent(String stunumber, String name, int age, boolean sex, double score) {
    for (int i = 0; i < count; i++) {
        if (stunumber.equals(students[i].getStunumber())) {
            students[i].setName(name);
            students[i].setAge(age);
            students[i].setSex(sex);
            students[i].setScore(score);
            System.out.println("已更新学生信息");
            return;
        }
    }
    System.out.println("未找到该学号的学生");
}

public void selectStudent(String stunumber) {
    for (int i = 0; i < count; i++) {
        if (stunumber.equals(students[i].getStunumber())) {
            System.out.println(students[i]);
            return;
        }
    }
    System.out.println("未找到该学号的学生");
}

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    StudentManager manager = new StudentManager();
    manager.menu();

    while (true) {
        System.out.println("请选择(1-5)");
        int choice = scanner.nextInt();
        scanner.nextLine();  // Consume newline

        switch (choice) {
            case 1:
                manager.showStudents();
                break;
            case 2:
                System.out.println("输入学号");
                String stunumber = scanner.nextLine();
                System.out.println("输入姓名");
                String name = scanner.nextLine();
                System.out.println("输入年龄");
                int age = scanner.nextInt();
                System.out.println("输入性别(true为男,false为女)");
                boolean sex = scanner.nextBoolean();
                System.out.println("输入分数");
                double score = scanner.nextDouble();
                manager.addStudent(stunumber, name, age, sex, score);
                break;
            case 3:
                System.out.println("输入学号");
                String stunumberToDelete = scanner.nextLine();
                manager.deleteStudent(stunumberToDelete);
                break;
            case 4:
                System.out.println("输入学号");
                String stunumberToUpdate = scanner.nextLine();
                System.out.println("输入姓名");
                String nameToUpdate = scanner.nextLine();
                System.out.println("输入年龄");
                int ageToUpdate = scanner.nextInt();
                System.out.println("输入性别(true为男,false为女)");
                boolean sexToUpdate = scanner.nextBoolean();
                System.out.println("输入分数");
                double scoreToUpdate = scanner.nextDouble();
                manager.updateStudent(stunumberToUpdate, nameToUpdate, ageToUpdate, sexToUpdate, scoreToUpdate);
                break;
            case 5:
                System.out.println("输入学号");
                String stunumberToSelect = scanner.nextLine();
                manager.selectStudent(stunumberToSelect);
                break;
            default:
                System.out.println("没有该选项,请重新选择");
        }
    }
}

}

class Student {
private String stunumber;
private String name;
private int age;
private boolean sex;
private double score;

public String getStunumber() { return stunumber; }
public void setStunumber(String stunumber) { this.stunumber = stunumber; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public boolean getSex() { return sex; }
public void setSex(boolean sex) { this.sex = sex; }
public double getScore() { return score; }
public void setScore(double score) { this.score = score; }

public Student() {}
public Student(String stunumber, String name, int age, boolean sex, double score) {
    this.stunumber = stunumber;
    this.name = name;
    this.age = age;
    this.sex = sex;
    this.score = score;
}

@Override
public String toString() {
    return "学号: " + stunumber + ", 姓名: " + name + ", 年龄: " + age + ", 性别: " + (sex ? "男" : "女") + ", 分数: " + score;
}

}