第十次作业

题目一:

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

共有一个接口和三个类:

  • 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
 1 /*业务接口Business包括两个 成员变量RATIO、TAX,分别表示中介费用的比例和
 2  * 契税的比率。还定义了一个buying方法,参数是price,表示房价。
 3  * */
 4 package sale;
 5 
 6 public interface Business {    
 7     double RATIO=0.022;
 8     double TAX=0.03;
 9     void buying(double price);
10 
11 }

2.Buyer.java

 1 /*购房者类Buyer是业务接口的非抽象使用类,包括一个成员变量name,
 2  * 表示购房者的名字,重写了buying方法,用于输出某人购买房屋的总花费。
 3  * */
 4 package sale;
 5 
 6 public class Buyer implements Business {
 7     String name;
 8     public void buying(double price)
 9     {
10         System.out.println(name+"购买了一套标价为"+price+"元的住宅");
11     }
12 
13 }

3.Intermediary.java

 1 /*中介类是Intermediary是业务接口的非抽象使用类,包括一个成员变量buyer,
 2  * 和三个方法,一个构造方法Intermediary,重写了buying方法,以及一个计算中介费
 3  * 和所交契税的方法
 4  */
 5 package sale;
 6 
 7 public class Intermediary implements Business {
 8     Buyer buyer;
 9     double intermediary;
10     double tax;
11     public Intermediary(Buyer buyer){
12         this.buyer=buyer;
13     }
14     public void buying(double price){
15         charging(price);
16     }
17     public void charging(double price){
18         intermediary=price*RATIO;
19         tax=price*TAX;
20         System.out.println("中介公司收取的中介费为:"+intermediary);
21         System.out.println("需要交的契税为:"+tax);
22     }
23 
24 }

4.Test2.java

/*定义了住房对象Lisa,通过控制台输入房价,
 * 创建中介类的对象inter,通过接口调用实现相关计算
 * */
package sale;
import java.util.Scanner;
public class Test2 {
    public static void main(String[] args) {
        Buyer buyer=new Buyer();
        buyer.name="Lisa";
        System.out.println("请输入要购买的房屋总价:");
        Scanner reader=new Scanner(System.in);
        double price=reader.nextDouble();
        buyer.buying(price);
        Intermediary inter=new Intermediary(buyer);
        inter.charging(price);
    }
}

三.运行截图

题目二:

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

二.源代码

Test1.java
 1 /*Test1主要是通过对学生成绩输入可能产生的异常做相应的提示,
 2  * 首先自定义了一个新的异常子类MyException,并继承Exception父类,
 3  * 子类MyException中通过String toString描述了异常的详细信息,
 4  * 在makeMyExcept中抛出了异常,在主方法中通过Scanner创建对象从控制台输入了
 5  * 五科成绩,通过try-catch语句做异常处理。
 6  * */
 7 package Computescore;
 8 import java.util.*;
 9 
10 class MyException extends Exception{   //自定义异常类
11         private double number;
12         public MyException(double score){
13             number=score;
14         }
15         public String toString(){   //自定义异常信息
16             return "输入成绩异常";
17         }
18     }
19 public class Test1 {
20      static void makeMyExcept(double score)throws MyException{  //声明
21          if(score<0||score>100){
22              throw new MyException(score);  //抛出自定义的异常
23           }
24      }
25      public static void main(String[] args) {
26         double sum=0;
27         double average;
28         Scanner reader=new Scanner(System.in);
29         System.out.println("请分别输入五科成绩:");
30         try{                              //异常处理
31             for(int i=0;i<5;i++){
32                   double score=reader.nextDouble();
33                   makeMyExcept(score);
34                   sum=sum+score;
35             }
36             average=sum/5;
37             System.out.println("平均成绩为:"+average);
38         }
39         catch(MyException a){      //捕获自定义异常
40             System.out.println("捕获异常--输入成绩有误");    
41         }  
42     }
43 
44 }

三.运行截图

posted @ 2019-11-13 17:25  jie130  阅读(135)  评论(0编辑  收藏  举报