java源码——计算立体图形的表面积和体积
计算球,圆柱,圆锥的表面积和体积。
利用接口实现。
上代码。
Contants.java
常量存储类
package com.fuxuemingzhu.solidgraphics.contants; /**
* <p>
* Title: Contants
* </p>
* <p>
* Description:常量类,存放程序里用到的常量值
* </p>
*
* @author fuxuemingzhu
*
* @email fuxuemingzhu@163.com
*
* @date 2014年10月28日 下午2:18:43
*/
public class Contants { /**
* PI 圆周率
*/
public static float PI = (float) Math.PI; }
SolidGraphics.java
立体图形接口,所有立体图形都要实现这个接口
package com.fuxuemingzhu.solidgraphics.base; /**
* <p>
* Title: SolidGraphics
* </p>
* <p>
* Description:立体图形接口,所有立体图形都要实现这个接口
* </p>
*
* @author fuxuemingzhu
*
* @email fuxuemingzhu@163.com
*
* @date 2014年10月28日 下午1:52:22
*/
public interface SolidGraphics { /**
* <p>
* Title: caculateArea
* </p>
* <p>
* Description:计算立体图形的表面积
* </p>
*
* @return 立体的表面积
*
*/
public float caculateArea(); /**
* <p>
* Title: caculateVolume
* </p>
* <p>
* Description:计算立体图形的体积
* </p>
*
* @return 立体的体积
*
*/
public float caculateVolume(); }
Ball.java
球类
package com.fuxuemingzhu.solidgraphics.entity; import com.fuxuemingzhu.solidgraphics.base.SolidGraphics;
import com.fuxuemingzhu.solidgraphics.contants.Contants; /**
* <p>
* Title: Ball
* </p>
* <p>
* Description:球类
* </p>
*
* @author fuxuemingzhu
*
* @email fuxuemingzhu@163.com
*
* @date 2014年10月28日 下午1:54:53
*/
public class Ball implements SolidGraphics { /**
* r 球的半径
*/
private float r; /**
* <p>
* Title: Ball
* </p>
* <p>
* Description: 构造方法,根据球的半径构造球
* </p>
*
* @param r
*/
public Ball(float r) {
super();
this.r = r;
} /**
* (非 Javadoc)
* <p>
* Title: caculateArea
* </p>
* <p>
* Description:计算球的表面积
* </p>
*
* @return 立体的表面积
* @see com.<span style="font-family: Arial, Helvetica, sans-serif;">fuxuemingzhu</span><span style="font-family: Arial, Helvetica, sans-serif;">.solidgraphics.base.SolidGraphics#caculateArea()</span>
*/
public float caculateArea() {
float area = (float) (4 * Contants.PI * Math.pow(r, 2));
return area;
} /**
* (非 Javadoc)
* <p>
* Title: caculateVolume
* </p>
* <p>
* Description:计算球的体积
* </p>
*
* @return 立体的体积
* @see com.caifugui.solidgraphics.base.SolidGraphics#caculateVolume()
*/
public float caculateVolume() { float volume = (float) ((4f / 3f) * Contants.PI * Math.pow(r, 3)); return volume;
} /**
* @return the r
*/
public float getR() {
return r;
} /**
* @param r
* the r to set
*/
public void setR(float r) {
this.r = r;
} }
Cylinder.java
圆柱类
package com.fuxuemingzhu.solidgraphics.entity; import com.fuxuemingzhu.solidgraphics.base.SolidGraphics;
import com.fuxuemingzhu.solidgraphics.contants.Contants; /**
* <p>
* Title: Cylinder
* </p>
* <p>
* Description:圆柱类
* </p>
*
* @author fuxuemingzhu
*
* @email fuxuemingzhu@163.com
*
* @date 2014年10月28日 下午1:55:07
*/
public class Cylinder implements SolidGraphics { /**
* r 圆柱的半径
*/
private float r; /**
* h 圆柱的高
*/
private float h; /**
* <p>
* Title: Cylinder
* </p>
* <p>
* Description:构造方法,根据圆柱的半径和高构造圆柱
* </p>
*
* @param r
* @param h
*/
public Cylinder(float r, float h) {
super();
this.r = r;
this.h = h;
} /**
* (非 Javadoc)
* <p>
* Title: caculateArea
* </p>
* <p>
* Description:计算圆柱的表面积
* </p>
*
* @return 立体的表面积
* @see com.fuxuemingzhu.solidgraphics.base.SolidGraphics#caculateArea()
*/
public float caculateArea() { float area = (float) (Contants.PI * Math.pow(r, 2) * 2 + 2
* Contants.PI * r * h); return area;
} /**
* (非 Javadoc)
* <p>
* Title: caculateVolume
* </p>
* <p>
* Description:计算圆柱的体积
* </p>
*
* @return 立体的体积
* @see com.fuxuemingzhu.solidgraphics.base.SolidGraphics#caculateVolume()
*/
public float caculateVolume() { float volume = (float) (Contants.PI * Math.pow(r, 2) * h); return volume;
} /**
* @return the r
*/
public float getR() {
return r;
} /**
* @param r
* the r to set
*/
public void setR(float r) {
this.r = r;
} /**
* @return the h
*/
public float getH() {
return h;
} /**
* @param h
* the h to set
*/
public void setH(float h) {
this.h = h;
} }
Tapered.java
圆锥类
package com.fuxuemingzhu.solidgraphics.entity; import com.fuxuemingzhu.solidgraphics.base.SolidGraphics;
import com.fuxuemingzhu.solidgraphics.contants.Contants; /**
* <p>
* Title: Tapered
* </p>
* <p>
* Description:圆锥类
* </p>
*
* @author fuxuemingzhu
*
* @email fuxuemingzhu@163.com
*
* @date 2014年10月28日 下午1:55:18
*/
public class Tapered implements SolidGraphics { /**
* r 圆锥的半径
*/
private float r; /**
* h 圆锥的高
*/
private float h; /**
* <p>
* Title: Tapered
* </p>
* <p>
* Description:构造方法,根据圆锥的半径和高构造圆锥
* </p>
*
* @param r
* @param h
*/
public Tapered(float r, float h) {
super();
this.r = r;
this.h = h;
} /**
* (非 Javadoc)
* <p>
* Title: caculateArea
* </p>
* <p>
* Description: 计算圆锥的表面积
* </p>
*
* @return 立体的表面积
* @see com.fuxuemingzhu.solidgraphics.base.SolidGraphics#caculateArea()
*/
public float caculateArea() {
float area = (float) (0.5f * Math.sqrt(Math.pow(r, 2) + Math.pow(h, 2))
* 2 * Contants.PI * r + Contants.PI * Math.pow(r, 2));
return area;
} /**
* (非 Javadoc)
* <p>
* Title: caculateVolume
* </p>
* <p>
* Description: 计算圆锥的体积
* </p>
*
* @return 立体的体积
* @see com.fuxuemingzhu.solidgraphics.base.SolidGraphics#caculateVolume()
*/
public float caculateVolume() {
float volume = (float) ((1f / 3f) * Contants.PI * Math.pow(r, 2) * h);
return volume;
} /**
* @return the r
*/
public float getR() {
return r;
} /**
* @param r
* the r to set
*/
public void setR(float r) {
this.r = r;
} /**
* @return the h
*/
public float getH() {
return h;
} /**
* @param h
* the h to set
*/
public void setH(float h) {
this.h = h;
} }
Main.java
主类,展示各立体的表面积,体积等信息
package com.fuxuemingzhu.solidgraphics.main; import com.fuxuemingzhu.solidgraphics.entity.Ball;
import com.fuxuemingzhu.solidgraphics.entity.Cylinder;
import com.fuxuemingzhu.solidgraphics.entity.Tapered; /**
* <p>
* Title: Main
* </p>
* <p>
* Description:主类,展示各立体的表面积,体积等信息
* </p>
*
* @author fuxuemingzhu
*
* @email fuxuemingzhu@163.com
*
* @date 2014年10月28日 下午3:46:57
*/
public class Main { /**
* ball 声明一个球体
*/
private static Ball ball; /**
* cylinder 声明一个圆柱体
*/
private static Cylinder cylinder; /**
* tapered 声明一个圆锥体
*/
private static Tapered tapered; /**
* <p>
* Title: main
* </p>
* <p>
* Description:main()方法,程序的入口
* </p>
*
* @param args
*
*/
public static void main(String[] args) { // ///构造并展示球体
showBall(8f); // //构造并展示圆柱体
showCylinder(4f, 10f); // //构造并展示圆锥体
showTapered(4f, 10f); } /**
* <p>
* Title: showBall
* </p>
* <p>
* Description:构造并展示一个球体
* </p>
*
* @param r
*
*/
private static void showBall(float r) {
// //构造一个球体
ball = new Ball(r); // //展示球体
System.out.println("输入的球的半径是:" + ball.getR());
System.out.println("此球的表面积是:" + ball.caculateArea());
System.out.println("此球的体积是:" + ball.caculateVolume() + "\n"); } /**
* <p>
* Title: showCylinder
* </p>
* <p>
* Description:构造并展示一个圆柱体
* </p>
*
* @param r
* @param h
*
*/
private static void showCylinder(float r, float h) {
// /构造一个圆柱体
cylinder = new Cylinder(r, h); // /展示圆柱体
System.out.println("输入的圆柱的底面圆半径是:" + cylinder.getR() + ",高为:"
+ cylinder.getH());
System.out.println("此圆柱的表面积是:" + cylinder.caculateArea());
System.out.println("此圆柱的体积是:" + cylinder.caculateVolume() + "\n"); } /**
* <p>
* Title: showTapered
* </p>
* <p>
* Description:构造并展示一个圆锥体
* </p>
*
* @param r
* @param h
*
*/
private static void showTapered(float r, float h) {
// ///构造一个圆锥体
tapered = new Tapered(r, h); // /展示圆锥体
System.out.println("输入的圆锥的底面圆半径是:" + tapered.getR() + ",高为:"
+ tapered.getH());
System.out.println("此圆锥的表面积是:" + tapered.caculateArea());
System.out.println("此圆锥的体积是:" + tapered.caculateVolume() + "\n");
}
}
附运行截图。
java源码——计算立体图形的表面积和体积的更多相关文章
- java源码——计算不同图形的周长和面积
计算任意三角形,正方形,正五边形,圆形的周长和面积. 利用类的继承实现. 将计算结果进行输出. 不多说,贴码. Contants.java 常量存储类 <pre name="code& ...
- java源码——计算大于一个数的最小素数
根据输入数字,计算大于一个数的最小素数. 话不多说,直接贴码. package com.fuxuemingzhu.countprime.main; import java.util.Scanner; ...
- Java练习 SDUT-3337_计算长方体、四棱锥的表面积和体积
计算长方体.四棱锥的表面积和体积 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 计算如下立体图形的表面积和体积. 从图 ...
- Tika结合Tesseract-OCR 实现光学汉字识别(简体、宋体的识别率百分之百)—附Java源码、测试数据和训练集下载地址
OCR(Optical character recognition) —— 光学字符识别,是图像处理的一个重要分支,中文的识别具有一定挑战性,特别是手写体和草书的识别,是重要和热门的科学研究方向.可 ...
- 解密随机数生成器(二)——从java源码看线性同余算法
Random Java中的Random类生成的是伪随机数,使用的是48-bit的种子,然后调用一个linear congruential formula线性同余方程(Donald Knuth的编程艺术 ...
- Java源码解读(一)——HashMap
HashMap作为常用的一种数据结构,阅读源码去了解其底层的实现是十分有必要的.在这里也分享自己阅读源码遇到的困难以及自己的思考. HashMap的源码介绍已经有许许多多的博客,这里只记录了一些我看源 ...
- 24点扑克牌游戏——(含java源码)(GUI实现)
给出四个数字,要求,在其间添加运算符和括号,使得计算结果等于24. 括号的放置即为决定哪几个数先进行计算.所以,我们先确定首先进行计算的两个相邻的数,计算完成后,就相当于剩下三个数字,仍需要在它们之间 ...
- 从Java源码到Java字节码
Java最主流的源码编译器,javac,基本上不对代码做优化,只会做少量由Java语言规范要求或推荐的优化:也不做任何混淆,包括名字混淆或控制流混淆这些都不做.这使得javac生成的代码能很好的维持与 ...
- kafka对消费者分配分区规则(Java源码)
在上一篇 kafka topic消息分配partition规则(Java源码) 我们对生产者产生的消息分配partition规则进行了分析,那么本章我们来看看消费者是怎么样分配partition的. ...
随机推荐
- 毕业设计之dns搭建:
[apps@dns_sever ~]$ sudo yum install -y bind [apps@dns_sever ~]$ sudo vim /etc/named.conf // // name ...
- eclipse 配置黑色主题(转载)
转载:http://www.cnblogs.com/csulennon/p/4231405.html 虽然以前也使用eclipse的黑色主题,但是配置起来稍微麻烦一点. 这里先声明,下面的方式适合最新 ...
- Linux-各种姿势(less\vi等)打开各种类型的文件(txt/csv/xlsx等)出现不能打开(全乱码、部分乱码、二进制文件等)的问题
(一)linux各种中文乱码解决办法整理 远程登录服务器用vim在终端下编辑查看文件经常会遇见各种中文乱码问题. 做如下设置可基本解决vim中文乱码问题,首先查看系统对中文的支持locale -a | ...
- Deep Learning(深度学习)整理,RNN,CNN,BP
申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2.初级(浅层)特征表示 既然像素级的特征表示方法没有作用,那怎 ...
- JavaScript获取html表单值验证后跳转网页中的关键点
关键代码: 1.表单部分 <form action="Depart.jsp" name="myform" method="post" ...
- 论 Erda 的安全之道
作者|陈建锋 来源|尔达 Erda 公众号 软件研发是一个复杂的工程,不仅需要进行软件的设计.开发.测试.运维,还涉及到大量的人力.物力管理.今天讨论的主角 - "安全",在软 ...
- A Child's History of England.25
It was a September morning, and the sun was rising, when the King was awakened from slumber by the s ...
- 转Android service 启动篇之 startForegroundService
本文转自:https://blog.csdn.net/shift_wwx/article/details/82496447 前言: 在官方文档 Android 8.0 行为变更 中有这样一段话: An ...
- android studio 生成aar和引用aar
以android studio 2.0正式版为例 1.aar包是Android studio下打包android工程中src.res.lib后生成的aar文件,aar包导入其他android stud ...
- 03-Collection用例管理及批量执行
当我们对一个或多个系统中的很多用例进行维护时,首先想到的就是对用例进行分类管理,同时还希望对这批用例做回归测试 .在postman也提供了这样一个功能,就是Collection .通过这个Collec ...