Java第10次作业

题目1 :

一、:

编写一个应用程序,模拟中介和购房者完成房屋购买过程。

共有一个接口和三个类:

  • Business—— 业务接口
  • Buyer —— 购房者类
  • Intermediary—— 中介类
  • Test —— 主类

    1.业务接口

    业务接口包括:

    (1)两个数据域(成员变量)

    RATIO: double型,代表房屋中介收取的中介费用占房屋标价的比例,初值为0.022

    TAX:double型,代表购房需要交纳的契税费用占房屋标价的比例,初值为0.03

    (2)一个方法

    void buying (double price):price表示房屋总价

    2.购房者类

    购房者类Buyer是业务接口Business的非抽象使用类,包括:

    (1)一个成员变量

    name:String型,表示购房者姓名

    (2)一个方法:

    public void buying (double price):显示输出购买一套标价为price元的住宅

    3.中介类

    中介类Intermediary是业务接口Business的非抽象使用类,包括:

    • 一个成员变量

    buyer:Buyer型,代表房屋中介接待的购房对象

    • 三个方法

    Intermediary(Buyer buyer):构造方法

    public void buying (double price):购房者buyer购买一套标价为price元的住宅,之后计算需要支付的中介费和交纳的契税

    public void charing(double price):表示计算购买标价为price元的住宅时,房屋中介需要收取的中介费和需要交纳的契税(中介费计算公式:房屋标价* RATIO,契税计算公式:房屋标价*TAX)

    4.Test类

    在Test类中定义购房对象——姓名Lisa,从控制台输入她计划买的房屋标价,如650000元。请你通过上面定义的接口和类,实现她通过中介买房的过程,显示需交纳的中介费和契税。

二、源程序:

1、Business.java

package Haha;

public interface Business {//创建接口Business
    double     RATIO=0.022;
    double TAX=0.03;
    void buying (double price);
 
}

2、Buyer.java

package Haha;

public class Buyer implements Business{//创建使用接口的Buyer类
    String name;
    public void buying(double price){
    System.out.println("房屋的价格:"+price);//输出房屋价格
    }
    
}

3、Intermediary.java

package Haha;

public class Intermediary implements Business {//创建使用接口的Intermediary类
    Buyer buyer;
    Intermediary(Buyer buyer){
        this.buyer=buyer;
    }
    public void buying (double price){
        System.out.println(buyer.name+"购买的房屋价格是:"+price);//输出购买者名字和房屋的价格
    }
    public void charing(double price){
        System.out.println("房屋中介所需中介费"+price*RATIO);//输出房屋中介费
        System.out.println("房屋中介所需缴税"+price*TAX);//输出房屋中介所需缴税
    }
}

4、Test.java

package Haha;

import java.util.Scanner;
public class Test{//Test主类
    public static void main(String[] args){//主方法
        Scanner reader=new Scanner(System.in);//创建Buyer对象
        Buyer buyer=new Buyer();
        Intermediary i=new Intermediary(buyer);
        double price=reader.nextDouble();
        buyer.buying(price);
        buyer.name = "lisa";
        System.out.println("姓名:" + buyer.name);
        i.buying(price);
        i.charing(price);
    }
}

三、运行结果:

 题目2:

一、:输入5个数,代表学生成绩,计算其平均成绩。当输入值为负数或大于100时,通过自定义异常处理进行提示。

二、源程序:

Test.java

package Yichang;
import java.util.Scanner;
 
  class MyException extends Exception{
       private double exceptnumber;
       MyException(double a){
           exceptnumber=a;
       }
       public String toString(){
           return "自定义异常["+exceptnumber+"]";//自定义异常的描述信息
       }
   }
  class Test {
       static void makeExcept(double a)throws MyException{
               if(a<0||a>100){
                   throw new MyException(a);//抛出自定义异常MyException
               }
       }
       public static void main(String[] args) {
           try{
               double  sum=0;
               double  a;
               Scanner reader=new Scanner(System.in);
               System.out.println("请输入5个数:");
               for(int i=0;i<5;i++){
                   a=reader.nextDouble();
                   sum+=a;
               makeExcept(a);
               }
              System.out.println("平均数:"+sum/5.0);
           }catch(MyException e){       //捕获自定义异常MyException
               System.out.println("捕获"+e);
           }
       }
 
   }

三、运行结果:

猜你喜欢

转载自www.cnblogs.com/szy799/p/11852899.html