Java实验新来的学生成绩和班上同学的比较

该Java程序用于创建一个学生类,输入30名学生的学号、姓名和4门课程的成绩,计算平均分和最高分。之后,程序接收新学生的信息,比较其成绩与班级最佳成绩,并输出结果。同时,程序还会判断新学生的平均成绩是否高于或低于全班平均分。
摘要由CSDN通过智能技术生成
import java.util.*;
public class xunlian {
    public static void main(String[] args) {
        Scanner sb = new Scanner(System.in);
        double[] average = new double[31];
        double stBest = 0;
        double classAverage = 0;
        Student[] student = new Student[31];
        Student studentBest = null;
        for (int i = 1; i <= 30; i++) {//随机产生30人的信息
            student[i] = new Student(); // 实例化一个新的 Student
            student[i].studentID = 1000000 + (int) (Math.random() * 100000);
            int length = 5; // 生成的名字长度
            String charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; // 字符集
            student[i].studentName = generateRandomString(length, charset);//生成名字
            student[i].scores = new int[4];
            for (int j = 0; j < 4; j++) {
                student[i].scores[j] = (int) (Math.random() * 100);
                if(student[i].scores[j]>=100)
                {
                    System.out.println("课程成绩不能高于100分!");
                    return;
                }
                average[i] += student[i].scores[j];
                if(student[i].tallst<student[i].scores[j]){
                    student[i].tallst=student[i].scores[j];
                }
            }
            classAverage += average[i];
            average[i] = average[i] / 4.0;
            if (average[i] > stBest) {
                stBest = average[i];
                studentBest = student[i];
            }
        }//随机信息
        classAverage /= 30.0;//班级的平均成绩
        Student[] freshPeople = new Student[1];//新人的信息
        System.out.print("请输入新同学的姓名、学号和4门科目的成绩(以空格分隔):");
        freshPeople[0] = new Student(); // 实例化一个新的 Student
        freshPeople[0].studentName = sb.next();
        freshPeople[0].studentID = sb.nextInt();
        freshPeople[0].scores = new int[4];
        double freshAverage = 0;
        for (int i = 0; i < 4; i++) {
            freshPeople[0].scores[i] = sb.nextInt();
            freshAverage += freshPeople[0].scores[i];
            if(freshPeople[0].tallst<freshPeople[0].scores[i]){
                freshPeople[0].tallst=freshPeople[0].scores[i];
            }
        }
        freshAverage /= 4.0;//新人的平均成绩
        System.out.println(
                freshPeople[0].studentName + " ID:" + freshPeople[0].studentID + " 平均分 " + freshAverage + " 最高分 "+freshPeople[0].tallst);
        if(freshAverage>stBest) {
            System.out.println(freshPeople[0].studentName+"现在是班上成绩最好的学生了");
        }
        else
            System.out.println(
                    studentBest.studentName + " ID:" + studentBest.studentID + " 平均分 " + stBest + " 最高分 "+studentBest.tallst);

        if (freshAverage > classAverage)
            System.out.println(freshPeople[0].studentName + "的平均成绩高于全班的平均分");
        if (freshAverage < classAverage)
            System.out.println(freshPeople[0].studentName + "的平均成绩低于全班的平均分");
        sb.close();
    }
    public static String generateRandomString(int length, String charset) {
        Random rand = new Random();
        StringBuilder sb = new StringBuilder(length);
        for (int i = 0; i < length; i++) {
            int index = rand.nextInt(charset.length());
            sb.append(charset.charAt(index));
        }
        return sb.toString();
    }
}
class Student {
    int studentID;
    String studentName;
    public int[] scores = null;
    double tallst=0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值