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的. ...
随机推荐
- jquery操作html中图片宽高自适应
在网站制作中如果后台上传的图片不做宽高限制,在前台显示的时候,经常会出现图片变形,实用下面方法可以让图片根据宽高自适应,不论是长图片或者高图片都可以完美显示. $("#myTab0_Cont ...
- MongoDB的搭建、参数
Mongodb官网:https://www.mongodb.com/ mkdir -r /data/db touch /data/log tar -zxvf mongodb-linux-x86_6 ...
- java类加载、对象创建过程
类加载过程: 1, JVM会先去方法区中找有没有相应类的.class存在.如果有,就直接使用:如果没有,则把相关类的.class加载到方法区 2, 在.class加载到方法区时,会分为两部分加载:先加 ...
- IDEA高颜值之最吸引小姐姐插件集合!让你成为人群中最靓的那个崽!
经常有小伙伴会来找TJ君,可能觉得TJ君比较靠谱,要TJ君帮忙介绍女朋友.TJ君一直觉得程序猿是天底下最可爱的一个群体,只不过有时候不善于表达自己的优秀,所以TJ君今天准备介绍几款酷炫实用的IDEA插 ...
- adverb
An adverb is a word or an expression that modifies a verb, adjective, another adverb, determiner [限定 ...
- accent, accept
accent A colon (:) is used to represent a long vowel, e.g. sheet /ʃiːt/ and shit /ʃit/. The word bed ...
- 【leetcode】1293 .Shortest Path in a Grid with Obstacles
You are given an m x n integer matrix grid where each cell is either 0 (empty) or 1 (obstacle). You ...
- 【STM32】基于正点原子『探索者』开发板的烧录
项目需要一个功能,开发板范例正好有,就买了一块,不过还是有点贵 我手边没有J-Link 用的都是串口烧录 烧录时,先打开右上的开关 如果是仿真器烧录,它无法供电,需要接12V适配器或是杜邦线供电 然后 ...
- Hibernate 总结(转)
JMX:Java Management Extensions.JCA: J2EE Contector ArchitectureJNDI: Java Namind and Directory Inter ...
- spring注解-自动装配
Spring利用依赖注入(DI)完成对IOC容器中中各个组件的依赖关系赋值 一.@Autowired 默认优先按照类型去容器中找对应的组件(applicationContext.getBean(Boo ...