前面, 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
相关文章