黑马程序员技术交流社区

标题: 周末送分活动!答题拿技术分~ [打印本页]

作者: 洋葱头头    时间: 2016-1-31 15:37
标题: 周末送分活动!答题拿技术分~
本帖最后由 洋葱头头 于 2016-2-21 21:40 编辑

最近论坛水贴不少,刷分现象也很严重,本版主十分痛心。我也知道大家并不是故意为了刷分而刷分
相信有不少伙伴为了技术分而努力,或者时间来不及凑够25技术分而刷分,为了改善这一情况,所以本大大特地来送福利。
只要能做出我出的题目,技术分“大大”的有。还能提高自己的编程能力何乐而不为!
当然题目也没那么简单,也要一定的要求,按照版主的要求完成题目有额外的技术分哦(不是黑马币!)


下面是题目要求:@重要,请仔细阅读@
1.根据题目要求先写出思路和总结(自己总结) (1技术分)
2.完成题目中的代码   ps:代码错误不给分 请仔细核对(1技术分)
3.给出代码运行结果 4.小要求:排版严谨,请按照面向对象的思想编写程(很重要) 3,4加起来1技术分
5.额外要求:根据代码写出相应注释(希望你的代码和思路别人也能读懂)(1技术分)

按要求完成能有3个以上的技术分 ,够版主我水好几天的


下面给出题目:
有五个学生,每个学生有3门课(语文、数学、英语)的成绩。
写一个程序从键盘接收学生的信息格式为,name,003,30,30,30(姓名,学号,三门课成绩)
然后把五个学生的信息按照总分从高到低写入一个文件夹"stu.txt"。
要求stu.txt文件的格式要清晰直观,打开文件就可以很清楚的看到学生的信息

考虑到可能题目的代码量可能过多,所以做完的同学可以把txt压缩上传


如图红圈中的按钮

还有严禁抄袭,独立完成 不可百度 一旦发现 技术分清0   骗你们的 反正不许抄袭

附下一期送技术分   http://bbs.itheima.com/thread-277107-1-1.html
本答题帖已关闭 已没有技术分奖励 练手随意

作者: 洋葱头头    时间: 2016-1-31 15:42
题目不是太难 还请各位伙伴参与
作者: 洋葱头头    时间: 2016-1-31 20:42
这么简单的题 没人做啊
作者: 酱油    时间: 2016-2-1 12:12
帮顶!!!!避免被举报刷分 我都不敢做!
作者: 酱油    时间: 2016-2-1 14:34
洋葱头头 发表于 2016-2-1 13:42
根本没人做 这么多技术分

放直播贴去。。哈哈

作者: 洋葱头头    时间: 2016-2-1 14:59
酱油 发表于 2016-2-1 14:34
放直播贴去。。哈哈

清空你技术分
作者: 酱油    时间: 2016-2-1 15:06
洋葱头头 发表于 2016-2-1 14:59
清空你技术分

举报你刷分水帖!呼呼
作者: 洋葱头头    时间: 2016-2-1 15:09
酱油 发表于 2016-2-1 15:06
举报你刷分水帖!呼呼

你把这题做了 谢谢
作者: Mayer    时间: 2016-2-1 15:16
哈哈,不知道真的假的,拿分来了

Student.rar

2.66 KB, 阅读权限: 100, 下载次数: 3


作者: 洋葱头头    时间: 2016-2-1 15:40
Mayer 发表于 2016-2-1 15:16
哈哈,不知道真的假的,拿分来了

很好 就是txt里的比较乱   分给你
作者: Mayer    时间: 2016-2-1 16:17
洋葱头头 发表于 2016-2-1 15:40
很好 就是txt里的比较乱   分给你

谢谢
作者: j6819236    时间: 2016-2-1 18:01
写了个玩玩。。 test.zip (69.31 KB, 下载次数: 300)
作者: 洋葱头头    时间: 2016-2-1 18:12
j6819236 发表于 2016-2-1 18:01
写了个玩玩。。

看过了 资料也很全  
不过你学号没写,流也没关 不过都是小问题啦
作者: 酱油    时间: 2016-2-1 18:40
洋葱头头 发表于 2016-2-1 15:09
你把这题做了  谢谢

写的丑,。。给版主大人顶贴来了!

Demo.rar

1.28 KB, 阅读权限: 30, 下载次数: 6

水水


作者: 洋葱头头    时间: 2016-2-1 18:46
酱油 发表于 2016-2-1 18:40
写的丑,。。给版主大人顶贴来了!

只能给2分了
作者: 吴迪    时间: 2016-2-1 21:27
求技术分,楼主

StudentInfor.zip

1.54 KB, 阅读权限: 100, 下载次数: 3


作者: 洋葱头头    时间: 2016-2-1 21:44
吴迪 发表于 2016-2-1 21:27
求技术分,楼主

代码工整,注释清晰! 就是忘了写排序,没有总分
作者: 吴迪    时间: 2016-2-1 21:48
洋葱头头 发表于 2016-2-1 21:44
代码工整,注释清晰! 就是忘了写排序,没有总分

,明天早上入学面试,,,感觉状态不好,题目都看不仔细了
作者: 洋葱头头    时间: 2016-2-2 07:53
吴迪 发表于 2016-2-1 21:48
,明天早上入学面试,,,感觉状态不好,题目都看不仔细了

不是放假了吗
作者: j6819236    时间: 2016-2-2 10:00
洋葱头头 发表于 2016-2-1 18:12
看过了 资料也很全  
不过你学号没写,流也没关 不过都是小问题啦 ...

学号确实没写,粗心。。。
不过流确实关了,try(创建或者赋值流对象){读写代码}这种形式是自动关流,不然缓存区没读满数据也不会刷过去,参见1.7版本 流的try..catch..
作者: 洋葱头头    时间: 2016-2-2 10:36
j6819236 发表于 2016-2-2 10:00
学号确实没写,粗心。。。
不过流确实关了,try(创建或者赋值流对象){读写代码}这种形式是自动关流,不然 ...

原来是这样 是我孤陋寡闻
作者: 983859111    时间: 2016-2-2 12:34
Students.rar (1.61 KB, 下载次数: 299)
呶,写完了,在这里。。。
求分分呀……{:2_42:}

作者: 983859111    时间: 2016-2-2 12:37
酱油 发表于 2016-2-1 18:40
写的丑,。。给版主大人顶贴来了!

{:2_37:}版主都来混技术分啦?
作者: 洋葱头头    时间: 2016-2-2 12:55
983859111 发表于 2016-2-2 12:34
呶,写完了,在这里。。。
求分分呀……

写的完美
作者: 983859111    时间: 2016-2-2 13:34
洋葱头头 发表于 2016-2-2 12:55
写的完美

谢谢版主夸奖……好开森{:2_36:}
作者: 酱油    时间: 2016-2-2 14:35
983859111 发表于 2016-2-2 12:37
版主都来混技术分啦?

哈哈  是他逼我来给顶帖的!!!!
作者: 983859111    时间: 2016-2-2 14:37
酱油 发表于 2016-2-2 14:35
哈哈  是他逼我来给顶帖的!!!!

被我抓到了,快交出来几个黑马币。。。
作者: 酱油    时间: 2016-2-2 14:37
983859111 发表于 2016-2-2 14:37
被我抓到了,快交出来几个黑马币。。。

禁止刷分!
作者: 983859111    时间: 2016-2-2 14:39
酱油 发表于 2016-2-2 14:37
禁止刷分!

难道你不认我我做的题很棒么?我做的多好,你心里由衷的赞美,无以言表送几个黑马币怎么能算是刷分呢
作者: 酱油    时间: 2016-2-2 14:42
983859111 发表于 2016-2-2 14:39
难道你不认我我做的题很棒么?我做的多好,你心里由衷的赞美,无以言表送几个黑马币怎么能算是 ...

敢不敢不要这么自恋,,,,,,
自恋的人没有分!
作者: 983859111    时间: 2016-2-2 15:21
酱油 发表于 2016-2-2 14:42
敢不敢不要这么自恋,,,,,,
自恋的人没有分!

好吧,其实还好了。。也没有很自恋
作者: 酱油    时间: 2016-2-2 15:35
983859111 发表于 2016-2-2 15:21
好吧,其实还好了。。也没有很自恋

主要是我没法给分!!!!哈哈。。我是java的版主。。连黑马币都没法给你。
作者: 983859111    时间: 2016-2-2 15:37
酱油 发表于 2016-2-2 15:35
主要是我没法给分!!!!哈哈。。我是java的版主。。连黑马币都没法给你。 ...

好吧。。。以后去你的版去混
作者: Bobby1109    时间: 2016-2-2 16:04
看看我能得几分

student.rar

2.34 KB, 下载次数: 65


作者: Bobby1109    时间: 2016-2-2 16:18
Bobby1109 发表于 2016-2-2 16:04
看看我能得几分

那加上行吗,还差一分就25分了
作者: 洋葱头头    时间: 2016-2-2 16:23
Bobby1109 发表于 2016-2-2 16:18
那加上行吗,还差一分就25分了

不行 你自己没写 还有你又10黑马币 可以换的
作者: Bobby1109    时间: 2016-2-2 16:25
兑换后必须还要有10马币才能兑换啊
作者: 洋葱头头    时间: 2016-2-2 16:27
Bobby1109 发表于 2016-2-2 16:25
兑换后必须还要有10马币才能兑换啊

我想你这分也不着急把 就算着急 也不能刷分遵守规定 公平竞争
作者: Bobby1109    时间: 2016-2-2 16:30
只是觉得可惜啊,就差一点
作者: 洋葱头头    时间: 2016-2-2 16:34
Bobby1109 发表于 2016-2-2 16:30
只是觉得可惜啊,就差一点

我就不给 你咬我啊

作者: Bobby1109    时间: 2016-2-2 16:37
洋葱头头 发表于 2016-2-2 16:34
我就不给 你咬我啊

我对这图片也是无语了
作者: jdissx01    时间: 2016-2-3 03:37
本人1月13号进的黑马,写这些有点难度,有参考别人思路,求版主给技术分黑马币.

StuChengJi.zip

2.42 KB, 下载次数: 108


作者: 洋葱头头    时间: 2016-2-3 07:57
jdissx01 发表于 2016-2-3 03:37
本人1月13号进的黑马,写这些有点难度,有参考别人思路,求版主给技术分黑马币. ...

写得不错噢 尽量把过程封装到方法里 不要堆在主函数里
作者: 513402004    时间: 2016-2-3 14:57
新人啊- - 表示先马,过一阵再来!!!
作者: 洋葱头头    时间: 2016-2-3 15:39
513402004 发表于 2016-2-3 14:57
新人啊- - 表示先马,过一阵再来!!!

一个星期一题
下个星期发个适合新人的
作者: jdissx01    时间: 2016-2-3 15:51
洋葱头头 发表于 2016-2-3 07:57
写得不错噢 尽量把过程封装到方法里 不要堆在主函数里

能写出来已经很不容易啦,多给点分分鼓励新人们,让大家都来答题撒~
作者: 洋葱头头    时间: 2016-2-3 16:01
jdissx01 发表于 2016-2-3 15:51
能写出来已经很不容易啦,多给点分分鼓励新人们,让大家都来答题撒~

按要求得技术分 不要急 这样的活动很多的
作者: 513402004    时间: 2016-2-3 16:07
洋葱头头 发表于 2016-2-3 15:39
一个星期一题
下个星期发个适合新人的

好的, 麻烦了..
作者: 晓寒轻    时间: 2016-2-3 20:19
太忙。。没空了 。。。。
作者: 洋葱头头    时间: 2016-2-3 20:36
晓寒轻 发表于 2016-2-3 20:19
太忙。。没空了 。。。。

谢谢顶帖
作者: 狮子王    时间: 2016-2-3 22:21
原谅我基础忘光了
作者: 宋达思    时间: 2016-2-4 15:50
本帖最后由 宋达思 于 2016-2-4 16:06 编辑

首先感谢版主啦,能给大家一个那么好的机会,这种活动方式的确不错呦!
这个练习以前还是做过的,不过IO流已经好久没看了,忘得差不多啦,写的基本符合要求吧,测试过,应该没什么问题。 学生学习成绩信息.rar (2.5 KB, 下载次数: 4)
作者: 姚成晖    时间: 2016-2-5 12:45
本帖最后由 我是坏人, 于 2016-2-5 13:50 编辑

版主辛苦~

学生信息按总分排序写入txt.zip

2.09 KB, 下载次数: 97


作者: 洋葱头头    时间: 2016-2-5 15:29
我是坏人, 发表于 2016-2-5 12:45
版主辛苦~

你这txt排版有点过分啊
作者: shiax11    时间: 2016-2-6 07:56
哎  我去试试
作者: 洋葱头头    时间: 2016-2-6 08:05
shiax11 发表于 2016-2-6 07:56
哎  我去试试

等你
作者: 姚成晖    时间: 2016-2-6 18:48
洋葱头头 发表于 2016-2-5 15:29
你这txt排版有点过分啊

哈哈~速成版     混分的~
作者: linxiaom    时间: 2016-2-8 19:25
求技术分啊,楼主,等着入学考试!
作者: 洋葱头头    时间: 2016-2-8 19:28
linxiaom 发表于 2016-2-8 19:25
求技术分啊,楼主,等着入学考试!

答题答出来就给你喽
作者: renkuo023    时间: 2016-2-8 20:49
求分分啊

Students.rar

1.86 KB, 下载次数: 101

我的答案,求分分啊


作者: renkuo023    时间: 2016-2-8 23:03
renkuo023 发表于 2016-2-8 20:49
求分分啊

太感谢啦
作者: olivec    时间: 2016-2-9 12:33
写完了 给加分吗

Student.rar

1.92 KB, 下载次数: 91


作者: ApiceLove    时间: 2016-2-9 19:42
版主春节快乐,求给分啊

Student.rar

55.79 KB, 下载次数: 71


作者: 洋葱头头    时间: 2016-2-9 20:28
ApiceLove 发表于 2016-2-9 19:42
版主春节快乐,求给分啊

等下啊 吃个饭去
作者: ApiceLove    时间: 2016-2-9 21:53
洋葱头头 发表于 2016-2-9 20:28
等下啊 吃个饭去

多谢版主,辛苦了哈
作者: boboyuwu    时间: 2016-2-10 21:56
虽然不需要技术分了,但是这个问题挺有意思的。呵呵我也来做一下  注释很详细哦

求学生成绩代码.zip

1.32 KB, 下载次数: 83


作者: yuchifeifan    时间: 2016-2-11 16:08
还有这活动吗
作者: 洋葱头头    时间: 2016-2-11 16:09
yuchifeifan 发表于 2016-2-11 16:08
还有这活动吗


作者: 洋葱头头    时间: 2016-2-12 09:10
没人做的话 我就关闭了
作者: davy0119    时间: 2016-2-12 16:42
指导下啊,谢谢

stu.zip

1.2 KB, 下载次数: 65


作者: 洋葱头头    时间: 2016-2-12 16:55
davy0119 发表于 2016-2-12 16:42
指导下啊,谢谢

你这一点提示都没有啊 总结注释也没写好歹是写出来了
作者: davy0119    时间: 2016-2-12 16:59
洋葱头头 发表于 2016-2-12 16:55
你这一点提示都没有啊 总结注释也没写好歹是写出来了

偷懒了,对不起,下次一定写
作者: wusiyi    时间: 2016-2-13 00:34
我明天也来试一试!
作者: CPY    时间: 2016-2-13 08:55
楼主新年好!给大家拜年了!祝大家在新的一年里顺顺利!黑马加油!

Student.zip

1.68 KB, 下载次数: 70


作者: 洋葱头头    时间: 2016-2-13 09:00
CPY 发表于 2016-2-13 08:55
楼主新年好!给大家拜年了!祝大家在新的一年里顺顺利!黑马加油!

多给你一分 写的不错
作者: CPY    时间: 2016-2-13 09:02
谢谢楼主!
作者: 洋葱头头    时间: 2016-2-13 09:05
boboyuwu 发表于 2016-2-10 21:56
虽然不需要技术分了,但是这个问题挺有意思的。呵呵我也来做一下  注释很详细哦
...

前几天没看到
作者: 洋葱头头    时间: 2016-2-13 09:06
wusiyi 发表于 2016-2-13 00:34
我明天也来试一试!

好的 等你 不过快关闭了
作者: 洋葱头头    时间: 2016-2-13 09:09
renkuo023 发表于 2016-2-8 23:03
太感谢啦

谢自己干什么
作者: wusiyi    时间: 2016-2-13 21:01
楼主,快快打赏。我没只学到13天,IO流什么的都是临时看的几集,可能用得不好。不过功能是算是实现了的。



Test.zip (2.16 KB, 下载次数: 108)



/*
写这个程序的时候我们都还没学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 = sc.nextLine();        //输入学生考试的信息
                        String[] arrstr = str.split(",");        //分割字符串并将结果赋值给数组arrstr
                        //计算总分
                        score += Integer.parseInt(arrstr[2]);       
                        score += Integer.parseInt(arrstr[3]);
                        score += Integer.parseInt(arrstr[4]);
                        System.out.println(score);        //打印总分,可以用来直观检验计算结果是否正确
                }
               
                //两层for循环嵌套,类似九九乘法表,就不解释了
                for (int i = 0; i < 4; i++) {
                        for (int j = i + 1; j < 5; j++) {
                                //如果下一个索引中的总分大于上一个索引的总分,则交换其中的数据
                                if (score < score[j]) {
                                        score[5] = score;
                                        score = score[j];
                                        score[j] = score[5];
                                        str[5] = str;
                                        str = 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);
                        System.out.println(str);
                        fw.write("\r\n");
                }
               
                fw.close();        //结束操作,关闭IO流
                System.out.println("");
                System.out.println("已经将结果写入stu.txt文件中。");        //提示结束程序
        }
}


作者: 洋葱头头    时间: 2016-2-13 22:54
wusiyi 发表于 2016-2-13 21:01
楼主,快快打赏。我没只学到13天,IO流什么的都是临时看的几集,可能用得不好。不过功能是算是实现了的。

...

先给分  明天再看 睡了
作者: wusiyi    时间: 2016-2-13 23:00
{:2_32:}以后有送分题就CALL ME。
作者: wusiyi    时间: 2016-2-13 23:02
洋葱头头 发表于 2016-2-13 22:54
先给分  明天再看 睡了

Test.zip文件直接该后缀名为.java就可以了,那个不是真的压缩包。
作者: wjnaiwx    时间: 2016-2-13 23:29
这么好的事居然才看见!
作者: 洋葱头头    时间: 2016-2-14 08:04
wusiyi 发表于 2016-2-13 23:00
以后有送分题就CALL ME。

今天就有
作者: 刺客015    时间: 2016-2-14 20:01
本帖最后由 洋葱头头 于 2016-2-14 20:38 编辑


  1. import java.io.*;
  2. import java.util.*;
  3. public class Test {
  4.     public static void main(String[] args)throws Exception{
  5.         //传入学生人数
  6.         Student(5);
  7.     }
  8.     //键盘录入学生
  9.     public static void Student(int number)throws Exception{
  10.         //创建Scanner对象 接受从控制台输入
  11.         Scanner in=new Scanner(System.in);
  12.         //因为可能会出现姓名和总分都一样的学生,为了保证学生不丢失,建立List容器
  13.         List list=new ArrayList();
  14.         //循环录入学生到集合,排好顺序
  15.         System.out.println("输入格式为: 姓名,语文,数学,英语");
  16.         for(int x=1;x<=number;x++){
  17.             System.out.println("请输入第"+x+"个学生的信息");
  18.             String[] s=in.nextLine().split(",");
  19.             int a=Integer.parseInt(s[1]);
  20.             int b=Integer.parseInt(s[2]);
  21.             int c=Integer.parseInt(s[3]);
  22.             Student stu=new Student(s[0],a,b,c);
  23.             list.add(stu);
  24.         }
  25.         //用比较器进行总分从高到低的排序
  26.         Collections.sort(list,new StuCompare());
  27.         //定义输出流输出到stu.txt
  28.         BufferedWriter bufw=new BufferedWriter(new FileWriter("stu.txt"));
  29.         for(Student stu:list){
  30.             bufw.write(stu.getStu());
  31.             bufw.newLine();
  32.             bufw.flush();
  33.         }
  34.         //关闭资源
  35.         in.close();
  36.         bufw.close();
  37.     }
  38. }
  39. //学生类型
  40. class Student{
  41.     private String name;
  42.     private int a, b, c,sum;
  43.     //学生对象建立需要传入姓名和3门课的成绩
  44.     Student(String name, int a, int b, int c){
  45.         this.name=name;
  46.         this.a=a;
  47.         this.b=b;
  48.         this.c=c;
  49.         sum=a+b+c;
  50.     }
  51.     public int getsum(){
  52.         return sum;
  53.     }
  54.     //输出一个符合格式的字符串
  55.     public String getStu(){
  56.         return name+"    数学:"+a+"    语文:"+b+"    英语:"+c+"    总分:"+sum;
  57.     }
  58. }
  59. //定义比较器,按总分排序
  60. class StuCompare implements Comparator{
  61.     public int compare(Student s1,Student s2){
  62.         int a=new Integer(s2.getsum()).compareTo(s1.getsum());
  63.         return a;
  64.     }
复制代码



作者: zhang洁    时间: 2016-2-14 20:16
这么好?才看到
作者: 洋葱头头    时间: 2016-2-14 20:35
刺客015 发表于 2016-2-14 20:01
/*
没压缩成功不好意思
*/

.你这排版
作者: wusiyi    时间: 2016-2-14 21:56

哪里啊,我怎么没有看到呢、
作者: 洋葱头头    时间: 2016-2-14 22:34
wusiyi 发表于 2016-2-14 21:56
哪里啊,我怎么没有看到呢、

明天早上发... 困死了
作者: 洋葱头头    时间: 2016-2-15 09:28
wusiyi 发表于 2016-2-13 23:00
以后有送分题就CALL ME。

http://bbs.itheima.com/thread-277107-1-1.html  
看这里
作者: 洋葱头头    时间: 2016-2-15 09:31

http://bbs.itheima.com/thread-277107-1-1.html   
传送门
作者: 参禅悟道    时间: 2016-2-15 16:22
现在做这道题,还有技术分吗
作者: 洋葱头头    时间: 2016-2-15 16:26
参禅悟道 发表于 2016-2-15 16:22
现在做这道题,还有技术分吗

有的 这题比较比较好写
作者: 参禅悟道    时间: 2016-2-15 17:40
用的冒泡排序,最后把打印的功能提到一个方法里面了。

studentFen.rar

1.3 KB, 阅读权限: 100, 下载次数: 1

版主查阅


作者: yangyiqing    时间: 2016-2-15 18:58
还没学到..
作者: 洋葱头头    时间: 2016-2-15 19:03

加紧学习了
作者: sun288225    时间: 2016-2-15 19:05
求分分,绝对没问题,我的路径写的E盘哈

学生成绩排名哦.zip

790 Bytes, 下载次数: 69


作者: 洋葱头头    时间: 2016-2-15 19:13
sun288225 发表于 2016-2-15 19:05
求分分,绝对没问题,我的路径写的E盘哈

你写错了把
作者: sun288225    时间: 2016-2-15 19:20

没有啊 我干脆手工直接打上来
  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.FileWriter;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.TreeSet;

  7. public class StirngDemo {

  8.         public static void main(String[] args) {
  9. //                想读多少都可以,键盘输入格式   名字,成绩,成绩,成绩(注意逗号小写)
  10.                 try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  11.                                 BufferedWriter bw = new BufferedWriter(new FileWriter("e:\\stu.txt"))) {
  12.                         String str = null;
  13. //                        建立规则从高分到低分
  14.                         TreeSet<Student> ts = new TreeSet<>((o1, o2) -> o2.sub() - o1.sub());
  15.                         while ((str = br.readLine()) != null) {
  16.                                 if (str.equals("over"))
  17.                                         break;
  18.                                 String[] s = str.split(",");
  19. //                                学生对象已new好存入集合中进行排序
  20.                                 Student xue = new Student(s[0], Integer.parseInt(s[1]), Integer.parseInt(s[2]), Integer.parseInt(s[3]));

  21.                                 ts.add(xue);
  22.                         }
  23.                         bw.write("姓名\t数学\t语文\t英语");
  24.                         bw.flush();
  25.                         bw.newLine();
  26. //                        执行打印
  27.                         for (Student student : ts) {
  28.                                 bw.write(student.getName()+"\t"+student.getShu()+"\t"+student.getYu()+"\t"+student.getYing());
  29.                                 bw.newLine();
  30.                                 bw.flush();
  31.                         }

  32.                 } catch (IOException e) {

  33.                         e.printStackTrace();
  34.                 }

  35.         }

  36. }
  37. //学生对象,把名字各科成绩总分变成属性,给予总分方法
  38. class Student {
  39.         private String name;
  40.         private int shu, yu, ying;

  41.         public String getName() {
  42.                 return name;
  43.         }

  44.         public Student(String name, int shu, int yu, int ying) {

  45.                 this.name = name;
  46.                 this.shu = shu;
  47.                 this.yu = yu;
  48.                 this.ying = ying;
  49.         }

  50.         public int getShu() {
  51.                 return shu;
  52.         }

  53.         public int getYu() {
  54.                 return yu;
  55.         }

  56.         public int getYing() {
  57.                 return ying;
  58.         }

  59.         public int sub() {
  60.                 return shu + ying + yu;
  61.         }

  62. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2