编码
程序设计语言
结构化程序设计
编码原则——效率——提高效率
程序设计风格
程序设计质量评价
程序复杂性度量
结构化程序设计
(1)在编写程序时,强调使用几种基本控制结构。
(2)在程序设计过程中尽量采用自顶向下和逐步细化的原则,由粗到细,一步步展开。
编码原则:
A、总原则:
1.先求正确后求快
2.先求清晰后求快
3.求快不忘保持程序正确
4.保持程序整洁以求快
5.不要因效率而牺牲清晰
B、好程序标准
1.易于测试和调试
2.易于维护
3.易于修改
4.设计简单
5.高效率
效率:
(1)正确优先
(2)清晰优先
(3)写程序前先简化表达式
(4)尽量避免使用多维数组
(5)尽量避免使用指针和复杂表
(6)不要混合使用不同的数据类型
(7)尽量使用整数运算和布尔表达式
(8)使用执行时间短的算术运算
提高效率:
(1)程序运行的时间ç详细设计阶段确定的算法来决定(尽量避免使用指针,不要使用混合的数据类型)
(2)存储器的效率
(3)输入输出的效率——人机交互
程序设计风格
(1)源程序文档化
A.标识符的命名
B.安排注释
C.程序的视觉组织
(2)数据说明
A.数据说明的次序应当规范化
i.常量说明
ii.简单变量类型说明
iii.数组说明
iv.公用数据块说明
v.所有的文件说明
①整型量说明
②实行量说明
③字符量说明
④逻辑量说明
B.说明语句中变量安排有序化——按字母顺序排列;输入前,输出后;整型前,实型次,其它后。
C.使用注释说明复杂数据结构——序言性注释、功能性注释
注释:
序言性注释:程序标题;有关该模块功能和目的的说明;主要算法;接口说明(包括调用形式,参数描述,子程序清单);有关数据描述;模块位置(在哪一个源文件中,或隶属于哪一个软件包);开发简历(模块设计者、复审考、复审日期)。——上侧
功能性注释:描述重要的程序段。——右侧
(3)语句结构
1.在一行内只写一条语句
2.程序编写首先应当考虑清晰性
3.程序要能直截了当地说明程序员的用意
4.除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。
5.首先要保证程序正确,然后才要求提高速度。
6.避免使用临时变量而使可读性下降。
7.让编译程序做简单的优化
8.尽可能使用库函数
9.避免不必要的转移。同时如果能保持程序可读性,则不必用GoTo语句。
10.尽量只采用三种基本的控制结构来编写程序。
11.避免使用空的Else语句和If…ElseIf…语句。这种结构容易使读者产生误解。
12.避免采用过于复杂的条件测试。
13.尽量减少使用“否定”条件的条件语句。
14.尽可能用通俗易懂的伪码来描述程序的流程,然后再翻译成必须使用的语言。
15.数据结构要有利于程序的简化。
16.要模块化。
17.利用信息隐蔽,确保每一个模块的独立性。
18.从数据出发去构造程序。
19.不要修补不好的程序,要重新编写。
20.对太大的程序,要分块编写、测试,然后再集成。
(4)输入/输出方法
A输入:
i.输入格式力求简单、一致,并尽可能采用自由格式输入
ii.使用数据结束或文件结束标志来终止输入
iii.不要让用户来计算输入的项数或记录数
B输出:
i.标志所有的输出数据,加必要的说明
ii.当用户使用程序时,可对用户做到“在线”帮助
iii.对可能产生重大后果的请求i,先给出提示
iv.对所有输出的数据加标注
v.发生错误时,能迅速恢复正常。
程序设计质量评价——鱼骨刺图
A.正确性
1.程序中没有语法错误
2.程序运行时没有发现明确的运行错误
3.程序中没有不适当的语句。
4.用有效的测试数据,得到程序的正确结果
5.用无效的测试数据,得到程序的正确结果
6.用任何可能的数据,使程序在运行时得到正确的结果。
B.结构清晰性
1.是否用三种结构化格式表示程序的控制逻辑
2.是否有一个入口,一个出口
3.是否严格控制GoTo语句
C.易修改性
D.易读性
E.简单性
程序复杂度测量
A.代码行度量法
B.mcCabe度量法(环路复杂性度量)——取决于程序控制结构的复杂度,可加
C.程序长度(预测的Halstead长度)
(程序量,程序量比率,程序员工作量,程序的潜在错误)
焦点复杂度:(判定程序是不是结构化)——非结构化è结构化(单入口单出口)