打印任意高度的实心菱形

  菱形的打印是一个相对复杂的需求,我们需要把它分解成为多个简单的需求来完成。

  将它看作是两个部分,上面一个三角形,下面一个倒三角形。

  再依次实现打印。

代码如下:

//打印任意高度的菱形
public class GetDiamond {public static void main(String[] args) {getSolidDiamond(9);//传入菱形的高度}/**打印高度为10的实心菱形参数high是菱形的高度*/private static void getSolidDiamond(int high) {/*打印菱形的上半部分*///Math.round(high/2)菱形的上半部分的行数for (int column = 1; column <= Math.round(high / 2); column++) {//前面的打印空格,空格个数为高度一半减一个for (int row = 0; row < Math.round(high / 2) - column; row++) {System.out.print(" ");}//打印“*”个数,“*”的个数等于行数乘2减一个for (int count = 0; count < column * 2 - 1; count++) {System.out.print("*");}//每打印完一行,换一行
            System.out.println();}/*菱形的下半部分,与上半部分对称*/for (int column = Math.round(high / 2) - 1; column >= 1; column--) {//打印前面的空格,空格个数为总高度的1/2减去当前行数for (int row = 0; row < Math.round(high / 2) - column; row++) {System.out.print(" ");}//打印“*”个数,“*”的个数等于行数乘2减一个for (int count = 0; count < column * 2 - 1; count++) {System.out.print("*");}//每打印完一行,换一行
            System.out.println();}}
}==================运行结果:    *  *** ************ *****  ***   *

打印任意高度的空心菱形

  

  依旧分成上下两个部分,依次解决。

//打印任意高度的菱形
public class GetDiamond {public static void main(String[] args) {getHollowDiamond(9);//传入菱形的高度
    }/**打印高度为10的空心菱形参数high是菱形的高度*/private static void getHollowDiamond(int high) {/*打印菱形的上半部分*///Math.round(high/2)四舍五入方法,菱形的上半本分的行数for (int column = 1; column <= Math.round(high / 2); column++) {//前面的空格数,空格的个数为总高度的1/2减当前行数for (int row = 0; row < Math.round(high / 2) - column; row++) {System.out.print(" ");}//打印中间*,第一行没有星号if (column != 1) {System.out.print("*");}//打印中间空格数,每一行有当前行数减一乘二减一个空格for (int row = 0; row < (column - 1) * 2 - 1; row++) {System.out.print(" ");}//每一行都有一个菱形System.out.println("*");}/*菱形的下半部分与上半部分对称*///Math.round(high/2)四舍五入方法,菱形的上半本分的行数for (int column = Math.round(high / 2) - 1; column >= 1; column --) {//前面的空格数,空格的个数为总高度的1/2减当前行数for (int row = 0; row < Math.round(high / 2) - column; row++) {System.out.print(" ");}//打印中间*,第一行没有星号if (column != 1) {System.out.print("*");}//打印中间空格数,每一行有当前行数减一乘二减一个空格for (int row = 0; row < (column - 1) * 2 - 1; row++) {System.out.print(" ");}//每一行都有一个菱形System.out.println("*");}}===================运行结果:   *  * * *   **     * *   *  * *   *

  这个例子是让我们增强对复杂业务的分析能力。当我们得到一个复杂的业务时候,任何人都不可能一次性将代码写出来,我们要对它进行分析,将它分解为多个简单的需求,然后一一实现。

转载于:https://www.cnblogs.com/yxiaooutlook/p/7653219.html

简单图形打印(需求分解)相关推荐

  1. C语言——简单图形打印学习

    A.输出直角三角形 首先,先看一道简单的例题 题目描述 本题要求编写程序,输出指定的三角图案. 输入 输入一个整数 输出 1.按照下列格式输出由"*"组成的三角图案. (1)初学者 ...

  2. python编写星号菱形中间是空的_简单空实心图形打印|Python练习系列[3]

    练习内容:打印空实心等腰三角形,空实心菱形,空实心梯形,空实心正六边形 简单空实心图形打印|Python练习系列[3]_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.c ...

  3. java编程打印以下图形,分享java打印简单图形的实现代码

    我们平时都是使用的画图工具进行简单图形的绘制,今天我们使用java打印一些简单的图形 实现代码如下 package test; /** * * @author hanzel * @打印图形 * */ ...

  4. 打印中间空了一个的菱形_简单空实心图形打印|Python练习系列[3]

    练习内容:打印空实心等腰三角形,空实心菱形,空实心梯形,空实心正六边形 简单空实心图形打印|Python练习系列[3]_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.c ...

  5. java打印 好看的图形_分享java打印简单图形的实现代码

    我们平时都是使用的画图工具进行简单图形的绘制,今天我们使用java打印一些简单的图形 实现代码如下 package test; /** * * @author hanzel * @打印图形 * */ ...

  6. 侧输出流简单应用-打印的完整流程

    1.添加运行环境和设置时间语义 如果是迟到数据处理就只能在事件时间语义下使用,如果是一般数据使用侧输出流就看业务需求是按什么条件进行分流eg:如果按照数据中的温度进行划分高温流和低温流,可以直接使用处 ...

  7. 需求分解和分配.xls

    说明 写作指导:   分解与分配表主要的目的有三个: 确保需求被实现:既在开发的过程中不会遗漏需求,确保产品完整性: 确保需求被验证:在测试验证阶段中不会遗漏需求,确保产品正确性: 了解/控制需求变更 ...

  8. HTML5 移动Web App阅读器-3(开发流程介绍、需求分解和技术选型)

    交互图&需求分解 - 功能的体现 - 细节调整 技术选型和开发准备 - 轻量化 - 快速开发 - 维护简单 - 高性能 WEB app选择原生js还是框架?项目简单:选择原生js,开发成本和维 ...

  9. 简单的java图形_简单图形的输出_Java语言程

    简单图形的输出_Java语言程 3.5.4 简单图形的输出 [例3-26] 编程显示以下图形(共N行,N由键盘输入). 程序运行结果:略. 分析与思考:(1)设N=5 第1行 4个空格=5-1 1个& ...

最新文章

  1. oracle 11g dataguard安装出现的错误
  2. 静态页面中导航切换时的当前状态(四中方法)
  3. 汇编语言随笔(2)-CPU指令周期和无条件转移指令(包括call和ret指令)
  4. 15 分钟带你入门 sklearn 与机器学习(分类算法篇)
  5. Matplotlib绘图库初探
  6. 【蓝桥杯Java_C组·从零开始卷】第五节(二)、BigDecimal的使用
  7. mybatis 取list第一个_Mybatis(五)- 多对一
  8. 阿里妈妈应用系统大规模异步交互治理方案
  9. OpenCV中的HOG+SVM在自动驾驶车辆检测中的应用实例
  10. 社交软件上“你可能认识的人”到底是怎么找到你的?
  11. 第十章 內核同步的方法
  12. jqgrid ajax reload,于jqgrid.trigger('reloadGrid')方法不能重新加载页面的问题
  13. asp.net MVC留言本示例
  14. python批量转换数据类型_玩转python 各种数据类型的转换
  15. 小程序WXML 使用小结
  16. apk 反编译 - 最新版图文教程
  17. html5怎么给视频加字幕,怎么给视频添加文字 怎么用Premiere Pro cs6给视频中添加文字...
  18. Andriod Studio 安装过程
  19. ubuntu 22.04 系统下载
  20. 什么是MapReduce

热门文章

  1. redis rdb aof区别_Redis 持久化之 RDB 与 AOF 详解
  2. imread函数 matlab_【MATLAB图像处理学习】1.读取和显示图片
  3. sketchup边线设置_春天花花天桥,SketchUp草图大师快速建模!
  4. 图像目标分割_2 FCN(Fully Convolutional Networks for Semantic Segmentation)
  5. LeetCode 2197. 替换数组中的非互质数(栈)
  6. LeetCode 2145. 统计隐藏数组数目(前缀和)
  7. LeetCode 483. 最小好进制(二分查找)
  8. LeetCode 1533. Find the Index of the Large Integer(二分查找)
  9. LeetCode MySQL 1285. 找到连续区间的开始和结束数字(dense_rank连续排名)
  10. LeetCode 543. 二叉树的直径(DFS)