java源码——计算立体图形的表面积和体积
2024-09-02 19:32:11
计算球,圆柱,圆锥的表面积和体积。
利用接口实现。
上代码。
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");
}
}
附运行截图。
最新文章
- UEditor-从客户端(editorValue=";<;p>;asd<;/p>;";)中检测到有潜在危险的 Request.Form 值。
- Java虚拟机6:内存溢出和内存泄露、并行和并发、Minor GC和Full GC、Client模式和Server模式的区别
- Json常见问题
- Using Post-Form Trigger In Oracle Forms
- Android ContentProvider的实现
- jQuery取值相加
- LintCode-Word Segmentation
- WPF笔记(2.9和2.10)——Layout
- ActionBarSherlock学习笔记 第一篇——部署
- 误mlogc.c:32:23: error: curl/curl.h: No such file or directory
- Chapter 1 First Sight——12
- C++多线程一
- Building Apps for Windows 10 on LattePanda–Jump Start
- Java笔记:字符串详解
- 阿里云下Linux服务器安装Mysql、mongodb
- MonkeyRunner API简介
- window下 多开redis
- Python代码编写规范
- javascript中DOM0,DOM2,DOM3级事件模型解析
- spring mvc请求过程