如题所示

从score.txt文件中读取数据,文件中每行是一个学生的成绩记录,
内容格式为:
姓名、英语成绩、语文成绩、数学成绩、JAVA成绩。
要求:按总分从高到低排序后显示出每个学生的各科成绩和总成绩。
score.txt文件内容例如:
姓名##英语##语文##数学##JAVA
罗霄##68##95##52##81
刘苗苗##97##97##84##62
郝笑##75##93##87##52
李昊阳##86##83##88##68
雷鸣##54##73##70##91
李文龙##79##97##96##63
赵璧辉##52##51##75##97
姜治文##59##88##60##86
陈琳##86##53##58##63
苏浩##79##68##89##55
李金洲##61##89##72##71
王欢##82##66##86##70
王璐##68##60##84##70

主要代码

public static void main(String[] args) throws IOException {/*获取文档中的学生人数*/FileReader fr = new FileReader("D:\\score.txt");BufferedReader br = new BufferedReader(fr);String str = null;int num = 0;//记录学生人数while ((str = br.readLine()) != null) {num++;}StudentDemo[] atu = new StudentDemo[num - 1];//建立一个学生类数组用于存储学生信息/*获取每个学生的信息*/FileReader fread = new FileReader("D:\\score.txt");BufferedReader bread = new BufferedReader(fread);bread.readLine();  // 读取第一行,为后面读取的每行都是学生的信息String s = null;int count = 0;while ((s = bread.readLine()) != null) {//从文档中的第二行读取,每次读取一个学生的所有信息int sum = 0;//总成绩String[] infor = s.split("##");    // 存储第二行之后的每个学生的信息,因为文档中每个学生的信息中都有"##",所以split分割出学生的信息Integer[] score = new Integer[infor.length - 1];    //分割之后的转数字for (int i = 1; i < infor.length; i++) {score[i - 1] = new Integer(infor[i]); //获取infor数组中的成绩,存储到score数组中sum += score[i - 1]; //求成绩总和}//分别对应 姓名       英语    语文      数学      javaStudentDemo stu = new StudentDemo(infor[0], score[0], score[1], score[2], score[3], sum);   // 存储每次读取的一位同学的所有信息atu[count] = stu;count++;}Arrays.sort(atu);//在Student类中重写了Compare方法,使用总成绩排序//遍历输出for (StudentDemo i : atu) {System.out.println(i);}}

Student类

public class StudentDemo implements Comparable<StudentDemo> {/*英语成绩、语文成绩、数学成绩、JAVA成绩*/private String name;private int English;private int Chinese;private int Math;private int JavaS;private int num;public StudentDemo(String name, int english, int chinese, int math, int javaS, int num) {this.name = name;this.English = english;this.Chinese = chinese;this.Math = math;this.JavaS = javaS;this.num = num;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getEnglish() {return English;}public void setEnglish(int english) {English = english;}public int getMath() {return Math;}public void setMath(int math) {Math = math;}public int getChinese() {return Chinese;}public void setChinese(int chinese) {Chinese = chinese;}public int getJavaS() {return JavaS;}public void setJavaS(int javaS) {JavaS = javaS;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}@Overridepublic String toString() {return "{" +"姓名='" + name + '\'' +", 英语成绩=" + English +", 语文成绩=" + Math +", 数学成绩=" + Chinese +", java成绩=" + JavaS +", 总成绩=" + num +'}';}@Overridepublic int compareTo(StudentDemo o) {return this.num - o.num;}
}

运行结果

{姓名='  陈琳', 英语成绩=86, 语文成绩=58, 数学成绩=53, java成绩=63, 总成绩=260}
{姓名=' 赵璧辉', 英语成绩=52, 语文成绩=75, 数学成绩=51, java成绩=97, 总成绩=275}
{姓名=' 王璐', 英语成绩=68, 语文成绩=84, 数学成绩=60, java成绩=70, 总成绩=282}
{姓名=' 雷鸣', 英语成绩=54, 语文成绩=70, 数学成绩=73, java成绩=91, 总成绩=288}
{姓名=' 苏浩', 英语成绩=79, 语文成绩=89, 数学成绩=68, java成绩=55, 总成绩=291}
{姓名=' 姜治文', 英语成绩=59, 语文成绩=60, 数学成绩=88, java成绩=86, 总成绩=293}
{姓名=' 李金洲', 英语成绩=61, 语文成绩=72, 数学成绩=89, java成绩=71, 总成绩=293}
{姓名=' 罗霄', 英语成绩=68, 语文成绩=52, 数学成绩=95, java成绩=81, 总成绩=296}
{姓名=' 王欢', 英语成绩=82, 语文成绩=86, 数学成绩=66, java成绩=70, 总成绩=304}
{姓名=' 郝笑', 英语成绩=75, 语文成绩=87, 数学成绩=93, java成绩=52, 总成绩=307}
{姓名=' 李昊阳', 英语成绩=86, 语文成绩=88, 数学成绩=83, java成绩=68, 总成绩=325}
{姓名=' 李文龙', 英语成绩=79, 语文成绩=96, 数学成绩=97, java成绩=63, 总成绩=335}
{姓名=' 刘苗苗', 英语成绩=97, 语文成绩=84, 数学成绩=97, java成绩=62, 总成绩=340}Process finished with exit code 0

IO流--学生成绩记录练习题相关推荐

  1. C++实现学生成绩管理系统

    系统分析 本系统主要是用文件和链表来完成对学生成绩信息处理. 1.输入记录模块,完成将数据存入链表中. 2.查询记录模块,完成在链表中查询学生信息. 3.更新记录模块,对学生信息的维护. 4.统计数据 ...

  2. C实现的一个简单的学生成绩管理系统

    /*学生成绩管理系统 */ //#include "StdAfx.h" #include "stdio.h"   /*标准输入输出函数库*/ #include ...

  3. JAVA学生成绩分析系统任务书,学籍管理系统任务书

    本项目要求设计"学生学籍管理系统",其使用人群为各学校学籍管理人员,目的是提高学籍管理人员的办公效率和减少差错率."学籍管理"要求实现对学生的入学个人信息注册. ...

  4. java简单学生成绩系统_JAVA 实现简单的学生成绩管理系统

    一.实验目的 1.掌握java的类与对象的基本概念: 2.掌握简单的信息管理系统的设计与实现. 二.实验环境 实验建议在安装了以下软件的计算机上完成: 1.       Windows xp/win7 ...

  5. 录入查询学生成绩C语言,学生成绩录入查询系统C语言程序

    #include #include #include #define M 50 /********************************全局变量*********************** ...

  6. 数据结构课程设计(学生成绩管理系统)

    #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 200 typedef ...

  7. html制作统计期末成绩,利用Excel制作学生成绩表

    用Excel的VBA来制作精美学生成绩条. 解决问题的思路 因为每个学生只有一个学号,所以学号是惟一的,根据学号惟一性这一特点,使用VBA里的判断语句,如果学号不同,就在两者之间插入一个空白行,然后再 ...

  8. c语言学生成绩管理论文,C语言学生成绩管理系统源代码论文

    #*头文件说明*/#*字符串函数*/#*内存操作函数*/#*字符操作函数*/#*动态地址分配函数*/# )*定义结构体数组用于缓存数据*/{];];];S;/*各函数声明*/S *; /*初始化函数* ...

  9. python学生成绩管理系统 毕业设计-附源码061011

    摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步骤,采用python技术建设学生 ...

最新文章

  1. 永远退出机器学习界!从业八年,Reddit网友放弃高薪转投数学:风气太浮夸
  2. RecycleView 源码解析
  3. (-215:Assertion failed) dst.data == (uchar*)dst_ptr in function 'cvShowImage'
  4. 下c语言按q退出_Linux vim编辑器怎么退出?第一次用都会问的问题
  5. freemodbus源码/获取地址
  6. 把一维数组处理成二维数组
  7. EJB之JPA(UUID与TABLE影射策略)
  8. SQLServer之事务简介
  9. 怎样高效阅读一份深度学习项目代码?
  10. 847方波放大电路_身为工程师需要了解的模拟积分器电路!
  11. Linux shell —— 数组与关联数组
  12. ASP.NET生成分页静态页
  13. 大厂面试|字节跳动面试题汇总
  14. 《产品经理认证(NPDP)知识体系指南》
  15. 颠覆式编程:软件2.0
  16. Verilog Language--Modules:Hierachy--Module add
  17. mysql中一个字符等于几个字节_细说一个汉字等于几个字符,以及汉字,字符,字节,位之间的关系...
  18. IntelliJ IDEA 设置快捷键(Keymap)
  19. python seek使用_Python seek()用法及代码示例
  20. hotmail邮箱pop3server设置方法

热门文章

  1. AppStore 上架中的分类
  2. 山东省2022年高新技术补助情况
  3. 淘宝API商品优惠券信息接入方案
  4. 笔记: SpringBoot + VUE实现数据字典展示功能
  5. Virtualbox Ubuntu添加虚拟硬盘
  6. ASUS笔记本电路信号详解
  7. 推荐算法 itemcf java_推荐系统之基于物品的协同过滤算法(ItemCF)
  8. TiDB亿级数据亚秒响应查询扩缩容
  9. 让WinRAR免费成为非评估版
  10. lua判断两个数组是否相等