1. 程式人生 > >java原始碼——計算立體圖形的表面積和體積

java原始碼——計算立體圖形的表面積和體積

計算球,圓柱,圓錐的表面積和體積。

利用介面實現。

上程式碼。

Contants.java

常量儲存類

package com.fuxuemingzhu.solidgraphics.contants;

/**
 * <p>
 * Title: Contants
 * </p>
 * <p>
 * Description:常量類,存放程式裡用到的常量值
 * </p>
 * 
 * @author fuxuemingzhu
 * 
 * @email [email protected]
 * 
 * @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 [email protected]
 * 
 * @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 
[email protected]
* * @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 [email protected]
 * 
 * @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 [email protected]
 * 
 * @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 [email protected]
 * 
 * @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原始碼——計算立體圖形表面積體積

計算球,圓柱,圓錐的表面積和體積。 利用介面實現。 上程式碼。 Contants.java 常量儲存類 package com.fuxuemingzhu.solidgraphics.contants; /** * <p> * Title: Cont

我的第四個C語言:計算圓柱體的表面積體積

問題及程式碼: 問題:計算圓柱體的表面積和體積。 程式碼:#include <stdio.h> #include <stdlib.h> int main() { float r,h,S,V; printf("請輸入圓柱體的半徑\n"

Python計算圓的周長面積球的表面積體積

Python計算圓的周長面積和球的表面積和體積 import math r=float(input("請輸入半徑:")) circumference=2*math.pi*r area=math.pi*r*r sarea=4*math.pi*r*r volume=4/3*math.pi*r

zzuli OJ 1017: 表面積體積

Description     讀入5個整數a, b, c, d 和 e,計算物體的表面積和體積。你可以想像該物體是一個長寬高為a, b, c 的長方體,每一面中央都是凹進去的,而凹進去的深度為

《第五週任務三》求五個長方體的表面積體積

 實驗報告模板1. 本學期的報告均發到csdn部落格。週一上機,週四前要完成本週上機任務併發布博文。 2. 本學期起程式頭部的註釋請自行加入,從本學期起不再統一給出。這是一個程式設計師良好習慣中的一部分,養成這個習慣。這也是展示個人專業品質的一個重要途徑。另外,在程式中需要

Sphere,java,mvc 計算球的體積表面積

mvc模式介紹 •模型-檢視-控制器(Model-View-Controller,MVC)模式將一個互動式應用程式分成3個元件. –模型:包含核心功能和資料。 –檢視:向用戶顯示資訊。 –控制器:處理使用者輸入。 •檢視和控制器組成了使用者介面。 •變更-傳播機制保證了模型

利用類的繼承計算並輸出圓柱體的體積表面積

import java.util.*; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); double x,y,r

java程式】圖形面積周長計算

package test1; import java.util.Scanner; class circle{ double r,a,b,h; public double zfx(double a) {

Java學習之路---計算圓形的面積周長

java;scanner;基礎語法題目:計算圓形的面積,其中圓形的半徑是隨意指定。源代碼以及所有的分析思路都如下:import java.util.Scanner; //引入Scanner類 public class TestArea { /** * @param args */ publi

計算各種圖形的周長(介面與多型)---Java

Problem Description 定義介面Shape,定義求周長的方法length()。 定義如下類實現介面Shape的抽象方法: (1)三角形類Triangle (2)長方形類Rectangle (3)圓形類Circle等。 定義測試類ShapeTest,用Shape介面定義

Java虛擬機器(Jvm原始碼):Mac安裝JProfilerIDE整合

首先介紹一下JProfiler JProfiler是一個專業工具,用於分析正在執行的JVM中發生的事情。當您的生產系統遇到問題時,您可以將其用於開發,質量保證和消防任務。 當然這個軟體是需要收費的,這個需要你自行衡量下。 我的建議是有能力,財力雄厚就買正版,或者使用其他免費的Ja

Apk反編譯工具檢視layout java原始碼的工具

首先要準備反編譯三件套,這個在網上應該會有很多 一: 檢視layout        解壓得到apktol.jar 和 apktool.bat 同時把要反編譯的apk也一起存放在當前目錄下 然後開啟控制檯  cmd 定位到當前目錄下

Java原始碼系列(1):ComparableComparator的區別

在將Comparable和Comparator區別之前,先補充一個知識點。 先看程式碼: public class Person<T> {   private T id;   public T getId() {     retur

5.Java集合框架剖析 之 HashsetLinkedHashSet原始碼剖析

1 package java.util; 2 3 import java.io.InvalidObjectException; 4 import sun.misc.SharedSecrets; 5 6 public class HashSet<E> extends

Java計算長方形的周長和麵積(類物件)

Problem Description 設計一個長方形類Rect,計算長方形的周長與面積。 成員變數:整型、私有的資料成員length(長)、width(寬); 構造方法如下: (1)Rect(int length) —— 1個整數表示正方形的邊長 (2)Rect(

Java-分別計算兩日期之間的相差的年份天數

最近實習做CRUD操作時需要分別計算兩日期之間的相差的年份和天數,尤其是計算天數時不需要自己編寫方法來判斷平年、閏年、大小月份的,只需要用到Java API的Date類的方法就行了,真的很方便,省了很多事情。 1.先兩日期之間的相差的年份(學業期限 = 畢業時間

終於有人把雲端計算極速賽車原始碼出售、大資料人工智慧講明白了!

今天跟大家講講極速賽車原始碼出售QQ2952777280【話仙原始碼論壇】hxforum.com雲端計算、大資料和人工智慧。這三個詞現在非常火,並且它們之間好像互相有關係。 一般談雲端計算的時候會提到大資料、談人工智慧的時候會提大資料、談人工智慧的時候會提雲端計算……感覺三者之間相輔相成又不可分割。 但如

3338-計算各種圖形的周長(介面與多型)-JAVA

計算各種圖形的周長(介面與多型) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 定義介面Shape,定義求周長的方法length()。 定義如下類實現介面Shape的抽象方法: (1)

《趣學演算法》C++原始碼/java原始碼下載QQ交流群

《趣學演算法》書中為C++語言實現,圖解多,通俗易懂,小學生,中學生,大學生,已參加工作人員均可輕鬆閱讀。 《趣學演算法》內容摘要及特色:點選開啟連結 《趣學演算法》目錄:點選開啟連結 《趣學演算法》前言:點選開啟連結 《趣學演算法》京東app試讀:點選開啟連結 《趣學演算法》非同步社

java計算圖形的周長與面積

package test1; import java.util.Scanner; class circle{ double r,a,b,h; public double zfx(double a) {