1. 编写程序接收用户输入分数信息,如果分数在0—100之间,输出成绩.如果成绩不在该范围内,抛出异常信息,提示分数必须在0—100之间.

要求:使用自定义异常实现.

----------------------------

public class InputScore {
public static void main(String[] args) {
Student st1 = new Student("张三",101);
}
}

class Student{
private String name;
private int score;
public Student() {

}

public Student(String name,int score) {
if(score<0||score>100) {
throw new InputErr("分数必须是0-100之间的数");
}
this.name = name;
this.score = score;
}

}


class InputErr extends RuntimeException{
public InputErr() {

}

public InputErr(String str) {
System.out.print(str);
}
}
----------------------------
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.

2. 写一个方法void isTriangle(int a,int b,int c),判断三个参数是否能构成一个三角形, 如果不能则抛出异常IllegalArgumentException,显示异常信息 “a,b,c不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数, 调用此方法,并捕获异常.

---------------------------

import java.util.Scanner;

public class Triangle {
private int a,b,c;

public Triangle() {

}

public Triangle(int a,int b, int c) {
this.a = a;
this.b = b;
this.c = c;
}

void isTriangle(int a,int b,int c) {
if(diffIsTr(a, b, c)&&addIsTr(a, b, c)) {
System.out.printf("三角形的三边分别为:a-%s,b-%s,c-%s",a,b,c);
}else {
throw new IllegalArgumentException("a,b,c不能构成三角形");
}
}

// 两边之差小于第三边
static boolean diffIsTr(int a,int b,int c) {
if(Math.abs(a-b)<c&&Math.abs(a-c)<b&&Math.abs(b-c)<a) {
return true;
}
return false;
}
// 两边之和大于第三边
static boolean addIsTr(int a,int b,int c) {
if(a+b>c&&a+c>b&&b+c>a) {
return true;
}
return false;
}

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入a:");
int a = scanner.nextInt();
System.out.print("请输入b:");
int b = scanner.nextInt();
System.out.print("请输入c:");
int c = scanner.nextInt();

Triangle t1 = new Triangle(a,b,c);
t1.isTriangle(a, b, c);
}
}
---------------------------
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.

3. 编写一个计算N个学生分数平均分的程序.程序应该提示用户输入N的值,如何必须输入所有N个学生分数.如果用户输入的分数是一个负数,则应该抛出一个异常
并捕获,提示“分数必须是正数或者0”.并提示用户再次输入该分数.

---------------------------

import java.util.Scanner;

public class Students {
private int score;
private String name;

public Students() {

}

public Students(int score) {
if(score < 0) {
throw new ScoreIputErr("分数必须是正数或者0");
}
this.score = score;
}

public Students(String name,int score) {
if(score < 0) {
throw new ScoreIputErr("分数必须是正数或者0");
}
this.score = score;
this.name = name;
}

public static void main(String[] args) {
int sum = 0; // 统计总分
System.out.print("请先输入需要统计平均分学生的人数:");
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
Students[] students = new Students[N]; // 创建一个学生类的数组

for(int i=0;i<N;i++) {
// 捕获抛出的异常
try {
System.out.printf("请输入第%s个学生的成绩:",i+1);
int score = scanner.nextInt();
students[i] = new Students(score);
sum += score;
}catch(ScoreIputErr e) {
// e.printStackTrace();
System.out.println("-------->请重新输入<--------:");
i--; // 使可以重新输入此学生的分数
}
}
int avg = sum / N; // 求平均分
System.out.printf("平均分数为:%s",avg);
}
}

// 自定义异常类,用于抛出异常
class ScoreIputErr extends RuntimeException{

public ScoreIputErr() {

}

public ScoreIputErr(String str) {
System.out.println("------------");
System.out.println(str);
System.out.println("------------");
}
}
---------------------------
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.