程序风格说明

1.内部文档要求

1)每个源文件和头文件都必须在文件首部的注释中注明设计者姓名,项目名(即我们的上机题目名),创建日期和最近一次修改日期。

2)包含main()函数的源文件必须在首部注释后另加一段注释,简要描述一下程序的目的和用到的主要数据结构。

文件注释格式如下:
文件名称:
项目名称:
创建者:
创建时间:
最后修改时间:
功能:
文件中的函数名称和简单功能描述:
文件中定义的全局变量和简单功能描述:
文件中用到的他处定义的全局变量及其出处:
与其他文件的依赖关系:

3)每个类必须包含首部注释块,适度地描述这个类的目的。类的首部注释应该紧挨着放在类的声明(一般在头文件里)前面。

类的注释格式如下:

类名称:
定义该类的目的:
类属性:
类中函数及功能:
与其他类的关系(调用/被调用哪类对象中的什么函数):

4)每个函数必须有首部注释块,描述:
.该函数的简要功能
.每个参数的逻辑含义(包括它是输入还是输出或者输入/输出)
.函数调用之前的预备条件
.返回后的处理,返回值(如果有的话)
.该函数要调用到的函数列表(如果有)
这些函数头注释可能和函数原型或函数实现放在一起。应该注意到:这项要求不仅适合于单独的函数,同样适合于类的成员函数。

5)函数的注释格式如下:

函数名称:
函数功能描述:
函数调用之前的预备条件:
返回后的处理:
返回值(如果有的话):
函数的输入参数:
函数的输出参数:
函数的算法:
函数与其他对象中函数的调用和被调用关系:

6)所有局部变量或常量的声明后应该简要说明一下他们的含义和用途。
.主要的控制结构,例如循环或分支结构,应该在前面注明以下代码将要完成什么功能。
.采用清晰一致的缩进格式和其他格式化风格(例如括号的定位)来提高代码可读性。

2. 过程代码要求

.标识符名称(常量、变量、函数、类等等)应该具有描述性,便于理解。
.要用到某个常数时,最好设置一个常量来代替这个数字。
.采用枚举类型来表示内部标签和状态的分类。
.任何情况下都不要用全局或文件范围变量。但是允许采用全局范围内的类型定义(包括类定义)。
.采用适当的途径传递函数参数。当被调用函数需要修改实参的值时一般只采用引用传参或指针传参。当传递结构较大而不被修改的参数时,采用常量引用传参或者常量指针传参。当被调用函数只需改变形参(调用内部)而保持实参不变的时候采用传值传参。
.任何时候都采用新式的c++。例如:采用代替。不要混合使用旧式c++和新式 c++。
.采用I/O流代替C风格的I/O。

3. 面向对象的代码要求

.尽量采用类。不要用成员函数来实现结构类型。
.一般来讲,建议采用类模板来表示容器型结构,如列表、树等,以提高可重用性。
.设计类时,每个类都具有比较好的完整性(即该类的数据成员和函数成员具有比较好的内聚性和一致性,不要把不相干的东西凑合在一起,也不要把相关的东西生生拆散)。
.类的所有数据成员都应该是私有的。
.很多情况下,类的某些成员函数应该也是私有的。视情况而定。
.所有访问型指针都尽可能加const修饰(以区别于引用型指针)。
.如果一个类数据成员是一个指向动态分配内存的指针,要求写出析构函数来释放内存;并写出一个用于复制对象的构造函数(copy constructor),而且写出赋值操作的重载运算(assignment operator overload)。
.仅当有必要时才采用继承机制。
.只使用C++标准库中的类,

作者: 投稿者(Guest)

本账号专门用于发表“转载资料”以及读者的投稿

4 thoughts on “程序风格说明

    • Leniy

      恩,固定格式编写是很烦人的内容,不过形成了规律后,重读性大大增强

    • Leniy

      我写raytrace这个软件时,代码就很混乱。结果后来优化时,重新看很累人

发表评论

电子邮件地址不会被公开。 必填项已用*标注