1 /*50 【程序 50 文件 IO】 2 題目:有五個學生,每一個學生有 3 門課的成績,從鍵盤輸入以上數據(包括學生號,姓名,三門課成 3 績),計算出平均成績,將原有的數據和計算出的平均分數存放在磁盤文件"stud"中。 4 */ 5 6 /*分析 7 * 一、自定義類student,包括學號,姓名,科目1成績,科目2成績,科目3成績,平均成績 8 * public class 類名{ 9 *.數據類型 屬性名稱1; 10 *.數據類型 屬性名稱2; 11 * … 12 * } 13 * 二、分別調用三個學生的三科成績,求出平均值後存入學生的信息中 14 * 三、將信息表存入磁盤文件中 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)+"個同窗的學號、姓名、成績一、成績二、成績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 }