【程序50】題目:有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成績),計算出平均成績,將原有的數據和計算出的平均分數存放在磁盤文件"stud"中。?
1 回答

Super_Scholar
TA貢獻25條經驗 獲得超14個贊
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?("從鍵盤輸入學生的信息,輸入格式為:name,30,30,30(姓名,三門課成績)<直接回車結束>"); ????????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?("格式不正確,重寫輸入:"); ????????????????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語文\t\t數學\t\t英語\t\t總分"?+?line); ????????????} ????????????fr.close?(); ????????????for?(?Student?student?:?list?) ????????????{ ????????????????fw.write?(student.toString?()?+?line); ????????????????fw.flush?(); ????????????} ????????????fw.close?(); ????????????System.out.println?("加入完畢."); ????????} ????????catch?(IOException?e) ????????{} ????} }
添加回答
舉報
0/150
提交
取消