计算各种图形的周长(接口与多态)
来源:互联网 发布:linux下强制删除用户 编辑:程序博客网 时间:2024/06/04 18:45
Problem Description
定义接口Shape,定义求周长的方法length()。
定义如下类实现接口Shape的抽象方法:
(1)三角形类Triangle (2)长方形类Rectangle (3)圆形类Circle等。
定义测试类ShapeTest,用Shape接口定义变量shape,用其指向不同类形的对象,输出各种图形的周长。并为其他的Shape接口实现类提供良好的扩展性。
Input
输入多组数值型数据(double);
一行中若有1个数,表示圆的半径;
一行中若有2个数(中间用空格间隔),表示长方形的长度、宽度。
一行中若有3个数(中间用空格间隔),表示三角形的三边的长度。
若输入数据中有负数,则不表示任何图形,周长为0。
Output
行数与输入相对应,数值为根据每行输入数据求得的图形的周长(保留2位小数)。
Example Input
12 34 5 62-2-2 -3
Example Output
6.2810.0015.0012.560.000.00
Hint
构造三角形时要判断给定的三边的长度是否能组成一个三角形,即符合两边之和大于第三边的规则;
计算圆周长时PI取3.14。
Author
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while(in.hasNext()){String str = in.nextLine();String[] strs = str.split(" ");double []a = new double [100];int i;for(i = 0; i < strs.length; i++)a[i] = Integer.parseInt(strs[i]);double x,y,z;if(i == 1){x = a[0];if(x <= 0) System.out.println("0.00");else{Circle c = new Circle(x);System.out.printf("%.2f\n",c.length());}}else if(i == 2){x = a[0];y = a[1];if(x <= 0) System.out.println("0.00");else{Rectangle r = new Rectangle(x,y);System.out.printf("%.2f\n",r.length());}}else if(i == 3){for(i = 0; i < 3; i++){for(int j = 0; j < i; j++){if(a[j] > a[j+1]){double t = a[j];a[j] = a[j+1];a[j+1] = t;}}}x = a[0];y = a[1];z = a[2];if(x + y > z ){if(x <= 0) System.out.println("0.00");else{Triangle T = new Triangle(x,y,z) ;System.out.printf("%.2f\n",T.length());}}elseSystem.out.println("0.00"); }}in.close();}}interface Shape{//public void shape();double length();}class Triangle implements Shape{double x1,y1,z1;Triangle(double x1, double y1 , double z1){this.x1 = x1;this.y1 = y1;this.z1 = z1;}public double length(){return x1 + y1 + z1;}}class Rectangle implements Shape{double x,y; Rectangle(double x, double y){this.x = x;this.y = y;}public double length(){return (x + y) * 2;}}class Circle implements Shape{double z; Circle(double z){this.z = z;}public double length(){return 2 * 3.14 * z;}}
0 0
- 计算各种图形的周长(接口与多态)
- 计算各种图形的周长(接口与多态)
- 计算各种图形的周长(接口与多态)
- 计算各种图形的周长(接口与多态)(Java)acm.sdut
- Java sdut acm 3338 计算各种图形的周长(接口与多态)
- java_sdut_计算各种图形的周长(接口与多态)
- 计算各种图形的周长(接口与多态)java
- 计算各种图形的周长
- 计算各种图形的周长
- 使用接口求图形的周长与面积
- 各种图形面积和周长的公式
- 计算图形的面积和周长
- Java计算图形面积周长(4)
- 图形和事件驱动程序 -------- 可以计算长方形周长和面积的图形化用户界面(GUI)(第三篇)
- 求图形的周长
- 图形类的派生与继承(求面积与求周长)
- 计算圆的周长
- 封闭连续区域的面积和周长计算【2】--面积与周长
- 从思维方式看BF,MP,KMP
- 完全背包
- android面试宝典
- 线性规划中的对偶理论
- JZOJsenior1667.【AHOI2009】中国象棋
- 计算各种图形的周长(接口与多态)
- Java中,&&与&,||与|的区别
- 第三方jar或者aar使用的minsdkversion 小于自己app的version解决办法
- windows引导ubuntu,使用easyBCD
- 4月17日,TestCommunicate,每日20行。
- HDU-5188-zhx and contest【01背包】
- 计算长方体、四棱锥的表面积和体积
- 如何使用sklearn中的SVM(SVC;SVR)
- HDU 1255 覆盖的面积(离散化+线段树)