A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 洋葱头头   /  2016-1-31 15:37  /  15139 人查看  /  168 人回复  /   3 人收藏 转载请遵从CC协议 禁止商业使用本文

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

...

先给分  明天再看 睡了
回复 使用道具 举报
{:2_32:}以后有送分题就CALL ME。
回复 使用道具 举报
洋葱头头 发表于 2016-2-13 22:54
先给分  明天再看 睡了

Test.zip文件直接该后缀名为.java就可以了,那个不是真的压缩包。
回复 使用道具 举报
这么好的事居然才看见!
回复 使用道具 举报
wusiyi 发表于 2016-2-13 23:00
以后有送分题就CALL ME。

今天就有
回复 使用道具 举报
本帖最后由 洋葱头头 于 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.     }
复制代码


评分

参与人数 1技术分 +3 收起 理由
洋葱头头 + 3

查看全部评分

回复 使用道具 举报
zhang洁 来自手机 中级黑马 2016-2-14 20:16:15
87#
这么好?才看到
回复 使用道具 举报
刺客015 发表于 2016-2-14 20:01
/*
没压缩成功不好意思
*/

.你这排版
回复 使用道具 举报

哪里啊,我怎么没有看到呢、
回复 使用道具 举报
wusiyi 发表于 2016-2-14 21:56
哪里啊,我怎么没有看到呢、

明天早上发... 困死了
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
现在做这道题,还有技术分吗
回复 使用道具 举报
参禅悟道 发表于 2016-2-15 16:22
现在做这道题,还有技术分吗

有的 这题比较比较好写
回复 使用道具 举报
用的冒泡排序,最后把打印的功能提到一个方法里面了。

studentFen.rar

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

版主查阅

点评

收到 已给分  发表于 2016-2-15 17:51

评分

参与人数 1技术分 +3 收起 理由
洋葱头头 + 3 赞一个!

查看全部评分

回复 使用道具 举报
还没学到..
回复 使用道具 举报

加紧学习了
回复 使用道具 举报
求分分,绝对没问题,我的路径写的E盘哈

学生成绩排名哦.zip

790 Bytes, 下载次数: 68

评分

参与人数 1技术分 +3 收起 理由
洋葱头头 + 3

查看全部评分

回复 使用道具 举报
sun288225 发表于 2016-2-15 19:05
求分分,绝对没问题,我的路径写的E盘哈

你写错了把
回复 使用道具 举报

没有啊 我干脆手工直接打上来
  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. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马