编写一个能求解各种柱体表面积和体积的程序。这个程序由如下几个类和接口构成,他们的UML图如下所示:

//MainClass.java
package 实验2_1;
import java.util.Scanner;public class MainClass {public static Scanner sc=new Scanner(System.in);public static void main(String[] args) {System.out.println("请输入柱体类型");System.out.println("0-圆柱体\n1-三菱柱\n2-长方体");IShape bottom = null;switch (sc.nextInt()) {//请在begin=end之间补充代码,其他地方补充代码或修改其他代码一律判0分。
/***************begin*************************************/case 0: bottom = new Circle(); break;case 1: bottom = new Triangle(); break;case 2: bottom = new Rectangle(); break;/***************end*************************************/default :System.out.println("暂不支持这种柱体!");sc.close();return;}System.out.println("请输入该柱体底面属性值:");//下面加入异常处理,确保输入的属性值都是合法的值(正数,对于三角形来说,还必须能构成三角形),否则,要求重新输入while(true) {try {bottom.input(sc);break;}catch(ShapeException exp) {System.out.println(exp.getMessage());System.out.println("请重新输入属性值:");}}System.out.println("请输入柱体的高度:");double height = sc.nextDouble();//创建柱体,计算体积Cylinder cylinder = new Cylinder(bottom, height);String s = String.format("体积=%.2f,表面积=%.2f", cylinder.getVolume(),cylinder.getSurfaceArea());System.out.printf(s);sc.close();}}
 /*** IShape:所有平面图形所遵循的接口*/
package 实验2_1;import java.util.Scanner;/*** @author imagan**/
public interface IShape {/*** 求平面图形的面积* @return 平面图形的面积*/double getArea();/*** 求平面图形的周长* @return 平面图形的周长*/double getPerimeter();/*** 从控制台输入平面图形的基本属性,在此基础上可以求面积和周长* @param sc  对控制台输入进行扫描的对象* @throws ShapeException 当输入的属性值,例如圆的半径为负数或0,则抛出ShapeException异常,另外当一些属性不合法(如三条边不能构成三角形),也抛出异常*/void input(Scanner sc) throws ShapeException;
}
 /*** Cylinder:柱体* @author guet.imagan*/
package 实验2_1;
/*** 柱体类* @author Administrator**/
public class Cylinder {/*** 柱体底部形状*/private IShape bottom;/*** 柱体的高度*/private double height;/*** 构造方法* @param bottom 柱体底部,必须是一个实现了IShape接口的类的对象* @param height 柱体的高度*/public Cylinder(IShape bottom, double height) {this.bottom=bottom;this.height=height;}/*** 计算并返回柱体的表面积* @return 柱体表面积*/public double getSurfaceArea() {//beginreturn bottom.getArea()* 2 + bottom.getPerimeter()*height;//end}/*** 计算并返回柱体的体积* @return 柱体体积*/public double getVolume() {//beginreturn bottom.getArea() * height;//end}
}
//Circle.java
package 实验2_1;
import java.util.Scanner;
//Circle.java,请在下面完成能满足程序输出要求的圆形Circle的定义。
public class Circle implements IShape { double r;   //半径@Overridepublic double getArea(){return 3.14 * r * r;}@Overridepublic double getPerimeter() {return 2 * 3.14 * r;}@Overridepublic void input(Scanner sc) throws ShapeException {r = sc.nextDouble();if(r <= 0) throw new ShapeException("不能构成圆形");    }
}
package 实验2_1;
import java.util.Scanner;
//Triangle.java ,请在此文件中给出满足程序输出要求的三角形类Triangle的完整定义。
public class Triangle implements IShape{double a,b,c;@Overridepublic double getArea(){double p,s;p = (a+b+c)/2;s = Math.sqrt(p*(p-a)*(p-b)*(p-c)); return s;}@Overridepublic double getPerimeter() {  return a + b + c;}@Overridepublic void input(Scanner sc) throws ShapeException {a = sc.nextDouble();b = sc.nextDouble();c = sc.nextDouble();if(a + b < c || a + c < b || b + c < a) throw new ShapeException("不能构成三角形");            }
}
package 实验2_1;
import java.util.Scanner;
//Rectangle.java,请在下方给出满足程序输出要求的Rectangle类(长方形)的完整定义。
public class Rectangle implements IShape{double a,b;    //长宽public double getArea(){return a * b;}@Overridepublic double getPerimeter() {return (a + b) * 2;}@Overridepublic void input(Scanner sc) throws ShapeException {a = sc.nextDouble();b = sc.nextDouble();if(a <= 0 || b <= 0)throw new ShapeException("不能构成长方形");                  }
}
package 实验2_1;
//ShapeException.java,请在其中完成ShapeException的定义,提示,该异常类可以用Exception作为其父类,从而减少代码。//主要结合参阅MainClass.java中的代码public class ShapeException extends Exception{public ShapeException(String mag) {super(mag);}}

编写一个能求解各种柱体表面积和体积的程序相关推荐

  1. c# 计算圆锥的体积_用c#编写一个程序计算出球、圆柱和圆锥的表面积和体积。...

    2011-04-27 回答 //编写一个程序计算出球,圆柱和圆锥的表面积和体积. //球体表面积a=4π*r^2,体积v=4/3π*r^3 console.writeline("请输入圆的半 ...

  2. c# 计算圆锥的体积_用C#编写一个程序计算出球,圆柱和圆锥的表面积和体积。...

    匿名用户 1级 2014-11-18 回答 //编写一个程序计算出球,圆柱和圆锥的表面积和体积. //球体表面积A=4π*R^2,体积V=4/3π*R^3 Console.WriteLine(&quo ...

  3. 【问题描述】编写一个程序计算出球、圆柱和圆锥的表面积和体积。

    [问题描述] 编写一个程序计算出球.圆柱和圆锥的表面积和体积. 要求: (1)定义一个基类,至少含有一个数据成员半径,并设为保护成员: (2)定义基类的派生类球.圆柱.圆锥,都含有求表面积和体积的成员 ...

  4. 编写计算正方体、圆柱体、球体的表面积和体积的类。要求: (1)这三个类有一个公共的基类; (2)这三个类计算正方体、圆柱体、球体的表面积和体积的成员函数名字相同; (3)按照运行时的多态性方法设计一个

    本文为博主原创文章,未经博主允许不得转载. 版权为陈博超所有,第一次于2020年11月24日发表于BLOG上 本BLOG上原创文章未经本人许可,不得用于商业用途.转载请经允许后注明出处,否则保留追究法 ...

  5. java长方体的父类_编写java程序,输入一个长方体的长、宽、高,求长方体的表面积和体积,并将结果显示...

    展开全部 1.长方体表面积公式 :62616964757a686964616fe78988e69d8331333431366338S = 2(ab + bc + ac); 2.长方体体积公式      ...

  6. 用java做出长方体的表面积_编写java程序,输入一个长方体的长、宽、高,求长方体的表面积和体积,并将结果显示,一个长方体的...

    1.长方体表面积公式 :S = 2(ab + bc + ac); 2.长方体体积公式     :V = abc = Sh:(这里的S表示底面积). 实现如下: public class Cuboid  ...

  7. c# 计算圆锥的体积_用C#如何编写程序计算球,圆柱和圆锥的表面积和体积? 用C#编写方法并通过方法...

    //球体表面积A=4π*R^2,体积V=4/3π*R^3 Console.WriteLine("请输入圆的半径R"); double R=Convert.ToInt32(Conso ...

  8. 【C语言】圆球体计算:已知球的表面积公式为s=4πr2,体积公式为v=4/3πr3,若公式中π取值为3.14159,编写程序,输入半径r,输出球的表面积和体积。 个人题解

    圆球体计算:已知球的表面积公式为s=4πr2,体积公式为v=4/3πr3,若公式中π取值为3.14159,编写程序,输入半径r,输出球的表面积和体积. #include <stdio.h> ...

  9. 计算一个球的体积的程序HTML,【编程1小时】球体表面积和体积计算

    球体是生活中最常见的几何图形,乓乓球.篮球.足球都是球体.球体的表面积和体积计算公式如下: 编写程序,根据输入的球体半径,计算球体的表面积和体积是多少. 图  输出球体的表面积和体积 相关技能学习区 ...

最新文章

  1. Git 最全命令总结都在这里了
  2. 【Android 插件化】Hook 插件化框架总结 ( 插件包管理 | Hook Activity 启动流程 | Hook 插件包资源加载 ) ★★★
  3. 错误日志这样排查,干活更得劲了!!
  4. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法
  5. sql查询结果字段名与字段值倒过来了
  6. python面试自我介绍_如何拿到半数面试公司Offer——我的Python求职之路
  7. 古董笔记本伪装成双核 1G内存 120G硬盘
  8. python学习笔记:第21天 常用内置模块之collections和time
  9. idea中 Application Server not specified
  10. 档案管理软件 php_致PM:除了Excel,你还有这五个项目管理软件可以用
  11. 数据结构——课程设计
  12. 2018 苹果开发者账号注册、付款流程图解
  13. Linux Vim搜索替换命令详解 :%s/foo/bar/g
  14. 斐讯K2刷固件(支持v22.4.2.15以上)
  15. 梆梆加固之防内存dump分析
  16. Smart200控制两台V90伺服,绝对定位和速度控制
  17. vue使用高德地图实现实时天气预报功能
  18. 射频百科 | 限幅器的使用指南
  19. Linux scp远程文件/目录传输 用ps和grep命令寻找僵尸进程
  20. chromedriver 下载与安装方法[转]

热门文章

  1. Java使用Itext5与html模板生成pdf并支持下载
  2. PoE交换机是否是连接NVR和IP摄像机的唯一途径?
  3. 微信小程序控制onenet智能灯
  4. [RK3588-Android12] 双HDMI+喇叭Speak同音问题
  5. 关于PYTHON里SUPER使用时报的typeerror错误 - dongua的日志 - 网易博客
  6. 给大家推荐一个免费好用的ico图标、png、icns下载地址!
  7. 阿里巴巴淘宝全链路性能优化(上)
  8. 含氢氯氟烃行业研究及十四五规划分析报告
  9. Tomcat配置问题(踩坑记录)
  10. PHP导出Excel文件时导出列的数字长度太长时显示不完整或者乱码显示