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的. ...
随机推荐
- mVISTA 多序列比对叶绿体基因组
mVISTA可对2个或者多个DNA序列进行比较,可以对比对结果进行可视化. 详情请大力戳这里 0 输入文件说明 mVISTA 需要输入的文件有如下几类 必须文件 邮箱 fasta格式序列文件(或者GE ...
- Python中pymysql基本使用
Python中pymysql模块通过获取mysql数据库命令行游标执行数据库命令来进行数据库操作 优点:操作数据库语句所见即所得,执行了什么数据库语句都很清楚 缺点:操作繁琐,代码量多 1. pymy ...
- 16-4SUM
4.30更新,已经AC 18. 4Sum My Submissions QuestionEditorial Solution Total Accepted: 71102 Total Submissio ...
- 5.Maximum Product Subarray-Leetcode
f(j+1)为以下标j结尾的连续子序列最大乘积值(1) 状态转移方程如何表示呢: 这里我们知道A[j]可能为正数(或0)或负数,那么当A[j]为正数,期望前j个乘积为正数,若为负数,则期望前面的为负数 ...
- 设置administrator账号密码
设置administrator账号密码: 打开:附件->运行 输入:lusrmgr.msc 在里面的用户里修改administrator密码
- 巩固java第五天
巩固内容: HTML 实例解析 <p> 元素: <p>这是第一个段落.</p> 这个 <p> 元素定义了 HTML 文档中的一个段落. 这个元素拥有一个 ...
- Spark集群环境搭建——服务器环境初始化
Spark也是属于Hadoop生态圈的一部分,需要用到Hadoop框架里的HDFS存储和YARN调度,可以用Spark来替换MR做分布式计算引擎. 接下来,讲解一下spark集群环境的搭建部署. 一. ...
- Angular @Input讲解及用法
1.什么是@input @input的作用是定义模块输入,是用来让父级组件向子组件传递内容. 2.@input用法 首先在子组件中将需要传递给父组件的变量用@input()修饰 需要在子组件ts文件i ...
- C++之无子数
题目如下: 1 #include <iostream> 2 3 using namespace std; 4 5 6 bool isThisNumhaveChild(int num); 7 ...
- 时光网内地影视票房Top100爬取
为了和艺恩网的数据作比较,让结果更精确,在昨天又写了一个时光网信息的爬取,这次的难度比艺恩网的大不少,话不多说,先放代码 # -*- coding:utf-8 -*-from __future__ i ...