鱼C论坛

 找回密码
 立即注册
查看: 3991|回复: 3

[已解决]入门java,请指导一个问题,自己也写了,但是始终不对,对java键盘输入不懂

[复制链接]
发表于 2015-4-29 10:22:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
java编程:请把学生名和考试分数录入到Map中,并按分数显示前3名成绩学员的名字。
package spring.exer;

import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

public class Exercise1 {
        public static void main(String[] args) {
                Scanner s = new Scanner(System.in);
                Map map = new TreeMap();
                System.out.println("请输入名字:");
                String str ;
                str = s.next();
                
                
                while(str != "null"){
                        System.out.println("请输入分数:");
                         int score = s.nextInt();
                         map.put(new Student(str,score),score);
                         System.out.println("请输入名字:");
                         str = s.next();
                }
                
                
                Set set = map.keySet();
                for(int i = 0;i < 3;i++){
                        System.out.println(set);
                }
        }
}

class Student implements Comparable {
        private String name;
        private int score;
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public int getScore() {
                return score;
        }
        public void setScore(int score) {
                this.score = score;
        }
        public Student(String name, int score) {
                super();
                this.name = name;
                this.score = score;
        }
        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + score;
                result = prime * result + ((name == null) ? 0 : name.hashCode());
                return result;
        }
        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                Student other = (Student) obj;
                if (score != other.score)
                        return false;
                if (name == null) {
                        if (other.name != null)
                                return false;
                } else if (!name.equals(other.name))
                        return false;
                return true;
        }
        @Override
        public int compareTo(Object o) {
                if(o instanceof Student){
                        Student s = (Student)o;
                        return s.score - this.score;
                }
                return 0;
        }
        
        
}


最佳答案
2015-4-29 16:17:39
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

public class Exercise1 {
        public static void main(String[] args) {
                Scanner s = new Scanner(System.in);
                Map map = new TreeMap();
                int count = 0;
                while ( count < 3 ) {
                        System.out.print("请输入第 " + (count + 1) + " 个学生的名字:");
                        String name = s.next();
                        System.out.print("请输入第 " + (count + 1) + " 个学生的分数:");
                        int score = s.nextInt();
                        map.put(new Student(name, score), score);
                        count ++;
                        System.out.println("\n");
                }
               
                Set set = map.keySet();
                for (int i = 0; i < 3; i++) {
                        System.out.println(set);
                }
        }
}

class Student implements Comparable {
        private String name;
        private int score;

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public int getScore() {
                return score;
        }

        public void setScore(int score) {
                this.score = score;
        }

        public Student(String name, int score) {
                super();
                this.name = name;
                this.score = score;
        }
       
        @Override
        public String toString() {
                return "[ name:" + this.name + ", score:" + this.score + " ]";
        }

        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + score;
                result = prime * result + ((name == null) ? 0 : name.hashCode());
                return result;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                Student other = (Student) obj;
                if (score != other.score)
                        return false;
                if (name == null) {
                        if (other.name != null)
                                return false;
                } else if (!name.equals(other.name))
                        return false;
                return true;
        }

        @Override
        public int compareTo(Object o) {
                if (o instanceof Student) {
                        Student s = (Student) o;
                        return s.score - this.score;
                }
                return 0;
        }

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-29 16:17:39 | 显示全部楼层    本楼为最佳答案   
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

public class Exercise1 {
        public static void main(String[] args) {
                Scanner s = new Scanner(System.in);
                Map map = new TreeMap();
                int count = 0;
                while ( count < 3 ) {
                        System.out.print("请输入第 " + (count + 1) + " 个学生的名字:");
                        String name = s.next();
                        System.out.print("请输入第 " + (count + 1) + " 个学生的分数:");
                        int score = s.nextInt();
                        map.put(new Student(name, score), score);
                        count ++;
                        System.out.println("\n");
                }
               
                Set set = map.keySet();
                for (int i = 0; i < 3; i++) {
                        System.out.println(set);
                }
        }
}

class Student implements Comparable {
        private String name;
        private int score;

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public int getScore() {
                return score;
        }

        public void setScore(int score) {
                this.score = score;
        }

        public Student(String name, int score) {
                super();
                this.name = name;
                this.score = score;
        }
       
        @Override
        public String toString() {
                return "[ name:" + this.name + ", score:" + this.score + " ]";
        }

        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + score;
                result = prime * result + ((name == null) ? 0 : name.hashCode());
                return result;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                Student other = (Student) obj;
                if (score != other.score)
                        return false;
                if (name == null) {
                        if (other.name != null)
                                return false;
                } else if (!name.equals(other.name))
                        return false;
                return true;
        }

        @Override
        public int compareTo(Object o) {
                if (o instanceof Student) {
                        Student s = (Student) o;
                        return s.score - this.score;
                }
                return 0;
        }

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-4-29 16:18:39 | 显示全部楼层
排序自己排吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-17 09:35:17 | 显示全部楼层
while(str != "null")是判断str不等于“null”这个字符应该吧“”去掉,要不然你都执行不了下面的代码喽,除非你输入‘unll’
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-20 18:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表