简单图形打印(需求分解)
打印任意高度的实心菱形
菱形的打印是一个相对复杂的需求,我们需要把它分解成为多个简单的需求来完成。
将它看作是两个部分,上面一个三角形,下面一个倒三角形。
再依次实现打印。
代码如下:
//打印任意高度的菱形 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
简单图形打印(需求分解)相关推荐
- C语言——简单图形打印学习
A.输出直角三角形 首先,先看一道简单的例题 题目描述 本题要求编写程序,输出指定的三角图案. 输入 输入一个整数 输出 1.按照下列格式输出由"*"组成的三角图案. (1)初学者 ...
- python编写星号菱形中间是空的_简单空实心图形打印|Python练习系列[3]
练习内容:打印空实心等腰三角形,空实心菱形,空实心梯形,空实心正六边形 简单空实心图形打印|Python练习系列[3]_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.c ...
- java编程打印以下图形,分享java打印简单图形的实现代码
我们平时都是使用的画图工具进行简单图形的绘制,今天我们使用java打印一些简单的图形 实现代码如下 package test; /** * * @author hanzel * @打印图形 * */ ...
- 打印中间空了一个的菱形_简单空实心图形打印|Python练习系列[3]
练习内容:打印空实心等腰三角形,空实心菱形,空实心梯形,空实心正六边形 简单空实心图形打印|Python练习系列[3]_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.c ...
- java打印 好看的图形_分享java打印简单图形的实现代码
我们平时都是使用的画图工具进行简单图形的绘制,今天我们使用java打印一些简单的图形 实现代码如下 package test; /** * * @author hanzel * @打印图形 * */ ...
- 侧输出流简单应用-打印的完整流程
1.添加运行环境和设置时间语义 如果是迟到数据处理就只能在事件时间语义下使用,如果是一般数据使用侧输出流就看业务需求是按什么条件进行分流eg:如果按照数据中的温度进行划分高温流和低温流,可以直接使用处 ...
- 需求分解和分配.xls
说明 写作指导: 分解与分配表主要的目的有三个: 确保需求被实现:既在开发的过程中不会遗漏需求,确保产品完整性: 确保需求被验证:在测试验证阶段中不会遗漏需求,确保产品正确性: 了解/控制需求变更 ...
- HTML5 移动Web App阅读器-3(开发流程介绍、需求分解和技术选型)
交互图&需求分解 - 功能的体现 - 细节调整 技术选型和开发准备 - 轻量化 - 快速开发 - 维护简单 - 高性能 WEB app选择原生js还是框架?项目简单:选择原生js,开发成本和维 ...
- 简单的java图形_简单图形的输出_Java语言程
简单图形的输出_Java语言程 3.5.4 简单图形的输出 [例3-26] 编程显示以下图形(共N行,N由键盘输入). 程序运行结果:略. 分析与思考:(1)设N=5 第1行 4个空格=5-1 1个& ...
最新文章
- oracle 11g dataguard安装出现的错误
- 静态页面中导航切换时的当前状态(四中方法)
- 汇编语言随笔(2)-CPU指令周期和无条件转移指令(包括call和ret指令)
- 15 分钟带你入门 sklearn 与机器学习(分类算法篇)
- Matplotlib绘图库初探
- 【蓝桥杯Java_C组·从零开始卷】第五节(二)、BigDecimal的使用
- mybatis 取list第一个_Mybatis(五)- 多对一
- 阿里妈妈应用系统大规模异步交互治理方案
- OpenCV中的HOG+SVM在自动驾驶车辆检测中的应用实例
- 社交软件上“你可能认识的人”到底是怎么找到你的?
- 第十章 內核同步的方法
- jqgrid ajax reload,于jqgrid.trigger('reloadGrid')方法不能重新加载页面的问题
- asp.net MVC留言本示例
- python批量转换数据类型_玩转python 各种数据类型的转换
- 小程序WXML 使用小结
- apk 反编译 - 最新版图文教程
- html5怎么给视频加字幕,怎么给视频添加文字 怎么用Premiere Pro cs6给视频中添加文字...
- Andriod Studio 安装过程
- ubuntu 22.04 系统下载
- 什么是MapReduce
热门文章
- redis rdb aof区别_Redis 持久化之 RDB 与 AOF 详解
- imread函数 matlab_【MATLAB图像处理学习】1.读取和显示图片
- sketchup边线设置_春天花花天桥,SketchUp草图大师快速建模!
- 图像目标分割_2 FCN(Fully Convolutional Networks for Semantic Segmentation)
- LeetCode 2197. 替换数组中的非互质数(栈)
- LeetCode 2145. 统计隐藏数组数目(前缀和)
- LeetCode 483. 最小好进制(二分查找)
- LeetCode 1533. Find the Index of the Large Integer(二分查找)
- LeetCode MySQL 1285. 找到连续区间的开始和结束数字(dense_rank连续排名)
- LeetCode 543. 二叉树的直径(DFS)