日期:2014-05-20  浏览次数:20794 次

system.in 问题
用if语句实现学生成绩的百分制到等级制的转换。
写if实现的成绩判断,练习通过系统输入输入一个百分制分,通过选择结构Switch转换为英制分数(A:90-100, B:80-89 C:70-79 D: 60-69;F:1-59)(思考:把Switch改为if结构) 
要求:
使用输入流System.in的读操作读入成绩。
把输入的String型转换成int型(使用Integer的一个静态方法ParseInt ())
用if结构判断成绩等级,然后返回结果(不及格的都是E,其它的从A-D每十分一个等级)
用一个循环控制你不断输入成绩并判断,直到成绩输入为0时退出程序。
帮帮忙啊

------解决方案--------------------
Java code

public void judgedScore(){
   BufferedReader br = null;
    try{
        System.out.println("请输入成绩,并回车:");
        br = new BufferedReader(new InputStreamReader(System.in));
        String line = br.readline();
        //做非法字符的判断,不是数字的等,这里就判断null和空字符
        if(line == null || "".equals(line.trim())){
            System.out.println("你录入的是非法字符,继续Y,其它建退出!");
            br = new BufferedReader(new InputStreamReader(System.in));
            line = br.readline();
        }

        if(!"y".equalsIgnoreCase(line)){
            return;
        }

        int score = Integer.parseInt(line.trim());
        if(score > 100 || score < 0){
            System.out.println("录入的是不符合逻辑的数值,继续Y,其它建退出!");
            br = new BufferedReader(new InputStreamReader(System.in));
            line = br.readline();
        }
        if(!"y".equalsIgnoreCase(line)){
            return;
        }
        int flag = 0;
        if(score >= 90){
            flag = 1;
        }else if(score >= 80){
            flag = 2;
        }else if(score >= 70){
            flag = 2;
        }else if(score >= 60){
            flag = 3;
        }else {
            flag = 4;
        }
        switch(flag){
            case 1:
                    System.out.println("你的成绩登记是A");
                    break;
            case 2:
                    System.out.println("你的成绩登记是B");
                    break;
            case 3:
                    System.out.println("你的成绩登记是C");
                    break;
            case 4:
                    System.out.println("你的成绩登记是D");
                    break;
            default:
                System.out.println("成绩无效!");
        }

        System.out.println("是否继续录入?继续Y,其它建退出!");
        br = new BufferedReader(new InputStreamReader(System.in));
        line = br.readline();
        if("y".equalsIgnoreCase(line)){
            judgedScore();
        }
    }catch(Exception e){

    }
}