小明家住农村,家里有几块形状不同的地,请帮助小明计算下他家地的总面积和人均面积。系统包括家庭类,Shape接口,园类以及长方形类。其中园类和长方形类实现Shape接口。
Family类包含属性numPeople描述家庭人数,数组shapes描述小明家所拥有的几块土地,方法 getTotalArea(), getAvgArea()分别求出家庭总土地面积和人均土地面积。
属性numPepole 和shapes值在运行时通过键盘给出。
请完成下列代码

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
        Scanner input = new Scanner(System.in); 
        //输入土地数 input area number
        int areanum = input.nextInt();
        //输入家庭人数 peoplenum
        int peoplenum = input.nextInt();
 //创建土地数组 根据土地数 new Shape Array based on areanum
    Shape []shapes = 【】;
        for(int i=0;i<shapes.length;i++){
            String str = input.next();
            
            if(str.equals("cir")){ //判断是否是圆形土地
                double r = input.nextDouble(); //输入圆形土地的半径
                【】  //创建圆形土地对象,并放入shapes数组
            }
            else
                if(str.equals("rec")){
                    double height = input.nextDouble();
                    double width = input.nextDouble();
                     【】//创建长方形土地对象,并放入shapes数组
                }
            
        }//for 结束
        //创建家庭对象小明,将小明家的人数和土地传入
        Family xiaoming = new Family(peoplenum,shapes);
        //求小明家总土地面积
        double totalArea =【】;
        //求小明家人均土地面积
        double avgArea =【】;
        System.out.printf("total Area is:%.2f\n",totalArea);
        System.out.printf("average Area is:%.2f\n",avgArea);
    }

}

//定义接口Shape
【】 Shape {
  //定义方法double getArea();
     【】;
}

class Circle [ ]Shape {
    private double radius;

@Override //重写方法getArea()
    []

public Circle() {
        this(1);
    }

public Circle(double radius) {
        setRadius(radius);
    }

public double getRadius() {
        return radius;
    }

public void setRadius(double radius) {
        this.radius = radius;
    }

}

class Rectangle[] Shape{
    private double height,width;
 
 //方法重写
 【】

public Rectangle(double height, double width) {
        super();
        this.height = height;
        this.width = width;
    }

public Rectangle() {
        this.width = height =1;
    }

public double getHeight() {
        return height;
    }

public void setHeight(double height) {
        this.height = height;
    }

public double getWidth() {
        return width;
    }

public void setWidth(double width) {
        this.width = width;
    }
}
class Family{
    private int numPeople; //人口数
    
    private Shape[] shapes;//家庭拥有土地

public Family(int numPeople, Shape[] shapes) {
        this.numPeople = numPeople;
        this.shapes = shapes;
    }
    
    public double getTotalArea(){
        double sum  =0;
        //求家庭土地总面积,将shapes数组中每一个土地求面积相加求和
    【】
        return sum;
    }
    //求家庭人均土地面积
public double getAvgArea(){
        【】
    }

public int getNumPeople() {
        return numPeople;
    }

public void setNumPeople(int numPeople) {
        this.numPeople = numPeople;
    }

public Shape[] getShapes() {
        return shapes;
    }

public void setShapes(Shape[] shapes) {
        this.shapes = shapes;
    }
    
}

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);//输入土地数 input area numberint areanum = input.nextInt();//输入家庭人数 peoplenumint peoplenum = input.nextInt();//创建土地数组 根据土地数 new Shape Array based on areanumShape []shapes = new Shape[areanum];for(int i=0;i<shapes.length;i++){String str = input.next();if(str.equals("cir")){ //判断是否是圆形土地double r = input.nextDouble(); //输入圆形土地的半径shapes[i]=new Circle(r);  //创建圆形土地对象,并放入shapes数组}elseif(str.equals("rec")){double height = input.nextDouble();double width = input.nextDouble();shapes[i]=new Rectangle(height,width) ;//创建长方形土地对象,并放入shapes数组}}//for 结束//创建家庭对象小明,将小明家的人数和土地传入Family xiaoming = new Family(peoplenum,shapes);//求小明家总土地面积double totalArea = xiaoming.getTotalArea();//求小明家人均土地面积double avgArea = xiaoming.getAvgArea();System.out.printf("total Area is:%.2f\n",totalArea);System.out.printf("average Area is:%.2f\n",avgArea);}}
//定义接口Shapeinterface Shape {//定义方法double getArea();double getArea();}class Circle implements Shape {
private double radius;@Override //重写方法getArea()public double getArea()
{return radius*radius*Math.PI;
}public Circle() {this(1);}public Circle(double radius) {setRadius(radius);}public double getRadius() {return radius;}public void setRadius(double radius) {this.radius = radius;}}class Rectangle implements Shape{
private double height,width;//方法重写@Overridepublic double getArea() {return (height*width);}public Rectangle(double height, double width) {super();this.height = height;this.width = width;}public Rectangle() {this.width = height =1;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}public double getWidth() {return width;}public void setWidth(double width) {this.width = width;}}
class Family{private int numPeople; //人口数private Shape[] shapes;//家庭拥有土地public Family(int numPeople, Shape[] shapes) {this.numPeople = numPeople;this.shapes = shapes;}public double getTotalArea(){double sum  =0;//求家庭土地总面积,将shapes数组中每一个土地求面积相加求和for(int i=0;i< shapes.length;i++){sum=sum+shapes[i].getArea();}return sum;}//求家庭人均土地面积public double getAvgArea(){double renjun;renjun=getTotalArea()/getNumPeople();return renjun;}public int getNumPeople() {return numPeople;}public void setNumPeople(int numPeople) {this.numPeople = numPeople;}public Shape[] getShapes() {return shapes;}public void setShapes(Shape[] shapes) {this.shapes = shapes;}}

6 zzuliPTA家庭土地管理相关推荐

  1. PTA 6 家庭土地管理 分数 10

    此题包含的内容很充足,很适合小白练习,唯一的缺点就是,已知给的太多了.出题人太贴心了,我直接哭死.不过完完整整写出此题整体的代码,也算是达到了封装继承的入门级别了. 题目很长,可以跳过(doge): ...

  2. 第二十章 我国农村土地管理

    农村改革解说(专著)第二十章上 第二十章 我国农村土地管理上 1.为什么进行农村土地管理? 农村土地管理,就是对农村的集体所有制的土地进行管理.它不仅包括对现有耕地的管理,而且还包括对草原.山地.林地 ...

  3. VLOG丨树莓派Raspberry Pi 3安装PLEX并挂载USB硬盘打造最牛的微型家庭影音服务器2018...

    视频介绍 树莓派3安装目前最流行的PLEX服务器,实现既能最大限度降低功耗,也能随时随地观看分享影片. 一.在树莓派下安装PLEX媒体服务器 1.在终端,将你的树莓派更新至最新 sudo apt up ...

  4. mysql存储家庭成员信息_家谱管理系统的设计与实现(MyEclipse,MySQL)

    家谱管理系统的设计与实现(MyEclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,毕业论文16700字,程序代码,MySQL数据库,答辩PPT) 家谱是现代人们怀旧的重要部分,因此, ...

  5. 家庭局域网开启AP隔离利用无线路由器互连

    一开始可以上网,可以ping网关192.168.1.1,但是几台电脑之间就是不能互ping. 其实,真实的原因就是没有开启无线路由器的AP隔离. 在浏览器中输入192.168.1.1进入路由搜索一般用 ...

  6. Java项目:家庭理财系统(java+SSM+JSP+Tomcat8+Mysql)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能:家庭理财,财务分析,统计等等. 二.项目运行 运行环境: jdk8+tomcat8+mysql+IntelliJ IDE ...

  7. Java项目:家庭财务管理系统(java+Springboot+ssm+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能: 家庭财务管理系统,具有收入统计,支出统计,汇总报 表,工资录入,其他收入等录入开支信息,echart图标插 件弓I入展 ...

  8. Wink发布Wink Hub2家庭物联网控制中心

    智能家居主要厂商之一Wink宣布推出Wink Hub2家庭物联网控制中心,支持更多的家庭物联网产品,更广泛的互联互通,以及提供更好用的控制程序.Wink Hub2主要作用是连接第三方家庭物联网产品,并 ...

  9. 转《刘润的数字化家庭》

    数字家庭也是我的一大梦想,感谢刘润让我的想法更加丰富和具体... 转载自刘润的博客,原文地址:http://blog.run2me.com/runliu/archive/2010/06/12/3708 ...

最新文章

  1. 2021年大数据ELK(四):Lucene的美文搜索案例
  2. Matlab R2016a中如何完美运行“mex-setup”
  3. python--gevent高并发socket
  4. 关于python语言、下列说法不正确的是-关于Python中的字符串,下列说法错误的是()...
  5. Python 微信机器人:属于自己的微信机器人制作,简单易懂。图灵机器人接口api调用
  6. 关于10g RAC监听设置,tnsnames.ora设置,VIP及客户端配置问题
  7. HBase中Bloomfilter类型的设置及使用的理解
  8. Mom and Dad
  9. mysql的条件求和函数_使用SQL语句统计数据时sum和count函数中使用if判断条件的讲解...
  10. windbg调试句柄泄露
  11. 搭建Discuz论坛的两种方式
  12. java的恐怖推理游戏_胆小勿入!盘点一下2019年所有的恐怖游戏
  13. php 5.3 include 上层 function,php5.3开始出现的Function ereg() is deprecated Error问题解决办法...
  14. 斐波那契数列(Fibonacci)的三种JAVA解法
  15. 在 Microsoft Windows Server 2008 R2 上安装 IE 11
  16. 增强 扫描王 源码_CamScanner扫描全能王v5.15.3 安卓版
  17. 2012移动开发者经济学
  18. Matlab的主成分分析
  19. Codevs1074:食物链——题解
  20. python3GUI--天气预报小工具(附源码)

热门文章

  1. 出货量差距大幅缩短,四季度小米可望彻底击败华为!
  2. 为什么需要内网穿透技术?
  3. 前端|网页制作秘密武器 之发光边框
  4. SDUT OJ 2132 (一般算术表达式转换成后缀式)
  5. 参加高中毕业十年同学会有感
  6. Scrum立会报告+燃尽图(Beta阶段第三次)
  7. Java秘史——名字的来历
  8. Latex提取与合并pdf文档(超实用)
  9. seaborn绘图基础介绍
  10. 华视身份证读卡器网页信息采集失灵处理办法