有五个学生,每个学生有3门课(语文、数学、英语)的成绩。
写一个程序从键盘接收学生的信息格式为,name,003,30,30,30(姓名,学号,三门课成绩)
然后把五个学生的信息按照总分从高到低写入一个文件夹”stu.txt”。
要求stu.txt文件的格式要清晰直观,打开文件就可以很清楚的看到学生的信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| /* 写这个程序的时候我们都还没学IO流,所以也是临时看了几个视频写的,途中修修改改了好多次。也算是第一个用到IO流的程序吧,或许写得不怎么好,不过这只是个开始,今后会越来越好的。 1、先创建两个数组str和score用于存放输入的数据,创建的长度为6是因为作者本人比较懒,最后一个长度用来作为TEMP 2、使用for语句录入学生考试信息记录到str数组中,并计算总分记录到score数组里 3、使用for循环嵌套,判断总分大小并交换两个数组的内容 4、将str数组遍历输出到stu.txt文件中 */ import java.util.Scanner; import java.io.*; class Test { public static void main(String[] args) throws IOException { String[] str = new String[6]; //创建用来存储录入数据的数组,str[5]用来后面交换数组中数据用的临时存储 int[] score = new int[6]; //创建用来存储总分的数组,同上 System.out.println(“请输入(姓名,学号,语文,数学,英文)的格式进行录入数据!”); //提示用户输入的数据格式 Scanner sc = new Scanner(System.in); //创建一个类 for (int i = 0; i < 5; i++) { //for循环,从下标0开始,到下标为4结束 System.out.println(“请输入第” + (i + 1) + “名学生的考试信息:”); str[i] = sc.nextLine(); //输入学生考试的信息 String[] arrstr = str[i].split(“,”); //分割字符串并将结果赋值给数组arrstr //计算总分 score[i] += Integer.parseInt(arrstr[2]); score[i] += Integer.parseInt(arrstr[3]); score[i] += Integer.parseInt(arrstr[4]); System.out.println(score[i]); //打印总分,可以用来直观检验计算结果是否正确 } //两层for循环嵌套,类似九九乘法表,就不解释了 for (int i = 0; i < 4; i++) { for (int j = i + 1; j < 5; j++) { //如果下一个索引中的总分大于上一个索引的总分,则交换其中的数据 if (score[i] < score[j]) { score[5] = score[i]; score[i] = score[j]; score[j] = score[5]; str[5] = str[i]; str[i] = str[j]; str[j] = str[5]; } } } System.out.println(“”); //仅为了美观,换行 FileWriter fw = new FileWriter(“stu.txt”); //打开STU.TXT文件 for (int i = 0; i < 5; i++) { //for循环,将数据写入到stu.txt中 fw.write(str[i]); System.out.println(str[i]); fw.write(“\r\n”); } fw.close(); //结束操作,关闭IO流 System.out.println(“”); System.out.println(“已经将结果写入stu.txt文件中。”); //提示结束程序 } }
|
如果你发现了BUG或者哪里还可以优化请给我留言。