设计一个几何图形的面积计算器,希望这个计算器可以计算圆和矩形等图形的面积
主要要求如下。
(1) 编写一个抽象类Shape:该类中有两个抽象方法double area()和String getShapeName(),分别实现如下功能:各种具体的几何图形计算出自己的面积、和给出各自的图形名称。
(2) 编写Shap类的2个子类:Circle和Rectangle类。
(2.1)Circle中,重写 area() 方法,实现返回指定圆的面积(公式中 π 使用 Math.PI 计算);和重写getShapeName()方法,实现返回字符串“Circle”;
而且Circle中有1个成员变量,表示半径,即double r; ,设计一个构造函数Circle(double r),由参数r指定半径值。
(2.2)Rectangle中,重写 area() 方法,实现返回指定矩形的面积;和重写getShapeName()方法,实现返回字符串“Rectangle”。
而且Rectangle中有2个成员变量,分别表示高和宽,即double h,w;,设计一个构造函数Rectangle (double h, double w),由参数h,w指定高和宽的值。
(3) 编写图形面积计算器类Calculator:该类有一个void play (Shape shape) 方法,在该方法中先通过Shape 类型的参数shape调用其子类重写的getShapeName()方法,来获取该图形名称,再调用其子类重写的area()方法,来获取该图形的面积,最后按一定格式将这些信息输出(输出时小数位数保留2位)。
(4) 主类Main,在该类的main方法中包含如下代码,实现让面积计算器可以计算相应的图形的面积。其中:
(4.1)如果键盘输入“1”回车,表示计算圆形面积,接着输入圆形的半径值如10,则输出:Circle:314.16;
(4.2)如果键盘输入“2”回车,表示计算矩形面积,接着输入矩形的高与宽值如10与2,则输出:Rectangle:20.00;
(4.3)如果键盘输入其他值,则输出:No corresponding shape!。
输入的第一行是一个数字,1对应圆,2对应矩形,其他输入没有对应图形。
输入的第二行是更加第一行的选择进行的。
输入格式:
由键盘输入两行
输入的第一行是一个数字(其中1对应圆,2对应矩形,其他输入值没有对应图形)。
输入的第二行是根据第一行的选择进行的。若第一行输入1,则第二行输入一个半径值;若第一行输入2,则输入两个数字,分别为高与宽。若输入除了1和2的其他整数,则不用输入第二行。
输出格式:
输出1行,显示:图形名称和图形面积(输出时保留2为小数),中间用英文状态下的冒号隔开,例如:Rectangle:20.00
若输入除了1和2的其他整数,屏幕显示:No corresponding shape!
输入样例:
1
10
输出样例:
Circle:314.16
输入样例:
5
输出样例:
No corresponding shape!
import java.util.Scanner; //加载Scanner类abstract class Shape { //创建一个抽象类Shapeabstract double area(); //创建两个抽象方法abstract String getShapeName();
}class Circle extends Shape{ //创建一个子类,继承抽象类,因为为非抽象子类,必须重写父类的抽象方法double r; //创建一个对象;Circle(double r){ //创建半径rthis.r=r;}double area(){ //返回圆形的面积return r*r*Math.PI;}String getShapeName() { //返回图形的类型return "Circle";}
}class Rectangle extends Shape{ //创建一个矩形子类,同上,需要重写方法double h;double w;Rectangle(double h,double w){this.h=h;this.w=w;}double area(){return h*w;}String getShapeName(){return "Rectangle";}
}class Calculator{ //创建一个计算类public void play(Shape shape) { //创建一个计算方法,并创建一个Shape对象,用于运用其方法System.out.printf("%s:%.2f",shape.getShapeName(),shape.area());}
}public class Test {public static void main(String[] args) {Calculator calculator =new Calculator (); //创建Calculator对象Scanner sc=new Scanner(System.in); //用于输入int ch=sc.nextInt();switch(ch){ //使用Switch结构case 1: //输入1则调用求圆的面积double r=sc.nextDouble();calculator.play(new Circle(r));break;case 2: //输入2则求矩形的面积double h=sc.nextDouble();double w=sc.nextDouble();calculator.play(new Rectangle(h,w));break;default: //若既没有输入1,也没有输入2,则返回错误提示System.out.println("No corresponding shape!");}}
}
设计一个几何图形的面积计算器,希望这个计算器可以计算圆和矩形等图形的面积相关推荐
- Python 实战案例--计算圆、矩形的周长和面积
import math# 计算圆的面积 def circle_area(radius):return math.pi * radius * radius# 计算圆的周长 def circle_peri ...
- 【Java】设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。
题目要求:设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声.要求如下: (1)编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaNam ...
- 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下:
设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声.要求如下: (1)编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaName(),即 ...
- Java练习 | 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声(附代码)
问题:设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声. 要求如下: 编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaName(), ...
- 设计一个动物声音模拟器,希望模拟器可以模拟许多动物的叫声
设计一个动物声音模拟器,希望模拟器可以模拟许多动物的叫声,要求如下: 1.编写抽象类Animal Aminal抽象类有两个抽象方法cry()和getAnimalName(),即要求各种具体的动物给出自 ...
- Java计算圆、长方形、正方形的面积及周长,并比较打印各个图形的大小
代码分两部分来现实: 先求出各个图形的面积和周长: 在比较各个图形的大小: 第一点解答如下: (创建一个图形类Graph:派生类:圆形类Circle.正方形类Square.长方形类Rectangle: ...
- Java小程序之计算三角形/圆形/矩形的周长和面积
题目:用Java编写一个计算随意给定值的三角形/圆形/矩形的周长和面积 代码如下: 文件名:Shape.java /*** 抽象类Shape 是其他三个形状的父类 * 其他三个类要继承重写getAre ...
- C语言计算圆的角度与弧度、面积、周长计算
#include <stdio.h> #include <math.h> #define PI 3.1415926 // 宏定义 #define GET_ANGLE(rad) ...
- Java实验之设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声
编写抽象类Animal Animal抽象类有两个抽象方法cry()和getAnimalName(),即要求各种具体的动物给出自己的叫声和种类名称 编写模拟器类Simulator 该类有一个playSo ...
- 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声
编写抽象类Animal : Animal抽象类有2个抽象方法cry()和getAnimaName(),即要求各种具体的动物给出自己的叫声和种类名称. 编写模拟器类Simulator: 该类有一个pla ...
最新文章
- Kataspace:用HTML5和WebGL创建基于浏览器的虚拟世界
- 送ta一朵独一无二的玫瑰花
- 【MATLAB统计分析与应用100例】案例003:matlab调用smooth函数进行加噪数据的平滑处理
- 计算机减法英语,英语的加减乘除如何表达?
- c语言求一个数的阶乘值代码,求10000的阶乘(c语言代码实现)
- sql tempdb清理_SQL Server TempDB数据库和闩锁争用
- python 导入的nan怎么解决_用Python处理了数据还要导入Excel做图表?直接Python做漂亮图表...
- LeetCode81. 搜索旋转排序数组 II(二分查找)
- linux系统下find命令的使用
- 这款应用,让Windows软件也能在Mac上使用起来
- 镀铬亮条怎么修复_「日系之光」曾经的亚洲C级车排面,十二代丰田皇冠全面修复日记...
- dojo mobile问题汇总
- 微信小程序列表局部(单条)刷新
- Qt通过ODBC连接opengauss数据库
- 智慧工厂管理平台建设,智慧工厂管理系统开发
- 边境的悍匪—机器学习实战:第五章 支持向量机
- 法大大连续两年中国电子签名市场份额第一
- python根须系统斜杠_尝试在Win10系统搭建esp32编译系统.下
- TCP报文( tcp dup ack 、TCP Retransmission)
- 数据库(Mysql)学习
热门文章
- 周末不知道学什么?这份 Android 优秀技术文章清单请收下
- 网线:568A 568B线序
- 百度必应谷歌图片自动爬取库icrawler使用体会
- Unhandled exception at 0x000007FEFD19A06D in test.exe: Microsoft C++ exception: cv::Exception at mem
- 电脑消除,彻底清除电脑垃圾,让电脑运行更流畅!
- uc3854 matlab仿真,基于UC3854硬开关PFC变换电路设计课程设计.doc
- 广外专版-msn聊天记录查看器
- 基于51单片的电风扇系统
- 计算机专业轻薄本还是游戏本,十大精品笔记本电脑(高端轻薄本和高端游戏本)...
- 华为云文件夹服务器,华为云空间服务器在哪个文件夹