老师没有讲过这个,我也没有找到相关的网课,路过的大佬拜托看看讲一下,留下网课链接也可以,超级感谢,被课设逼的秃头倒霉孩子
1条回答 默认 最新
- CSDN专家-sinJack 2021-06-25 18:21关注
文件的写入写出。然后转为对象。网上很多哦。你百度io流的学习就好了
如有帮助,请采纳。点击我回答右上角【采纳】按钮
参考一下:原文地址https://blog.csdn.net/jsc123581/article/details/81913486
package program.stream.exercise08; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; /** * 8.有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩), * 计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"student.txt"中。 */ public class StudentInformation { public static void main(String[] args) { Student[] students = new Student[5]; inputInformation(students); outputInformation(students); } //静态内部学生类 static class Student { //定义学生模型 private int id; //学生的学号 private String name; //学生的姓名 private double[] grades = new double[3]; //学生的三门成绩 private double sum; //学生总成绩 public Student(){} public Student(int id, String name, double[] grades, double sum) { this.id = id; this.name = name; this.grades[0] = grades[0]; this.grades[1] = grades[1]; this.grades[2] = grades[2]; this.sum = sum; } } //学生信息的输入:学号,姓名,成绩 private static void inputInformation(Student[] students) { int id = 0; //学号 String name = null; //姓名 double[] grades = new double[3]; //三门成绩 double sum = 0; //总成绩 //输入学生信息 BufferedReader br = null; try { br = new BufferedReader(new InputStreamReader(System.in)); for (int i=0; i<students.length; i++) { System.out.print("输入第"+(i+1)+"名学生的学号:"); id = Integer.parseInt(br.readLine());//将String转换成int类型 System.out.print("输入第"+(i+1)+"名学生的姓名:"); name = br.readLine(); sum = 0;//注意:每计算一名学生的总成绩后,总成绩要重新归零 //输入成绩,注意:此处使用grades.length而不使用students[i].grades.length //否则出现空指针,原因:此时学生类中还没有写入信息,长度为0 for (int j=0; j<grades.length; j++) { System.out.print("输入第"+(i+1)+"名学生的第"+(j+1)+"门成绩:"); grades[j] = Double.parseDouble(br.readLine());//将String转换成Double类型 sum += grades[j]; //计算总成绩 } System.out.println(); students[i] = new Student(id, name, grades, sum); } System.out.println("输入完成!"); }catch(Exception e) { e.printStackTrace(); } finally { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } //学生信息的输出:学号,姓名,成绩 private static void outputInformation(Student[] students) { //写入学生信息 BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter("src\\program\\stream\\exercise08\\student.txt")); bw.write("Id\t"+"Name\t"+"Grade1\t"+"Grade2\t"+"Grade3\t"+"Average\t\r\n");//\r\n:换行 for (int i=0; i<students.length; i++) { bw.write(students[i].id+"\t"); bw.write(students[i].name+"\t\t"); for (int j=0; j<students[i].grades.length; j++) { bw.write(students[i].grades[j]+"\t"); } bw.write(students[i].sum/3+"\t\r\n"); } System.out.println("写入完成!"); } catch (IOException e) { e.printStackTrace(); } finally { try { bw.close(); } catch (IOException e) { e.printStackTrace(); } } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
- ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
- ¥15 Centos / PETSc / PETGEM
- ¥15 centos7.9 IPv6端口telnet和端口监控问题
- ¥120 计算机网络的新校区组网设计
- ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
- ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
- ¥20 海浪数据 南海地区海况数据,波浪数据
- ¥20 软件测试决策法疑问求解答
- ¥15 win11 23H2删除推荐的项目,支持注册表等