第六章课后习题

2021-04-15

一、代码阅读:给定如下java代码,编译运行后,输出结果是什么?请解释原因

package sample;

public class MobilPhone {
    public String brand;
    public MobilPhone(){
        this.brand="诺基亚";
    }
    public MobilPhone(String bra){
        this.brand=bra;
    }
    public  String buy(){
        return "没发工资,买一个"+brand+"牌子的手机吧!";
    }
    public String buy(String reason){
        return reason+",快买一个"+brand+"牌子的手机吧!";
    }
}
//以上为MobilPhone类定义代码,以下为调用代码
package sample;

public class MobilPhoneTest {
    public static void main(String[] args) {
        MobilPhone mp =new MobilPhone();
        mp.brand="苹果";                         //发工资了,修改品牌属性
        String detail=mp.buy("发工资了");         //发工资了,调用带参数的构造方法
        System.out.println(detail);
    }
}



输出结果为:
在这里插入图片描述
原因:String detail = mp.buy(“发工资了”); 调用了有参的方法

二、模拟一个简单的购房商贷月供计算器,按照以下公式计算总利息和每月还款金额:
总利息=贷款金额*利息
每月还款金额=(贷款金额+总利息)/贷款年限

package sample;

public class Mortgage {
    public double money=0;
    public double loan(double loan,int choose){
        switch(choose) {
            case 1:money = (loan + loan * 0.0603) / 36;
                break;
            case 2:money = (loan + loan * 0.0612) / 60;
                break;
            case 3:money = (loan + loan * 0.0639) / 240;
                break;
            default:
                System.out.println("eorr!请重新输入!");
                break;
        }
        System.out.println("月供为:"+money);
        return money;
    }
}

//以上Mortgage为类定义代码,以下为调用代码
package sample;

import java.util.Scanner;

public class MortgageTest {
    public static void main(String[] args) {
        Mortgage mp=new Mortgage();
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入贷款金额:");
        double money=sc.nextDouble();
        System.out.print("请选择贷款年限:1.3年(36个月)  2.5年(60个月)  3.20年(240个月):");
        int chiose=sc.nextInt();
        mp.loan(money, chiose);


    }

}


输出结果为:
在这里插入图片描述

三、根据三角形的3条边长,判断其是直角、钝角还是锐角三角形。程序的要求功能如下。
(1)先输入三角形3条边的边长。
(2)判断能否构成三角形,构成三角形的条件是“任意两边之和大于第三边”,如果不能构成三角形。则提示“不是三角形!”。
(3)如果能构成三角形,判断三角形是个何种三角形。如果三角形的任意一条边的平方等于其他两条边平方的和,则为直角三角形;如果在任意一条边的平方大于其他两条边平方的和,则为钝角三角形;否则为锐角三角形。

package sample;

public class Triangle {
    public boolean showA(int a ,int b ,int c){
        boolean con=false;
        if((a+b)>c&&(a+c)>b&&(c+b)>a){
            con=true;
        }
        return con;
    }
    public String Shape(int a,int b,int c){
        String shape="";

        if((a==b)&&(b==c)&&(c==a)){
            shape="等边三角形";
        }else if((a==b)||(b==c)||(c==a)){
            shape="等腰三角形";
        }else {
            int A=a*a;
            int B=b*b;
            int C=c*c;
            if((A>B+C)||(B>A+C)||(C>A+B)){
                shape="钝角三角形";
            }else if((A==B+C)||(B==A+C)||(C==A+B)){
                shape="直角三角形";
            }else{
                shape="锐角三角形";
            }
        }
        return shape;
    }

}
//以上为为Triangle类定义代码,以下为调用代码
package sample;

import java.util.Scanner;

public class TriangleTest {
    public static void main(String[] args) {
        Triangle TriangleTest=new Triangle();
        boolean con=true;
        while(con){
            Scanner input = new Scanner(System.in);
            System.out .print("请输入第一条边:");
            int num1=input.nextInt();
            System.out .print("请输入第二条边:");
            int num2=input.nextInt();
            System.out .print("请输入第三条边:");
            int num3=input.nextInt();
            if(TriangleTest.showA(num1,num2,num3)){
                System.out .print("这是一个"+TriangleTest.Shape(num1, num2, num3));
            }else{
                System.out .print("这不能构成三角形。");
            }
            System.out .print("\n继续吗?(y/n):");
            String choice=input.next();
            if(choice.equals("n")){
                con=false;
                System.out .print("谢谢使用!");
            }
        }
    }

}

输出结果为:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值