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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

集合练习题1

發布時間:2024/8/1 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 集合练习题1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:
1、假設1701班有40個學生,學號為170101~170140,全部參加語文、數學、英語三門考試,給出所有同學的各科成績(成績為整數、隨機產生,范圍為 [50,100]),并求出每位同學的總成績。請編寫程序將1701班各位同學的總成績從高到低排序,并使用IO流的知識的把成績寫入到D:\StudentScore.txt文件中。
注:成績相同時學號較小的先打印;要求:
① 打印的信息包含學號、姓名(姓名統一為“同學 X”[X=01,02,03,…]和學號后兩位一致)和成績,具體格式參考下面截圖。
② 遍歷數組時使用迭代器
效果圖

這個時候運行用的代碼

package com.demo;import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.Random;public class Demo1 {public static void main(String[] args) {//定義一個集合ArrayList<StudentPersonDemo> al = new ArrayList<StudentPersonDemo>();for ( int i = 0+1; i <40+1; i++) {//實例Random類,使用它的隨機方法Random rea = new Random();//在外部聲明變量, 方便,if與else同時調用變量。int zong =0 ;int en;int ma;int le;int stn;String sn;//因為i小于10的時候是一位數的,所以當小于10的時候添加一個0。if(i<10){//rea.nextInt(51)+50意思是調用了Random的方法nexInt,51就是有51位數,加50就是為了在原基礎上加上50,這樣就不會出現1到50的數了en =rea.nextInt(51)+50;//英語ma =rea.nextInt(51)+50;//數學le =rea.nextInt(51)+50;//語文stn=170100+i;//學號sn ="同學:"+0+i;//名字zong =en+ma+le;//總成績}else{en =rea.nextInt(51)+50;//英語ma =rea.nextInt(51)+50;//數學le =rea.nextInt(51)+50;//語文stn=170100+i;//學號sn = "同學:"+i;//名字zong =en+ma+le;//總成績}StudentPersonDemo spd =new StudentPersonDemo(stn,sn,le,ma,en,zong);al.add(spd);//可以在這里輸出一下結果,/*System.out.println(spd.getStudentNumber()+" "+spd.getName()+" 語文"+spd.getLanguage()+" 數學"+spd.getMath()+" 英語"+spd.getEnglish()+" 總成績:"+spd.getTotalPoints());*/ }//排序一下al集合。Collections.sort(al);try {//創建BufferedWriter對象BufferedWriter buf =new BufferedWriter(new FileWriter("D://StudentScore.txt"));//可以直接使用循環寫出,也可以使用迭代Iterator<StudentPersonDemo> it= al.iterator();while (it.hasNext()){StudentPersonDemo s = it.next();String str ="學號:"+s.getStudentNumber()+" "+s.getName()+" 語文"+s.getLanguage()+" 數學"+s.getMath()+" 英語"+s.getEnglish()+" 總成績:"+s.getTotalPoints();buf.write(str+"\r\n");/*buf.newLine();*/}buf.close();} catch (IOException e) {e.printStackTrace();}} }

這個是調用的代碼塊

package com.demo;public class StudentPersonDemo implements Comparable<StudentPersonDemo>{//靜態變量private int StudentNumber;//學號private String Name;//名字private int language;//語文private int math;//數學private int English;//英語private int TotalPoints;//總成績 //無參構造器public StudentPersonDemo(){}//有參構造器public StudentPersonDemo(int studentNumber, String name, int language,int math, int english, int totalPoints) {super();StudentNumber = studentNumber;Name = name;this.language = language;this.math = math;English = english;TotalPoints = totalPoints;}public int getStudentNumber() {return StudentNumber;}public void setStudentNumber(int studentNumber) {StudentNumber = studentNumber;}public String getName() {return Name;}public void setName(String name) {Name = name;}public int getLanguage() {return language;}public void setLanguage(int language) {this.language = language;}public int getMath() {return math;}public void setMath(int math) {this.math = math;}public int getEnglish() {return English;}public void setEnglish(int english) {English = english;}public int getTotalPoints() {return TotalPoints;}public void setTotalPoints(int totalPoints) {TotalPoints = totalPoints;}//重寫排序方法@Overridepublic int compareTo(StudentPersonDemo o) {//要是判斷一項的話,就不用判斷了。當判斷一項無法,按照你的思想排序,就可以多判斷一下// 從小到大 :this‐o // 從大到小:o‐this // return this.age ‐ o.age;if (this.TotalPoints!=o.TotalPoints) {return o.TotalPoints- this.TotalPoints ;}else{return this.StudentNumber-o.StudentNumber ;}}}

總結

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

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