东华大学java实验十三 成绩统计4-链表韦俊银)

本文介绍了一个JAVA实验,要求从score3.txt文件中读取学生成绩,通过LinkedList和ArrayList以及Iterator实现成绩查询和排名。首先创建学生结构体及四个比较器进行成绩排序,然后按姓名查询学生信息并显示各科成绩和排名。代码实现了文件读取、链表操作和排序功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

学校JAVA实验13


一、要求是什么?

学生成绩保存在score3.txt中,输入学生姓名,输出各科成绩和总成绩, 以及各科成绩排名和总成绩的排名。
要求:
1) 使用LinkedList<E>或ArrayList<E>泛型类和Iterator<E>迭代器类来
   查找成绩和确定成绩排名。参照课本15.2节的内容。

2) 如果没有该学生的成绩,则给出提示信息. 

二、思路

  • 先构建一个结构体学生,它包含名字成绩和排名
  • 然后构建四个比较器,方便之后将链表分别按成绩和总分排序( 不懂比较器的可以点击这里参考我的另外一篇博客)当然下面的代码我也写了注释
  • 然后建立文件,判断文件是否可读写
  • 接着建立结构体链表
  • 将第一行读入舍去,然后接着读入每一行,每读一行建立一个结构体,将名字,成绩读入。然后加入链表
  • 然后根据建立的四个比较器,排序四次,每一次排序,都便利一遍链表,将遍历的下标也就是排名,记录下来
  • 基本就完成了,然后输入一个名字,遍历一次链表就行,如果存在就输出,不存在就输出对应的话

三代码实现

代码如下

import java.util.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.Scanner;

public class exex {
   
	   public static class Comparator2 implements Comparator<student>{
   
		   @Override
		   public int compare(student b,student a) {
   
			   return (int)(a.shu - b.shu);
			   //注意成绩是浮点数,比较器只能返回int
			   //并且要注意事后面的减去前面的
			   //因为比较器是,返回一个正数就让后面的放到前面
			   //返回一个负数,就让前面的放到后面
			   //后面的减前面的,如果后面的大,就会返回正数,就会交换
		   }
	   }
	   public static class Comparator1 implements Comparator<student>{
   
		   @Override
		   public int compare(student b,student a) {
   
			   return (int)(a.yu - b.yu);
		   }
	   }
	   public static class Comparator3 implements Comparator<student>{
   
		   @Override
		   public int compare(student b,student a) {
   
			   return (int)(a.wai - b.wai);
		   }
	   
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉卧考场君莫笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值