2401_83701689 2024-05-26 20:27 采纳率: 0%
浏览 4

java代码谁会啊请问一下

定义一个学生类用来存储学生的信息(包括:学号,姓名,英语成绩、高数成绩、体育成绩),在main方法中定义一个数组存储5名学生的信息。

要求:

(1)按名字查询并输出某位同学成绩,要求能够实现部分匹配的查找,例如:希望查找John,可查找到所有名字包含John的人,例如:John Brown,John Smith都能得到(可以使用字符串类String的contains方法,来判断某个字符串中是否包含某个子串)。

(2)查询并输出所有科目不及格的人数及名单。

    输出格式为:

    英语成绩不及格的有:张三、李四、王五,总共有3人

    高数成绩不及格的有:张三,总共有1人

    体育成绩不及格的有:张三丰、张无忌,总共有2人

提示:

(1)定义的学生类:包括属性、属性的getter、setter方法。

(2)类中其他方法可自由发挥,比如打印学生信息的方法(如print()或toString())

(3)自己定义包含main方法的类,类中定义2个方法,分别用来实现按名字查询成绩、查找不及格人数并打印不及格名单的功能。
  • 写回答

4条回答 默认 最新

  • 关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    分析:

    首先需要定义一个学生类,保存每一个学生的信息,包括学号、姓名、英语成绩、高数成绩、体育成绩。为了方便查询并输出所有科目不及格的学生,需要在学生类中定义查询不及格的方法,并在这个方法中判断哪些科目成绩不及格。

    然后在main方法中定义一个数组,用来存储5名学生的信息,并实例化这5名学生的学生类对象。接着定义两个方法:按名字查询成绩的方法和查找不及格人数的方法,在这两个方法中遍历学生数组,调用学生类中定义的查询不及格的方法,判断哪些学生的成绩不及格。

    最后将查询结果输出。

    解决方案:

    1. 定义学生类。
    public class Student {
        private String id; // 学号
        private String name; // 姓名
        private int englishScore; // 英语成绩
        private int mathScore; // 高数成绩
        private int peScore; // 体育成绩
        
        // 构造方法
        public Student(String id, String name, int englishScore, int mathScore, int peScore) {
            this.id = id;
            this.name = name;
            this.englishScore = englishScore;
            this.mathScore = mathScore;
            this.peScore = peScore;
        }
        
        // Getter和Setter方法
        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 int getEnglishScore() {
            return englishScore;
        }
        public void setEnglishScore(int englishScore) {
            this.englishScore = englishScore;
        }
        public int getMathScore() {
            return mathScore;
        }
        public void setMathScore(int mathScore) {
            this.mathScore = mathScore;
        }
        public int getPeScore() {
            return peScore;
        }
        public void setPeScore(int peScore) {
            this.peScore = peScore;
        }
        
        // 查询不及格的方法
        public boolean isEnglishFailed() {
            return englishScore < 60;
        }
        public boolean isMathFailed() {
            return mathScore < 60;
        }
        public boolean isPeFailed() {
            return peScore < 60;
        }
        
        // 打印学生信息的方法
        @Override
        public String toString() {
            return "学号:" + id + ",姓名:" + name + ",英语成绩:" + englishScore +
                    ",高数成绩:" + mathScore + ",体育成绩:" + peScore;
        }
    }
    
    1. 在main方法中定义一个学生数组,并实例化5个学生类对象。
    public static void main(String[] args) {
        Student[] students = new Student[5];
        students[0] = new Student("001", "张三", 70, 80, 90);
        students[1] = new Student("002", "李四", 50, 60, 70);
        students[2] = new Student("003", "王五", 80, 90, 50);
        students[3] = new Student("004", "John Brown", 65, 75, 85);
        students[4] = new Student("005", "John Smith", 75, 85, 95);
    }
    
    1. 定义按名字查询成绩的方法。
    public static void searchStudentByName(String name, Student[] students) {
        System.out.println("按名字查询结果如下:");
        for (Student student : students) {
            if (student.getName().contains(name)) {
                System.out.println(student);
            }
        }
    }
    
    1. 定义查找不及格人数的方法。
    public static void searchFailedStudents(Student[] students) {
        int englishFailedCount = 0;
        int mathFailedCount = 0;
        int peFailedCount = 0;
        List<String> englishFailedList = new ArrayList<>();
        List<String> mathFailedList = new ArrayList<>();
        List<String> peFailedList = new ArrayList<>();
    
        for (Student student : students) {
            if (student.isEnglishFailed()) {
                englishFailedCount++;
                englishFailedList.add(student.getName());
            }
            if (student.isMathFailed()) {
                mathFailedCount++;
                mathFailedList.add(student.getName());
            }
            if (student.isPeFailed()) {
                peFailedCount++;
                peFailedList.add(student.getName());
            }
        }
    
        // 输出不及格人数及名单
        System.out.println("英语成绩不及格的有:" + String.join("、", englishFailedList) + ",总共有" + englishFailedCount + "人");
        System.out.println("高数成绩不及格的有:" + String.join("、", mathFailedList) + ",总共有" + mathFailedCount + "人");
        System.out.println("体育成绩不及格的有:" + String.join("、", peFailedList) + ",总共有" + peFailedCount + "人");
    }
    
    1. 在main方法中分别调用按名字查询成绩和查找不及格人数的方法,输出查询结果。
    public static void main(String[] args) {
        // 实例化5名学生
        Student[] students = new Student[5];
        students[0] = new Student("001", "张三", 70, 80, 90);
        students[1] = new Student("002", "李四", 50, 60, 70);
        students[2] = new Student("003", "王五", 80, 90, 50);
        students[3] = new Student("004", "John Brown", 65, 75, 85);
        students[4] = new Student("005", "John Smith", 75, 85, 95);
    
        // 按名字查询成绩
        searchStudentByName("John", students);
    
        // 查找不及格人数
        searchFailedStudents(students);
    }
    

    完整代码:

    import java.util.ArrayList;
    import java.util.List;
    
    public class Main {
        public static void main(String[] args) {
            // 实例化5名学生
            Student[] students = new Student[5];
            students[0] = new Student("001", "张三", 70, 80, 90);
            students[1] = new Student("002", "李四", 50, 60, 70);
            students[2] = new Student("003", "王五", 80, 90, 50);
            students[3] = new Student("004", "John Brown", 65, 75, 85);
            students[4] = new Student("005", "John Smith", 75, 85, 95);
    
            // 按名字查询成绩
            searchStudentByName("John", students);
    
            // 查找不及格人数
            searchFailedStudents(students);
        }
    
        // 按名字查询学生成绩
        public static void searchStudentByName(String name, Student[] students) {
            System.out.println("按名字查询结果如下:");
            for (Student student : students) {
                if (student.getName().contains(name)) {
                    System.out.println(student);
                }
            }
        }
    
        // 查找不及格人数并输出不及格名单
        public static void searchFailedStudents(Student[] students) {
            int englishFailedCount = 0;
            int mathFailedCount = 0;
            int peFailedCount = 0;
            List<String> englishFailedList = new ArrayList<>();
            List<String> mathFailedList = new ArrayList<>();
            List<String> peFailedList = new ArrayList<>();
    
            for (Student student : students) {
                if (student.isEnglishFailed()) {
                    englishFailedCount++;
                    englishFailedList.add(student.getName());
                }
                if (student.isMathFailed()) {
                    mathFailedCount++;
                    mathFailedList.add(student.getName());
                }
                if (student.isPeFailed()) {
                    peFailedCount++;
                    peFailedList.add(student.getName());
                }
            }
    
            // 输出不及格人数及名单
            System.out.println("英语成绩不及格的有:" + String.join("、", englishFailedList) + ",总共有" + englishFailedCount + "人");
            System.out.println("高数成绩不及格的有:" + String.join("、", mathFailedList) + ",总共有" + mathFailedCount + "人");
            System.out.println("体育成绩不及格的有:" + String.join("、", peFailedList) + ",总共有" + peFailedCount + "人");
        }
    
        // 学生类
        public static class Student {
            private String id; // 学号
            private String name; // 姓名
            private int englishScore; // 英语成绩
            private int mathScore; // 高数成绩
            private int peScore; // 体育成绩
            
            // 构造方法
            public Student(String id, String name, int englishScore, int mathScore, int peScore) {
                this.id = id;
                this.name = name;
                this.englishScore = englishScore;
                this.mathScore = mathScore;
                this.peScore = peScore;
            }
            
            // Getter和Setter方法
            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 int getEnglishScore() {
                return englishScore;
            }
            public void setEnglishScore(int englishScore) {
                this.englishScore = englishScore;
            }
            public int getMathScore() {
                return mathScore;
            }
            public void setMathScore(int mathScore) {
                this.mathScore = mathScore;
            }
            public int getPeScore() {
                return peScore;
            }
            public void setPeScore(int peScore) {
                this.peScore = peScore;
            }
            
            // 查询不及格的方法
            public boolean isEnglishFailed() {
                return englishScore < 60;
            }
            public boolean isMathFailed() {
                return mathScore < 60;
            }
            public boolean isPeFailed() {
                return peScore < 60;
            }
            
            // 打印学生信息的方法
            @Override
            public String toString() {
                return "学号:" + id + ",姓名:" + name + ",英语成绩:" + englishScore +
                        ",高数成绩:" + mathScore + ",体育成绩:" + peScore;
            }
        }
    }
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月26日

悬赏问题

  • ¥15 有什么好的直流步进减速电机42的厂家推荐,保持力矩达到0.3N.M
  • ¥15 IBS个体遗传距离计算
  • ¥15 一道蓝桥杯的题,请问我错在哪里
  • ¥15 关于#android问题,xposed模块找不到so
  • ¥15 UE5.4.2创建C++项目成功,但是编译失败
  • ¥15 华为手机备份nas,airdisk,遇到的空间不足问题。求个详细的解决方案。
  • ¥20 Cknife无法使用
  • ¥15 这个结构体为什么会出错呢?
  • ¥15 ROH绘图及近交系数的计算
  • ¥15 手动下载基因拼接数据库的渠道