使用java语言实现对年级、班级、学生及其成绩进行管理

假设一个学校有若干年级,一个年级有若干班级,一个班级有若干学生。每个学生有若干成绩。请编写程序对年级、班级、学生及其成绩进行管理。
完成以下功能:

随机初始化一个年级及其包含的班级,班级内的学生,每个学生的成绩。

  1. 年级名命名规则:X 年级,X 从{一、二、三、四、五、六、七}中
    选择一个,如三年级、四年级等。

  2. 班级数从[5,7]中随机产生。

  3. 每个班级包含的学生数从[30,60]随机产生,年级总人数根据班级人
    数累加。

  4. 班级名的命名规则:年级名+班级序号,如三年级一班、三年级二班。

  5. 学生名从英文字母中随机选择 5 个构成,如 bluey、babal 等。

  6. 学号有 12 位数字构成,随机产生,学号需要保证具有唯一性。

  7. 每个学生的成绩包含四门(操作系统 os、Java、c 语言、外语),百分
    制。分数随机产生,都为整形。

  8. 数据初始化结束后,打印所有已经初始化的信息,包括:年级信息、年级内的所有班级、班级内的所有学生。

public class pro3 {
    public static int getNum(int start,int end) {
        return (int)Math.random()*(end-start)+start;
    }
    private static String getName() {
        String name=null;
        StringBuffer sb=new StringBuffer();
        char[] ss=new char[] {'a','b','c','A','B','C'};
        sb.append(ss[getNum(0,ss.length)]);
        return name;
    }
    private static String getSex() {
        String[] str=new String[] {"nan","nv"};
        return str[getNum(0,str.length)];
    }
    private static int getAge() {
        
        return getNum(6,20);
    }
    
    static String name;
    static int age;
    static String sex;
    public static void main(String[] args) {
        ArrayList<Student> stulist=new ArrayList<Student>();
        for (int i = 0; i < 10; i++) {
            name=getName();
            age=getAge();
            sex=getSex();
            stulist.add(new Student(name, age, sex));
        }
        BanJi a=new BanJi("2101",stulist);
      
    }
    
}
class BanJi{
    private String jiname;
    public ArrayList<Student> stulist=null;
    public BanJi() {
        super();
        // TODO Auto-generated constructor stub
    }
    public BanJi(String jiname, ArrayList<Student> stulist) {
        super();
        this.jiname = jiname;
        this.stulist = stulist;
    }
    
    
    public String getJiname() {
        return jiname;
    }
    public void setJiname(String jiname) {
        this.jiname = jiname;
    }
    public ArrayList<Student> getStulist() {
        return stulist;
    }
    public void setStulist(ArrayList<Student> stulist) {
        this.stulist = stulist;
    }
    @Override
    public String toString() {
        return "BanJi [jiname=" + jiname + ", stulist=" + stulist + "]";
    }
    
}
class Student{
    private String name;
    private int age;
    private String sex;
    public Student() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Student(String name, int age, String sex) {
        super();
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
    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;
    }

以下是一个基于面向对象编程的 Java 示例程序,可以实现随机初始化一个学校的年级、班级、学生以及他们的成绩,并打印出来。


import java.util.ArrayList;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class School {
    private String name;
    private ArrayList<Grade> grades;

    public School(String name) {
        this.name = name;
        this.grades = new ArrayList<Grade>();
    }

    public void init() {
        // 随机初始化年级
        String[] gradeNames = {"一", "二", "三", "四", "五", "六", "七"};
        int gradeIndex = new Random().nextInt(7);
        Grade grade = new Grade(gradeNames[gradeIndex] + "年级");
        grades.add(grade);

        // 随机初始化班级
        int classCount = new Random().nextInt(3) + 5;
        for (int i = 1; i <= classCount; i++) {
            String className = grade.getName() + i + "班";
            ClassRoom classRoom = new ClassRoom(className);
            grade.addClass(classRoom);

            // 随机初始化学生
            int studentCount = new Random().nextInt(31) + 30;
            Set<String> studentIds = new HashSet<String>();
            for (int j = 1; j <= studentCount; j++) {
                String studentName = generateName();
                String studentId = generateId(studentIds);
                Student student = new Student(studentName, studentId);

                // 随机初始化成绩
                int osScore = new Random().nextInt(101);
                int javaScore = new Random().nextInt(101);
                int cScore = new Random().nextInt(101);
                int foreignScore = new Random().nextInt(101);
                student.addScore("操作系统", osScore);
                student.addScore("Java", javaScore);
                student.addScore("C语言", cScore);
                student.addScore("外语", foreignScore);

                classRoom.addStudent(student);
            }
        }
    }

    public void print() {
        System.out.println("学校名称:" + name);
        System.out.println("年级信息:");
        for (Grade grade : grades) {
            System.out.println(grade.getName());
            System.out.println("班级信息:");
            for (ClassRoom classRoom : grade.getClasses()) {
                System.out.println(classRoom.getName());
                System.out.println("学生信息:");
                for (Student student : classRoom.getStudents()) {
                    System.out.println(student.getName() + " " + student.getId());
                    System.out.println("成绩信息:");
                    for (String subject : student.getScores().keySet()) {
                        System.out.println(subject + ":" + student.getScores().get(subject));
                    }
                }
            }
        }
    }

    private String generateName() {
        String alphabet = "abcdefghijklmnopqrstuvwxyz";
        Random random = new Random();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 5; i++) {
            int index = random.nextInt(26);
            sb.append(alphabet.charAt(index));
        }
        return sb.toString();
    }

    private String generateId(Set<String> ids) {
        String id = "";
        do {
            id = String.format("%012d", new Random().nextInt(1000000000));
        } while (ids.contains(id));
        ids.add(id);
        return id;
    }
}

怎么都是一大篇的课设来提问呢?这样的问题得花费很多人力才有人给你解答啊。。。
下面代码是类似一个案例,仅供参考:

import java.util.*;

public class SchoolManagementSystem {
    public static void main(String[] args) {
        // 随机初始化一个年级及其包含的班级,班级内的学生,每个学生的成绩
        Grade grade = initGrade();

        // 打印所有已经初始化的信息
        System.out.println(grade.toString());
    }

    /**
     * 随机初始化一个年级及其包含的班级,班级内的学生,每个学生的成绩
     * @return 初始化后的年级对象
     */
    public static Grade initGrade() {
        Random rand = new Random();
        String[] gradeNames = {"一年级", "二年级", "三年级", "四年级", "五年级", "六年级", "七年级"};
        String gradeName = gradeNames[rand.nextInt(7)];  // 随机选择一个年级名

        int numClasses = rand.nextInt(3) + 5;  // 随机产生[5,7]之间的班级数
        int numStudents = 0;
        List<Class> classes = new ArrayList<>();
        for (int i = 1; i <= numClasses; i++) {
            int num = rand.nextInt(31) + 30;  // 随机产生[30,60]之间的学生数
            numStudents += num;
            String className = gradeName + i + "班";
            List<Student> students = new ArrayList<>();
            for (int j = 1; j <= num; j++) {
                String name = generateName();  // 随机生成学生姓名
                String id = generateId();  // 随机生成学生学号
                Map<String, Integer> scores = new HashMap<>();
                scores.put("os", rand.nextInt(101));
                scores.put("Java", rand.nextInt(101));
                scores.put("c语言", rand.nextInt(101));
                scores.put("外语", rand.nextInt(101));
                students.add(new Student(name, id, scores));
            }
            classes.add(new Class(className, students));
        }
        return new Grade(gradeName, numClasses, numStudents, classes);
    }

    /**
     * 随机生成一个五个英文字母组成的学生姓名
     * @return 学生姓名
     */
    public static String generateName() {
        Random rand = new Random();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 5; i++) {
            sb.append((char) (rand.nextInt(26) + 97));
        }
        return sb.toString();
    }

    /**
     * 随机生成一个12位数字的学生学号,需要保证具有唯一性
     * @return 学生学号
     */
private static String generateId() {
    StringBuilder sb = new StringBuilder();
    Random random = new Random();
    for (int i = 0; i < 12; i++) {
        sb.append(random.nextInt(10));
    }
    return sb.toString();
}