【Java】定义一个表示学生信息的类,要求如下:(1)学生的属性包括:学号、姓名、性别、年龄和课程成绩(5门课,其中包括Java);

题目要求:定义一个表示学生信息的类,要求如下:(1)学生的属性包括:学号、姓名、性别、年龄和课程成绩(5门课,其中包括Java);(2)创建带参数的构造方法;(3)获取学生的属性信息;(4)根据学生类,创建五个该类的对象,要求对象数组,并打印五个学生的Java课程成绩的平均值,并输出成绩的最大值(分数和学生名)和最小值(分数和学生名)。

实现效果视频:【JAVA】类与对象(实验)_哔哩哔哩_bilibili

思路构建:创建学生属性property类,然后定义对象数组分别记录五个人的成绩,接着构造函数初始化他们的值,然后创建函数分别返回对应的学生名,学号,性别,年龄和课程成绩,再创建一个test测试类创建五个该类的对象,然后计算五个学生的课程成绩平均值,并且默认第一个人的java成绩同时是最大值和最小值,用for循环遍历五个学生的java成绩,比最大值大的将值赋给最大值,最小值同理,得出最大值和最小值。

学生属性类代码如下:

package message;
public class property {
    int num;
    String name;
    char gender;
    int age;
    double grades[] = new double[5];

    property(int a, String b, char c, int d, double e, double f, double g, double h, double i) {
        this.num = a;
        this.name = b;
        this.gender = c;
        this.age = d;
        this.grades[0] = e;
        this.grades[1] = f;
        this.grades[2] = g;
        this.grades[3] = h;
        this.grades[4] = i;
    }

    public int getNum() {
        return num;
    }

    public String getName() {
        return name;
    }

    public char getGender() {
        return gender;
    }

    public int getAge() {
        return age;
    }

    public double getChinese() {
        return grades[0];
    }

    public double getMath() {
        return grades[1];
    }

    public double getEnglish() {
        return grades[2];
    }

    public double getJava() {
        return grades[3];
    }

    public double getC() {
        return grades[4];
    }
}

构造函数的形参偷懒用了abcd这种字母,最好还是对应比如num就是num这样,方便主函数赋值时观看数据名称。

test测试类代码如下:

package message;
public class test {
    public static void main(String[] args) {
        property stu[] = new property[5];
        stu[0] = new property(1, "小1", '男', 18, 97, 94, 95, 96, 88);
        stu[1] = new property(2, "小2", '女', 17, 90, 90, 91, 91, 86);
        stu[2] = new property(3, "小3", '女', 19, 60, 70, 80, 94, 83);
        stu[3] = new property(4, "小4", '男', 18, 77, 94, 60, 95, 81);
        stu[4] = new property(5, "小5", '男', 18, 85, 100, 93, 97, 86.5);
        double aver = (stu[0].grades[3] + stu[1].grades[3] + stu[2].grades[3] + stu[3].grades[3] + stu[4].grades[3]) / 5;
        System.out.println("平均值"+aver);
        double max = stu[0].grades[3];
        double min = stu[0].grades[3];
        int i = 0, j = 0, k = 0;
        for (; i < 5; i++) {
            if (max < stu[i].grades[3]) {
                max = stu[i].grades[3];
                j = i;
            }
        }
        System.out.println("java最高分" + max + stu[j].name);

        for (i=0; i < 5; i++) {
            if (min > stu[i].grades[3]) {
                min = stu[i].grades[3];
                k = i;
            }
        }
        System.out.println("java最低分" + min + stu[k].name);
    }
}

运行结果:

 

测试类中创建了对象数组,并对这几个数组元素赋值,包括学号,名字,性别和五门课的成绩。

在计算java成绩的最大值和最小值时,将第一个同学的java成绩同时设为最大值和最小值,再遍历所有数组元素,每次遇到java成绩比这个值高的就改变最大值,最小值同理。

可以更改的部分:在测试类中,每次使用成绩都是直接引用学生属性类property的成员变量,其实也可以调用设置的获取成绩方法,如求成绩平均值时就可以调用stu[0].getJava()来返回这个学生的java成绩。

版权声明:本文为博主作者:挽璃华原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/ArliaOnly/article/details/130034005

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年12月29日
下一篇 2023年12月29日

相关推荐