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 }