Logo

郎哥编程

程序开发思路

2018-07-04 2397

课程导言

【前面掌握了编写程序必备的基础知识。从本课开始,将正式进入编程技能的学习。学习编程语言要遵循循序渐进的原则,从简单问题入手,找到解决问题的思路和算法,然后用Java语言实现算法,在实现算法的过程中学习Java语言的语法知识,逐步加深问题难度,直至掌握到Java语言的精髓。本篇给出一个简单的问题案例,从问题案例入手,讲述从现实问题到算法、再到程序的实现过程。通过本篇的学习,可以掌握用程序解决现实问题的开发思路】


问题的引入

在小学数学中,我们都学过求长方形面积的问题,只要知道了长方形的长和宽,就可以求出长方形的面积,很简单的问题。现在需要把这个简单的问题用计算机来求解,也就是编写一个计算长方形面积的程序,输入长方形的的长和宽,程序计算出面积,并将计算结果输出到计算机显示器。

问题解决的思路

在课程《编程学习预备知识》一课中已经明确了程序的开发过程,即问题的解决思路。也了解了用计算机程序解决问题需要遵循一个基本的开发原则,即开发过程分为五个阶段,分别是需求分析阶段、程序设计阶段、编码阶段、测试阶段和运行阶段。

(1)需求分析阶段

需求分析阶段是对问题作出分析,确定程序提供的功能,明确程序运行需要的软件和硬件环境的阶段。需求分析方法主要有面向对象分析法和面向过程分析法。关于面向对象和面向过程的讨论在《深入浅出谈Java语言》一课中有叙述,这里不再进行深入探讨。

回到问题中来,请思考一下,解决上面问题的程序需要提供哪些功能呢?根据问题的描述,程序需要提供以下功能才能解决提出的问题:

① 从计算机获取输入的功能。程序需要从计算机获取输入的长度和宽度;

② 计算长方形面积的功能;

③ 输出计算结果到计算机显示器的功能。

程序功能确定后,还需要确定程序运行需要的软件和硬件环境。这个需求很重要。在程序开发前,你得明确你开发的程序运行在什么环境下,对硬件的配置有没有要求。例如,如果你要编写的程序准备在智能家电上运行,就不适宜用Java编写,而是需要用嵌入式语言编写程序。再如,如果要编写的程序是关于游戏方面的,就要考虑程序运行时电脑的配置,太低的电脑配置,程序运行会非常卡,甚至不能运行。这些问题都需要在需求分析中明确下来,并给出相应的解决方案。

本案例中的程序运行环境是家用电脑,操作系统是Windows,一般家用电脑的配置足以满足本案例程序的硬件需求。程序编写采用Java语言。

(2)程序设计阶段

需求分析阶段对要解决的问题做了透彻的分析,明确了程序要实现的功能。下一步就需要把用文字描述的功能通过算法描述出来,我们知道算法可以用流程图来描述,通过流程图就可以编写伪代码,最后把伪代码编写为程序代码,当然也可以越过伪代码,直接在流程图的基础上编写程序代码。

把功能演变为算法,并通过流程图描述的过程就是程序设计过程。流程图也称为设计模型。需要说明的是,考虑到从简单入手,本课程没有涉及更多的设计模型,如UML设计模型。

再回到问题中来,程序需要提供三个功能,可以把前面的功能简化为:

① 输入长度和宽度;

② 计算长方形面积;

③ 输出结果。

另外考虑到当输入的长度或宽度为零时,计算的结果没有意义。因此在输入环境需要添加判断处理,当输入的长度或宽度为零时,需要提醒用户输入错误,并退出程序。

下面给出问题的算法步骤:

(1)声明num1、num2、result三个变量;

(2) 输入长度和宽度,并将长度赋值给num1,宽度赋值给num2;

(3)判断num1和num2是否大于0,如果大于0,继续下一个步骤,否则提示用户长度和宽度输入错误,算法结束;

(4)计算num1和num2的乘积,并将乘积结果赋值到result变量;

(5)输出result变量的值到屏幕。

算法步骤用到了“变量”、“赋值”、“输入”、“输出”等词语,初学者可能会比较困惑,这些名词在后面会一一解释。

根据算法步骤绘制流程图如下:

blob.png


图1 计算长方形面积流程图

(3)编码阶段

在设计阶段给出了用计算机求解长方形面积算法的文字描述和流程图,该流程图完全可以指导编码人员编写程序。这时就进入了编码阶段。

本案例中编码阶段的任务主要是按照设计阶段给出的流程图编写java程序,在编写过程中,可能还得需要调试程序,前面的课程已经给出了Java程序的基本调试方法,当程序编译通过,运行无误后,就进入了下一阶段测试阶段。

(4)测试阶段

测试阶段是验证开发的程序是否满足功能要求,程序运行是否稳定。本案例中,将测试程序在不同输入值情况下,程序输出的结果是否正确。在输入值为0的情况下,程序是否能提醒用户输入有错误。

测试人员在测试过程若发现问题,需要通知开发人员修改程序,程序修改完成后,需要再次提交给测试人员进行回归测试。

(5)运行阶段

测试阶段结束后,程序就可以提交给用户了。此时,程序就进入了运行阶段,在运行阶段,用户可能会对程序提出改进意见。当开发人员接受用户提出的改进意见,决定对程序修改时,就进入了新的一轮开发循环。

其实,程序在实际开发过程中,是需求、设计、编码、测试、运行阶段不断迭代的过程。每次开发迭代,都会修改上轮迭代发现的问题,并扩展新的功能需求以适应业务的变化。

 

■ 课程小结

作为一个程序开发者,当初次拿到一个开发任务时,这个任务可能是一份合同书、也可能是领导的几句话,任务内容是解决用户遇到的问题。那么,你现在要做的就是赶快回顾本课程内容,掌握程序的开发过程。首先从问题需求入手,详细阅读任务说明书或调研用户需求,列举程序需要实现的功能及软硬件环境要求;其次根据列举的需求功能,将功能通过设计模型描述完整,设计模型可以是流程图、也可以是UML、也可以文字描述的算法步骤;然后按照设计模型进行编码和测试;最后将程序提交给用户,完成了一个开发迭代。

■ 思考与练习

课后习题答案参见同步测试《Java变量及数据类型课后习题及答案》试题

小王接到培训老师的一个开发任务,要求开发一个求圆面积的程序。请你帮助小王梳理程序的开发过程,并帮助小王列出程序要实现的功能,同时绘制算法的流程图。


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论