从锦囊妙计想到的20–在计算机屏幕打印输出

前面, 18和19都是围绕计算机屏幕的输出和输入进行的, 本文在进一步说明一下, 主要围绕编写应用程序进行说明

一。 计算机屏幕的坐标

默认的计算机屏幕的坐标情况如下:

通常情况下, 计算机屏幕没有 格着

真正的情况如下:

有了上述事实后, 我们好分析如下程序的编写

二。编写程序在屏幕输出上述的用“*”组成的矩形

一) 分析一下

1. 首先是要在计算机屏幕上输出字符, 并且字符有要求

既然在屏幕上输出, 那么就需要到  System.out

2. 输出的图形由多行组成

3. 每个行由多个字符组成

因此基于上面我们就可以进行如下工作

二) 谋划如何进行

基于上面的系统分析情况计划进行如下

如上图, 采用一行一行的方式进行打印, 然后没行依次打印字符, 最后打印换行字符

三)。 实现代码

如下图

上图是程序执行结果,和部分代码  参考代码: OutputJx

改进代码实现

上述代码最大问题, 就是output1   ~  output11   一共11个函数, 但是他们都是相同的, 因此没有必要重复

改进代码如下:

看图可以知道, 就定义一共函数, 调用11次 就可以完成相关情况

简化处理了!

package cn.iigrowing.java.study;
public class OutputJx2 {
	public static void main(String[] args) {
		output1();
		output1();
		output1();
		output1();
		output1();
		output1();
		output1();
		output1();
		output1();
		output1();
		output1();
	}

	public static void output1()
	{
		// 输出*
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");

		// 输出换行
		System.out.print("\n");
	}
}

 

上面是这个形式下的代码供参考。

五)。 更进一步简化

上面代码中, 还有一个部分可以进行简化

就是主函数你么的重复11次调用, 是否可以简化一下。  目前11次调用还可以接受, 若是100次如何? 1000次如何,因此重复的事情用循环是最好的办法。

采用如下图的代码

具体的代码如下

---

package cn.iigrowing.java.study;

public class OutputJx3 {
	public static void main(String[] args) {

		for (int i = 0; i < 11; i++) {
			output1();
		}
	}

	public static void output1() {
		// 输出*
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");
		System.out.print("*");

		// 输出换行
		System.out.print("\n");
	}
}

--

上面程序的流程情况可以为如下:

如上图, 是这个函数参考的流程图, 可以帮助我们理解这个程序的工作过程

六)。在进一步优化子函数

上面程序中, 子函数里面还有很多 重复的语句, 我们可以进一步优化子函数

如下图

相关代码如下:

package cn.iigrowing.java.study;
public class OutputJx5 {
	public static void main(String[] args) {

		for (int i = 0; i < 11; i++) {
			output1();
		}
	}

	public static void output1() {
		// 输出*
		for(int i = 0; i < 11; i++){
			System.out.print("*");
		}

		// 输出换行
		System.out.print("\n");
	}
}

参考流程如下:

上面图形是供参考的流程图

七)。 扩展程序

上面是一个渐进的程序改进过程, 下面是一个更麻烦的程序输出如下

下面的程序的目标是 输出 1000行的 *, 每行 有11个*

如何写这个程序?

若是一行行的输出, 就要1000行的输出函数, 当然更麻烦的定义1000个函数, 不可接受。

采用最后一个版本的程序我们可以改造如下:

代码如下:

package cn.iigrowing.java.study;
public class OutputJx6 {
	public static void main(String[] args) {

		for (int i = 0; i < 1000; i++) {
			output1();
		}
	}

	public static void output1() {
		// 输出*
		for(int i = 0; i < 11; i++){
			System.out.print("*");
		}

		// 输出换行
		System.out.print("\n");
	}
}

 

三。 程序编写过程分析

到了现在, 我们从刚刚开始弄这个程序到现在, 经历了大概这么几个过程

分析这个程序的功能(分析)(有哪些功能, 大致过程) =》  研究如何做这个东西(这个过程仅仅是停留在脑袋里面, 或者绘制一些图表,等)(设计) =》 开始写代码 =》 测试代码执行情况 =》 研究代码是否需要改造=》改造=》测试=》在改造=》在测试 。。。。  =》结束

上面大致的过程就是一个程序的大致过程。

1. 一个程序 大致经过   分析 =》 设计 = 》 开发=》 测试

2. 一个程序在开发等过程中 有很多次的  改造优化过程, 这个过程 通常叫做  重构!!

3. 代码即使完成了, 将来也会发生各种各样的修改等工作,因此程序简洁 方便, 便于更改也是非常重要的!

最后思考一下, 下面的图形如何输出

学完了本文, 考虑一下, 上面的程序如何实现?

本文用到的源代码: c11

 

相关文章

计算机介绍                                  从锦囊妙计想到的01

流程图(分支结构)介绍          从锦囊妙计想到的02

线程介绍                                     从锦囊妙计想到的03

循环结构介绍                             从锦囊妙计想到的05

流程线程总结                             从锦囊妙计想到的06

cpu和线程定义、开始               从锦囊妙计想到的07

分布式计算                                  从锦囊妙计想到的08

分布式中事件和计数                 从锦囊妙计想到的09

内容总结                                     从锦囊妙计想到的10

数据类型,变量简介                从锦囊妙计想到的11

函数和参数                                从锦囊妙计想到的12

用户交互与数据输入输出       从锦囊妙计想到的13

人机交互界面                            从锦囊妙计想到的15 

过程与对象                                从锦囊妙计想到的16

同步和异步                                从锦囊妙计想到的17

顺序打印                                    从锦囊妙计想到的18

数据输入输出                            从锦囊妙计想到的19

屏幕坐标和打印                        从锦囊妙计想到的20

java函数控制输出                     从锦囊妙计想到的21

逐步细化解决复杂问题           从锦囊妙计想到的22

java入门                                    从锦囊妙计想到的23

java复杂过程分析                   从锦囊妙计想到的25

中间辅助功能解决问题          从锦囊妙计想到的26

叠加操作输出复杂图形          从锦囊妙计想到的27

时间和空间                               从锦囊妙计想到的28

编写边测解决问题                  从锦囊妙计想到的29

让程序动起来                          从锦囊妙计想到的30

程序往复运动                           从锦囊妙计想到的31