zoukankan      html  css  js  c++  java
  • Java lesson19homework

      1 package com.xt.lesson19;
      2 /**
      3  * 已知如下:
      4 下表为某班级四次考试成绩单,
      5 1. 要求使用HashMap<String, Integer>存储每次考试的成绩(key键为姓名,value为成绩)。
      6 2. 要求使用LinkedList存储考试次数,有几次考试就有几个HashMap
      7 3. 注意:后台用户是知道学生姓名的
      8 形式如:LinkedList<HashMap<String, Integer>>
      9 姓名 第一次考试成绩 第二次考试成绩 第三次考试成绩 第四次考试成绩
     10 张三 80 88 86 88
     11 李四 65 75 67 80
     12 王五 35 45 55 59
     13 薛六 90 92 98 88
     14 赵七 70 75 65 68
     15 要求是实现的功能
     16 (1)查询某次考试的总成绩?(具体考试次数由后台用户输入Scanner决定)。
     17 (2)查询某个学生的总成绩?(具体学生由后台用户输入Scanner决定)。
     18 (3)查询某个学生的平均成绩?(具体学生由后台用户输入Scanner决定)。
     19 (4)查询全班平均分最高的一次考试成绩是哪次,并输出平均成绩的具体值。
     20 (5)查询某个学生的某次考试成绩(学生姓名和考试次数均由后台用户输入)。
     21  (6) 使用TreeMap对学生总成绩进行排名输出
     22 提示:
     23 例如第一次考试成绩,应该存储为如下格式:
     24 HashMap<String, Integer> m = new HashMap<String, Integer>();
     25 m.put(“张三”, 80);
     26 m.put(“李四”, 65);
     27 m.put(“王五”, 35);
     28 m.put(“薛六”, 90);
     29 m.put(“赵七”, 70);
     30 
     31  */
     32 import java.util.HashMap;
     33 import java.util.LinkedList;
     34 import java.util.Map;
     35 import java.util.Map.Entry;
     36 import java.util.Scanner;
     37 import java.util.Set;
     38 import java.util.TreeMap;
     39 import java.util.TreeSet;
     40 public class StuScore  {
     41  Map<String,Integer> hm1=new HashMap<String,Integer>(5);
     42  Map<String,Integer> hm2=new HashMap<String,Integer>(5);
     43  Map<String,Integer> hm3=new HashMap<String,Integer>(5);
     44  Map<String,Integer> hm4=new HashMap<String,Integer>(5);
     45  LinkedList<Map<String,Integer>> llist=new LinkedList<Map<String,Integer>>();
     46  TreeSet<Student> tset=new TreeSet<Student>();
     47  
     48  
     49  
     50  
     51  public void addState(){
     52   
     53   hm1.put("张三", 80);
     54   hm1.put("李四", 65);
     55   hm1.put("王五", 35);
     56   hm1.put("薛六", 90);
     57   hm1.put("赵七", 70);
     58   
     59   hm2.put("张三", 88);
     60   hm2.put("李四", 75);
     61   hm2.put("王五", 45);
     62   hm2.put("薛六", 92);
     63   hm2.put("赵七", 75);
     64   
     65   hm3.put("张三", 86);
     66   hm3.put("李四", 67);
     67   hm3.put("王五", 55);
     68   hm3.put("薛六", 98);
     69   hm3.put("赵七", 65);
     70   
     71   hm4.put("张三", 88);
     72   hm4.put("李四", 80);
     73   hm4.put("王五", 59);
     74   hm4.put("薛六", 88);
     75   hm4.put("赵七", 68);
     76   
     77  }
     78  //查询某次考试的总成绩?(具体考试次数由后台用户输入Scanner决定)。
     79  public void oneExamTotolScore(){
     80   System.out.println("
    
    ----------------------以下是查询某次考试的总成绩-----------------------
    
    ");
     81   int totalScore=0;
     82   Scanner scanner=new Scanner(System.in);
     83   System.out.println("请您输入考试的次数:");
     84   int examTimes=scanner.nextInt();
     85   //算出这次考试总分
     86   switch (examTimes){
     87    case 1:{
     88     totalScore=hm1.get("张三")+hm1.get("李四")+hm1.get("王五")
     89     +hm1.get("薛六")+hm1.get("赵七");
     90     break;//防止case穿透
     91    }
     92    case 2:{
     93     totalScore=hm2.get("张三")+hm2.get("李四")+hm2.get("王五")
     94     +hm2.get("薛六")+hm2.get("赵七");
     95     break;//防止case穿透
     96    }
     97    case 3:{
     98     totalScore=hm3.get("张三")+hm3.get("李四")+hm3.get("王五")
     99     +hm3.get("薛六")+hm3.get("赵七");
    100     break;//防止case穿透
    101    }
    102    case 4:{
    103     totalScore=hm4.get("张三")+hm4.get("李四")+hm4.get("王五")
    104     +hm4.get("薛六")+hm4.get("赵七");
    105     break;//防止case穿透
    106    }
    107   }
    108   System.out.println("第"+examTimes+"的考试总分数是:"+totalScore);
    109  }
    110  
    111  
    112  
    113  
    114  //查询某个学生的总成绩?(具体学生由后台用户输入Scanner决定)。
    115  public void stuTotalScore(){
    116   System.out.println("
    
    --------------------以下是查询某个学生的总成绩------------------
    
    ");
    117   System.out.println("
    
    请输入您想要查询的学生姓名:");
    118   Scanner scanner=new Scanner(System.in);
    119   String name1=scanner.next();
    120   //得出这个学生的总分。
    121   int totalScore=hm1.get(name1)+hm2.get(name1)+hm3.get(name1)+
    122     hm4.get(name1);
    123   System.out.println("这个学生的考试总成绩是:"+totalScore);
    124  }
    125  
    126  
    127  //查询某个学生的平均成绩?(具体学生由后台用户输入Scanner决定)。
    128  public void averScore(){
    129   System.out.println("
    
    ----------------以下是查询某个学生的平均成绩-------------------
    
    ");
    130   System.out.println("
    
    请输入您想要查询的学生姓名:");
    131   Scanner scanner=new Scanner(System.in);
    132   String name1=scanner.next();
    133   //得出这个学生的总分。
    134   int totalScore=hm1.get(name1)+hm2.get(name1)+hm3.get(name1)+
    135     hm4.get(name1);
    136   
    137  double averScore=totalScore/4.0;
    138  System.out.println("这个学生的考试平均成绩是:"+averScore);
    139  
    140  }
    141  
    142  
    143  
    144  //查询全班平均分最高的一次考试成绩是哪次,并输出平均成绩的具体值。
    145  public void highAverageScoreTime(){
    146   System.out.println("
    
    -------------------以下是查询全班平均分最高的一次考试成绩是哪次,并输出平均成绩的具体值-----------------------
    
    ");
    147   double averScore1=(hm1.get("张三")+hm1.get("李四")+hm1.get("王五")
    148   +hm1.get("薛六")+hm1.get("赵七"))/5.0;
    149   double averScore2=(hm2.get("张三")+hm2.get("李四")+hm2.get("王五")
    150   +hm2.get("薛六")+hm2.get("赵七"))/5.0;
    151   double averScore3=(hm3.get("张三")+hm3.get("李四")+hm3.get("王五")
    152   +hm3.get("薛六")+hm3.get("赵七"))/5.0;
    153   double averScore4=(hm4.get("张三")+hm4.get("李四")+hm4.get("王五")
    154   +hm4.get("薛六")+hm4.get("赵七"))/5.0;
    155   //此方法求得最大平均分
    156   /*double maxScore=averScore1;
    157   maxScore=averScore2>maxScore?averScore2:maxScore;
    158   maxScore=averScore3>maxScore?averScore3:maxScore;
    159   maxScore=averScore4>maxScore?averScore4:maxScore;*/
    160   double maxScore=averScore1;
    161   int i=1;
    162   if(averScore2>maxScore){
    163    maxScore=averScore2;
    164    i++;
    165   }
    166   if(averScore3>maxScore){
    167    maxScore=averScore3;
    168    i++;
    169   }
    170   if(averScore4>maxScore){
    171    maxScore=averScore4;
    172    i++;
    173   }
    174   System.out.println("全班平均分最高的一次考试成绩是"+i+"最高平均成绩为"+maxScore);
    175   
    176  }
    177  
    178  
    179  
    180  
    181  
    182  
    183  //查询某个学生的某次考试成绩(学生姓名和考试次数均由后台用户输入)。
    184  public void stuAndTimeScore(){
    185   System.out.println("
    
    --------------以下是查询某个学生的某次考试成绩---------------
    
    ");
    186   System.out.println("
    
    请输入您想要查询的学生姓名:");
    187   Scanner scanner=new Scanner(System.in);
    188   String name1=scanner.next();
    189   
    190   Scanner scanner1=new Scanner(System.in);
    191   System.out.println("请您输入考试的次数:");
    192   int examTimes=scanner1.nextInt();
    193   
    194   
    195   switch (examTimes){
    196    case 1:{
    197     System.out.println(name1+"的第1的考试成绩为:"+hm1.get(name1));
    198     break;
    199    }
    200    
    201    case 2:{
    202     System.out.println(name1+"的第2的考试成绩为:"+hm2.get(name1));
    203     break;
    204    }
    205    
    206    case 3:{
    207     System.out.println(name1+"的第3的考试成绩为:"+hm3.get(name1));
    208     break;
    209    }
    210    
    211    case 4:{
    212     System.out.println(name1+"的第4的考试成绩为:"+hm4.get(name1));
    213     break;
    214    }
    215    
    216   
    217    
    218   }
    219   
    220  }
    221  
    222  
    223  public void sortStu(){
    224   Map<String,Integer> tMap=new HashMap<String,Integer>();
    225   tMap.put("张三", hm1.get("张三")+hm2.get("张三")+hm3.get("张三")+
    226     hm4.get("张三"));
    227   tMap.put("李四", hm1.get("李四")+hm2.get("李四")+hm3.get("李四")+
    228     hm4.get("李四"));
    229   tMap.put("王五", hm1.get("王五")+hm2.get("王五")+hm3.get("王五")+
    230     hm4.get("王五"));
    231   tMap.put("薛六", hm1.get("薛六")+hm2.get("薛六")+hm3.get("薛六")+
    232     hm4.get("薛六"));
    233   tMap.put("赵七", hm1.get("赵七")+hm2.get("赵七")+hm3.get("赵七")+
    234     hm4.get("赵七"));
    235   TreeMap tMap1=new TreeMap();
    236   tMap1.putAll(tMap);
    237   Scanner scanner=new Scanner(System.in);
    238   int a=scanner.nextInt();
    239   switch (a){
    240   case 1:{
    241    System.out.println("
    
    -----------------对学生总成绩进行排名输出------------------
    
    ");
    242    Set<Entry<String,Integer>> entrySet=tMap1.entrySet();
    243   
    244    for(Entry<String,Integer> entry:entrySet){
    245     System.out.println("姓名              第一次考试成绩                     第二次考试成绩                     第三次考试成绩                    第四次考试成绩                       总成绩");
    246     System.out.println(entry.getKey()+"                 "+hm1.get(entry.getKey())+
    247       "              "+hm2.get(entry.getKey())+"              "
    248       + hm3.get(entry.getKey())+"                 "+hm4.get(entry.getKey())+"             "
    249       +entry.getValue());
    250    }
    251   }
    252   case 0:
    253    System.exit(0);
    254   }
    255   
    256  }
    257  
    258  
    259  
    260  
    261  
    262  public static void main(String[] args) {
    263   StuScore ss=new StuScore();
    264   
    265   ss.addState();
    266   /*ss.oneExamTotolScore();
    267   ss.stuTotalScore();
    268   ss.averScore();
    269   ss.highAverageScoreTime();
    270   ss.stuAndTimeScore();*/
    271   System.out.println("如果您想得到总成绩排名,请输入1,否则输入0!");
    272   ss.sortStu();
    273  }
    274 }
  • 相关阅读:
    OC基础--常用类的初步介绍与简单使用之NSDate
    mysql创建自定义函数与存储过程
    Hibernate Session 获取connection
    mysql中isnull,ifnull,nullif的用法
    mysql数据库中某项其中一个值在该项排第几,百分几
    linux下的ImageMagick安装方法
    Java 判断操作系统类型(适用于各种操作系统)
    tesseract 字体训练资料篇
    structDemo1
    C语言中.h和.c文件解析(很精彩)
  • 原文地址:https://www.cnblogs.com/lyxcode/p/7357584.html
Copyright © 2011-2022 走看看