本编码答案为本人个人编辑,仅供参考,用的简单方式。
三、编码题
- 编写程序接收用户输入分数信息,如果分数在0—100之间,输出成绩。如果成绩不在该范围内,抛出异常信息,提示分数必须在0—100之间。
要求:使用自定义异常实现。
代码如下:
import java.util.Scanner;
public class TestCode1 {
public static void main(String[]args) {
System.out.println("请输入分数");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
// System.out.println("step1");
try {
// System.out.println("step2");
if(num<1||num>100) {
throw new Exception("分数必须在1-100之间");
}
System.out.println("您输入的分数是"+num);
} catch (Exception e) {
// TODO Auto-generated catch block
// System.out.println("step3");
e.printStackTrace();
}finally {
sc.close();
}
}
}
2.写一个方法void isTriangle(int a,int b,int c),判断三个参数是否能构成一个三角形, 如果不能则抛出异常IllegalArgumentException,显示异常信息 “a,b,c不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数, 调用此方法,并捕获异常。
代码如下:
import java.util.Scanner;
public class TestCode2 {
public static void main(String[]args) throws Exception {
System.out.println("请输入三角形的三个边长:");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
isTriangle(a,b,c);
}
static void isTriangle(int a,int b,int c) throws Exception {
try {
if((a+b)<=c || (a+c)<=b || (b+c)<=a ) {
throw new Exception("a,b,c不能构成三角形");
}else {
System.out.println("构成的三角形的边长分别为:\na="+a+"\tb="+b+"\tc="+c);
}
}finally {
}
}
}
3.编写一个计算N个学生分数平均分的程序。程序应该提示用户输入N的值,如何必须输入所有N个学生分数。如果用户输入的分数是一个负数,则应该抛出一个异常并捕获,提示“分数必须是正数或者0”。并提示用户再次输入该分数。
代码如下:
import java.util.Scanner;
public class TestCode3 {
public static void main(String[]args) {
//n: 确定学生数目
System.out.println("请输入学生数目:");
Scanner sc1 = new Scanner(System.in);
int n = sc1.nextInt();
System.out.println("请依次输入学生成绩:");
Scanner sc2 = new Scanner(System.in);
int[] f = new int[n]; //f: 定义学生成绩的数目
long sum =0;
for(int i=0; i<n; i++) {
f[i] = sc2.nextInt();
judge(f[i]);
sum +=f[i];
}
double ave = (double)sum/n;
System.out.println("学生的平均成绩为:"+ave);
}
static void judge(int i) {
try {
if(i<0) {
throw new Exception("分数必须是正数或者0");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
}
}
}