java例题_50 题目:有五个学生,每个学生有 3 门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成 绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
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 }