统计出每个班级的总分和平均分

 1 package collection.map;
 2
 3
 4 public class Student {
 5     private String name;
 6     private String classNo;
 7     private double score;
 8
 9
10     public Student(String name, String classNo, double score) {
11         super();
12         this.name = name;
13         this.classNo = classNo;
14         this.score = score;
15     }
16     public String getName() {
17         return name;
18     }
19     public void setName(String name) {
20         this.name = name;
21     }
22     public String getClassNo() {
23         return classNo;
24     }
25     public void setClassNo(String classNo) {
26         this.classNo = classNo;
27     }
28     public double getScore() {
29         return score;
30     }
31     public void setScore(double score) {
32         this.score = score;
33     }
34
35
36 }
package collection.map;

import java.util.ArrayList;
import java.util.List;

public class ClassRoom {

	private String roomNo;
	private List<Student> stus;		//学生列表
	private double total;			//总分

	public ClassRoom()
	{
		stus = new ArrayList<Student>();
	}

	public ClassRoom(String roomNo)
	{
		this();
		this.roomNo = roomNo;
	}

	public String getRoomNo() {
		return roomNo;
	}

	public void setRoomNo(String roomNo) {
		this.roomNo = roomNo;
	}

	public List<Student> getStus() {
		return stus;
	}

	public void setStus(List<Student> stus) {
		this.stus = stus;
	}

	public double getTotal() {
		return total;
	}

	public void setTotal(double total) {
		this.total = total;
	}

}

  

 1 package collection.map;
 2
 3 import java.util.ArrayList;
 4 import java.util.HashMap;
 5 import java.util.Iterator;
 6 import java.util.List;
 7 import java.util.Map;
 8 import java.util.Set;
 9
10
11 /*
12  *  定义一个Student类,属性:name 姓名,classNumber 班号,score 成绩
13  *  现在将若干Student对象放入List,请统计出每个班级的总分和平均分,分别打印出来
14  *    以面向对象的思维解决
15  *
16  */
17 public class MapDemo02 {
18
19     //将若干Student放入List
20     public static void exam(List<Student> list)
21     {
22         list.add(new Student("AAA", "301", 88));
23         list.add(new Student("BBB", "301", 84));
24         list.add(new Student("CCC", "302", 85));
25         list.add(new Student("DDD", "302", 86));
26         list.add(new Student("EEE", "201", 46));
27         list.add(new Student("FFF", "201", 68));
28         list.add(new Student("AAA", "301", 88));
29     }
30
31     //统计分数
32     public static void count(Map<String, ClassRoom> rooms,List<Student> list)
33     {
34         for(Student stu:list)
35         {
36             String no = stu.getClassNo();
37             double score = stu.getScore();
38             //根据班级编号 查看 Map是否存在该班级  分拣思路
39             ClassRoom room = rooms.get(no);
40             if(null == room)
41             {
42                 room = new ClassRoom(no);
43                 rooms.put(no, room);
44             }
45             //存储总分
46             room.setTotal(room.getTotal() + score);
47             room.getStus().add(stu);
48         }
49     }
50
51     //打印 总分与平均分
52     public static void printScoreAndAvg(Map<String, ClassRoom> rooms)
53     {
54         Set<Map.Entry<String, ClassRoom>> entrySet = rooms.entrySet();
55         Iterator<Map.Entry<String, ClassRoom>> iter = entrySet.iterator();
56         while (iter.hasNext()) {
57             Map.Entry<String, ClassRoom> entry = iter.next();
58             ClassRoom room = entry.getValue();
59             double avg = Math.round(room.getTotal() / room.getStus().size());
60             System.out.println("班号:"+room.getRoomNo()+",总分:"+room.getTotal()+"平均分:"+avg);
61         }
62     }
63
64     public static void main(String[] args) {
65         List<Student> list = new ArrayList<Student>();
66         exam(list);
67
68         //统计
69         Map<String, ClassRoom> rooms = new HashMap<String, ClassRoom>();
70         count(rooms, list);
71         printScoreAndAvg(rooms);
72
73     }
74 }
时间: 2024-10-05 08:34:11

统计出每个班级的总分和平均分的相关文章

用数组求一位数组中的最大值,最小值和平均分,并求出有多少个数超过平均分

#include<stdio.h> main() { int a=0,b,n,i,j,s[100],max,min,w; scanf("%d",&n); w=0; for(i=0;i<n;i++) scanf("%d",&s[i]); max=s[0]; for(i=1;i<n;i++) if(max<s[i]) max=s[i]; //else {max=s[i+1];min=s[i];}} min=s[0]; for

设计10名学生成绩信息,同学有3门课程,计算同学的总成绩和平均分。 排序输出

public class Grade {     private double english;     private double math;     private double sql;          public Grade(double english, double math, double sql) {         this.english = english;         this.math = math;         this.sql = sql;     }

面向对象分拣存储

题目:一个Student类,属性name姓名,no编号,score成绩,现在将若干个student对象放入List,请统计出每个班级的总分和平均分 /** * 学生类 * @author student * */ public class Student { private String name;//姓名 private String no;//编号 private double score;//成绩 public Student(String name, String no, double

cololection

package cn.bjsxt.col; /** * 简化迭代器原理 * hasNext * next * @author Administrator * */ public class MyArrayList { private String[] elem ={"a","b","c","d","e","f","g"}; private int size = ele

第十一章:集合(二)

Map类型集合: Map类型的集合每个元素都有两个信息:键  ,  值. Map中键不能相同.一个键映射一个值. 键,值默认为Object类型. put(键,值) 是Map集合添加元素的方法. get(键)  返回值 remove(键)  删除值. containsKey(键)  判断键. Collections工具类 Conllections 主要用于List类集合. Conllections.sort(List)  对List集合中的元素按升序排列. Conllections.reverse

我的疑难杂症

package lianxi; import java.awt.Color; import java.util.Scanner; public class doggg { public static void main(String[] args){ Scanner sc=new Scanner(System.in); // 14.三个班的同学参加比赛,每个班五名同学, // 1.求出各班的总分和平均分 // 2.求出各班的最高分 // 3.求出全部分数中的最高分 int k=0;//全部最高分

Java基础--关于分支、循环、数组的部分练习题及详解

**-----分支题-----** 1.定义一个int类型的变量为x并赋值为5,如果x<10,则让x实现自增,并输出x最后的值. package com.eduask;  //包名 public class Test {   //类 public static void main(String[] args) {  //主函数 int x=5; //声明一个int类型的变量并初始化值为5 if(x<10){  //if分支,如果x的值小于10,x=5,符合题意,进入分支 x++;   //x实

java基础 求3个班5个同学成绩

/**三个班的同学参加比赛,每个班五名同学, 1.求出各班的总分和平均分 2.求出各班的最高分 3.求出全部分数中的最高分*/ package eduask01; import java.util.*; public class Rask5{ public static void main(String[]args){ Scanner sc=new Scanner(System.in); double sum1=0,sum2=0,sum3=0;//3个班级分别设置一个总分 double max=

JS-纯js制作动态成绩表(流程控制语句+js内置对象)

流程控制for循环+if判断+Math对象+Array对象+Date对象制作成绩表 <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>综合运用</title> <style type="text/css"> body { text-align: center; font: 14px "微软雅黑";