题目:写一个学生类,属性:学生姓名、性别、考试成绩、年龄;写一个班级类,属性:班级名、班主任名字、所有的学生(数组)。
班级类有方法:
(一)获得班级所有学生的平均年龄;
(二)获得班级的所有学生总成绩;
(三)获得班级男女比例的方法。
测试要求:创建班级对象请使用控制台循环输入班级学生的姓名、性别(char赋值可以使用整数强制转换而来)、成绩和年龄。
思路:
1、有学生类、班级类以及测试类,一共有三个类,其中学生类和班级类有自己的属性及方法。
2、班级的方法要想好一些问题,如何获取学生的年龄?如何获取学生的成绩?如何获取学生的性别?,因为是在班级类写方法,怎么去获取另外一个方法中的属性使用?
3、根据测试要求,学生的信息由控制台输入并存在数组中。
代码实现:
学生类:
public class Student {public String name; //学生姓名public String gender; //性别public double score; //考试成绩public int age; //年龄}
班级类:
public class ClassStu {public String className = "混元太极";public String teacherName = "马某国";public Student[] allaySut; //学生数组//获得班级所有学生的平均年龄public void age() {int sum = 0;for (Student student : allaySut) {sum += student.age;}int average = sum / (allaySut.length);System.out.println("班级平均年龄average=" + average);}//获得班级的所有学生总成绩public void sumScore() {int sum = 0;for (Student student : allaySut) {sum += student.score;}System.out.println("总成绩sum=" + sum);}//获得班级男女比例的方法public void scale() {int boy = 0;int girl = 0;for (int i = 0; i < allaySut.length; i++) {if (allaySut[i].gender.equals("男")) {boy++;}if (allaySut[i].gender.equals("女")) {girl++;}}System.out.println("班级男女比例=" + boy + ":" + girl);}}
测试类:
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);Student student = new Student();ClassStu stu = new ClassStu();stu.allaySut = new Student[2];for (int i = 0; i < stu.allaySut.length; i++) {System.out.println("---请输入第" + (i + 1) + "位学生的信息---");stu.allaySut[i] = new Student();System.out.print("请输入姓名:");stu.allaySut[i].name = input.next();System.out.print("请输入性别:");stu.allaySut[i].gender = input.next();System.out.print("请输入成绩:");stu.allaySut[i].score = input.nextInt();System.out.print("请输入年龄:");stu.allaySut[i].age = input.nextInt();}stu.age();stu.sumScore();stu.scale();}}
运行结果:
个人总结:上面的题目虽然能正常运行,但班级的学生信息的性别、平均年龄、成绩等都有小bug,例如我不输入女而输入其他字符,那么就是人为bug了,写的不是很好,希望大佬们能够见谅一下。
写一个学生类 属性:学生姓名 性别 考试成绩 年龄;写一个班级类 属性:班级名 班主任名字 所有的学生(数组)。 班级类有方法: (一)获得班级所有学生的平均年龄; (二)获得班级的所有学生总成