zoukankan      html  css  js  c++  java
  • Test

    package com.ssm.controller.file;


    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;

    import com.mysql.fabric.xmlrpc.base.Array;

    /**

     * JAVA培训考核

     * 

     * @author

     *

     */

    public class Exam {

    /**

    * 主方法

    * @param args 传入参数

    */

    public static void main(String[] args) {

    List<Person> list = new ArrayList<Person>();

    list.add(new Person("A1", "A", "A"));

    list.add(new Person("A2", "A", "A"));

    list.add(new Person("A3", "A", "B"));

    list.add(new Person("A4", "B", "B"));

    list.add(new Person("A5", "B", "A"));

    list.add(new Person("A6", "C", "B"));

    list.add(new Person("A7", "C", "A"));

    list.add(new Person("A8", "D", "A"));

    list.add(new Person("A9", "E", "B"));

    list.add(new Person("A10", "A", "B"));

    list.add(new Person("A11", "A", "C"));

    list.add(new Person("A12", "B", "C"));

    list.add(new Person("A13", "B", "C"));

    List<Ret> retList = test(list);

    for (Ret ret : retList) {

    System.out.println(new StringBuffer(ret.getGroup()).append(" A:").append(ret.getCountA()).append(", B:")

    .append(ret.getCountB()).append(", C:").append(ret.getCountC()).append(", D:")

    .append(ret.getCountD()).append(", E:").append(ret.getCountE()));

    }

    }

    // ************ 答题区域开始 *****************

    // ************ 答题区域结束 *****************

    /**

    * 按照组(班级)为单位,分别统计该组(班级)成绩为A/B/C/D/E的人数, 并按照A/B/C/D/E的人数来排序

    * @param list 人员列表

    * @return 分组排序后的结果

    */

    private static List<Ret> test(List<Person> list) {

    // ************ 答题区域开始 *****************

    Map<String,Integer> resultA1 = new HashMap<>();

    Map<String,Integer> resultB1 = new HashMap<>();

    Map<String,Integer> resultC1 = new HashMap<>();
    List<Ret> RelList = new ArrayList<>();
    for (Person person :list) {

    switch (person.getGroup()) {
    case "A":

    switch (person.getScoreLevel()) {
    case "A":
    if(null == resultA1.get("A")) {
    resultA1.put("A", 1);
    }else {
    resultA1.put("A", resultA1.get("A")+1);
    }

    break;

    case "B":
    if(null == resultA1.get("B")) {
    resultA1.put("B", 1);
    }else {
    resultA1.put("B", resultA1.get("B")+1);
    }

    break;


    case "C":
    if(null == resultA1.get("C")) {
    resultA1.put("C", 1);
    }else {
    resultA1.put("C", resultA1.get("C")+1);
    }

    break;
    case "D":
    if(null == resultA1.get("D")) {
    resultA1.put("D", 1);
    }else {
    resultA1.put("D", resultA1.get("D")+1);
    }

    break;
    case "E":

    if(null == resultA1.get("E")) {
    resultA1.put("E", 1);
    }else {
    resultA1.put("E", resultA1.get("E")+1);
    }
    break;

    }




    break;
    case "B":
    switch (person.getScoreLevel()) {
    case "A":
    if(null == resultB1.get("A")) {
    resultB1.put("A", 1);
    }else {
    resultB1.put("A", resultB1.get("A")+1);
    }

    break;

    case "B":
    if(null == resultB1.get("B")) {
    resultB1.put("B", 1);
    }else {
    resultB1.put("B", resultB1.get("B")+1);
    }

    break;


    case "C":
    if(null == resultB1.get("C")) {
    resultB1.put("C", 1);
    }else {
    resultB1.put("C", resultB1.get("C")+1);
    }

    break;
    case "D":
    if(null == resultB1.get("D")) {
    resultB1.put("D", 1);
    }else {
    resultB1.put("D", resultB1.get("D")+1);
    }

    break;
    case "E":

    if(null == resultB1.get("E")) {
    resultB1.put("E", 1);
    }else {
    resultB1.put("E", resultB1.get("E")+1);
    }
    break;

    }
    break;
    case "C":
    switch (person.getScoreLevel()) {
    case "A":
    if(null == resultC1.get("A")) {
    resultC1.put("A", 1);
    }else {
    resultC1.put("A", resultC1.get("A")+1);
    }

    break;

    case "B":
    if(null == resultC1.get("B")) {
    resultC1.put("B", 1);
    }else {
    resultC1.put("B", resultC1.get("B")+1);
    }

    break;


    case "C":
    if(null == resultC1.get("C")) {
    resultC1.put("C", 1);
    }else {
    resultC1.put("C", resultC1.get("C")+1);
    }

    break;
    case "D":
    if(null == resultC1.get("D")) {
    resultC1.put("D", 1);
    }else {
    resultC1.put("D", resultC1.get("D")+1);
    }

    break;
    case "E":

    if(null == resultC1.get("E")) {
    resultC1.put("E", 1);
    }else {
    resultC1.put("E", resultC1.get("E")+1);
    }
    break;

    }
    break;

    default:
    break;
    }


    }

    Ret Reta = new Ret();
    Reta.setGroup("A");
    Iterator<Entry<String, Integer>> it = resultA1.entrySet().iterator();
    while (it.hasNext()) {
    Map.Entry<String, Integer> entry = it.next();

    switch (entry.getKey()) {
    case "A":

    Reta.setCountA( entry.getValue());
    break;
    case "B":
    Reta.setCountB( entry.getValue());
    break;
    case "C":
    Reta.setCountC( entry.getValue());
    break;
    case "E":
    Reta.setCountE( entry.getValue());
    break;
    case "D":
    Reta.setCountD( entry.getValue());
    break;
    default:
    break;
    }


    }


    RelList.add(Reta);



    Ret Retb = new Ret();
    Retb.setGroup("B");
    Iterator<Entry<String, Integer>> it1 = resultB1.entrySet().iterator();
    while (it1.hasNext()) {
    Map.Entry<String, Integer> entry = it1.next();

    switch (entry.getKey()) {
    case "A":

    Retb.setCountA( entry.getValue());
    break;
    case "B":
    Retb.setCountB( entry.getValue());
    break;
    case "C":
    Retb.setCountC( entry.getValue());
    break;
    case "E":
    Retb.setCountE( entry.getValue());
    break;
    case "D":
    Retb.setCountD( entry.getValue());
    break;
    default:
    break;
    }


    }


    RelList.add(Retb);






    Ret Retc = new Ret();
    Retc.setGroup("C");
    Iterator<Entry<String, Integer>> it2 = resultC1.entrySet().iterator();
    while (it2.hasNext()) {
    Map.Entry<String, Integer> entry = it2.next();

    switch (entry.getKey()) {
    case "A":

    Retc.setCountA( entry.getValue());
    break;
    case "B":
    Retc.setCountB( entry.getValue());
    break;
    case "C":
    Retc.setCountC( entry.getValue());
    break;
    case "E":
    Retc.setCountE( entry.getValue());
    break;
    case "D":
    Retc.setCountD( entry.getValue());
    break;
    default:
    break;
    }


    }


    RelList.add(Retc);

    return RelList;

    // ************ 答题区域结束 *****************

    }

    }

    // ************ 答题区域开始 *****************

    // ************ 答题区域结束 *****************

    /**

     * 人

     */

    class Person {

    /** 姓名 */

    private String name;

    /** 成绩 */

    private String scoreLevel;

    /** 分组(班级) */

    private String group;

    /**

    * 构造一个人

    */

    public Person() {

    }

    /**

    * 构造一个人

    * @param name       姓名

    * @param scoreLevel 成绩

    * @param group      分组(班级)

    */

    public Person(String name, String scoreLevel, String group) {

    this.name = name;

    this.scoreLevel = scoreLevel;

    this.group = group;

    }

    /**

    * @return the name

    */

    public String getName() {

    return name;

    }

    /**

    * @param name the name to set

    */

    public void setName(String name) {

    this.name = name;

    }

    /**

    * @return the scoreLevel

    */

    public String getScoreLevel() {

    return scoreLevel;

    }

    /**

    * @param scoreLevel the scoreLevel to set

    */

    public void setScoreLevel(String scoreLevel) {

    this.scoreLevel = scoreLevel;

    }

    /**

    * @return the group

    */

    public String getGroup() {

    return group;

    }

    /**

    * @param group the group to set

    */

    public void setGroup(String group) {

    this.group = group;

    }

    }

    /**

     * 第二题结果Class

     * 

     * @author zhaodong

     *

     */

    class Ret {

    /** 分组(班级) */

    private String group;

    /** 成绩为A的人数 */

    private Integer countA;

    /** 成绩为B的人数 */

    private Integer countB;

    /** 成绩为C的人数 */

    private Integer countC;

    /** 成绩为D的人数 */

    private Integer countD;

    /** 成绩为E的人数 */

    private Integer countE;

    /**

    * 构造结果

    */

    public Ret() {

    this.countA = 0;

    this.countB = 0;

    this.countC = 0;

    this.countD = 0;

    this.countE = 0;

    }

    /**

    * @return the group

    */

    public String getGroup() {

    return group;

    }

    /**

    * @param group the group to set

    */

    public void setGroup(String group) {

    this.group = group;

    }

    /**

    * @return the countA

    */

    public Integer getCountA() {

    return countA;

    }

    /**

    * @param countA the countA to set

    */

    public void setCountA(Integer countA) {

    this.countA = countA;

    }

    /**

    * @return the countB

    */

    public Integer getCountB() {

    return countB;

    }

    /**

    * @param countB the countB to set

    */

    public void setCountB(Integer countB) {

    this.countB = countB;

    }

    /**

    * @return the countC

    */

    public Integer getCountC() {

    return countC;

    }

    /**

    * @param countC the countC to set

    */

    public void setCountC(Integer countC) {

    this.countC = countC;

    }

    /**

    * @return the countD

    */

    public Integer getCountD() {

    return countD;

    }

    /**

    * @param countD the countD to set

    */

    public void setCountD(Integer countD) {

    this.countD = countD;

    }

    /**

    * @return the countE

    */

    public Integer getCountE() {

    return countE;

    }

    /**

    * @param countE the countE to set

    */

    public void setCountE(Integer countE) {

    this.countE = countE;

    }

    }

  • 相关阅读:
    MySQL与SQLServer的语法区别
    Linux系统ELK环境搭建
    springboot_yml配置, 以及 properties 和yml转换示例
    mybatis-plus的 mapper.xml 路径配置问题
    Windows下 启动redis
    Mysql 创建库,删除库 命令,脚本
    mybatis中传入多个参数时,接口调用报错Parameter '*****' not found ...
    构建启动Vue项目
    HyperLedger/Fabric区块连网络-编译启动单节点
    HyperLedger/Fabric区块连网络 死磕fabric
  • 原文地址:https://www.cnblogs.com/KingR/p/15342044.html
Copyright © 2011-2022 走看看