java 学生平均身高问题

使用面向对象思想,编写Java程序。键盘接收用户输入的5位学生(Student)的姓名(name)和身高(height,单位是米),输出这些学生的平均身高。运行结果如图3所示。
要求:使用循环和数组实现这些功能。
注意:使用面向对象思想编程,并计算5位同学的平均身高。 收起
1) 按要求定义学生类Student。该类中包含2个属性:
Ø 学生姓名 name
Ø 身高(单位:米) height
Ø 书写getAvg()方法,实现计算平均身高。
2) 编写测试类Test。在Test类中给学生类Student属性赋值,并调用方法在控制台输出结果:
(1) 声明长度为5的Student类型数组;
(2) 循环接收用户输入的5位同学的信息;
(3) 调用getAvg()方法,获取所有同学身高的平均值;

学生类

package student;
 
public class Student {
    private String name;// 学生姓名
    private Float height;// 学生身高
     
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Float getHeight() {
        return height;
    }
    public void setHeight(Float height) {
        this.height = height;
    }
     
}

工具类

package student;
 
public class HeightUtil {
    public Float getAvg(Student[] stuList){
        Float sum = 0f;
        for (Student student : stuList) {
            sum = sum + student.getHeight();
        }
        return sum/stuList.length;
    }
}

测试类


package student;
 
import java.util.Scanner;
 
public class Test {
 
    public static void main(String[] args) {
        Student[] stus = new Student[5];// 长度为5的数组
        Scanner sc1 = new Scanner(System.in); 
        Scanner sc2 = new Scanner(System.in); 
        for (int i = 0; i < 5; i++) {
            Student stu = new Student();
            System.out.println("请输入第" + (i+1) + "位同学的姓名:");
            String name = sc1.nextLine(); 
            System.out.println("请输入第" + (i+1) + "位同学" + name + "的身高:");
            String height = sc2.nextLine(); 
            while(!height.matches("-?[0-9]+.*[0-9]*")){
                System.out.println("身高格式错误,请重新输入," + "请输入第" + (i+1) + "位同学" + name + "的身高:");
                height = sc2.nextLine();
            }
            stu.setName(name);
            stu.setHeight(Float.valueOf(height));
            stus[i] = stu;
        }
        HeightUtil hu = new HeightUtil();
        Float pingjun = hu.getAvg(stus);
        System.out.println("五位同学平均身高是:" + pingjun);
    }
 
}

温馨提示:答案为网友推荐,仅供参考
相似回答