黑马程序员技术交流社区

标题: 用Map来做,map<String,classroom>又没简单的思路呢亲 [打印本页]

作者: wxw_0818    时间: 2016-5-8 16:15
标题: 用Map来做,map<String,classroom>又没简单的思路呢亲
(1)定义一个学生类Student,属性:姓名(String name)、班级班号(String no)、成绩(double score)
        (2)将若干Student对象存入List集合,并统计每个班级的总分和平均分
作者: 郑顺志    时间: 2016-11-13 01:32
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);
        }

}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2