代码注释模板(共4篇)
篇1:代码注释模板
////////////////////////////////////////////////////////////////////////// //函数名称: WriteFile //函数功能: 向加密锁创建文件,并且向文件中写入数据,注意写入的数据不宜过大,最好少于2k为最佳 //参数说明: fileSize: 文件的大小,以字节为单位 // fileID: 文件在加密锁中的ID, // fileName: 文件在加密锁中的名字 // fileContent: 文件内容
//返 回 值: 如果写入文件成功,则返回true,如果写入文件失败,则返回false.//作 者: luyao ///////////////////////////////////////////////////////////////
篇2:代码注释模板
为提高控制程序的阅读性与可理解性,现制定相关代码程序代码注释编写的编写规范。一般情况下,源程序有效注释量必须在20%以上,注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。常规注释有以下两种方式。
单行:以“//”符号开始,任何位于该符号之后的本行文字都视为注释。
多行:以“/*”符号开始,以“*/”结束。任何介于这对符号之间的文字都视为注释。
一、说明性文件
说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。
示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。
/************************************************* COPYRIGHT(C), MicTiVo International.Co., Ltd.File NAME: // 文件 Author: Version: Date:
// 作者、版本及完成日期
DESCRIPTION: // 用于详细说明此程序文件完成的主要功能,与其他模块
// 或函数的接口,输出值、取值范围、含义及参数间的控
// 制、顺序、独立或依赖等关系 Others:
// 其它内容的说明
Function List: // 主要函数列表,每条记录应包括函数名及功能简要说明 1....History: // 修改历史记录列表,每条修改记录应包括修改日期、修改
// 者及修改内容简述 1.Date: Author: Modification: 2...*************************************************/
二、源文件头
源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。
示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。
/************************************************************ COPYRIGHT(C), MicTiVo International.Co., Ltd.FileName: Author: Version : Date: DESCRIPTION: // 模块描述,描述本文件的内容、功能、内部各部分之间的关系及
//本文件与其它文件关系等 Version:
// 版本信息
Function List:
// 主要函数及其功能 1.-------History:
// 历史修改记录
**********************************************************/
三、函数
函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等。
示例:下面这段函数的注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。
/************************************************* Function:
// 函数名称
DESCRIPTION: // 函数功能、性能等的描述 Calls:
// 被本函数调用的函数清单 Called By:
// 调用本函数的函数清单
Table Accessed: // 被访问的表(此项仅对于牵扯到数据库操作的程序)Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)Input:
// 输入参数说明,包括每个参数的作
// 用、取值说明及参数间关系。OUTPUT:
// 对输出参数的说明。Return:
// 函数返回值的说明 Others:
// 其它说明
*************************************************/
四、变量寄存器
标志变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。示例:
Unsigned char receive_floag;//接收标志;
/* 0—接收失败, 1—接收成功, 2—…….*/
/*
receive _process()
*/
//调用函数
Unsigned char receive_data[10];//数据接收存储器;
/*在 receive _bit()中对其赋值*/
//调用函数
五、控制寄存器
在对控制器控制寄存器进行操作时,需注明该寄存器功能,配置参数作用,以及配置时的注意事项等的说明。示例:(PIC单片机定时器控制)void time0_init(void){ T0CON=0X09;
//设定TMR0工作于16位定时器方式,内部时钟,不分频 INTCON=INTCON|0X20;//TMR0中断允许
INTCON=INTCON&0Xfb;//清除TMR0的中断标志
INTCON=INTCON|0xc0;//* 开总中断、开外围接口中断
TMR0H= 0xaa;
TMR0L= 0xaa;}
篇3:代码注释模板
轮毂是汽车运动中极为重要的部件,在生产过程中,不同的轮型选择不同加工路线、加工机床和刀具等。在自动化生产线上要实现多品种的混流生产,轮毂型号的识别,过去主要是靠人工识别,这种方法效率低且不能满足现代工业生产线的要求,所以急需一种快速、准确的检测方法。本系统研究的是一种轮型代码自动识别系统。轮型代码自动识别系统是一个集光、机和电技术为一体的机器视觉识别系统,系统能自动识别生产线上生产出来的轮毂型号,并进行生产统计与分检,其优点是机器识别、在线识别、识别准确率高。
1 系统构成
轮型代码自动识别系统主要由工业控制计算机、千兆网卡、工业CCD相机、LED光源、支架、定位装置、显示器和打印机等组成,系统结构框图如图1所示。
2 图像采集及预处理
由于在采集过程中的光线变化、轮毂封层、设备振动等原因,图像中不可避免的存在一些噪声,但影响成像效果的主要是背景和光照。采集图像时,系统采用LED光源,以消除背景干扰和光照不均匀带来的影响,并且使轮毂尽量充满CCD视野。
在对采集到的图像进行处理前,需要先对图像进行预处理,就是要对噪声图像进行滤波,平滑噪声图像等步骤。图像保存为.BMP格式,大小为640×480,每一个轮毂在采集图像之后系统自动将图像存入指定的目录。
3 用Rober边缘检测算子提取轮毂特征
轮毅图像中的特征很多,为了获取理想的识别结果,在选取特征时要考虑所选特征的稳定性,也就是同一型号轮毅不同个体之间共有的、稳定的,显著区别于其他类型轮毂的特征[1],并且依靠这些特征建立不同型号轮毂的模板库,系统根据轮毂的模板库识别轮毂型号。
Robert边缘检测算子是一种利用局部差分算子提取图像边缘轮廓的算子。其核心公式如下,f(x,y)为原始像素点的灰度值,g(x,y)为转换后像素点的灰度值。
文中以轮毂型号为801775为例,运用方程(1)提出的算法提取轮毂的边缘特征并制作模板。制作模板时,尽量选择轮毂图像清晰,表面洁净的轮毂图片作为模板,然后将模板存入数据库,如图2所示。
4 模板匹配识别
根据前面列出的轮毂特征基本上能把不同类型的轮毅区分开。但分类识别的算法多种多样,选择一个好的算法既可减少计算时间提高效率,又可以提高正确率,避免或尽量减少误判[1]。系统中根据提取的轮毂特征制作模板库,通过模板匹配的方法实现轮毂型号识别。
模板就是一幅已知的小图像。模板匹配就是在一幅大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像,通过一定的算法可以在图中找到目标,确定其坐标位置,它的基本原则就是通过相关函数的计算来找到它以及被搜索图的坐标位置。工作过程如图3所示,设模板T(M×M)叠放在S(N×N)上平移,模板覆盖下的那块搜索图叫做子图Sij,i,j为子图左上角像点在S图中的坐标,称为参考点。其中i,j取值范围:
对于T与Sij的匹配程度,可用相关函数作相似性测度:
或者归一化为
式(2)、式(3)描述了模板与子图的相关程度,最大相关处为最佳匹配处。将模板在搜索区域里平移,同时选用上面公式之一进行匹配计算,即可找到最佳匹配位置。
图3是模板库中只有1个轮毂模板,对型号为801775的另一幅图像通过图2(c)的模板识别之后,识别相似度为86.07%,识别时间60.18毫秒。
5 结束语
该算法已应用于中信戴卡轮毂制造有限公司的轮型代码自动识别系统中,该算法有效地实现了轮型代码的自动识别。我们对系统进行了全面的测试的构成中,使用了八个型号的轮毂,每种型号各200个轮毂,模板库中存在10个型号轮毂模板。
测试环境为CPU:E7500 2.93G和内存:4G DDR II。测试结果如表1所示。
该系统的轮型代码正确识别率为99%以上,由此可以说明基于模板匹配的轮型代码自动识别系统在轮型代码识别过程中使用的算法是有效的。
系统单幅轮毂图像识别处理时间不到0.5秒,如果再加上硬件执行时间,2秒钟之内将能完成识别,并且可以保证识别率在99%以上。完全能够满足生产线的要求。因此,轮型代码自动识别系统广泛应用于轮毂企业的生产线当中去,将对于提高企业的生产效率,保证企业产品质量具有积极的、重要的意义。
参考文献
[1]赵玉良,刘伟军,刘永贤.汽车轮毅在线识别系统的研究机械设计与制造[J].2007,10.
篇4:代码注释模板
编写C++程序完成以下功能:
(1)假定有一件商品,程序用随机数指定该商品的价格(1-1000的整数);(2)提示用户猜价格,并输入:若用户猜的价格比商品价格高或低,对用户作出相应的提示;
(3)直到猜对为止,并给出提示
矩形
编写C++程序完成以下功能:
(1)定义一个Point类,其属性包括点的坐标,提供计算两点之间距离的方法;(2)定义一个矩形类,其属性包括左上角和右下角两个点,提供计算面积的方法;
(3)创建一个矩形对象,提示用户输入矩形左上角和右下角的坐标;(4)观察矩形对象以及Point类成员的构造函数与析构函数的调用;(5)计算其面积,并输出。
友元
编写C++程序完成以下功能:
(1)定义一个Boat和Car两个类,他们都具有私用属性——重量;
矩阵
(一)编写C++程序完成以下功能:
(1)假定矩阵大小为4×5(整型数组表示);
(2)定义矩阵初始化函数,可以从cin中输入矩阵元素;(3)定义矩阵输出函数,将矩阵格式化输出到cout;
(4)定义矩阵相加的函数,实现两个矩阵相加的功能,结果保存在另一个矩阵中;(5)定义矩阵相减的函数,实现两个矩阵相减的功能,结果保存在另一个矩阵中;(6)定义三个矩阵:A1、A2、A3;(7)初始化A1、A2;
(8)计算并输出:A3 = A1加A2,A3 = A1减A2。
矩阵
(二)编写C++程序完成以下功能:
(1)假定矩阵大小为4×5(整型);
(2)矩阵空间采用new动态申请,保存在指针中;
(3)定义矩阵初始化函数,可以从cin中输入矩阵元素;(4)定义矩阵输出函数,将矩阵格式化输出到cout;
(5)定义矩阵相加的函数,实现两个矩阵相加的功能,结果保存在另一个矩阵中;(6)定义矩阵相减的函数,实现两个矩阵相减的功能,结果保存在另一个矩阵中;(7)动态申请三个矩阵:A1、A2、A3;(8)初始化A1、A2;
(9)计算并输出A3 = A1加A2,A3 = A1减A2;(10)释放矩阵空间。
矩阵
(三)编写C++程序完成以下功能:
(1)用类来实现矩阵,定义一个矩阵的类,属性包括:
矩阵大小,用 lines, rows(行、列来表示);
存贮矩阵的数组指针,根据矩阵大小动态申请(new)。
(2)矩阵类的方法包括:
构造函数,参数是矩阵大小,需要动态申请存贮矩阵的数组; 析构函数,需要释放矩阵的数组指针; 拷贝构造函数,需要申请和复制数组; 输入,可以从cin中输入矩阵元素; 输出,将矩阵格式化输出到cout;
矩阵相加的函数,实现两个矩阵相加的功能,结果保存在另一个矩阵类,但必须矩阵大小相同;
矩阵相减的函数,实现两个矩阵相减的功能,结果保存在另一个矩阵类,但必须矩阵大小相同。
(3)定义三个矩阵:A1、A2、A3;(4)初始化A1、A2;
(5)计算并输出A3 = A1加A2,A3=A1减A2;
(6)用new动态创建三个矩阵类的对象:pA1、pA1、pA3;(7)初始化pA1、pA2;
(8)计算并输出pA3=pA1加pA2,pA3=pA1减pA2;(9)释放pA1、pA1、pA3。
1、形状
(一)编写C++程序完成以下功能:
(1)声明一个基类Shape(形状),其中包含一个方法来计算面积;(2)从Shape派生两个类矩形和圆形;(3)从矩形派生正方形;
(4)分别实现派生类构造函数、析构函数和其他方法;
(5)创建派生类的对象,观察构造函数、析构函数调用次序;(6)不同对象计算面积。
形状
(二)——虚函数
(1)将【形状
(一)】中的基类计算面积的方法定义为虚函数,比较与【形状
(一)】程序的差异;
(2)将【形状
(一)】中的基类定义抽象类,比较与【形状
(一)】程序的差异。
对Point类重载++和――运算符
编写C++程序完成以下功能:
(1)Point类的属性包括点的坐标(x,y);(2)实现 Point类重载++和――运算符:
++p,--p,p++,p--。
++和――分别表示x,y增加或减少1。
流式IO
(一)编写C++程序完成以下功能:
(1)使用ofstream 向一个文本文件中输出各种类型的数据,并打开文件观察结果:
整数、无符号整型、长整型、浮点型、字符串、……
(2)用十进制、八进制、十六进制方式向文本文件中输出整数;(3)使用控制符和成员函数来控制输出的格式:
set()precision()...流式IO
(三)编写C++程序完成以下功能:(1)输入一个文本文件名;
(2)打开文件名,在该文件的每一行前面加上一个行号,保存在另外一个文本文件中。
电话本
编写C++程序完成以下功能:
(1)实现简单电话本功能,用姓名来搜索电话号码;(2)用户输入姓名,程序查找并输出结果;(3)用户可以通过输入,添加姓名和电话号码;(4)用户可以删除姓名和电话号码;(5)电话本可以保存在指定文件中;(6)电话可被从指定文件中读入到内存。