java源码——计算不同图形的周长和面积

计算任意三角形,正方形,正五边形,圆形的周长和面积。

利用类的继承实现。

将计算结果进行输出。

不多说,贴码。


Contants.java  

常量存储类

<pre name="code" class="java">package com.fuxuemingzhu.graphs.contants;

/**
 * <p>
 * Title: Contants
 * </p>
 * <p>
 * Description:常量类,存放程序里用到的常量值
 * </p>
 * 
 * @author fuxuemingzhu
 * 
 * @email fuxuemingzhu@163.com
 * 
 * @date 2014年10月28日 下午2:20:15
 */
public class Contants {
	/**
	 * PI 圆周率
	 */
	public static float PI = (float) Math.PI;

	/**
	 * MULTIPLES 正五边形求面积时,边长平方的比值
	 */
	public static float MULTIPLES = 1.72f;

}

 
 

Circle.java

圆类

package com.fuxuemingzhu.graphs.entity;

import com.fuxuemingzhu.graphs.contants.Contants;
import com.fuxuemingzhu.graphs.graphs.Graphs;

/**
 * <p>
 * Title: Circle
 * </p>
 * <p>
 * Description:圆形类
 * </p>
 * 
 * @author fuxuemingzhu
 * 
 * @email fuxuemingzhu@163.com
 * 
 * @date 2014年10月27日 下午11:49:53
 */
public class Circle extends Graphs {

	/**
	 * 圆的半径
	 */
	private float r;

	/**
	 * <p>
	 * Title: Circle
	 * </p>
	 * <p>
	 * Description:构造方法,根据圆的半径构造圆
	 * </p>
	 * 
	 * @param r
	 */
	public Circle(float r) {
		super();
		this.r = r;
	}

	/**
	 * (非 Javadoc)
	 * <p>
	 * Title: calculateLenth
	 * </p>
	 * <p>
	 * Description:计算圆的周长
	 * </p>
	 * 
	 * @return 图形周长
	 * @see com.fuxuemingzhu.graphs.graphs.Graphs#calculateLenth()
	 */
	public float calculateLenth() {
		// 圆的周长公式
		float lenth = (float) (2 * Contants.PI * r);
		return lenth;
	}

	/**
	 * (非 Javadoc)
	 * <p>
	 * Title: calculateSize
	 * </p>
	 * <p>
	 * Description:计算圆的面积
	 * </p>
	 * 
	 * @return 图形面积
	 * @see com.fuxuemingzhu.graphs.graphs.Graphs#calculateSize()
	 */
	public float calculateSize() {
		// 圆的面积公式
		float size = (float) (Contants.PI * Math.pow(r, 2));
		return size;
	}

	/**
	 * @return the r
	 */
	public float getR() {
		return r;
	}

	/**
	 * @param r
	 *            the r to set
	 */
	public void setR(float r) {
		this.r = r;
	}

}



Pentagon.java  

正五边形


package com.fuxuemingzhu.graphs.entity;

import com.fuxuemingzhu.graphs.contants.Contants;
import com.fuxuemingzhu.graphs.graphs.Graphs;

/**
 * <p>
 * Title: Pentagon
 * </p>
 * <p>
 * Description:正五边形类
 * </p>
 * 
 * @author fuxuemingzhu
 * 
 * @email fuxuemingzhu@163.com
 * 
 * @date 2014年10月27日 下午11:51:00
 */
public class Pentagon extends Graphs {

	/**
	 * 正五边形边长
	 */
	private float a;

	/**
	 * <p>
	 * Title: Pentagon
	 * </p>
	 * <p>
	 * Description:构造方法,根据正五边形的边长构造五边形
	 * </p>
	 * 
	 * @param a
	 */
	public Pentagon(float a) {
		super();
		this.a = a;
	}

	/**
	 * (非 Javadoc)
	 * <p>
	 * Title: calculateLenth
	 * </p>
	 * <p>
	 * Description:计算正五边形的周长
	 * </p>
	 * 
	 * @return 图形周长
	 * @see com.fuxuemingzhu.graphs.graphs.Graphs#calculateLenth()
	 */
	public float calculateLenth() {
		/* 正五边形的周长公式 */
		float lenth = 5 * a;
		return lenth;
	}

	/**
	 * (非 Javadoc)
	 * <p>
	 * Title: calculateSize
	 * </p>
	 * <p>
	 * Description:计算正五边形的面积
	 * </p>
	 * 
	 * @return 图形面积
	 * @see com.fuxuemingzhu.graphs.graphs.Graphs#calculateSize()
	 */
	public float calculateSize() {
		// 正五边形的面积公式
		float size = (float) (Contants.MULTIPLES * Math.pow(a, 2));
		return size;
	}

	/**
	 * @return the a
	 */
	public float getA() {
		return a;
	}

	/**
	 * @param a
	 *            the a to set
	 */
	public void setA(float a) {
		this.a = a;
	}

}


Square.java 

正方形类

package com.fuxuemingzhu.graphs.entity;

import com.fuxuemingzhu.graphs.graphs.Graphs;

/**
 * <p>
 * Title: Square
 * </p>
 * <p>
 * Description:正方形类
 * </p>
 * 
 * @author fuxuemingzhu
 * 
 * @email fuxuemingzhu@163.com
 * 
 * @date 2014年10月27日 下午11:48:49
 */
public class Square extends Graphs {

	/**
	 * a 正方形的边长
	 */
	private float a;

	/**
	 * <p>
	 * Title: Square
	 * </p>
	 * <p>
	 * Description:构造方法,根据正方形的边长构造正方形
	 * </p>
	 * 
	 * @param a
	 */
	public Square(float a) {
		super();
		this.a = a;
	}

	/**
	 * (非 Javadoc)
	 * <p>
	 * Title: calculateLenth
	 * </p>
	 * <p>
	 * Description:计算正方形的周长
	 * </p>
	 * 
	 * @return 图形周长
	 * @see com.fuxuemingzhu.graphs.graphs.Graphs#calculateLenth()
	 */
	public float calculateLenth() {
		// 正方形的周长公式
		float lenth = 4 * a;
		return lenth;
	}

	/**
	 * (非 Javadoc)
	 * <p>
	 * Title: calculateSize
	 * </p>
	 * <p>
	 * Description:计算正方形的面积
	 * </p>
	 * 
	 * @return 图形面积
	 * @see com.fuxuemingzhu.graphs.graphs.Graphs#calculateSize()
	 */
	public float calculateSize() {
		// 正方形的面积公式
		float size = (float) Math.pow(a, 2);
		return size;
	}

	/**
	 * @return the a
	 */
	public float getA() {
		return a;
	}

	/**
	 * @param a
	 *            the a to set
	 */
	public void setA(float a) {
		this.a = a;
	}

}





Triangle.java 

三角形类


package com.fuxuemingzhu.graphs.entity;

import com.fuxuemingzhu.graphs.graphs.Graphs;

/**
 * <p>
 * Title: Triangle
 * </p>
 * <p>
 * Description: 三角形类
 * </p>
 * 
 * @author fuxuemingzhu
 * 
 * @email fuxuemingzhu@163.com
 * 
 * @date 2014年10月27日 下午11:47:38
 */
public class Triangle extends Graphs {

	/**
	 * a 三角形的第一条边
	 */
	private float a;
	/**
	 * b 三角形的第二条边
	 */
	private float b;
	/**
	 * c 三角形的第三条边
	 */
	private float c;

	/**
	 * <p>
	 * Title: Triangle
	 * </p>
	 * <p>
	 * Description:正三角形的的构造器
	 * </p>
	 * 
	 * @param a
	 */
	public Triangle(float a) {
		super();
		this.a = a;
		this.b = a;
		this.c = a;
	}

	/**
	 * <p>
	 * Title:
	 * </p>
	 * <p>
	 * Description:一般三角形的构造方法,传入三边的边长
	 * </p>
	 * 
	 * @param a
	 * @param b
	 * @param c
	 */
	public Triangle(float a, float b, float c) {
		super();
		this.a = a;
		this.b = b;
		this.c = c;
	}

	/**
	 * (非 Javadoc)
	 * <p>
	 * Title: calculateLenth
	 * </p>
	 * <p>
	 * Description:计算三角形的周长
	 * </p>
	 * 
	 * @return 图形周长
	 * @see com.fuxuemingzhu.graphs.graphs.Graphs#calculateLenth()
	 */
	public float calculateLenth() {
		// 三角形的周长公式
		float lenth = a + b + c;
		return lenth;
	}

	/**
	 * (非 Javadoc)
	 * <p>
	 * Title: calculateSize
	 * </p>
	 * <p>
	 * Description:计算三角形的面积
	 * </p>
	 * 
	 * @return 图形面积
	 * @see com.<span style="font-family: Arial, Helvetica, sans-serif;">fuxuemingzhu</span>.graphs.graphs.Graphs#calculateSize()
	 */
	public float calculateSize() {
		// 三角形的面积公式(海伦公式)
		float p = (a + b + c) / 2;

		float size = (float) Math.sqrt(p * (p - a) * (p - b) * (p - c));
		return size;
	}

	/**
	 * @return the a
	 */
	public float getA() {
		return a;
	}

	/**
	 * @param a
	 *            the a to set
	 */
	public void setA(float a) {
		this.a = a;
	}

	/**
	 * @return the b
	 */
	public float getB() {
		return b;
	}

	/**
	 * @param b
	 *            the b to set
	 */
	public void setB(float b) {
		this.b = b;
	}

	/**
	 * @return the c
	 */
	public float getC() {
		return c;
	}

	/**
	 * @param c
	 *            the c to set
	 */
	public void setC(float c) {
		this.c = c;
	}

}



Graphs.java

抽象类,是所有图形类的基类

package com.fuxuemingzhu.graphs.graphs;

/**
 * <p>
 * Title: Graphs
 * </p>
 * <p>
 * Description:抽象类,是所有图形类的基类
 * </p>
 * 
 * @author fuxuemingzhu
 * 
 * @email fuxuemingzhu@163.com
 * 
 * @date 2014年10月28日 上午12:04:28
 */
public abstract class Graphs {

	/**
	 * <p>
	 * Title: calculateLenth
	 * </p>
	 * <p>
	 * Description:抽象方法,计算图形的周长
	 * </p>
	 * 
	 * @return 图形周长
	 * 
	 */
	public abstract float calculateLenth();

	/**
	 * <p>
	 * Title: calculateSize
	 * </p>
	 * <p>
	 * Description:抽象方法,计算图形的面积
	 * </p>
	 * 
	 * @return 图形面积
	 * 
	 */
	public abstract float calculateSize();

}



Main.java

主类,展示各图形的周长,面积等信息

package com.fuxuemingzhu.graphs.main;

import com.fuxuemingzhu.graphs.entity.Circle;
import com.fuxuemingzhu.graphs.entity.Pentagon;
import com.fuxuemingzhu.graphs.entity.Square;
import com.fuxuemingzhu.graphs.entity.Triangle;

/**
 * <p>
 * Title: Main
 * </p>
 * <p>
 * Description:主类,展示各图形的周长,面积等信息
 * </p>
 * 
 * @author fuxuemingzhu
 * 
 * @email fuxuemingzhu@163.com
 * 
 * @date 2014年10月27日 下午11:51:51
 */
public class Main {

	/**
	 * triangle 声明一个三角形
	 */
	private static Triangle triangle;

	/**
	 * square 声明一个正方形
	 */
	private static Square square;

	/**
	 * circle 声明一个圆
	 */
	private static Circle circle;

	/**
	 * pentagon 声明一个正五边形
	 */
	private static Pentagon pentagon;

	/**
	 * <p>
	 * Title: main
	 * </p>
	 * <p>
	 * Description:main()方法,程序的入口
	 * </p>
	 * 
	 * @param args
	 * 
	 */
	public static void main(String[] args) {

		// ///构造错误的三角形
		showTriangle(4f, 5f, 10f);

		// //构造正确的三角形
		showTriangle(6f, 8f, 9f);

		// ///构造正方形
		showSquare(8f);

		// //构造圆
		showCircle(8f);

		// //构造正五边形
		showPentagon(8f);

	}

	/**
	 * <p>
	 * Title: showTriangle
	 * </p>
	 * <p>
	 * Description:判断输入的数据能否构成三角形,如果可以则构造出三角形,并且展示;否则,系统返回错误。
	 * </p>
	 * 
	 * @param a
	 * @param b
	 * @param c
	 * 
	 */
	private static void showTriangle(float a, float b, float c) {
		float p = (a + b + c) / 2;
		// //判断能否构造成三角形
		if ((p - a) <= 0 || (p - b) <= 0 || (p - c) <= 0) {
			System.out.println("输入的三角形的三边长为:" + a + "," + b + "," + c);
			System.err.println("错误!输入的三边无法构成三角形!\n");
			return;
		}
		// ///构造三角形
		triangle = new Triangle(a, b, c);
		System.out.println("输入的三角形的三边长分别是:" + triangle.getA() + ","
				+ triangle.getB() + "," + triangle.getC());
		System.out.println("此三角形的周长是:" + triangle.calculateLenth());
		System.out.println("此三角形的面积是:" + triangle.calculateSize() + "\n");
	}

	/**
	 * <p>
	 * Title: showSquare
	 * </p>
	 * <p>
	 * Description:根据输入的边长构造出正方形,并且展示正方形的周长和面积
	 * </p>
	 * 
	 * @param a
	 * 
	 */
	private static void showSquare(float a) {
		// /构造正方形
		square = new Square(a);
		// //展示
		System.out.println("输入的正方形的边长是:" + square.getA());
		System.out.println("此正方形的周长是:" + square.calculateLenth());
		System.out.println("此正方形的面积是:" + square.calculateSize() + "\n");
	}

	/**
	 * <p>
	 * Title: showCircle
	 * </p>
	 * <p>
	 * Description:根据输入的半径构造出圆,并且展示圆的周长和面积
	 * </p>
	 * 
	 * @param r
	 * 
	 */
	private static void showCircle(float r) {
		// //构造圆
		circle = new Circle(r);
		// //展示
		System.out.println("输入的圆的半径是:" + circle.getR());
		System.out.println("此圆的周长是:" + circle.calculateLenth());
		System.out.println("圆的面积是:" + circle.calculateSize() + "\n");
	}

	/**
	 * <p>
	 * Title: showPentagon
	 * </p>
	 * <p>
	 * Description:根据输入的边长构造出正五边形,并且展示正五边形的周长和面积
	 * </p>
	 * 
	 * @param a
	 * 
	 */
	private static void showPentagon(float a) {
		// /构造正五边形
		pentagon = new Pentagon(a);
		// //展示
		System.out.println("输入的正五边形的边长是:" + pentagon.getA());
		System.out.println("此正五边形的周长是:" + pentagon.calculateLenth());
		System.out.println("此正五边形的面积是:" + pentagon.calculateSize() + "\n");
	}
}

附运行截图。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值