北邮JAVA高级语言程序设计(选修课)第三次OJ作业

北邮JAVA高级语言程序设计(选修课)第三次OJ作业

题目描述:
在实验1基础上,
定义一个异常类ScoreException,当输入的学生成绩不在[0,100]区间时,抛出该异常。
定义一个异常类StudentNumberException,当输入的学号不满足下述条件,则抛出该异常。条件为:学号为10位,第1位为2,第2位为0,其余位为数字0~9.
对Student和StudentTest类进行必要修改,提升程序的健壮性。

StudentTest类运行效果如下:
测试用例1:

1011211301 WangXiao 85 75 95
Illegal number format

测试用例2:

2011211301 WangXiao 859 75 95
Illegal score format

测试用例3:

2011211301 WangXiao 85 75 95
Student Info:
Number:2011211301
Name:WangXiao
Math:85
English:75
Science:95
Ave:85.00`

源代码:

import java.util.Scanner;
import java.text.DecimalFormat;

public class StudentError 
{
	public static void main(String args[])
	{
		Scanner in = new Scanner(System.in);
		while(in.hasNext())
		{
			int judge = 1;//判断输入信息是否有误
			int A = 1;//判断学号3~10位是否有误
			int B = 1;//判断学号是否有误
			int C = 1;//判断成绩是否有误
			String line = in.nextLine();
			String list[] = line.split(" ");
			char[] array = list[0].toCharArray();
			
			try
			{
				
				for(int i = 2;i < array.length;i++)
				{
					int INT = array[i] - 48;
					if(INT < 0 || INT > 9)
					{
						A = 0;
						break;
					}
				}
				if(array.length != 10 || array[0] != '2' || array[1] != '0' || A == 0)
				{
					judge = 0;
					B = 0;
				}
				int a1 = Integer.parseInt(list[2]);
				int a2 = Integer.parseInt(list[3]);
				int a3 = Integer.parseInt(list[4]);
				
				if(a1 < 0 || a1 >100 || a2 < 0 || a2 > 100 || a3 < 0 || a3 > 100)
				{
					judge = 0;
					C = 0;
				}
				if(judge == 0 && (A == 0 || B == 0))
				{
					throw new StudentNumber();
				}
				if(judge == 0 && C == 0)
				{
					throw new Score();
				}
				if(judge == 1)
				{
					double Average = (a1 + a2 + a3)/3.0;
					DecimalFormat a = new DecimalFormat("#.00");
					System.out.println("Student Info:"+"\n"+"Number:"+list[0]+"\n"+"Name:"+list[1]+
							          "\n"+"Math:"+list[2]+"\n"+"English:"+list[3]+"\n"+"Science:"+
							           list[4]+"\n"+"Ave:"+a.format(Average));
				}
			}
			catch (Exception e)
			{
				
			}
		}
	}

}

class StudentNumber extends Exception
{
	public StudentNumber()
	{
		System.out.println("Illegal number format");
	}
}
class Score extends Exception
{
	public Score()
	{
		System.out.println("Illegal score format");
	}
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值