本帖最后由 Imp_x 于 2015-1-19 22:44 编辑  
 
报错图片选中那行,Exception in thread "main" java.util.InputMismatchException查API,表明获取的标记与期望类型的模式不匹配,或者该标记超出期望类型的范围。 
不懂为何命令行能运行正常,用eclipse录入第二个人的分数时就报错 
 
 
 
 
 
 
 
- package ruxue_1;
 
  
- import java.io.BufferedWriter;
 
 - import java.io.FileWriter;
 
 - import java.io.IOException;
 
 - import java.util.Comparator;
 
 - import java.util.Scanner;
 
 - import java.util.TreeSet;
 
  
- /*
 
 -  * 需求: 
 
 -  *                 我有一个学生类,这个类包含以下成员变量:姓名,语文成绩,数学成绩,英语成绩。
 
 -  *                请从键盘录入5个学生信息,然后按照自己定义的格式存储到文本文件中。
 
 -  *                要求被存储的学生按照分数从高到低排序。
 
 -  * 思路:
 
 -  *                 1、定义一个学生类
 
 -  *                 2、创建一个TreeSet集合对象
 
 -  *                 3、键盘录入数据并存储进集合中
 
 -  *                 4、遍历集合将数据存储到文本文件中        
 
 -  */
 
 - public class IOTest {
 
 -         public static void main(String[] args) throws IOException {
 
 -                 
 
 -                 TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
 
 -                         public int compare(Student s1, Student s2) {
 
 -                                 //主要条件,总分排序
 
 -                                 int num = s2.Sum()-s1.Sum();
 
 -                                 //次要条件,总分相同,比较语文成绩
 
 -                                 int num2 = (num==0)?s2.getChinese()-s1.getChinese():num;
 
 -                                 //语文成绩相同,比较数学成绩
 
 -                                 int num3 = (num==0)?s2.getMath()-s1.getMath():num2;
 
 -                                 //成绩都相同,比较名字
 
 -                                 int num4 = (num==0)?s2.getName().compareTo(s1.getName()):num3;
 
 -                                 
 
 -                                 return num4;
 
 -                         }
 
 -                 });
 
 -                 System.out.println("开始数据录入!");
 
 -                 for(int x = 0; x < 5; x++)
 
 -                 {
 
 -                         Scanner sc = new Scanner(System.in);
 
 -                         
 
 -                         System.out.println("请输入第"+(x+1)+"个学生的姓名");
 
 -                         String name = sc.nextLine();
 
 -                         System.out.println("请输入第"+(x+1)+"个学生的语文成绩");
 
 -                         int chinese = sc.nextInt();
 
 -                         System.out.println("请输入第"+(x+1)+"个学生的数学成绩");
 
 -                         int math = sc.nextInt();
 
 -                         System.out.println("请输入第"+(x+1)+"个学生的英语成绩");
 
 -                         int english = sc.nextInt();
 
 -                         
 
 -                         Student s = new Student();
 
 -                         s.setName(name);
 
 -                         s.setChinese(chinese);
 
 -                         s.setMath(math);
 
 -                         s.setEnglish(english);
 
 -                         
 
 -                         ts.add(s);
 
 - //                        sc.close();
 
 -                 }
 
 -                 System.out.println("数据录入完毕!");
 
  
-                 BufferedWriter bw =new BufferedWriter(new FileWriter("Student.txt"));
 
 -                 bw.write("姓名\t");
 
 -                 bw.write("语文\t");
 
 -                 bw.write("数学\t");
 
 -                 bw.write("英语");
 
 -                 bw.newLine();
 
 -                 
 
 -                 for(Student s : ts){
 
 - //                        System.out.println(s);
 
 -                         
 
 -                         StringBuilder sb =new StringBuilder();
 
 -                         sb.append(s.getName()).append("\t").append(s.getChinese()).append("\t").
 
 -                         append(s.getMath()).append("\t").append(s.getEnglish());
 
 -                         
 
 -                         bw.write(sb.toString());
 
 -                         bw.flush();
 
 -                 }
 
 -                 
 
 -                 bw.close();
 
 -         }
 
 - }
 
 
  复制代码 
 
 
 
 
 |   
        
 
    
    
    
    
 
 
 |