本帖最后由 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();
- }
- }
复制代码
|
|