需求

键盘输入五名学生信息并录入list集合;

输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值;

计算并输出他们Java语言成绩的最大值和最小值。

思路

用Scanner 键盘输入

用for循环依次录入学生信息

用for循环输出学生信息

用for循环拿出学生成绩并求出成绩平均分

代码

补充知识:java 计算平均值,去除不合理的数据

我就废话不多说了,大家还是直接看代码吧~

package com.ine.tool;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

/**

* 计算平均值,去除不合理的数据

*

* @author Ro

*

*/

public class AverageTool

{

/**

* 主方法

*/

public static int getAverage(String str_int_arr)

{

int[] int_arr = stringToIntWhitSort(str_int_arr.split(","));

if (1 < int_arr.length)

{

return getAverageByGoodList(getGoodListByBaseList(getBaseListByIntArray(int_arr)));

}

return Integer.parseInt(str_int_arr);

}

/**

* 将String数组转换为int数组

*/

private static int[] stringToIntWhitSort(String[] arrs)

{

int[] ints = new int[arrs.length];

for (int i = 0; i < arrs.length; i++)

{

ints[i] = Integer.parseInt(arrs[i]);

}

Arrays.sort(ints);

System.out.println("ints:" + Arrays.toString(ints));

return ints;

}

/**

* 将int数组根据计算的基准值按块分离

*/

private static List> getBaseListByIntArray(int[] int_arr)

{

List> list = new ArrayList>();

list.add(new ArrayList());

int list_index = 0;

int average_flag = 0;

int sum_temp = 0;

for (int i : int_arr)

{

sum_temp += i;

}

average_flag = sum_temp / int_arr.length;

System.out.println("average_flag:" + average_flag);

for (int i = 0; i < int_arr.length - 1; i++)

{

if (average_flag >= Math.abs(int_arr[i] - int_arr[i + 1]))

{

list.get(list_index).add(int_arr[i]);

}

else

{

list.get(list_index++).add(int_arr[i]);

list.add(new ArrayList());

}

if ((i + 2) == int_arr.length)

{

list.get(list_index).add(int_arr[i + 1]);

}

}

System.out.println("getBaseListByIntArray:" + list.toString());

return list;

}

/**

* 筛选留下数据最多的块

*/

private static List> getGoodListByBaseList(

List> list)

{

if (1 < list.size())

for (int i = 1; i < list.size(); i++)

{

if (list.get(0).size() != list.get(i).size())

{

if (list.get(0).size() < list.get(i).size())

{

list.remove(0);

}

else

{

list.remove(i);

}

i--;

}

}

System.out.println("getGoodListByBaseList:" + list.toString());

return list;

}

/**

* 将块计算平均值,如果数据大于两位,则个位四舍五入

*/

private static int getAverageByGoodList(List> good_list)

{

int average = 0;

int sum_temp = 0;

int sum_index = 0;

for (List t_list : good_list)

{

for (int i : t_list)

{

sum_temp += i;

sum_index += 1;

}

}

average = sum_temp / sum_index;

if (10 < average)

average = (average + 5) / 10 * 10;

return average;

}

}

以上这篇java用list集合存储学生信息并算出成绩平均值操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持聚米学院。

JAVA班级年龄平均值代码_java用list集合存储学生信息并算出成绩平均值操作相关推荐

  1. java 学生信息 list_java用list集合存储学生信息并算出成绩平均值操作

    需求 键盘输入五名学生信息并录入list集合; 输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值: 计算并输出他们Java语言成绩的最大值和最小值. 思路 用Scanner 键盘输入 ...

  2. java实现增删改查_java大作业,实现学生信息增删改查

    [实例简介] 编写Web应用程序(JavaEE平台上的应用,能够运行在Tomcat服务器上),实现学生信息的增删改查. 在Web页面上实现添加一个学生记录,删除某个学生记录,修改某个学生记录,和按照姓 ...

  3. Java实现一个学生成绩管理系统,要求存储学生信息并进行增删改查操作。

    这是我刚学完Java封装继承的时候写的一个小案例,还不会使用集合,就用数组硬写了出来,但数组的缺点是不能改变数组的长度,虽然可以写个方法新建长度加一的数组然后把旧的数组装进去,但是真的好麻烦还没必要. ...

  4. java个人小管家代码_Java程序设计基础—Java小管家系统构建

    课题一 Java桌面小管家项目分析 任务1 Java桌面小管家项目分析 课题二 了解Java语言 任务2 编写第一个Java程序 课题三 面向对象程序设计思想 任务3 为小管家设计类 任务4 实现小管 ...

  5. 在学生信息结构体中再添加一个计算平均值和按照平均值排序以及删除指定学号的学生信息

    定义一个学生信息结构体,包含姓名,学号,语文成绩.数学成绩,和英语成绩,定义结构体数组存放不同学生的信息,可以在终端录入学生的信息,可以实现对于学生成绩的排序,排序可以按照语文.数学或者英语的任意一个 ...

  6. java主窗体设计代码_java窗体设计+GUI经典代码全放送

    [实例简介] java窗体设计经典代码,手把手叫你如何设计java窗体,编写应用程序. [实例截图] [核心代码] 57641e3b-d82c-4f28-bb29-35f951c1158d └── j ...

  7. java继承矩形例子代码_Java代码实现矩形覆盖实例

    Java代码实现矩形覆盖实例 题目 我们可以用2×1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2×1的小矩形无重叠地覆盖一个2×n的大矩形,总共有多少种方法? 程序核心思想 2*(n-1)的方块 ...

  8. 定义一个学生信息结构体,包含姓名,学号,语文成绩、数学成绩,和英语成绩,定义结构体数组存放不同学生的信息,可以在终端录入学生的信息,在基础上添加一个计算平均值和按照平均值排序以及删除指定学号的学生信息

    1. 代码如下: 头文件  chx.h #include<stdio.h> #include<string.h>struct chx{char name[128];int sn ...

  9. 用计算机算出自己鞋码和年龄,魔力科学小实验,用鞋码数就能算出你的年龄,这个算式就这么厉害?...

    原标题:魔力科学小实验,用鞋码数就能算出你的年龄,这个算式就这么厉害? 每天1个科学小知识,培养孩子的科学素养. 文|魔力科学小实验,本文为原创,欢迎关注及转载分享.  最近有道非常火的数学题,说是 ...

最新文章

  1. 当前环境下 物联网的四大关键点
  2. zzzp0371 属于本人
  3. 北师大本科毕业需要过计算机二级吗,全国计算机二级
  4. 【限时免费】LiveVideoStack Meet | 北京:卷时代,多媒体人 生存指北
  5. Lync Server 2010迁移至Lync Server 2013部署系列 Part3:部署后端备用服务器
  6. SAP Fiori refreshSecurityToken
  7. 工业4.0时代企业如何用CRM实现模式变革
  8. 高效使用hibernate-validator校验框架
  9. 腾讯优图×厦大联队夺冠全球AI医疗大赛!刷新肝脏肿瘤影像分割世界纪录
  10. 数据库select语句详解
  11. Python写一个简单的贪吃蛇程序
  12. 事件驱动的过程链方法(EPCs)
  13. 中文手机评论情感分类系列(三)
  14. 类似微信5.x朋友圈的弹出框点赞功能PopupWindow
  15. 调用notify方法
  16. 主要的垂直搜索引擎分析
  17. 全网首发?蚂蚁金服内部共享—1658页《Java面试突击核心讲》
  18. 2012年全球互联网数据一览:中国互联网用户全球第一
  19. Lightroom Classic 9.0安装教程
  20. 下厨房用过那些 slogan

热门文章

  1. 工程师误删了公司生产数据库,如何看待数据安全架构的脆弱性?
  2. 图解Kafka,一看就明白!
  3. JEECG Excel 实体类
  4. 【开源社区】如何参与JEECG开源团队?
  5. 七步从Angular.JS菜鸟到专家(2):Scopes
  6. 开发指南专题三:JEECG微云快速开发平台项目编码规范
  7. HDR【openCV实现】
  8. 对过去css+div的总结
  9. Create React App 2.0 华丽登场
  10. 一次EXPDP数据泵性能问题诊断和调优