1 /*50 【程序 50 文件 IO】 2 題目:有五個學生,每個學生有 3 門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成 3 績),計算出平均成績,將原有的數據和計算出的平均分數存放在磁盤文件"stud"中。 4 */
5
6 /*分析 7 * 1、自定義類student,包括學號,姓名,科目1成績,科目2成績,科目3成績,平均成績 8 * public class 類名{ 9 *.數據類型 屬性名稱1; 10 *.數據類型 屬性名稱2; 11 * … 12 * } 13 * 2、分別調用三個學生的三科成績,求出平均值后存入學生的信息中 14 * 3、將信息表存入磁盤文件中 15 * */
16 /*數據 17 * 12 王力宏 66 77 88 18 * 13 周傑倫 123 109 121 19 * 14 薛之謙 89 72 123 20 * */
21
22
23 package homework; 24
25 import java.io.BufferedWriter; 26 import java.io.FileWriter; 27 import java.io.IOException; 28 import java.util.ArrayList; 29 import java.util.List; 30 import java.util.Scanner; 31
32 public class _50{ 33
34 public static void main(String[] args) { 35 // 建立List容器,用來保存學習信息
36 List<Student> list = new ArrayList<Student>(); 37 Scanner sc=new Scanner(System.in); //系統輸入掃描器
38 for (int i = 0; i < 3; i++) { 39 System.out.println("請輸入第"+(i+1)+"個同學的學號、姓名、成績1、成績2、成績3:(以空格相隔)"); 40 String[] s = sc.nextLine().split(" "); //從鍵盤得到一個字符串,用空格分割為5個子字符串
41 int ID = Integer.parseInt(s[0]); //得到ID
42 String name=s[1]; //姓名
43 int grade1 = Integer.parseInt(s[2]); //成績1
44 int grade2 = Integer.parseInt(s[3]); //成績2
45 int grade3 = Integer.parseInt(s[4]); //成績3
46 int aver=(grade1+grade2+grade3)/3; //用3個成績計算出平均成績
47 Student stu = new Student(ID, name, grade1, grade2, grade3, aver); 48 list.add(stu); //將數據存入數據表中
49 } 50 sc.close(); //關閉掃描儀 51 //輸出數據表中的所有數據
52 for(int i = 0 ; i<list.size();i++){ 53 System.out.print(list.get(i)+"\n"); 54 } 55
56 //創建一個字符緩沖輸出流=====看不到懂啊
57 BufferedWriter out = null; 58 try { 59 out = new BufferedWriter(new FileWriter("D:/stud.txt")); //將數據存到"D:/stud.txt"
60 for (int i = 0; i < list.size(); i++) { //遍歷數據表
61 out.write(list.get(i)+"\n"); //將數據寫入到
62 out.newLine(); // 換行
63 } 64 } catch (IOException e) { 65 e.printStackTrace(); 66 } finally { 67 try { 68 if (out != null) { 69 out.close(); 70 } 71 } catch (IOException e) { 72 e.printStackTrace(); 73 } 74 } 75
76 } 77
78 //自定義類Student
79 public static class Student{ 80 int ID; //學號
81 String name; //姓名
82 private float grade1; //成績1
83 private float grade2; //成績2
84 private float grade3; //成績3
85 private float aver; //平均成績
86
87 public Student(int ID,String name,float grade1,float grade2,float grade3,float aver) { 88 this.ID = ID; 89 this.name = name; 90 this.grade1 = grade1; 91 this.grade2 = grade2; 92 this.grade3 = grade3; 93 this.aver=aver; 94 } 95
96 public String toString() { 97 return "學生學號:"+ID+" 姓名:"+name+" 成績1:"+grade1+" 成績2:"+grade2+" 成績3:"
98 +grade3+" 平均成績:"+aver ; 99 } 100
101 } 102
103 }