亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

有道異常類的題不會寫,求大神解答!?。。。?/h1>

編寫一程序,從控制臺輸入一個班學生的某門課程成績,統計及格人數,不及格人數、平均數。為此設計一個異常類,當輸入的成績小于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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號