日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学生选课

發布時間:2025/5/22 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学生选课 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 JAVA編程實現如下需求: 2 3 2017年05期培訓班組織技術學習與分享,有如下技術可供選擇: 4 VirtualBox 5 Vagrant 6 WebSocket 7 JSONP 8 Redis 9 MongoDB 10 Cassandra 11 RabbitMQ 12 ActiveMQ 13 Kafka 14 Lucene 15 Solr 16 ElasticSearch 17 Hadoop 18 HDFS 19 HIVE 20 PIG 21 Mahout 22 HBase 23 Spark 24 Guava 25 Protobuf 26 Avro 27 Thrift 28 Motan 29 Docker 30 DynamoDB 31 Scala 32 Groovy 33 SpringBoot 34 35 學員每人選擇其中兩項進行學習,并在學習會以Demo的形式分享給其他同事。學員們的意向如下: 36 呂鵬飛 ElasticSearch Redis 37 丁虎 Redis SpringBoot 38 梁秀斗 Hadoop HDFS 39 李文鵬 Docker Kafka 40 苗恒飛 Lucene Solr 41 佘昊 Solr Redis 42 杜世陽 ActiveMQ Hadoop 43 劉翩 SpringBoot ActiveMQ 44 史建智 Docker Lucene 45 王帥 Cassandra Spark 46 張昌昌 SpringBoot MongoDB 47 王騰飛 SpringBoot Spark 48 楊小平 WebSocket RabbitMQ 49 50 請編寫程序為學員安排最終的技術學習清單,要求: 51 52 · 如果一項技術只有一個學員選擇,則直接為該學員指定該技術 53 54 · 如果一項技術有多個學員選擇,則在選擇了該項技術的學員中隨機指定一位學習該技術 55 56 · 如果一個學員被指定的技術不足兩項,則在未被指定的技術中隨機指定一項或兩項給該學員,以湊足兩項但不能多于兩項。 57 58 · 每個學員被指定的技術不能重復 59 60 · 需要輸出最終的技術指定清單 61 62 · 需要輸出未被指定給學員的技術清單。 1 import java.util.ArrayList; 2 import java.util.HashMap; 3 import java.util.List; 4 import java.util.Map; 5 import java.util.Random; 6 import java.util.Set; 7 8 public class Course { 9 public static void main(String[] args) { 10 Map<String,String> map = initChooseCourse();//學生選課的初始數據 11 List<String> list = initAllCourse();//所有課程 12 int n = list.size()-2*map.size();//剩余課程個數 13 Map<String,String> rmap = new HashMap<>();//最后選課結果 14 15 Map<String,String> nmap = reverseMap(map,list); //key-value顛倒,重復的key拼接到新value里 16 17 List<String> clist = noSelectCourse(list,n);//剩余課程 18 19 /*課程- 學生 集合 轉換成 學生-課程集合,并隨機指定一位學生選擇多個學生選擇的課程, 20 * 其余學生去掉此課程,沒有課程的學生制空*/ 21 distinctMap(nmap,rmap); 22 23 buqiCourse(rmap,list); //每個學生補齊至2門課 24 25 System.out.println("\t\t\t學員的技術學習清單:"); 26 print(map,rmap); 27 28 System.out.println("\n\n未被指定給學員的技術清單:"); 29 System.out.println("\t"+clist); 30 } 31 //每個學生補齊至2門課 32 public static void buqiCourse(Map<String,String> rmap,List<String>list){ 33 Set<String> set = rmap.keySet(); 34 for (String s : set) { 35 if(rmap.get(s)==null) { 36 rmap.put(s, list.get(0)+" "+list.get(1)); 37 list.remove(0); 38 list.remove(0); 39 }else if(rmap.get(s)!=null&&!rmap.get(s).contains(" ")) { 40 rmap.put(s, rmap.get(s)+" "+list.get(0)); 41 list.remove(0); 42 } 43 } 44 } 45 /*課程- 學生 集合 轉換成 學生-課程集合,并隨機指定一位學生選擇多個學生選擇的課程, 46 * 其余學生去掉此課程,沒有課程的學生制空*/ 47 public static void distinctMap(Map<String,String> nmap,Map<String,String> rmap){ 48 Set<String> nset = nmap.keySet(); 49 Random r = new Random(); 50 for (String ns : nset) { 51 String[] str = nmap.get(ns).split(","); 52 int temp = r.nextInt(str.length); 53 for (int i = 0;i < str.length; i++) { 54 if(i!=temp&&!rmap.containsKey(str[i])) 55 rmap.put(str[i], null); 56 else if(i==temp) { 57 if(rmap.containsKey(str[i])) { 58 if(rmap.get(str[i])!=null) 59 rmap.put(str[i], rmap.get(str[i])+" "+ns); 60 else 61 rmap.put(str[i], ns); 62 }else { 63 rmap.put(str[i], ns); 64 } 65 } 66 } 67 } 68 } 69 //學生-課程 集合 轉換成 課程- 學生集合 70 public static Map<String,String> reverseMap(Map<String,String> map,List<String> list){ 71 Map<String,String> nmap = new HashMap<>(); 72 Set<String> set = map.keySet(); 73 for (String s : set) { 74 String[] str = map.get(s).split(" "); 75 for (String ss : str) { 76 if(nmap.containsKey(ss)) { 77 nmap.put(ss, nmap.get(ss)+","+s); 78 }else { 79 nmap.put(ss, s); 80 } 81 list.remove(ss); 82 } 83 } 84 return nmap; 85 } 86 //打印map集合 87 public static void print(Map<String,String> map,Map<String,String> rmap) { 88 Set<String> set = map.keySet(); 89 System.out.println("開始\t\t\t\t最終"); 90 for (String s : set) { 91 System.out.println(s+" "+map.get(s)+"\t\t\t"+s+" "+rmap.get(s)); 92 } 93 } 94 //為所有課程不夠的學生指定的課程 95 public static List<String> noSelectCourse(List<String> list,int n){ 96 List<String> l = new ArrayList<>(); 97 Random r = new Random(); 98 for (int i = 0; i < n; i++) { 99 int m = r.nextInt(list.size()); 100 l.add(list.get(m)); 101 list.remove(m); 102 } 103 return l; 104 } 105 //初始選課 106 public static Map<String,String> initChooseCourse(){ 107 Map<String,String> map = new HashMap<String, String>(); 108 map.put("呂鵬飛","ElasticSearch Redis"); 109 map.put("丁虎","Redis SpringBoot"); 110 map.put("梁秀斗","Hadoop HDFS"); 111 map.put("李文鵬","Docker Kafka "); 112 map.put("苗桓飛","Lucene Solr"); 113 map.put("佘昊","Solr Redis"); 114 map.put("杜世陽","ActiveMQ Hadoop"); 115 map.put("劉翩","SpringBoot ActiveMQ"); 116 map.put("史建智","Docker Lucene"); 117 map.put("王帥","Cassandra Spark"); 118 map.put("張昌昌","SpringBoot MongoDB"); 119 map.put("王騰飛","SpringBoot Spark"); 120 map.put("楊小平","WebSocket RabbitMQ"); 121 return map; 122 } 123 //所有課程 124 public static List<String> initAllCourse(){ 125 List<String> list = new ArrayList<>(); 126 list.add("VirtualBox"); 127 list.add("Vagrant"); 128 list.add("WebSocket"); 129 list.add("JSONP"); 130 list.add("Redis"); 131 list.add("MongoDB"); 132 list.add("Cassandra"); 133 list.add("RabbitMQ"); 134 list.add("ActiveMQ"); 135 list.add("Kafka"); 136 list.add("Lucene"); 137 list.add("Solr"); 138 list.add("ElasticSearch"); 139 list.add("Hadoop"); 140 list.add("HDFS"); 141 list.add("PIG"); 142 list.add("HIVE"); 143 list.add("Mahout"); 144 list.add("HBase"); 145 list.add("Spark"); 146 list.add("Guava"); 147 list.add("Protobuf"); 148 list.add("Avro"); 149 list.add("Thrift"); 150 list.add("Motan"); 151 list.add("Docker"); 152 list.add("DynamoDB"); 153 list.add("Scala"); 154 list.add("Groovy"); 155 list.add("SpringBoot"); 156 return list; 157 } 158 }

?

轉載于:https://www.cnblogs.com/archimedes-euler/p/9975813.html

總結

以上是生活随笔為你收集整理的学生选课的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。