第10次作业
题目1
一、
编写一个应用程序,模拟中介和购房者完成房屋购买过程。
共有一个接口和三个类:
- Business—— 业务接口
- Buyer —— 购房者类
- Intermediary—— 中介类
- Test —— 主类
二、代码
1.Business.java
/**
业务接口包括:
两个成员变量
RATIO: double型代表房屋中介收取的中介费用占房屋标价的比例,初值为0.022
TAX:double型代表购房需要交纳的契税费用占房屋标价的比例,初值为0.03
一个方法表示房屋总价
* @author X1393
*/
public interface Business {
double RATIO=0.022;
double TAX=0.03;
void buying (double price);
}
2.Buyer.java
/**
* * 购房者类Buyer是业务接口Business的非抽象使用类,包括:
一个成员变量表示购房者姓名
一个方法:显示输出购买一套标价为price元的住宅
* @author X1393
*
*/
public class Buyer implements Business {
String name;
Buyer (String name){
this.name=name;
}
public void buying (double price){
System.out.println("一套住宅的标价为"+price);
}
}
3.Intermediary.java
/**
中介类Intermediary是业务接口Business的非抽象使用类,包括:
一个成员变量代表房屋中介接待的购房对象
三个方法
构造方法
buying 购房者buyer购买一套标价为price元的住宅,之后计算需要支付的中介费和交纳的契税
charing表示计算购买标价为price元的住宅时,房屋中介需要收取的中介费和需要交纳的契税
*
*/
public class Intermediary implements Business{
Buyer buyer;
Intermediary(Buyer buyer){
this.buyer=buyer;
}
public void buying(double price) {
// TODO Auto-generated method stub
System.out.println(buyer.name+"所需要支付的中介费"+price*Business.RATIO+"和交纳的契税"+price*Business.TAX);
}
public void charing(double price){
System.out.println("房屋中介所需要收取的中介费"+price*Business.RATIO+"和交纳的契税"+price*Business.TAX);
}
}
4.Test.java
/**
* Test主类中包含主方法
* 创建Intermediary类对象和Buyer类对象
* 调用方法显示需交纳的中介费和契税。
*/
import java.util.Scanner;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入房屋的价格");
Scanner reader = new Scanner(System.in);
double price=reader.nextDouble();
Buyer buyer=new Buyer("lisa");
Intermediary A=new Intermediary(buyer); //创建对象
buyer.buying(price);
A.buying(price);
A.charing(price);
}
}
三、运行结果

题目2
一、输入5个数,代表学生成绩,计算其平均成绩。当输入值为负数或大于100时,通过自定义异常处理进行提示。
二、代码
1.MyExcept.java
/**
* @author X1393
*创建自定义异常MyExcept类继承Exception类
*包含构造方法
*返回自定义异常的描述信息
*/
public class MyExcept extends Exception {
private int exceptnumber;
public MyExcept(int a) {
// TODO Auto-generated constructor stub
exceptnumber=a;
}
public String toString(){
return "数据异常"; //自定义异常的描述信息
}
}
2.TEST.java
/**
* 创建主类包含
* 自定义异常的声明
* 计算平均成绩的主方法
* 异常处理try
* 捕获异常catch
*/
import java.util.Scanner;
public class TEST {
static void makeExcept(int a)throws MyExcept{ //声明异常
if(a<0||a>100)
throw new MyExcept(a); //抛出自定义异常MyExcept
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
int sum=0;
int average;
try
{
for(int i=0;i<=5;i++)
{
Scanner reader = new Scanner(System.in);
int a=reader.nextInt();
makeExcept(a);
sum+=a;
}
average = sum / 5;
System.out.println("平均成绩为"+average);
}
catch(MyExcept e) //捕获自定义异常MyExcept
{
System.out.println(e);
}
}
}
三、运行结果

浙公网安备 33010602011771号