initial---- 2023-03-01 08:52 采纳率: 86.7%
浏览 60
已结题

java学生类设计安装要求

编写一个Java应用程序。设计一个学生类Students,包括属性有:学号,姓名,性别,专业,三门课程成绩(计算机,数学,英语);包括方法有:求成绩总分,成绩平均分,各个属性的赋值方法,各个属性值的获取方法等等。

编写一个主类StudentsDemo.java,利用Students类输入5名同学的所有信息,按以下要求依次输出相关信息:

(1)输入一个学生的学号或者姓名,输出该学生的所有信息。

(2)数学课程(输入的第2门课程)最高分同学学号、姓名和课程分数

(3)总分最高与最低同学学号、姓名和课程分数

(4)有没有这样的学生存在:总分大于所有学生的平均成绩,但是至少有一门课不及格(低于60分)。若有,按行输出这些学生的全部信息;若没有,输出NOT EXIST。

分析:对于以上每个要求,编写相应的成员方法(函数)实现对应的功能,在测试类(StudentsDemo)中,调用这些方法实现相应功能。
输入

5行,5名学生信息
输出

5行,学生的相关信息
样例输入 Copy

001 aa male math 80 85 78
002 bb female math 78 78 80
003 cc female math 95 95 98
004 dd male cs 89 92 95
005 ee female cs 89 92 95
aa
样例输出 Copy

001,aa,male,math,80.0,85.0,78.0
003,cc,95.0,95.0,98.0
003,cc,95.0,95.0,98.0
002,bb,78.0,78.0,80.0
NOT EXIST

  • 写回答

3条回答 默认 最新

  • MarkHan_ 2023-03-01 09:13
    关注

    该回答引用GPTᴼᴾᴱᴺᴬᴵ
    Students类:

    public class Students {
        private String number; // 学号
        private String name; // 姓名
        private String gender; // 性别
        private String major; // 专业
        private double computerScore; // 计算机成绩
        private double mathScore; // 数学成绩
        private double englishScore; // 英语成绩
    
        // 构造方法
        public Students(String number, String name, String gender, String major, double computerScore, double mathScore, double englishScore) {
            this.number = number;
            this.name = name;
            this.gender = gender;
            this.major = major;
            this.computerScore = computerScore;
            this.mathScore = mathScore;
            this.englishScore = englishScore;
        }
    
        // 求成绩总分
        public double getTotalScore() {
            return computerScore + mathScore + englishScore;
        }
    
        // 求成绩平均分
        public double getAverageScore() {
            return getTotalScore() / 3;
        }
    
        // 各个属性的赋值方法
        public void setNumber(String number) {
            this.number = number;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setGender(String gender) {
            this.gender = gender;
        }
    
        public void setMajor(String major) {
            this.major = major;
        }
    
        public void setComputerScore(double computerScore) {
            this.computerScore = computerScore;
        }
    
        public void setMathScore(double mathScore) {
            this.mathScore = mathScore;
        }
    
        public void setEnglishScore(double englishScore) {
            this.englishScore = englishScore;
        }
    
        // 各个属性值的获取方法
        public String getNumber() {
            return number;
        }
    
        public String getName() {
            return name;
        }
    
        public String getGender() {
            return gender;
        }
    
        public String getMajor() {
            return major;
        }
    
        public double getComputerScore() {
            return computerScore;
        }
    
        public double getMathScore() {
            return mathScore;
        }
    
        public double getEnglishScore() {
            return englishScore;
        }
    }
    
    
    

    StudentsDemo类:

    import java.util.Scanner;
    
    public class StudentsDemo {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            Students[] students = new Students[5];
            for (int i = 0; i < 5; i++) {
                students[i] = new Students();
                String line = scanner.nextLine();
                String[] parts = line.split(" ");
                students[i].setNo(parts[0]);
                students[i].setName(parts[1]);
                students[i].setGender(parts[2]);
                students[i].setMajor(parts[3]);
                students[i].setScore(1, Double.parseDouble(parts[4]));
                students[i].setScore(2, Double.parseDouble(parts[5]));
                students[i].setScore(3, Double.parseDouble(parts[6]));
            }
            String input = scanner.nextLine();
            // 查找学号或姓名匹配的学生
            for (int i = 0; i < 5; i++) {
                if (students[i].getNo().equals(input) || students[i].getName().equals(input)) {
                    System.out.println(students[i].toString());
                }
            }
            // 查找数学最高分的学生
            int mathMaxIndex = 0;
            for (int i = 1; i < 5; i++) {
                if (students[i].getScore(2) > students[mathMaxIndex].getScore(2)) {
                    mathMaxIndex = i;
                }
            }
            System.out.println(students[mathMaxIndex].getNo() + "," + students[mathMaxIndex].getName() + ","
                    + students[mathMaxIndex].getScore(2));
            // 查找总分最高和最低的学生
            int totalMaxIndex = 0, totalMinIndex = 0;
            for (int i = 1; i < 5; i++) {
                if (students[i].getTotalScore() > students[totalMaxIndex].getTotalScore()) {
                    totalMaxIndex = i;
                }
                if (students[i].getTotalScore() < students[totalMinIndex].getTotalScore()) {
                    totalMinIndex = i;
                }
            }
            System.out.println(students[totalMaxIndex].getNo() + "," + students[totalMaxIndex].getName() + ","
                    + students[totalMaxIndex].getTotalScore());
            System.out.println(students[totalMinIndex].getNo() + "," + students[totalMinIndex].getName() + ","
                    + students[totalMinIndex].getTotalScore());
            // 查找总分大于平均分,但有至少一门不及格的学生
            double avgScore = 0;
            for (int i = 0; i < 5; i++) {
                avgScore += students[i].getTotalScore();
            }
            avgScore /= 5;
            boolean exist = false;
            for (int i = 0; i < 5; i++) {
                if (students[i].getTotalScore() > avgScore) {
                    boolean hasFail = false;
                    for (int j = 1; j <= 3; j++) {
                        if (students[i].getScore(j) < 60) {
                            hasFail = true;
                            break;
                        }
                    }
                    if (hasFail) {
                        System.out.println(students[i].toString());
                        exist = true;
                    }
                }
            }
            if (!exist) {
                System.out.println("NOT EXIST");
            }
        }
    }
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 已采纳回答 3月9日
  • 创建了问题 3月1日

悬赏问题

  • ¥15 matlab中使用gurobi时报错
  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂