定义一个学生类Student,包含姓名、三门功课成绩及总成绩属性。从键盘输入接收以上数据(姓名,三门课成绩)来生成Student对象,直到接收到”over”,退出Student实例化操作。输入格式例如:zhangshan,30,40,60。把学生信息和计算出来的总成绩按从高到低的顺序进行排序并存储到外部students.txt记事本中。
public class Test {
public static void main(String[] args) throws Exception {
// 第一步读入数据
List<Student> students = new ArrayList<>();
Scanner sc = new Scanner(System.in);
while (true)
{
String line = sc.nextLine();
String[] strArr = line.split(",");
if ("over".equals(strArr[0])) {
break;
}
Student st = new Student();
st.name = strArr[0];
st.chinese = Integer.parseInt(strArr[1]);
st.math = Integer.parseInt(strArr[2]);
st.english = Integer.parseInt(strArr[2]);
st.sum = st.chinese + st.math + st.english;
students.add(st);
}
// 根据总成绩降序排列
students.sort((s1, s2) -> s2.sum - s1.sum);
// 存入到文件中
System.setOut(new PrintStream("students.txt"));
for (Student student : students) {
System.out.printf("%s %d %d %d\n", student.name, student.chinese, student.math, student.english);
}
}
}
class Student {
// 姓名
String name;
// 语文成绩
int chinese;
// 数学成绩
int math;
// 英语成绩
int english;
int sum;
}
// 输入
zhangshan,30,40,60
lisi,20,50,70
wangwu,30,60,60
maliu,99,99,99
over
// students.txt
maliu 99 99 99
wangwu 30 60 60
lisi 20 50 50
zhangshan 30 40 40
我把您的问题分为了三步,数据读取并存储,排序,还有写入到文件中。您是哪一步不太懂吗?还是说完全不知道该怎么写呢
如果觉得我的回答有帮助到您,可以点个采纳支持一下。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632