【程序50】題目:有五個(gè)學(xué)生,每個(gè)學(xué)生有3門(mén)課的成績(jī),從鍵盤(pán)輸入以上數(shù)據(jù)(包括學(xué)生號(hào),姓名,三門(mén)課成績(jī)),計(jì)算出平均成績(jī),將原有的數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤(pán)文件"stud"中。?
1 回答

Super_Scholar
TA貢獻(xiàn)25條經(jīng)驗(yàn) 獲得超14個(gè)贊
import?java.io.FileReader; import?java.io.FileWriter; import?java.io.IOException; import?java.util.Collections; import?java.util.Comparator; import?java.util.LinkedList; import?java.util.Scanner; ? public?class?Student { ????double?chinese; ????double?math; ????double?english; ????double?sum; ????String?sname; ? ????public?Student?(?double?chinese,?double?math,?double?english,?double?sum,?String?sname?) ????{ ????????this.chinese?=?chinese; ????????this.math?=?math; ????????this.english?=?english; ????????this.sum?=?sum; ????????this.sname?=?sname; ????} ? ????@Override ????public?String?toString?() ????{ ????????return?String.format?("%s\t\t%2$.1f\t\t\t%3$.1f\t\t\t%4$.1f\t\t\t%5$.1f",?sname,?chinese,?math,?english,?sum); ????} ? ????public?static?void?main?(?String[]?args?) ????{ ????????Scanner?scanner?=?new?Scanner?(System.in); ????????LinkedList<Student>?list?=?new?LinkedList<Student>?(); ????????System.out.println?("從鍵盤(pán)輸入學(xué)生的信息,輸入格式為:name,30,30,30(姓名,三門(mén)課成績(jī))<直接回車(chē)結(jié)束>"); ????????while?(scanner.hasNextLine?()) ????????{ ????????????String?line?=?scanner.nextLine?().trim?(); ????????????if?("".equals?(line)) ????????????{ ????????????????break; ????????????} ????????????String[]?info?=?line.split?("\\,"); ????????????String?name?=?info[0]; ????????????double?chinese?=?0; ????????????double?math?=?0; ????????????double?english?=?0; ????????????double?sum?=?0; ????????????try ????????????{ ????????????????chinese?=?Double.parseDouble?(info[1]); ????????????????math?=?Double.parseDouble?(info[2]); ????????????????english?=?Double.parseDouble?(info[3]); ????????????????sum?=?chinese?+?math?+?english; ????????????} ????????????catch?(Exception?e) ????????????{ ????????????????System.out.println?("格式不正確,重寫(xiě)輸入:"); ????????????????continue; ????????????} ????????????Student?student?=?new?Student?(chinese,?math,?english,?sum,?name); ????????????list.add?(student); ????????} ????????scanner.close?(); ????????Collections.sort?(list,?new?Comparator<Student>?() ????????{ ????????????@Override ????????????public?int?compare?(?Student?o1,?Student?o2?) ????????????{ ????????????????if?(o1.sum?>?o2.sum) ????????????????{ ????????????????????return?-1; ????????????????} ????????????????else?if?(o1.sum?<?o2.sum) ????????????????{ ????????????????????return?1; ????????????????} ????????????????else ????????????????{ ????????????????????return?0; ????????????????} ????????????} ????????}); ????????try ????????{ ????????????String?file?=?"stu.txt"; ????????????String?line?=?System.getProperty?("line.separator"); ????????????FileWriter?fw?=?new?FileWriter?(file,?true); ????????????FileReader?fr?=?new?FileReader?(file); ????????????if?(fr.read?()?==?-1) ????????????{ ????????????????fw.write?("姓名\t\t語(yǔ)文\t\t數(shù)學(xué)\t\t英語(yǔ)\t\t總分"?+?line); ????????????} ????????????fr.close?(); ????????????for?(?Student?student?:?list?) ????????????{ ????????????????fw.write?(student.toString?()?+?line); ????????????????fw.flush?(); ????????????} ????????????fw.close?(); ????????????System.out.println?("加入完畢."); ????????} ????????catch?(IOException?e) ????????{} ????} }
添加回答
舉報(bào)
0/150
提交
取消