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");
}
}
附运行截图。
java源码——计算不同图形的周长和面积的更多相关文章
- java源码——计算立体图形的表面积和体积
计算球,圆柱,圆锥的表面积和体积. 利用接口实现. 上代码. Contants.java 常量存储类 package com.fuxuemingzhu.solidgraphics.contants; ...
- Java练习 SDUT-3338_计算各种图形的周长(接口与多态)
计算各种图形的周长(接口与多态) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 定义接口Shape,定义求周长的方法l ...
- java源码——计算大于一个数的最小素数
根据输入数字,计算大于一个数的最小素数. 话不多说,直接贴码. package com.fuxuemingzhu.countprime.main; import java.util.Scanner; ...
- 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的. ...
随机推荐
- NextDenovo 组装基因组
NextDenovo 是有武汉未来组团队开发出来用于组装ONT,Pacbio, HIFI (默认参数可对60-100X数据更有效),可通过correct--assemble对其进行组装.组装后,每个碱 ...
- PHP非对称加密-RSA
对称加密算法是在加密和解密时使用同一个密钥.与对称加密算法不同,非对称加密算法需要两个密钥--公开密钥(public key)和私有密钥(private key)进行加密和解密.公钥和密钥是一对,如果 ...
- CentOS6.9安装python3
安装依赖包: yum install -y openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel w ...
- (转载)Java里新建数组及ArrayList java不允许泛型数组
java中新建数组: String[] s;//定义的时候不需要设置大小 s = new String[5];//为数组分配空间时就要设置大小 对于ArrayList, ArrayList< ...
- (转载)java排序实现
Java实现几种常见排序方法 日常操作中常见的排序方法有:冒泡排序.快速排序.选择排序.插入排序.希尔排序,甚至还有基数排序.鸡尾酒排序.桶排序.鸽巢排序.归并排序等. 冒泡排序是一种简单的排序算法. ...
- ysoserial-CommonsBeanutils1的shiro无依赖链改造
ysoserial-CommonsBeanutils1的shiro无依赖链改造 一.CB1利用链分析 此条利用链需要配合Commons-Beanutils组件来进行利用,在shiro中是自带此组件的. ...
- 巩固java第五天
巩固内容: HTML 实例解析 <p> 元素: <p>这是第一个段落.</p> 这个 <p> 元素定义了 HTML 文档中的一个段落. 这个元素拥有一个 ...
- NSString类里有个hash
实际编程总会涉及到比较两个字符串的内容,一般会用 [string1 isEqualsToString:string2] 来比较两个字符串是否一致.对于字符串的isEqualsToString方法,需要 ...
- oralce 存储过程传入 record 类型的参数?
先定义一个 package , package中含有一个 record 类型的变量 create or replace package pkg_record is type emp_record is ...
- idea如何在git上将分支代码合并到主干
1.首先将idea中的代码分支切换到master分支,可以看到我们在dev上提交的代码 在master上是没有的 2.如图所示,在remote branch 上选择分支,点击后面的三角图标,展开之后选 ...