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

利用类的继承实现。

将计算结果进行输出。

不多说,贴码。

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源码——计算不同图形的周长和面积的更多相关文章

  1. java源码——计算立体图形的表面积和体积

    计算球,圆柱,圆锥的表面积和体积. 利用接口实现. 上代码. Contants.java 常量存储类 package com.fuxuemingzhu.solidgraphics.contants; ...

  2. Java练习 SDUT-3338_计算各种图形的周长(接口与多态)

    计算各种图形的周长(接口与多态) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 定义接口Shape,定义求周长的方法l ...

  3. java源码——计算大于一个数的最小素数

    根据输入数字,计算大于一个数的最小素数. 话不多说,直接贴码. package com.fuxuemingzhu.countprime.main; import java.util.Scanner; ...

  4. Tika结合Tesseract-OCR 实现光学汉字识别(简体、宋体的识别率百分之百)—附Java源码、测试数据和训练集下载地址

     OCR(Optical character recognition) —— 光学字符识别,是图像处理的一个重要分支,中文的识别具有一定挑战性,特别是手写体和草书的识别,是重要和热门的科学研究方向.可 ...

  5. 解密随机数生成器(二)——从java源码看线性同余算法

    Random Java中的Random类生成的是伪随机数,使用的是48-bit的种子,然后调用一个linear congruential formula线性同余方程(Donald Knuth的编程艺术 ...

  6. Java源码解读(一)——HashMap

    HashMap作为常用的一种数据结构,阅读源码去了解其底层的实现是十分有必要的.在这里也分享自己阅读源码遇到的困难以及自己的思考. HashMap的源码介绍已经有许许多多的博客,这里只记录了一些我看源 ...

  7. 24点扑克牌游戏——(含java源码)(GUI实现)

    给出四个数字,要求,在其间添加运算符和括号,使得计算结果等于24. 括号的放置即为决定哪几个数先进行计算.所以,我们先确定首先进行计算的两个相邻的数,计算完成后,就相当于剩下三个数字,仍需要在它们之间 ...

  8. 从Java源码到Java字节码

    Java最主流的源码编译器,javac,基本上不对代码做优化,只会做少量由Java语言规范要求或推荐的优化:也不做任何混淆,包括名字混淆或控制流混淆这些都不做.这使得javac生成的代码能很好的维持与 ...

  9. kafka对消费者分配分区规则(Java源码)

    在上一篇 kafka topic消息分配partition规则(Java源码) 我们对生产者产生的消息分配partition规则进行了分析,那么本章我们来看看消费者是怎么样分配partition的. ...

随机推荐

  1. VSCode + PicGo + Github + jsDelivr 搭建稳定快速高效图床

    VSCode + PicGo + Github + jsDelivr 搭建稳定快速高效图床 目录 前言 准备 配置 验证 前言 所谓图床,就是将图片储存到第三方静态资源库中,其返回给你一个 URL 进 ...

  2. datamash 命令行下的快速计算工具

    github地址:https://github.com/agordon/datamash

  3. R语言与医学统计图形-【25】ggplot图形分面

    ggplot2绘图系统--图形分面 ggplot2的分面faceting,主要有三个函数: facet_grid facet_wrap facet_null (不分面) 1. facet_grid函数 ...

  4. 基于tp5的免费开源企业官网系统

    基于tp5的免费开源企业官网系统 基本功能: 自定义菜单,单页 添加新闻文章前台展示 前台页面自动适配电脑与手机端等.后台模板用的是:AdminLTE 项目放在github上有兴趣开源下载看看 htt ...

  5. CSS上下左右居中对齐

    上下左右居中对齐 display:  inline/inline-block 将父元素(容器)设定 text-align: center: 即可左右置中. display: block 将元素本身的 ...

  6. 巩固javaweb第十天

    巩固内容: HTML <meta> 元素 meta标签描述了一些基本的元数据. <meta> 标签提供了元数据.元数据也不显示在页面上,但会被浏览器解析. META 元素通常用 ...

  7. 【Linux】【Shell】【Basic】条件测试

    1. 数值测试:数值比较 -eq:是否等于: [ $num1 -eq $num2 ] -ne:是否不等于: -gt:是否大于: -ge:是否大于等于: -lt:是否小于: -le:是否小于等于: 2. ...

  8. 【编程思想】【设计模式】【创建模式creational】Pool

    Python版 https://github.com/faif/python-patterns/blob/master/creational/pool.py #!/usr/bin/env python ...

  9. 【Linux】【Database】【MySQL】使用percona搭建高可用的MySQL数据库

    1. 简介 1.1. 官方文档: 数据库架构:https://docs.openstack.org/ha-guide/shared-database.html 1.2. 本次使用的的是Percona ...

  10. 【Java多线程】Java 原子操作类API(以AtomicInteger为例)

    1.java.util.concurrent.atomic 的包里有AtomicBoolean, AtomicInteger,AtomicLong,AtomicLongArray, AtomicRef ...