• 第10次作业


    题目1:

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

    源文件:Business.java

    /**
     * 1.创建接口Business
     * 2.声明抽象方法buying
     * 3.实现该接口的类都可以使用该方法
     * */
    package cn.edu.ccut.buyhouse;
    
    public interface Business {//定义接口Business
        double RATIO = 0.022;//代表房屋中介收取的中介费用占房屋标价的比例,初值为0.022
        double TAX = 0.03;//代表购房需要交纳的契税费用占房屋标价的比例,初值为0.03
        void buying (double price);//price表示房屋总价
    
    }

    源文件:Buyer.java

    /**
     * 1.主类Buyer实现Business接口,
     * 2.重写接口方法buying()
     * 3.buying()方法重写了接口的方法,显示购买者输出购买一套标价为price元的住宅
     * */
    package cn.edu.ccut.buyhouse;
    
    public class Buyer implements Business{//购房者类Buyer使用接口Business
        String name;
        public void buying (double price) {//显示输出购买一套标价为price元的住宅
            System.out.println(name+"购买一套标价为"+price+"元的住宅");
        }
    
    }

    源文件:Intermediary.java

    /**
     * 1.主类Intermediary实现Business接口,成员变量Buyer型 buyer
     * 2.重写接口方法buying()
     * 3.buying()方法重写了接口的方法,显示购买者输出购买一套标价为price元的住宅
     * */
    package cn.edu.ccut.buyhouse;
    
    public class Intermediary implements Business{
        Buyer buyer;
        Intermediary(Buyer buyer){
            this.buyer = buyer;
        }
        public void buying (double price) {//购房者buyer购买一套标价为price元的住宅,之后计算需要支付的中介费和交纳的契税
            System.out.println("需要支付的中介费为:"+price*RATIO+",需要交纳的契税为:"+price*TAX);
        }
        public void charing(double price) {//表示计算购买标价为price元的住宅时,房屋中介需要收取的中介费和需要交纳的契税
            System.out.println("房屋中介需要收取的中介费为:"+price*RATIO+",需要交纳的契税为:"+price*TAX);
        }
    
    }

    源文件:Test.java

    /**
     * 1.主类Test,主方法main
     * 2.变量price用来接收用户输入的价格, 创建购房者类Buyer对象,中介类Intermediary对象
     * 3.给buyer.name传参,给对象intermediary初始化时参数buyer,
     * 分别给对象intermediary下方法buying和charing传参price
     * */
    package cn.edu.ccut.buyhouse;
    import java.util.Scanner;
    public class Test {
    
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            Buyer buyer = new Buyer();//创建Buyer对象
            buyer.name="Lisa";//给name赋值
            double price=in.nextDouble();
            buyer.buying(price);//给buying方法传参
            Intermediary intermediary = new Intermediary( buyer);//创建对象并初始化参数
            intermediary.buying(price);//传参
            intermediary.charing(price);//传参
    
        }
    
    }

    运行结果:

    题目2:

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

    源文件:MyException.java

    /**
     * 1.主类自定义异常类MyException继承Exception类,构造方法MyException()
     * 2.私有成员变量exceptnumber,局部变量a 通过a赋值给exceptnumber。
     * 3.进行父类方法的重写,并返回异常处理方式
     * */
    package cn.edu.ccut.yclx;
    
    public class MyException extends Exception{//自定义异常类MyException
        private double exceptnumber;
        MyException(double a){
            exceptnumber=a;
        }
        public String toString() {//方法重写
            return "输入的数值有包含大于100或者为负数的值(不合法数值为:"+exceptnumber+")请重新执行!";//异常处理
        }
    }

    源文件:Test.java

    /**
     * 1.主类Test,主方法main
     * 2.Test类中方法makeExcept,异常声明传给自定义异常类MyException
     * 3.主方法里,变量score,sum,sign标记。for循环让用户输入分数,用try尝试是否异常
     * if判断标记,输入的数都合法才计算平均分
     * */
    package cn.edu.ccut.yclx;
    import java.util.Scanner;
    public class Test {
        static void makeExcept(double a)throws MyException{//异常声明
            if(a>100||a<0) {
                throw new MyException(a);//抛出异常对象
            }
        }
    
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            double score ,sum=0;//分数,分数和
            int sign =0;
            for(int i=0;i<5;i++) {//循环五次输入成绩
                score = in.nextDouble();
                    try {
                        makeExcept(score);//调用函数,传参score
                        sum=sum+score;//分数总和,不异常则累加分数
                    }
                    catch(MyException e){
                        sign++;//若异常++
                        System.out.println("异常!"+e);//异常处理
                    }
            }
            if(sign==0) {//判断标记是否++了。合法才能计算平均成绩
                double average =sum/5;//计算平均成绩
                System.out.println("平均成绩为:"+average);//输出平均成绩
            }
    
        }
    
    }

    运行结果:

    异常处理:

    正常运行:

  • 相关阅读:
    jquery常用获取属性的方法有哪些(attr prop区别)
    Java中 List、Set、Map 之间的区别
    mysql查询语句where后面加if判断
    mysql if 排序_MySQL ORDER BY IF() 条件排序
    Java 如何逆向遍历一个 List
    解决java.util.concurrent.RejectedExecutionException(Java多线程问题)
    list,map,set的区别
    Java8 List去掉重复对象以及保证添加顺序
    java 常用的几种集合类总结
    浅析Pinia的简单使用
  • 原文地址:https://www.cnblogs.com/zyg777/p/11852369.html
Copyright © 2020-2023  润新知