A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

(1)定义一个学生类Student,属性:姓名(String name)、班级班号(String no)、成绩(double score)
        (2)将若干Student对象存入List集合,并统计每个班级的总分和平均分

1 个回复

倒序浏览
package cn.itcast_06;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;


public class Test4 {

        /**
        1.(综合)有如下Student 对象
                       其中,classNum 表示学生的班号,例如"class05"。
                       有如下List
                       List list = new ArrayList();
                       list.add(new Student("Tom", 18, 100, "class05"));
                       list.add(new Student("Jerry", 22, 70, "class04"));
                       list.add(new Student("Owen", 25, 90, "class05"));
                       list.add(new Student("Jim", 30,80 , "class05"));
                       list.add(new Student("Steve", 28, 66, "class06"));
                       list.add(new Student("Kevin", 24, 100, "class04"));
                       在这个list 的基础上,完成下列要求:
                       1) 计算所有学生的平均年龄
                       2) 计算各个班级的平均分
         */
        public static void main(String[] args) {
                                //创建集合对象
                        List<Student2> list = new ArrayList<Student2>();
                                //添加学生对象
                          list.add(new Student2("Tom", 18, 100, "class05"));
              list.add(new Student2("Jerry", 22, 70, "class04"));
              list.add(new Student2("Owen", 25, 90, "class05"));
              list.add(new Student2("Jim", 30,80 , "class05"));
              list.add(new Student2("Steve", 28, 66, "class06"));
              list.add(new Student2("Kevin", 24, 100, "class04"));
              
              //学生的平均成绩        班级平均分
              function1(list);
              
              // 计算所有学生的平均年龄
              function2(list);
        }

        private static void function2(List<Student2> list) {
                // 计算所有学生的平均年龄
                  //定义一个学生总年龄的变量ageSum
                  int ageSum =0;
                  //遍历集合的到每个学生的年龄,循环集合将每个学生的年龄存储到变量ageSum中
                  for (Student2 stu : list) {
                          ageSum=stu.getAge()+ageSum;
                }
                  System.out.println("学生的平均年龄为:"+"\t"+ageSum/list.size());
        }

        private static void function1(List<Student2> list) {
                //遍历集合
                  for (Student2 stud : list) {
                          System.out.println(stud);
                }
                //定义一个变量temp,用来接收总成绩,因为变量需要累积所以定义在循环外面
                  int temp =0;
                 for (Student2 stu : list) {
                         //因为学生的成绩定义的是double类型,在这里需要强转
                        temp=(int)stu.getGrade()+temp;
                 }
                 System.out.println("学生的平均成绩为:"+temp/list.size());
                 
                //  2) 计算各个班级的平均分
                 //班级4的总成绩为sum4
                 int sum4 = 0;
                 //班级为4的个数为num4
                 int num4 =0;
                 //班级5的总成绩为sum5
                 int sum5 = 0;
                 //班级为5的个数为num4
                 int num5 =0;
                 //班级6的总成绩为sum4
                 int sum6 = 0;
                 //班级为6的个数为num4
                 int num6 =0;
                 for (Student2 stu : list) {
                         if (stu.getClasses().equals("class04")) {
                                 sum4=(int)(sum4+stu.getGrade());
                                ++num4;
                        }else if (stu.getClasses().equals("class05")) {
                                 sum5=(int)(sum5+stu.getGrade());
                                ++num5;
                        }else if (stu.getClasses().equals("class06")) {
                                 sum6=(int)(sum6+stu.getGrade());
                                        ++num6;
                        }
                       
                }
                 
                  System.out.println("class04的平均成绩:"+sum4/num4);
                  System.out.println("class05的平均成绩:"+sum5/num5);
                  System.out.println("class06的平均成绩:"+sum6/num6);
        }

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马