155
非法字符、缺少必需的标点符号、缺少关键字等等都属于语法错误。例如,在Microsoft Visual C++6.0的集成开发环境中,C++程序在输入过程中出现了失误,在Microsoft Visual C++6.0编译环境下调试时,编译器对程序的错误显示如图6.12所示。
逻辑错误:经过调试,消除了程序的语法错误,但程序运行之后却得不到预期的结果,这说明程序还存在着逻辑错误。逻辑错误通常是由于使用了错误的算法或公式引起的。
调试程序的逻辑错误相对比较困难,这就需要程序员认真分析并借助调试工具查这类错误并
纠正。
图6.12  编译环境对程序的出错报告
运行错误:应用程序在实际运行中,因某些操作失败或运行环境发生变化等导致程序无法继续运行,这样的程序存在运行错误。例如,除数为零、数组下标越界、数据溢出或要打开一个文件,文件路径却不存在、磁盘空间不足、网络连接断开等都会导致程序运行中止,这些错误属于运行错误。为了使应用程序具有更强的适应性,这就需要程序设计者在设计应用程序时,针对这些可预见的错误,编写相应的错误处理程序。
5.文档编制
文档由程序说明文件和用户操作手册组成。程序说明文件记录程序设计的算法,程序的实现以及修改的过程,以保证程序的可读性和可维护性。用户操作手册让用户了解程序的使用方式以及如何正确地输入
数据。对于微小程序来说,有没有文档显得不重要,但对于一个需要多人合作,并且开发、维护周期较长的软件来说,文档就是至关重要的。在软件工程设计中,文档对开发过程的每一步都有指导性的建议。程序中的注释就是一种很好的文档,用以描述程序中各模块的功能、变量及函数的意义等。
一般程序的设计都会经历以上描述的几个步骤,对于不同的程序,在不同的阶段花费的时间与精力是不同的,但最终功能的实现是由程序代码的质量决定的。
6.3.2  程序设计的方法
随着计算机技术的飞速发展,程序设计的方法和技术也取得了很大进展。目前主要有两种程序设计方法,即结构化程序设计方法和面向对象程序设计方法。下面分别介绍这两种程序设计方法。
1.结构化程序设计方法
随着计算机技术的发展以及应用领域日趋广泛,软件开发的工作规模和需求不断扩大,迫切
156  需要规范化、工程化的程序设计理念。20世纪70年代,程序设计方法引入了工程思想和结构化思想,提出了结构化程序设计的思想和方法,使得大型软件的开发得到了极大的改善。
结构化程序设计的根本出发点是为了保证程序设计的质量,目的是使所设计程序的结构清晰,具有易读性和易理解性,通用性好,易于分工合作编写程序,易于测试和维护程序,而且执行时具有较高的效率。结构化程序设计方法,类似于建设大楼,要先进行楼体总体结构设计,然后是各楼层设计,其后是房间设计;实施过程中分为建筑实施、楼宇布线、水电暖设备安装等模块化工作,分别由不同的工程人员协作完成。
编译器错误
(1)结构化程序设计的基本思想
结构化程序设计的基本思想是:采用“自顶向下、逐步求精”的模块化程序设计原则,采用“单入口单出口”的控制结构,少用或最好不用GOTO 语句。
① 自顶向下、逐步求精。自顶向下是指对设计的系统有一个全面的了解,从问题的全局入手,把一个复杂问题分解成若干独立的问题,然后对每个问题再做进一步的分解,如此反复,直到每个问题都容易解决为止。其实这是使用了一种分层结构来表示问题和子问题(称为模块)之间的关系,这种结构也称为树形结构,在这样的结构中,每一层的模块都可以调用下层模块的服务。这些模块是程序的基本构件。如图6.13所示,0层是最顶层,这一层是问题的功能说明,其下是细化的后
继层。
图6.13  结构化程序设计方法
逐步求精是指程序设计是一个渐进的过程,先把问题用一个程序模块来描述,再把每个模块的功能逐步分解细化为一系列的具体步骤,直到能用过程语言的基本控制语句来实现。逐步求精与自顶向下结合使用,一般把逐步求精看作是自顶向下设计的具体体现。
② 模块化。将复杂的问题分解成若干相对简单的子问题来解决,即是将程序模块化的过程。划分出的子模块一定要有相对独立的功能。模块化是指程序设计应从功能入手。程序设计即是一个不断模块化的过程。本着“自顶向下、逐步求精”的原则,一个大型的程序经过层层分解后,可以细化为一个个的子模块。
一般地讲,一个程序由主控模块和若干子模块组成。待解问题即主控模块,以功能性质分解的子问题即子模块。
③ 单入口单出口。在编程中,为了确保各子模块内逻辑结构的清晰,模块内只能由过程化语言的3种基本控制结构组合而成,即它们是由顺序、选择和循环3种结构通过有序组合或嵌套形

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。