文科生的最后一课

    2006年6月15日是一个普通的星期四。早自习听写英语单词,全对。上午美术课每个人写了一篇短文当结业作业。化学老太没把历史课要回来,还是上了历史。体育课补考篮球比上次有进步,进了一个;打了篮球,场子里女的比男的还多;谢奥然自信心高度膨胀。下午评讲前一天的英语考试卷子,听力遭了1个,单选 2个,完型3个,阅读3个。政治把国家职能学完了,彻底昏了。紧接着政治考试,选择看了一下小强的。晚自习之前政治考试答案发下来了,大题三点全漏。历史晚自习偷看《组合数学》。语文晚自习被叫起去读了一篇文章,算是我看过的文史类文章中好的了。看到黑板右下角写了个明天晚某某时候评讲化学卷子,问了一下小强星期五晚上上不上课,小强不知道,又问绝杀。临走时ZPR又开始对我重复喊一个德国工业城市的名字,于是想起调戏了她一下。
    谁知道,第二天我就没有任何征兆地消失了。

    最近大家的MSN Space留言少得可怜,一个原因估计就是貌似很多时候那朵橙色的花花没有起到它应有的作用。好像很多人更新速度都慢下来了。但奇怪的是,尚猫这个周末居然也没更新。我想,她该去准备会考了吧;而更有可能发生的情况是,我们班这两天仍然在上课,因为我们班的人都没上过线……

    往往消失前的最后一句话和出现后的第一句话容易被媒体炒作,比如哪个英雄受伤住院醒来面对一卡车的记者说的第一句话。NOIP后我一回教室就大叫什么我本来该是170,有个数据括号不匹配。与之形成鲜明对比的是谢奥然生物完了后回班级说的第一句话,一句最实在,最朴实的话。他对我说,借你的历史笔记本抄一下。
    我要好好想一想再次出现时该说句什么。而问题是,我根本不知道多久才会再出现。
    未来不可测啊。

以下是使用Java语言编写的代码: ``` import java.util.*; class ExamStudent { String id; String name; int chinese; int math; int foreignLanguage; int totalScore; ExamStudent(String id, String name, int chinese, int math, int foreignLanguage) { this.id = id; this.name = name; this.chinese = chinese; this.math = math; this.foreignLanguage = foreignLanguage; this.totalScore = chinese + math + foreignLanguage; } public String toString() { return id + " " + name + " " + chinese + " " + math + " " + foreignLanguage + " " + totalScore; } } class ArtExamStudent extends ExamStudent { int artScore; ArtExamStudent(String id, String name, int chinese, int math, int foreignLanguage, int artScore) { super(id, name, chinese, math, foreignLanguage); this.artScore = artScore; this.totalScore += artScore; } public String toString() { return super.toString() + " " + artScore; } } class SportsExamStudent extends ExamStudent { int sportsScore; SportsExamStudent(String id, String name, int chinese, int math, int foreignLanguage, int sportsScore) { super(id, name, chinese, math, foreignLanguage); this.sportsScore = sportsScore; this.totalScore += sportsScore; } public String toString() { return super.toString() + " " + sportsScore; } } class ArtsExamStudentComparator implements Comparator<ArtExamStudent> { public int compare(ArtExamStudent s1, ArtExamStudent s2) { if (s1.totalScore != s2.totalScore) { return s2.totalScore - s1.totalScore; } else if (s1.artScore != s2.artScore) { return s2.artScore - s1.artScore; } else { return s1.id.compareTo(s2.id); } } } class SportsExamStudentComparator implements Comparator<SportsExamStudent> { public int compare(SportsExamStudent s1, SportsExamStudent s2) { if (s1.totalScore != s2.totalScore) { return s2.totalScore - s1.totalScore; } else if (s1.sportsScore != s2.sportsScore) { return s2.sportsScore - s1.sportsScore; } else { return s1.id.compareTo(s2.id); } } } public class ExamStudentTest { public static void main(String[] args) { List<ExamStudent> students = new ArrayList<>(); students.add(new ExamStudent("1001", "张三", 90, 80, 70)); students.add(new ExamStudent("1002", "李四", 80, 90, 70)); students.add(new ExamStudent("1003", "王五", 70, 80, 90)); students.add(new ArtExamStudent("2001", "赵六", 90, 80, 70, 85)); students.add(new ArtExamStudent("2002", "钱七", 80, 90, 70, 90)); students.add(new ArtExamStudent("2003", "孙八", 70, 80, 90, 80)); students.add(new SportsExamStudent("3001", "周九", 90, 80, 70, 95)); students.add(new SportsExamStudent("3002", "吴十", 80, 90, 70, 90)); students.add(new SportsExamStudent("3003", "郑十", 70, 80, 90, 85)); Collections.sort(students, new Comparator<ExamStudent>() { public int compare(ExamStudent s1, ExamStudent s2) { if (s1.totalScore != s2.totalScore) { return s2.totalScore - s1.totalScore; } else { return s1.id.compareTo(s2.id); } } }); for (ExamStudent student : students) { System.out.println(student); } } } ``` 在这个程序中,我们定义了个 ExamStudent 类来表示普通的高考生,还定义了 ArtExamStudent 和 SportsExamStudent 类来表示艺术生和体育生。这些类都继承自 ExamStudent 类,因为它们都有些共同的属性和方法。 我们还定义了两个比较器类 ArtsExamStudentComparator 和 SportsExamStudentComparator,用于比较艺术生和体育生的总分和专业成绩。这些比较器类实现了 Comparator 接口,可以用于排序。 在 main 函数中,我们创建了组不同类别的高考生对象,并将它们存储在个 List 中。然后,我们使用 Collections.sort 方法对这个 List 进行排序,按照总分由高到低的顺序输出考生信息。对于艺术生和体育生,我们使用自定义的比较器类来排序,以满足题目要求。 最后,我们遍历排序后的 List,输出每个考生的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值