为了账号安全,请及时绑定邮箱和手机立即绑定

有道异常类的题不会写,求大神解答!!!!!

编写一程序,从控制台输入一个班学生的某门课程成绩,统计及格人数,不及格人数、平均数。为此设计一个异常类,当输入的成绩小于0分或大于100分时,抛出异常,程序中捕捉这个异常,并显示相应的提示。

正在回答

4 回答

public class Test3 {


public static void main(String[] args) {

int proNum = 5;//班级里面有20人

int jigeIndex =0;

int bujigeIndex = 0;

int avg =0;

int sum =0;

Scanner input = new Scanner(System.in);

System.out.println("***请输入班级学生的成绩***");

for(int i = 1;i<= proNum;i++){

System.out.print("请输入第"+i+"个学生的成绩:");

int chengji = input.nextInt();

System.out.println("第"+i+"个的学生的成绩为:"+chengji);

if(chengji>=60){

jigeIndex ++;

}else{

bujigeIndex++;

}

try {

if(chengji<0 || chengji>100){

throw new RuntimeException("分数不正确");

}

} catch (Exception e) {

e.printStackTrace();

i--;

}

sum +=chengji;

avg = sum/proNum;

}


System.out.println("及格人数为:"+jigeIndex);

System.out.println("不及格人数为:"+bujigeIndex);

System.out.println("平均分为:"+avg);

}

}

=====================================================

这样是不是你要的结果??????

3 回复 有任何疑惑可以回复我~
#1

幕粉一枚 提问者

非常感谢!
2016-10-05 回复 有任何疑惑可以回复我~
#2

小光头

面对多个输入语句判断是否有输入错误的时候,我们该怎么去执行提示 和 返回继续输入的操作。
2017-06-17 回复 有任何疑惑可以回复我~

大概就这样,简单的数学运算

package page;

import java.util.Scanner;

public class Test {

    public static void main(String[] args) {
        final int M = 3; // 人数,三个人
        
        Test test = new Test();
        
        test.calculate(M);
    }

    public void calculate(final int M) {
        double sum = 0.0;
        int k = 0;
        
        for(int i = 0; i < M; i++) {
            System.out.print("学生 " + (i + 1) + " - ");
            int score = this.in();
            sum += score;
            if (score > 60) k++; // 及格
        }

        System.out.println("-----------------------");
        System.out.println("总人数:" + M);
        System.out.println("及格数:" + k);
        System.out.println("不及格:" + (M - k));
        System.out.println("平均分:" + (sum / M));
    }

    /**
     * throws 抛出异常类型
     */
    public void check(int n) throws NumberException {
        /**
         * 自定义异常处理, 不符合条件就抛出异常
         */
        if (n < 0 || n > 100) {
            throw new NumberException("成绩必须在0-100");
        }
    }

    /**
     * 输入成绩
     */
    public int in() {
        System.out.println("输入成绩:");
        Scanner input = new Scanner(System.in);

        try {
            int number = input.nextInt();
            /**
             * 交给自定义异常处理
             */
            this.check(number);

            /**
             * 没有抛出异常
             */
            System.out.println("你输入的数据通过检测");
            return number;
        }
        catch (NumberException e) {
            e.printStackTrace();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        
        return 0;
    }

}

测试结果:

学生 1 - 输入成绩:
55
你输入的数据通过检测
学生 2 - 输入成绩:
66
你输入的数据通过检测
学生 3 - 输入成绩:
77
你输入的数据通过检测
-----------------------
总人数:3
及格数:2
不及格:1
平均分:66.0


1 回复 有任何疑惑可以回复我~
#1

幕粉一枚 提问者

ok谢谢
2016-10-05 回复 有任何疑惑可以回复我~
#2

qq_慕慕4283665

这段代码是不是太啰嗦了,实际作用也不大。不喜勿喷
2021-07-10 回复 有任何疑惑可以回复我~

谢谢,看完有思路了



0 回复 有任何疑惑可以回复我~

先创建一个异常类: 

就叫它为:NumberException

package page;

public class NumberException extends Exception {

    public NumberException(String Msg) {
        System.out.println("错误:" + Msg);
    }
}

然后在主文件中使用自定义的异常类:

package page;

import java.util.Scanner;

public class Test {
    
    public static void main(String[] args) {
        
        Test test = new Test();
        
        test.in();
    }

    /**
     * throws 抛出异常类型
     */
    public void check(int n) throws NumberException {
        /**
         * 自定义异常处理, 不符合条件就抛出异常
         */
        if (n < 0 || n > 100) {
            throw new NumberException("成绩必须在0-100");
        }
    }
    
    /**
     * 输入成绩
     */
    public void in() {
        System.out.println("输入成绩:");
        Scanner input = new Scanner(System.in);
        
        try {
            int number = input.nextInt();
            /**
             * 交给自定义异常处理
             */
            this.check(number);

            /**
             * 没有抛出异常
             */
            System.out.println("你输入的数据通过检测");
        }
        catch (NumberException e) {
            e.printStackTrace();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
    
}

测试结果:

输入成绩:
20
你输入的数据通过检测
输入成绩:
120
错误:成绩必须在0-100
page.NumberException
	at page.Test.check(Test.java:22)
	at page.Test.in(Test.java:38)
	at page.Test.main(Test.java:11)


2 回复 有任何疑惑可以回复我~
#1

幕粉一枚 提问者

赞,但是平均值那些怎么写呀?
2016-10-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

有道异常类的题不会写,求大神解答!!!!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信