• 第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元。请你通过上面定义的接口和类,实现她通过中介买房的过程,显示需交纳的中介费和契税。


    代码及注释:

    业务接口

    /* 定义接口包含两个成员变量ratio代表中介费用占房屋标价的比例,tax代表交纳的契税费用占房屋标价的比例,方法buying,price表示房屋总价*/
    interface Business{
        double ratio = 0.022;
        double tax = 0.03;
        void buying(double price);
    }

    购房者类

    /*定义Buyer类实现接口Business,成员变量name为购房者名字,重写接口方法输出住宅标价*/
    class Buyer implements Business{
        String name;
        public void buying(double price) {
            System.out.println(name+"购买的住宅标价为:"+price);
        }
    }

    中介类

    /*定义Intermediary类实现接口Business,定义一个Buyer型成员变量构造方法赋值,charing方法计算费用并输出*/
    class Intermediary implements Business{
        Buyer buyer;
        Intermediary(Buyer buyer){
            this.buyer = buyer;
        }
        public void buying(double price) {    
        }
        public void charing(double price) {
            System.out.println(buyer.name+"购买"+price+"住宅需要的中介费用"+price*ratio);
            System.out.println(buyer.name+"购买"+price+"住宅需要交纳的契税"+price*tax);
        }
    }

    Test类

    /*主类中创建Buyer对象并为neame赋值,输入房屋价格,创建Intermediary对象将价格传入类中,并调用intermediary.charing方法*/
    public class Test11_19 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Buyer buyer = new Buyer();
            buyer.name ="Lisa";
            Scanner number = new Scanner(System.in);
            System.out.println("请输入房屋的价格:");
            int price = number.nextInt();
            buyer.buying(price);
            Intermediary intermediary = new Intermediary(buyer);
            intermediary.charing(price);
        }
    
    }

    运行结果:


    题目2:

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


    代码及注释:
    /*定义MyException类继承异常类Exception重写描述详细信息的toString方法*/
    class MyException extends Exception{
        private int num;
        MyException(int a){
            num = a;
        }
        public String toString() {
            return "自定义异常"+num;
        }
    }
    /*主类中定义makeExcept方法声明异常,运用if判断出现异常后抛出,主方法中try循环输入5次成绩,将成绩调入makeExcept方法中判断,catch捕获*/
    public class Test11_13 {
        static void makeExcept(int a)throws MyException{
            System.out.println("接收到的参数为"+a);
            if(a<0||a>100)
                throw new MyException(a);            
        }
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int sum = 0;
            Scanner number = new Scanner(System.in);
            
                    try {
                        for(int i=1;i<=5;i++) {
                        System.out.println("请输入学生的第"+i+"次成绩");
                        int number2 = number.nextInt();
                        makeExcept(number2);
                        sum+=number2;
                        }
                        System.out.println("平均成绩为"+sum/5);    
                    }
                    catch(MyException e) {
                        System.out.println("捕获"+e+"重新输入");
                        
                    }
                    
            }
    
        }

    运行结果:

      无异常:

            

      出现负数:

      

      出现大于100的数:

      

  • 相关阅读:
    164 Maximum Gap 最大间距
    162 Find Peak Element 寻找峰值
    160 Intersection of Two Linked Lists 相交链表
    155 Min Stack 最小栈
    154 Find Minimum in Rotated Sorted Array II
    153 Find Minimum in Rotated Sorted Array 旋转数组的最小值
    152 Maximum Product Subarray 乘积最大子序列
    151 Reverse Words in a String 翻转字符串里的单词
    bzoj3994: [SDOI2015]约数个数和
    bzoj 4590: [Shoi2015]自动刷题机
  • 原文地址:https://www.cnblogs.com/xushaohua/p/11849970.html
Copyright © 2020-2023  润新知