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 }