良好的程序设计风格主要包括哪些内容?

良好的程序设计风格主要包括哪些内容?,第1张

良好的程序设计风格主要包括的内容有:

一、源程序文档化

(1)标识符应按意取名。

(2)程序应加注释。注释是程序员与日后读者之间通信的重要工具,用自然语言或伪码描述。它说明了程序的功能,特别在维护阶段,对理解程序提供了明确指导。注释分序言性注释和功能性注释。序言性注释应置于每个模块的起始部分,主要内容有:

①说明每个模块的用途、功能。

②说明模块的接口:调用形式、参数描述及从属模块的清单。

③数据描述:重要数据的名称、用途、限制、约束及其他信息。

④开发历史:设计者、审阅者姓名及日期,修改说明及日期。

功能性注释嵌入在源程序内部,说明程序段或语句的功能以及数据的状态。注意以下几点:

①注释用来说明程序段,而不是每一行程序都要加注释。

②使用空行或缩格或括号,以便很容易区分注释和程序。

③修改程序也应修改注释。

二、数据说明原则

为了使数据定义更易于理解和维护,有以下指导原则:

(1)数据说明顺序应规范,使数据的属性更易于查找,从而有利于测试、纠错与维护。例如按以下顺序:常量寿命、类型说明、全程量说明、局部量说明。

(2)一个语句说明多个变量时,各变量名按字典序排列。

(3)对于复杂的数据结构,要加注释,说明在程序实现时的特点。

三、语句构造原则

语句构造的原则是:简单直接,不能为了追求效率而使代码复杂化。为了便于阅读和理解,不要一行多个语句。不同层次的语句采用缩进形式,使程序的逻辑结构和功能特征更加清晰。要避免复杂的判定条件,避免多重的循环嵌套。表达式中使用括号以提高运算次序的清晰度等等。

四、输入输出原则

输入和输出在编写输入和输出程序时考虑以下原则:

(1)输入 *** 作步骤和输入格式尽量简单。

(2)应检查输入数据的合法性、有效性,报告必要的输入状态信息及错误信息。

(3)输入一批数据时,使用数据或文件结束标志,而不要用计数来控制。

(4)交互式输入时,提供可用的选择和边界值。

(5)当程序设计语言有严格的格式要求时,应保持输入格式的一致性。

(6)输出数据表格化、图形化。

输入、输出风格还受其他因素的影响,如输入、输出设备,用户经验及通信环境等。

五、追求效率原则

指处理机时间和存储空间的使用,对效率的追求明确以下几点:

(1)效率是一个性能要求,目标在需求分析给出。

(2)追求效率建立在不损害程序可读性或可靠性基础上,要先使程序正确,再提高程序效率,先使程序清晰,再提高程序效率。

(3)提高程序效率的根本途径在于选择良好的设计方法、良好的数据结构算法,而不是靠编程时对程序语句做调整。

扩展资料:

程序设计风格指一个人编制程序时所表现出来的特点,习惯逻辑思路等。 在程序设计中要使程序结构合理、清晰,形成良好的编程习惯,对程序的要求不仅是可以在机器上执行,给出正确的结果,而且要便于程序的调试和维护,这就要求编写的程序不仅自己看得懂,而且也要让别人能看懂。

随着计算机技术的发展,软件的规模增大了,软件的复杂性也增强了。为了提高程序的可阅读性,要建立良好的编程风格。

风格就是一种好的规范,当然我们所说的程序设计风格肯定是一种好的程序设计规范,包括良好的代码设计,函数模块,接口功能以及可扩展性等,更重要的就是程序设计过程中代码的风格,包括缩进,注释,变量及函数的命名,泛型和容易理解。

参考资料:百度百科-程序设计风格

良好的程序设计风格

全局变量用具有描述意义的名字,局部变量用短名字。函数采用动作性的名字。保持一致性。

缩进形式显示程序结构,使用一致的缩行和加括号风格。使用空行显示模块

充分而合理地使用程序注释 给函数和全局数据加注释。不要注释不好的代码,应该重写。不要与代码矛盾。

友好的程序界面,程序界面的方便性及有效性

不要滥用语言技巧 使用表达式的自然形式。利用括号排除歧义。分解复杂的表达式。当心副作用,像++ 这一类运算符具有副作用。

程序的健壮性:容错

模块化编程

1)应该特别注意程序的书写格式,让它的形式反映出其内在的意义结构。

程序是最复杂的东西(虽然你开始写的程序很简单,但它们会逐渐变得复杂起来),是需要用智力去把握的智力产品。良好的格式能使程序结构一目了然,帮助你和别人理解它,帮助你的思维,也帮助你发现程序中不正常的地方,使程序中的错误更容易被发现。

人们常用的格式形式是:逻辑上属于同一个层次的互相对齐;逻辑上属于内部层次的推到下一个对齐位置。请参考本课程的教科书或《C程序设计语言》(The C Programming Language,Brian W. Kernighan &Dennis M. Rirchie,清华大学出版社,大学计算机教育丛书(影印版,英文),1996。)

利用集成开发环境(IDE)或者其他程序编辑器的功能,可以很方便地维护好程序的良好格式。请注意下面这几个键,在写程序中应该经常用到它们:Enter键(换一行),Tab键(将输入光标移到下一个对齐位置——进入新的一个层次),Backspace键(回到前一个对齐位置——退到外面的一个层次)。

全局变量用具有描述意义的名字,局部变量用短名字。函数采用动作性的名字。保持一致性。

缩进形式显示程序结构,使用一致的缩行和加括号风格。使用空行显示模块

充分而合理地使用程序注释 给函数和全局数据加注释。不要注释不好的代码,应该重写。不要与代码矛盾。

友好的程序界面,程序界面的方便性及有效性

不要滥用语言技巧 使用表达式的自然形式。利用括号排除歧义。分解复杂的表达式。当心副作用,像++ 这一类运算符具有副作用。

程序的健壮性:容错

模块化编程

1)应该特别注意程序的书写格式,让它的形式反映出其内在的意义结构。

程序是最复杂的东西(虽然你开始写的程序很简单,但它们会逐渐变得复杂起来),是需要用智力去把握的智力产品。良好的格式能使程序结构一目了然,帮助你和别人理解它,帮助你的思维,也帮助你发现程序中不正常的地方,使程序中的错误更容易被发现。

人们常用的格式形式是:逻辑上属于同一个层次的互相对齐;逻辑上属于内部层次的推到下一个对齐位置。

利用集成开发环境(IDE)或者其他程序编辑器的功能,可以很方便地维护好程序的良好格式。请注意下面这几个键,在写程序中应该经常用到它们:Enter键(换一行),Tab键(将输入光标移到下一个对齐位置——进入新的一个层次),Backspace键(回到前一个对齐位置——退到外面的一个层次)。

--------------------------------------------------------------------------------

2)用最规范的、最清晰的、最容易理解的方式写程序。注意人们在用C语言写程序的习惯写法,例如教科书中解决类似问题时所使用的写法,书中有许多极好的程序实例。在这里有一个关于程序模式的相关网页,里面也列出了一些常用的模式。

C++语言是一个非常灵活的语言,你可能在这里用许多非常隐晦的方式写程序,但这样写出的程序只能是作为一种玩意儿,就像谜语或者智力游戏。这些东西可以用于消磨时间,但通常与实际无缘。在我们的C++语言讨论组里提到过这种东西。

--------------------------------------------------------------------------------

3)在编程中,应仔细研究编译程序给出的错误信息和警告信息,弄清楚每条信息的确切根源并予以解决。特别是,不要忽略那些警告信息,许多警告信息源自隐含的严重错误。我们有许多办法去欺骗编译程序,使它不能发现我们程序中的错误,但这样做最终受到伤害的只能是自己。

--------------------------------------------------------------------------------

4)随时注意表达式计算过程和类型。注意运算符的优先级和结合顺序,不同类型的运算对象将怎样转换,运算的结果是什么类型的,等等。在必要的时候加上括号或显式的类型强制转换。

C++语言的运算符很多,优先级定义也不尽合理,很难完全记清楚,因此要特别注意。需要时查一查(不要怕麻烦,相关网页有运算符表),或者直接按照自己的需要加上几个括号。

--------------------------------------------------------------------------------

5)绝不去写依赖于运算对象求值顺序的表达式。对于普通二元运算符的运算对象,函数调用的各个实际参数,C++语言都没有规定特定求值顺序。因此,我们不应该写那种依赖于特定求值顺序的表达式,因为不能保证它一定得到什么结果。例如下面的表达式和函数调用都是不合适的,很可能产生你预料不到的结果:

scanf("%d %d", i++, a[i])

m = n * n++

--------------------------------------------------------------------------------

6)总保证一个函数的定义点和它的所有使用点都能看到同一个完整的函数原型说明。

--------------------------------------------------------------------------------

7)总注意检查数组的界限和字符串(也以数组的方式存放)的结束。C++语言内部根本不检查数组下标表达式的取值是否在合法范围内,也不检查指向数组元素的指针是不是移出了数组的合法区域。写程序的人需要自己保证对数组使用的合法性。越界访问可能造成灾难性的后果。

例:在写处理数组的函数时一般应该有一个范围参数;处理字符串时总检查是否遇到空字符'\0'。

--------------------------------------------------------------------------------

8)绝不对空指针或者悬空的指针做间接访问。这种访问的后果不可预料,可能造成系统的破坏,也可能造成 *** 作系统发现这个程序执行非法 *** 作而强制将它终止。

--------------------------------------------------------------------------------

9)对于所有通过返回值报告运行情况或者出错信息的库函数,都应该检查其执行是否正常完成。如果库函数没有完成 *** 作(可能因为各种原因),随后的 *** 作有可能就是非法的。这种错误也可能在程序运行中隐藏很长时间,到很后来才暴露出来,检查错误非常困难。

--------------------------------------------------------------------------------

10)在带参数宏的定义字符串中,一般应该给整个字符串和其中出现的每个参数都加括号。

C++语言预处理程序是个简单的文本替换程序,它根本不知道C++语言的语法结构、优先级规则等。不写括号有时会产生我们不希望的代换结果。

--------------------------------------------------------------------------------

11)所有外部变量名字、所有函数名字,应该只靠前6个字符就能够互相区分。因为有些老的编译程序只关注这些名字的前6个字符。如果不注意这个问题,就可能引起隐含的连接错误。

1. 要编写“好结构”程序

2. 力求程序清晰易读

3. 要写清楚,不要过于精巧

4. 要简单地、直截了当地说明你的用意

5. 写清楚,不要为了“效率”而丧失清晰性

6. 首先要保证清晰,再要求提高执行效率

7. 首先要保证正确,再要求提高编程技巧

8. 发挥计算机高效、准确的特长,让计算机多干活

9. 选用合适的常量标识符

10. 多使用命名类型标识符

11. 选取有实际含义的标识符作为变量名

12. 选用不致引起混淆的变量名

13. 在引用某变量时,应确保该变量已具有确定的值

14. 当有必要使用语句标号时,应使用有明确含义的语句标号

15. 使用括号以避免二义性

16. 选用能使程序更为简单数据表示法

17. 对重复使用的表达式,宜用变量标识符或公共函数来代替

18. 遵循推荐的缩进格式

19. 坚持按一定的缩进格式编写和键入程序

20. 缩进格式应能显示程序的逻辑结构

21. 程序的格式应有助于读者理解程序

22. 恰当地使用空格、空行以改善清晰度

23. 适当地使用注释,使程序自成文档

24. 确信注释含义与源代码相一致

25. 不注释不好的源代码,要重新编写新的源代码

26. 不宜注释过多,应恰如其分

27. 避免不必要的转移

28. 尽量少使用乃至不使用goto语句

29. 避免对实型数据作相等比较

30. 让程序按自顶向下的方式阅读

31. 采用三种基本控制结果-顺序结构、选择结构和循环结构

32. 保持程序的交互性,使易于运行程序

33. 妥善安排输入、输出,使输入、输出自明

34. 采用统一的输入格式

35. 使输入容易核对

36. 识别错误的输入

37. 若有可能,使用自由格式输入

38. 用个种可能的情况验证程序

39. 测试输入数据的合理性和合法性

40. 安排防故障措施

41. 确保输入不违反程序的限制

42. 要安排异常的输入以检验程序的健壮性

43. 在读取文件中的数据时。判定结束输入要使用文件结束标志

44. 贴切地安排输出格式

45. 使用I/O定向功能以增强输入、输出灵活性

46. 使用结构化编码技术

47. 模块化,使用子程序

48. 每个模块实现一定的功能

49. 局部化逻辑相关的实体

50. 分模块调试较大程序

51. 对过长程序代码使用覆盖技术及单元特性

52. 将经过调试和验证的单元归成自用库

53. 对已定义的递归数据结构使用递归函数或过程

54. 对某些算法可能使用非递归技术其程序编码更为简练、执行效率更高

55. 防止过程或函数调用中的副作用

56. 在调试和运行这两个不同阶段分别使用相应地合适的编译指示

57. 注意错误引起的中断


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11378371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存