java用list集合存儲(chǔ)學(xué)生信息并算出成績(jī)平均值操作
需求
鍵盤輸入五名學(xué)生信息并錄入list集合;
輸出每個(gè)學(xué)生的信息,計(jì)算并輸出這五個(gè)學(xué)生Java語言成績(jī)的平均值;
計(jì)算并輸出他們Java語言成績(jī)的最大值和最小值。
思路
用Scanner 鍵盤輸入
用for循環(huán)依次錄入學(xué)生信息
用for循環(huán)輸出學(xué)生信息
用for循環(huán)拿出學(xué)生成績(jī)并求出成績(jī)平均分
代碼



補(bǔ)充知識(shí):java 計(jì)算平均值,去除不合理的數(shù)據(jù)
我就廢話不多說了,大家還是直接看代碼吧~
package com.ine.tool;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 計(jì)算平均值,去除不合理的數(shù)據(jù)
*
* @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數(shù)組轉(zhuǎn)換為int數(shù)組
*/
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數(shù)組根據(jù)計(jì)算的基準(zhǔn)值按塊分離
*/
private static List<List<Integer>> getBaseListByIntArray(int[] int_arr)
{
List<List<Integer>> list = new ArrayList<List<Integer>>();
list.add(new ArrayList<Integer>());
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<Integer>());
}
if ((i + 2) == int_arr.length)
{
list.get(list_index).add(int_arr[i + 1]);
}
}
System.out.println("getBaseListByIntArray:" + list.toString());
return list;
}
/**
* 篩選留下數(shù)據(jù)最多的塊
*/
private static List<List<Integer>> getGoodListByBaseList(
List<List<Integer>> 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;
}
/**
* 將塊計(jì)算平均值,如果數(shù)據(jù)大于兩位,則個(gè)位四舍五入
*/
private static int getAverageByGoodList(List<List<Integer>> good_list)
{
int average = 0;
int sum_temp = 0;
int sum_index = 0;
for (List<Integer> 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集合存儲(chǔ)學(xué)生信息并算出成績(jī)平均值操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- java實(shí)現(xiàn)學(xué)生成績(jī)檔案管理系統(tǒng)
- Java?GUI實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
- java學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- java實(shí)現(xiàn)學(xué)生成績(jī)錄入系統(tǒng)
- Java模擬登錄正方教務(wù)抓取成績(jī)、課表、空教室
- Eclipse+Java+Swing實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)的實(shí)例代碼
- Java實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)
- java實(shí)現(xiàn)學(xué)生成績(jī)信息管理系統(tǒng)
- Java利用條件運(yùn)算符的嵌套來完成學(xué)習(xí)成績(jī)的劃分
- java實(shí)現(xiàn)簡(jiǎn)單學(xué)生成績(jī)檔案管理系統(tǒng)
相關(guān)文章
SpringBoot執(zhí)行有返回值的異步任務(wù)問題
這篇文章主要介紹了SpringBoot執(zhí)行有返回值的異步任務(wù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
JVM內(nèi)存管理之JAVA語言的內(nèi)存管理詳解
下面小編就為大家?guī)硪黄狫VM內(nèi)存管理之JAVA語言的內(nèi)存管理詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
SpringMVC自定義參數(shù)綁定實(shí)現(xiàn)詳解
這篇文章主要介紹了SpringMVC自定義參數(shù)綁定實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Java中String類(字符串操作)的10個(gè)常見問題和解決方法
這篇文章主要介紹了Java中String類(字符串)操作的10個(gè)常見問題,需要的朋友可以參考下2014-04-04
Java框架入門之簡(jiǎn)單介紹SpringBoot框架
今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識(shí),文章圍繞著SpringBoot框架展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
在Java SE上使用Headless模式的超級(jí)指南
這篇文章主要介紹了在Java SE上使用Headless模式的超級(jí)指南,文中介紹了Headless模式實(shí)際使用的各種技巧,極力推薦!需要的朋友可以參考下2015-07-07

