当前位置: 首页 > 编程日记 > 正文

【java】兴唐第二十三节课作业

已知如下:
下表为某班级四次考试成绩单,

  1. 要求使用HashMap<String, Integer>存储每次考试的成绩(key键为姓名,value为成绩)。
  2. 要求使用LinkedList存储考试次数,有几次考试就有几个HashMap
  3. 注意:后台用户是知道学生姓名的

形式如:LinkedList<HashMap<String, Integer>>
姓名 第一次考试成绩 第二次考试成绩 第三次考试成绩 第四次考试成绩
张三 80 88 86 88
李四 65 75 67 80
王五 35 45 55 59
薛六 90 92 98 88
赵七 70 75 65 68

要求是实现的功能
(1)查询某次考试的总成绩?(具体考试次数由后台用户输入Scanner决定)。
(2)查询某个学生的总成绩?(具体学生由后台用户输入Scanner决定)。
(3)查询某个学生的平均成绩?(具体学生由后台用户输入Scanner决定)。
(4)查询全班平均分最高的一次考试成绩是哪次,并输出平均成绩的具体值。
(5)查询某个学生的某次考试成绩(学生姓名和考试次数均由后台用户输入)。

提示:
例如第一次考试成绩,应该存储为如下格式:
HashMap<String, Integer> m = new HashMap<String, Integer>();
m.put(“张三”, 80);
m.put(“李四”, 65);
m.put(“王五”, 35);
m.put(“薛六”, 90);
m.put(“赵七”, 70);
代码实现:

/***Main.java*/
package NewHomework23;import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;public class Main {public static void main(String[] args) {ScoreData date = new ScoreData();List<Map<String,Integer>> list = date.getList();Scanner scanner = new Scanner(System.in);ShowList();int a = scanner.nextInt();switch(a){case 1:CalcSumScor(list, scanner);break;case 2:	GetStuSum(list,scanner);break;case 3:GetStuAver(list,scanner);break;case 4:GetBestAver(list,scanner);break;case 5:GetStuScore(list,scanner);break;default:System.out.println("输入有误!!!");}}static void ShowList() {System.out.println("请选择要实现的功能:");System.out.println("1、查询某次考试的总成绩");System.out.println("2、查询某个学生的总成绩");System.out.println("3、查询某个学生的平均成绩");System.out.println("4、查询全班平均成绩最高的考试是哪一次,并输出平均成绩的具体值");System.out.println("5、查询某个学生某次考试的成绩");		}static void CalcSumScor(List<Map<String,Integer>> list, Scanner scanner) {System.out.println("请输入要查询考试的次数");int n = scanner.nextInt();int score = 0;Set<Entry<String, Integer>> entry = list.get(n).entrySet();for(Entry<String, Integer>  entrySet: entry) {score += entrySet.getValue();}System.out.println("第" + n + "次的总成绩为" + score);}static void GetStuSum(List<Map<String,Integer>> list, Scanner scanner) {System.out.println("请输入要查询学生的姓名");String stuName = scanner.next();int sum = 0;for(int i = 0; i < list.size(); i++) {sum += list.get(i).get(stuName);}System.out.println(stuName + "的总成绩为" + sum);}static void GetStuAver(List<Map<String,Integer>> list, Scanner scanner) {System.out.println("请输入要查询学生的姓名");String stuName = new String();int sum = 0;for(int i = 0; i < list.size(); i++) {sum += list.get(i).get(stuName);System.out.println(stuName + "的平均成绩为" + sum/3);}}static void GetBestAver(List<Map<String,Integer>> list, Scanner scanner) {int num = 0;int sum = 0;int max = 0;for(int i = 0; i < list.size(); i++) {Set<Map.Entry<String, Integer>> entry = list.get(i).entrySet();for(Map.Entry<String, Integer> entrySet : entry) {sum += entrySet.getValue();}if (sum > max) {max = sum;num = i;}sum = 0;}System.out.println("平均成绩最高的是第 " + num + "次,平均成绩为" + max/5);}static void GetStuScore(List<Map<String,Integer>> list, Scanner scanner) {System.out.println("请输入要查询考试的次数"); int n =scanner.nextInt();System.out.println("请输入要查询学生的姓名"); String StuName = scanner.next();int score = list.get(n).get(StuName);System.out.println("成绩为:" + score);}
}
/*** ScoreData.java*/
package NewHomework23;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class ScoreData {private List<Map<String, Integer>> list = new ArrayList(4);{Map<String,Integer> map = new HashMap();map.put("张三", 80);map.put("李四", 65);map.put("王五", 35);map.put("薛六", 90);map.put("赵七", 70);list.add(map);map = new HashMap();map.put("张三", 88);map.put("李四", 75);map.put("王五", 45);map.put("薛六", 92);map.put("赵七", 75);list.add(map);map = new HashMap();map.put("张三", 86);map.put("李四", 67);map.put("王五", 55);map.put("薛六", 98);map.put("赵七", 65);list.add(map);map = new HashMap();map.put("张三", 88);map.put("李四", 80);map.put("王五", 59);map.put("薛六", 88);map.put("赵七", 68);list.add(map);}public List<Map<String, Integer>> getList() {return list;}
}

待完善:代码的健壮性

相关文章:

Data - 数据思维 - 中篇

6 - 模型与框架 利用现有的成熟的理论、模型与框架&#xff0c;结合实际业务情况&#xff0c;搭建分析框架&#xff0c;尽量确保数据分析维度的完整性&#xff0c;结果的有效性及正确性。 营销理论模型&#xff1a;4P、用户使用行为、STP理论、SWOT等。管理理论模型&#xff1a…

快速设置戴尔latitude笔记本的触摸板和指点杆

// TouchPadSettings.cpp : Defines the entry point for the console application.// by windviki 2010/08/31// 转载请注明出处。//// 办公用的戴尔笔记本除了触摸板&#xff0c;还在键盘中间有一个指点杆&#xff08;point stick&#xff09;// 打字很不习惯&#xff0c;经常…

Ubuntu 10.10系统安装手记

原来一直在公司用Ubuntu&#xff0c;感觉做开发是相当不错的&#xff0c;特别那种各种利用命令的方式真是太高效了。所以现在想把笔记本也装上&#xff0c;弄了半天&#xff0c;也遇到不少问题&#xff0c;记下来备忘一下。 虚拟机还是双系统 磁盘里面好多东西&#xff0c;基本…

php值传参,引用传参以及对象传参

传值&#xff1a;是把实参的值赋值给行参 &#xff0c;那么对行参的修改&#xff0c;不会影响实参的值传引用 &#xff1a;真正的以地址的方式传递参数传递以后&#xff0c;行参和实参都是同一个对象&#xff0c;只是他们名字不同而已对行参的修改将影响实参的值说明&#xff1…

用一行代码高效的求一个列表的平方和

最近看到一个笔试题&#xff0c;考察的都是 Python 中的高阶函数 题目如下&#xff1a;用一行代码高效的求一个列表的平方和(不能用 sum 函数) 分析 1.先将列表中每个值作平方&#xff1a; 立即想到 map 函数&#xff0c;假设列表是 range(10)&#xff0c;那么这个列表中平方是…

【java】第二十二节课(HashSet)

1、使用HashSet建立对象、添加元素并使用两种方法遍历 代码实现 public class SetDemo {public static void main(String[] args) {Set<String> set new HashSet();set.add("猴子");set.add("八戒");set.add("唐僧");set.add("沙僧…

转:在 .NET 中实现异步回调访问数据库

在 .NET 中实现异步回调访问数据库 时间:2009-11-17 19:52来源:网络收集 作者:佚名 点击: 334 次 技术论坛某些场合下&#xff0c;在对数据库进行访问时&#xff0c;为了避免同步访问数据时所带来的延迟&#xff0c;我们需要改进设计&#xff0c;以提高程序执行效率。一方面&am…

《资安人》:迈向成功SOC之路

近日&#xff0c;台湾的《资安人》上发表了一篇文章——《迈向成功的SOC之路》&#xff0c;现转载至此&#xff0c;以飨读者。【作者&#xff1a;王榮信 -11/08/2010】在現代虛擬世界中&#xff0c;造成資訊安全事件的來源為病毒、蠕蟲或木馬&#xff0c;不變的安全事件來源就是…

Laravel 上使用 phpexcel的两种方式

原创 2017年06月24日 20:24:311229文章采集与网上 方式1。使用原生的phpexcel &#xff0c; http://blog.csdn.net/CSwfe/article/details/52748046?locationNum1 1、在app目录下创建一个新的文件夹&#xff0c;命名libs&#xff08;可自定义&#xff09; app/libs/phpExcel2…

剑指offer-----Python-----栈

用两个栈实现队列 题目&#xff1a;用两个栈来实现一个队列&#xff0c;完成队列的Push和Pop操作。队列中元素为int类型. 首先&#xff0c;栈都是先进后出&#xff0c;但是队列呢&#xff0c;一般是先进先出。也就是创建两个栈stack1和stack2&#xff0c;使用两个“先进后出”的…

【工具软件】markdown编译器待办事项无法打勾

使用时可以直接点击上方工具栏的 List item 注意&#xff1a;此时已经自动在里面加了一个空格&#xff0c;如果直接加x的话&#xff0c;不会打勾&#xff0c;如下&#xff1a;[ x] List item 所以先删除空格在加x 问题解决

【转】创建不可见的Activity

在android开发中有时候会用到一些后台的Activity&#xff0c;但又不适合使用service&#xff0c;比如直接点击程序图标时只是执行一段代码&#xff0c;不需要弹出程序界面。此时可以在项目的AndroidManifest.xml文件中相应的Activity标签中添加这样一行&#xff1a;android:the…

关于 TApplication 详解 三 ---- TComponent

ComponentCount属性 对应对象&#xff1a;所有组件 声明&#xff1a;property ComponentCount: Integer; 功能&#xff1a;此属性在运行时有效&#xff0c;它是只读型。同时它标明组件具有的组件数。当用户在设计时可以在窗体上放置一个组件&#xff0c;因此此窗体将变为…

[转载] K3 K3c 最简单无损开壳方法

只用一把螺丝刀就行了&#xff0c;其它什么撬棒 信用卡 撬片等 拆机工具一概不用。拆了5台&#xff0c;只有一台断了一个扣口。1. 把底部4个螺丝拿掉。2.把路由如图放在桌子上&#xff0c;路由平行于身体&#xff0c;注意是立着放 使路由与桌子接触的部分成30度角。这样使一侧…

图像处理随笔知识

采样频率&#xff1a; 采样频率是指1s内采样的次数&#xff0c;反映了采样点之间的间隔大小。 采样频率越高&#xff0c;得到的图像样本越逼真&#xff0c;图像质量越高&#xff0c;但要求的存储量也越大。 图像量化&#xff1a; 要用多大范围的数值来表示图样采样之后的每一个…

一则android软件开发工程师的招聘信息

岗位职责&#xff1a; 从事Android平台的客户端软件开发 任职资格&#xff1a; 1、一年以上Android平台开发经验&#xff1b; 2、两年以上Java开发经验&#xff1b; 3、熟悉Android开发架构和API调用&#xff1b; 4、熟悉HTTP、TCP/IP通讯协议&#xff1b; 5、熟悉面向对象编程…

【数据库】数据库基本操作

操作练习&#xff1a; 创建数据库 删除数据库 修改数据库配置 创建数据表 修改表结构 ———————————— 添加字段 修改字段 重命名字段 更改主键 删除字段 ———————————— 重命名表名 删除表 截断表 表数据的操作 添加数据 修改数据 删除数…

USERADD命令详解

2019独角兽企业重金招聘Python工程师标准>>> 1.作用useradd命令用来建立用户帐号和创建用户的起始目录&#xff0c;使用权限是终极用户。2.格式useradd [&#xff0d;d home] [&#xff0d;s shell] [&#xff0d;c comment] [&#xff0d;m [&#xff0d;k templat…

tensorflow入门(二)

import numpy as np import tensorflow as tf import matplotlib.pyplot as plt#使用numpy生成200个随机点 x_data np.linspace(-0.5,0.5,200)[:,np.newaxis] noise np.random.normal(0,0.02,x_data.shape) y_data np.square(x_data) noise#定义两个placeholder x tf.plac…

DRF序列化和反序列化

一、自定义序列化组件 新建一个任意名的py文件&#xff0c;里面导入serlizerfrom rest_framework import serializers自定义一个类继承serializers&#xff0c;里面写需要序列化的字段方法一&#xff1a;继承serializers.Serializerclass BookSerlizer(serializers.Serializer)…

设计模式学习笔记-中介模式

概述&#xff1a; 用中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用&#xff0c;从而使其耦合松散&#xff0c;而且可以对立地改变他们之间的…

【数据库】兴唐第二十七节课之jdbc的使用

使用jdbc修改数据库表中的信息 package java27practice;import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;public class JDBCDemo {public static void main(String[] args) {Connection conn null;Stat…

windows 2008 R2无法创建性能收集器

问题&#xff1a; 检查排除方法&#xff1a; 1.确保用户有权限 Http://technet.microsoft.com/zh-cn/library/cc749154(WS.10).aspx &#xff08;参考&#xff1a; 2.确保 Distributed Transaction Coordinator服务 及Task Scheduler服务有启动。 3.检查 C:\Windows\System32\T…

Silverlight WCF RIA服务(二十三)Silverlight 客户端 4

DomainDataSource WCF RIA Services提供DomainDataSource控件来简化用户界面和域上下文中数据的交互。通过DomainDataSource&#xff0c;我们可以只是用声明性语法来检索、编辑数据。我们指定域上下文与DomainDataSource一起使用&#xff0c;然后通过这个上下文来调用操作。Dom…

Storm Trident示例function, filter, projection

以下代码演示function, filter, projection的使用&#xff0c;可结合注释 省略部分代码&#xff0c;省略部分可参考&#xff1a;https://blog.csdn.net/nickta/article/details/79666918 FixedBatchSpout spout new FixedBatchSpout(new Fields("user", "score…

解决 sh: java: command not found 问题

在执行脚本上加入如下配置即可#!/bin/bashJAVA_HOME/usr/java/jdk1.8.0_152export PATH$PATH:$JAVA_HOME/bin转载于:https://www.cnblogs.com/jimw/p/11126437.html

【数据库】 兴唐第二十七节课只sql注入

首先来一个用户登录程序 public static void login(String username, String password) {Connection conn null;Statement stat null;ResultSet rs null; try {Class.forName("com.mysql.jdbc.Driver");String url "jdbc:mysql://127.0.0.1:3306/tyrantfor…

SIEM部署的几条最佳实践

2010年11月12号&#xff0c;NetworkWorld发表了一篇文章——《SIEM部署的最佳实践》&#xff0c;业界同仁给出了他的一些建议。 这些建议主要是针对Verizon2010年的那个DBIR报告中提到的日志缺失造成的严重问题。 至于建议&#xff0c;主要有&#xff1a; 1&#xff09;先要搞明…

ffmpeg解码视频存为BMP文件

ffmpeg解码视频存为BMP文件 分类&#xff1a; ffmpeg2011-07-28 12:13 8人阅读 评论(0) 收藏 举报view plain#include <windows.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #pragma once #ifdef __cplusplus extern …

(四)Asp.net web api中的坑-【api的返回值】

&#xff08;四&#xff09;Asp.net web api中的坑-【api的返回值】 原文:&#xff08;四&#xff09;Asp.net web api中的坑-【api的返回值】void无返回值IHttpActionResultHttpResponseMessage自定义类型我这里并不想赘述这些返回类型&#xff0c; 可以参考博文http://blog.c…