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 }

 

posted @ 2020-02-20 00:20  浪漫主义程序员  阅读(2303)  评论(0编辑  收藏  举报