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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 敲程序的猿 中级黑马   /  2016-2-16 22:47  /  705 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求助:这是一个作业题但是没有思路,求指导
需求: 键盘录入五个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出在控制台

5 个回复

倒序浏览
本帖最后由 姚成晖 于 2016-2-17 00:36 编辑
  1. public class Test {
  2.         public static void main(String[] args) throws IOException {
  3.                 Scanner sc = new Scanner(System.in);
  4.                
  5.                 TreeSet<Student> ts = new TreeSet<>(new Comparator<Student>(){
  6.                         public int compare(Student s1,Student s2){
  7.                                 int num = s1.getSum()-s2.getSum();
  8.                                 return num==0?1:num;
  9.                         }
  10.                 });
  11.                 while(ts.size()<5){
  12.                         System.out.println("请输入学生及成绩,格式:name,30,30,30");
  13.                         String line = sc.nextLine();
  14.                         String [] str=line.split(",");
  15.                         int chinese = Integer.parseInt(str[1]);
  16.                         int math = Integer.parseInt(str[2]);
  17.                         int english = Integer.parseInt(str[3]);
  18.                         ts.add(new Student(str[0],chinese,math,english));
  19.                 }
  20.                
  21.                
  22.                 for(Student s:ts){
  23.                         System.out.println("姓名"+s.getName()+",语文:"+s.getChinese()+",数学"+s.getMath()+",英语"+s.getEnglish()+",总分"+s.getSum());
  24.                 }
  25.         }
  26. }

  27. public class Student {
  28.         private String name;
  29.         private int chinese;
  30.         private int math;
  31.         private int english;
  32.        
  33.         Student(){}
  34.        
  35.         Student(String name,int chinese,int math,int english){
  36.                 this.name=name;
  37.                 this.chinese=chinese;
  38.                 this.math=math;
  39.                 this.english=english;
  40.         }
  41.        
  42.         public void setName(String name){
  43.                 this.name=name;
  44.         }
  45.         public String getName(){
  46.                 return name;
  47.         }
  48.        
  49.         public void setChinese(int chinese){
  50.                 this.chinese=chinese;
  51.         }
  52.         public int getChinese(){
  53.                 return chinese;
  54.         }

  55.         public int getMath() {
  56.                 return math;
  57.         }

  58.         public void setMath(int math) {
  59.                 this.math = math;
  60.         }

  61.         public int getEnglish() {
  62.                 return english;
  63.         }

  64.         public void setEnglish(int english) {
  65.                 this.english = english;
  66.         }
  67.        
  68.         public int getSum(){
  69.                 return chinese+math+english;
  70.         }
  71. }
复制代码

点评

好棒的代码,学习中谢谢  发表于 2016-2-17 23:05
回复 使用道具 举报 1 0
没有导包  你导下包就可以啦

点评

谢谢  发表于 2016-2-18 02:10
回复 使用道具 举报 1 0
如果问题作出来了 再给你加点难度, 年龄从小到大,姓名按照字典顺序排序 把这个代码再敲出来 你这个问题就彻底搞懂了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马