C++Builder (BCB)编程规范
- 格式:pdf
- 大小:120.01 KB
- 文档页数:4
第一讲C++ Builder简介“工欲善其事,必先利其器”,对于程序员来说,选择和掌握一门好的编程语言及其开发工具是至关重要的,然而这也正是困扰很多朋友的一个问题,随着心铃讲座的陆续刊出,越来越多的初学编程的读者朋友来信问到,“请问心铃,这么多种编程工具,到底哪一种更好呢?”对于这个问题,心铃一直都觉得很难回答清楚,只能说它们各有优缺点。
其实,编程工具的选择要与具体的开发项目联系起来,如果项目是面向最终用户的Windows应用程序,并且开发周期很短,那么心铃就要为大家推荐一种优秀的快速应用程序开发(Rapid Application Development,简称RAD)工具——Borland C++ Builder,这也是本次讲座所要介绍的对象。
C++ Builder的主要特点C++ Builder(以后简称CBuilder)是Borland公司在Delphi成功的基础上开发的可视化C++编程工具,什么?等等!也许有的朋友会问:Borland以前不是出了一个Borland C++吗,难道CBuilder 不是从BC演变而来?不错,CBuilder确实也吸取了不少BC的好东西,但CBuilder可视化编程的关键——Visual Component Library(VCL,可视化元件库)却是从Delphi搬过来的,因此CBuilder 象Delphi比象BC更多一些。
CBuilder面世的时间虽然不长,但几乎是以最快速度成为最流行的C++编程工具之一,由于自身的优秀品质,它受到了越来越多的程序员的喜爱,目前最新版本已经出到了5.0。
与其它的可视化编程工具(如VC、VB)相比,CBuilder的最大特点就在于其可视化程度更高,因此在开发面向用户的应用程序时更方便、更快捷。
CBuilder集成了十分丰富的可视化元件库,其中的元件数量在百个以上,这些元件基本上覆盖了应用程序开发的各个方面,如:基本应用程序主窗口、菜单、工具栏、对话框、数据库、Internet等等,利用这些元件,设计和开发CBuilder程序就象搭积木一样简单有趣。
第一章命名约定 (2)第二章代码布局格式约定 (3)第三章类型使用约定 (4)第四章表达式约定 (4)第五章控制结构约定 (5)第六章函数及操作符使用约定 (5)第七章类使用约定 (5)第八章模块及访问约定 (5)第九章预编译指令使用约定 (6)第十章注释使用约定 (6)第十一章错误检查及异常处理约定 (7)第十二章其它 (7)第一章命名约定1.变量名命名约定1.1.变量名应符合ANSI C/C++ 变量名命名规定。
如:long nTemp; //Truelong 4Temp; //False1.2.变量名使用混合大小写,并以小写字母开头。
如:long nTemp; //normallong NTemp; //abnormal1.3.声明常量(const),宏(macro)和枚举常量(enum )时应全部使用大写字母。
如:const double PAI=3.1415926; //noramlconst double Pai=3.1415926; //abnoraml#define P AI 3.1415926 //normal#define Pai 3.1415926 //abnormalenum Color{RED,BLUE,GREEN}; //normalenum Color{Red,Blue,Green}; //abnormal1.4.变量名是用多个单词表示时1.4.1.当使用混合大小写时,将修饰词放在前面,并且尽量拼写完整增加可读性。
如:maxElement,currentFile 等。
1.4.2.当全部使用大写时,单词之间应用下划线连起来。
如:BUFFER_SIZE,FILE_SIZE 等。
1.5.变量名命名应有意义1.5.1.一律使用英文字母进行拼写;不用汉语拼音。
1.5.2.变量名大小应至少2~3个字母。
(当作为整型循环变量时,可以使用单个字母。
如:i,j,k等。
)如:chrName,hWnd等。
第一部分:基础入门1.窗体1)问:Windows的编程就是在窗体的基础上实现的,C++Builder是怎样处理窗体的呢?答:窗体的一部分功能通过窗体的属性来实现,窗体的属性非常多,这里只对其中比较重要的属性进行介绍。
1.ActiveControl指定窗体上的某个组件为输入焦点。
如下面的语句将窗体上的Label1组件成为输入焦点:ActiveControl=Label1。
在同一时时刻,应用程序只能有一个输入焦点。
2.BorderIcons用来设定标题栏上出现哪些系统图标。
它是一个集合,可以设成以下几个类型:最大化按钮(biMaximize)、最小化按钮(biMinimize)、帮助按钮(biHelp)和系统菜单(biSystemMenu)。
3.Icon属性用来指定当窗体最小化时显示的图标。
4.KeyPreview属性为true时,表示击键事件发生时先传给窗体,然后再传给有输入焦点的组件上,相当于窗体截获了原本属于组件的事件。
缺省值为false,表示击键事件只送到当前有输入焦点的组件上。
5.Menu属性用来指定窗体的主菜单。
6.Visible属性用来确定窗体是否可见。
此外还有一些运行时态属性,这些属性只有在程序运行的时候才能通过编程访问。
这种属性主要有:Active属性用来确定窗体是否获得输入焦点。
ActiveMDIChild这个函数将返回当前活动的子窗体。
DropTarget属性用来指定窗体是否是拖放操作的对象。
Parent属性用来设定包含窗体的窗口控件,通常是另一个窗体。
如果窗体没有包含它的控件,那么它的Parent属性为nil。
2)问:Windows窗体有很多样式,比如对话框,弹出窗口。
如果我要控制窗体的边界样式,应该怎么办?答:属性BorderStyle可以指定窗体边界的外观和行为。
它一共有六种可能的取值。
bsDialog表示大小不可变的标准的对话框边界。
bsSingle表示大小不可变的单线边界。
C++Builder的基本功能我们用高级语言写程序,我们很得意,因为高级语言比较接近人类的语言,使我们用起来得心应手,所以我们当然得意。
但我们更得意的一定是让程序代码赶快变成可执行文件。
无论是在写代码的过程,还是最后要编译成可执行文件,都需要有一个工具存在。
这一工具一般称为编程集成环境(IDE)。
之所以称为集成,是因为从写代码到最后软件的出炉,我们需要它的地方实在太多了,这里列出其中最重要的功能项。
1、代码编辑:方便的代码编辑功能。
尽管你可以使用记事本、Word或其它任何文本编辑器来写代码,但除非特殊需要,否则那将是极为低效的方法。
相反,现在的编程集成环境,都相当的智能,举例如:代码自动功能,可以在很多情况下自动完成我们所需的代码,既准确还迅速。
Borland公司出品的编程集成环境不仅有常见的关键字高亮等功能,还支持代码模板,支持键盘宏,同样支持高级的脚本插件功能。
2、界面设计:可视化的程序界面设计功能。
你所要产生的窗口,在设计期间就真实地出现,包括字体、颜色和定位。
比如:你不仅可以插入falsh的动画,而且无需运行,就直接可以在你的界面上看到该动画的演播,这是别的编程环境不能做到的。
3、程序编译:这是编程工具的主要功能。
我们写的代码在成为机器能懂的可执行程序时,必须通过编译。
4、程序调试:如何尽量减少你程序的BUG呢?没有编程集成环境提供的强大调试功能,我们做的程序将毫无质量保证。
5、代码优化:Borland 提供的编译器,不仅在编译速度上一直在美国屡获大奖,而且其代码自动优化功能一直领先对手几近一个时代。
使用编程集成环境,我们可以轻松获得更快更优的最终可执行程序文件。
6、辅助程序安装:程序的安装已属于另外一种工具的范畴,但我们仍可以通过编程集成环境来决定最终生成单一可执行文件,还是带有其它动态库。
如果是后者,我们还可以通过集成环境来检查程序运行时调用了哪些动态库文件。
C++Builder 提供的功能远不止我上面所说的,并不是因为我嘴笨,而是我认为对一个工具,你只有动手使用,才会真正了解它。
C语言编程规范1. 基本要求1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。
1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。
1.3 尽量使用标准库函数和公共函数。
1.4 不要随意定义全局变量,尽量使用局部变量。
1.5 使用括号以避免二义性。
2.可读性要求2.1 可读性第一,效率第二。
2.2 保持注释与代码完全一致。
2.3 每个源程序文件,都有文件头说明,说明规格见规范。
2.4 每个函数,都有函数头说明,说明规格见规范。
2.5 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。
2.7 常量定义(DEFINE)有相应说明。
2.8 处理过程的每个阶段都有相关注释说明。
2.9 在典型算法前都有注释。
2.10 利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位,定义Tab为 6个字节。
2.11 循环、分支层次不要超过五层。
2.12 注释可以与语句在同一行,也可以在上行。
2.13 空行和空白字符也是一种特殊注释。
2.14 一目了然的语句不加注释。
2.15 注释的作用范围可以为:定义、引用、条件分支以及一段代码。
2.16 注释行数(不包括程序头和函数头说明部份)应占总行数的 1/5 到 1/3 。
3. 结构化要求3.1 禁止出现两条等价的支路。
3.2 禁止GOTO语句。
3.3 用 IF 语句来强调只执行两组语句中的一组。
禁止 ELSE GOTO 和 ELSE RETURN。
3.4 用 CASE 实现多路分支。
3.5 避免从循环引出多个出口。
3.6 函数只有一个出口。
3.7 不使用条件赋值语句。
3.8 避免不必要的分支。
3.9 不要轻易用条件分支去替换逻辑表达式。
4. 正确性与容错性要求4.1 程序首先是正确,其次是优美4.2 无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。
4.3 改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。
C++需要掌握:类、构造函数、析构函数、函数重载、运算法重载;私有成员、公有成员、保护成员的作用域。
一:安装1、找到INSTALL文件夹里,双击Setup,注册码可从注册机中获得。
安装时选择custome方式,最好装在c盘(即使装在D盘,重做系统后也必须重装)。
2、注意一些选项勾选去掉就可以,不装VisiBroker和interbase,可以不备份uninstall信息。
3、安装完成后,重新启动计算机,打开BCB,会提示注册,再打开注册机,将所给的三个代码全部输入到注册机中,注册机会自动给出第四个代码,将其粘贴到空白选项内,即可完成注册。
4、Win7系统注意:帮助文档安装不上的需要另外安装一个更新包,将帮助文档连接上即可,此更新包叶连杰有。
此外还会出现管理权限问题,可通过各盘右键单击,属性->安全->编辑中将所有用户的完全控制打钩即可。
二:开始运行1、创建工程File->New->Application2、修改Tabsize,菜单tools->Editor Option->Tab Stops=43、保存:创建一个工程目录,下建sourse子目录,用于存放工程源文件。
会先提示保存窗体和类的名字,一般名字前加U表示Unit,窗体文件前面加UForm,再保存工程名一般名字前面加个Pro。
4、文件存放位置:通过Project->Options->Directories/Conditionals来设置,将运行程序产生的可执行文件、OBJ文件分别放在相应文件件内。
通常Debug source path内输入$(BCB)\source\ ;Intermediate output 内输入debug(相应文件存入debug内),Final output 内输入exe。
若要在上层文件夹内创建以上两个文件可在相应的输入前加..\ 。
为了产生的文件可以在没有C++Builder的计算机上运行还要通过Project->Options->Linker内取消Use dynamicRTL选项的勾选、Project->Options->Packages内取消Build with runtime packages选项的勾选最后单击Complier->单击Release。
C++ Builder 集成开发环境(上)介绍一个新软件,总免不了要介绍该软件的用户界面,如菜单、工具条等等的使用方法,也许有的朋友会说“我的E 文不错,又有过使用IDE 编程开发的经验,所以这一步可以省了。
”,但所谓“磨刀不误砍柴功”,CBuilder 集成开发环境具有相当丰富的功能,如果能够熟练掌握这些功能,势必会大大提高我们的工作效率。
当然,仅仅通过短短的讲座没有办法在短时间内对CBuilder 集成开发环境进行详细的介绍,但心铃仍然希望借此大家能对CBuilder 的使用和操作有一个初步的了解,并为进一步学习打下一个良好的基础。
CBuilder 集成开发环境采用了浮动式窗口/工具条的界面风格,如图2-1所示。
缺省的集成开发环境由主菜单、工具条、元件面板、对象浏览器、窗体编辑器、代码编辑器和类浏览器组成,用户还可以通过View 菜单中的一系列命令来定制自己习惯的窗口布局。
菜单CBuilder 的菜单命令非常多,主菜单就有10个菜单栏,上百个菜单项,另外还有众多右键关联菜单。
主菜单和关联菜单一起涵盖了CBuilder 集成开发环境支持的所有操作命令。
许多常用菜单命令都有加速键,如F9(调试运行)、Ctrl+S (保存文件)等,熟练使用这些加速键可以提高编程时的工作效率。
主菜单按不同用途分为10个菜单栏。
File菜单中主要包括与文件操作有关的命令,其中最常图2-1:C++ Builder IDE 的外观和组成用的是新建工程(New Application )、打开工程(OpenProject )、打开文件(Open )和保存(Save )。
另外一个非常有用的命令是新建对象(New ),它会调出如图2-2所示的对话框。
CBuilder 中有许多预先建立的对象模版和向导,如各种类型的工程、不同用途的窗体等等,从New Items 对话框中选择一种对象模版或向导,可以让你按照向导的指示生成一个新的对象,许多高级的功能都可以通过这种方式实现,从而避免了大量手工重复性的劳动。
c 编程规范C 编程规范是用来规范 C 语言程序代码风格和编写规范的一系列准则。
遵循 C 编程规范可以提高代码的可读性、可维护性,减少错误和 bug 的发生。
以下是一些常见的 C 编程规范建议:1. 代码缩进:缩进应该使用相同数量的空格符或制表符,一般为 4 个空格或一个制表符。
缩进可以使代码结构更清晰,便于阅读。
2. 命名规范:变量、函数和常量的命名应该具有描述性,能够准确反映其用途和含义。
使用驼峰命名法或下划线命名法是常见的命名风格。
注意避免使用与 C 语言关键字相同的名称。
3. 注释规范:代码中应该包含必要的注释,用于解释代码的逻辑、实现细节和算法。
注释应该清晰明了,不要出现拼写错误或过多的冗余信息。
4. 函数长度:函数的长度应该适中,不要过长。
一般来说,一个函数应该只负责一个具体的功能,如果函数过长应该考虑分割成多个子函数。
5. 模块化设计:程序应该使用模块化的设计原则,将功能相似或相关的代码块组织成不同的模块或文件。
这样可以提高代码的可维护性和可重用性。
6. 错误处理:程序应该正确处理各种可能发生的错误和异常情况。
避免简单地使用错误代码或忽略错误,而是采取适当的错误处理措施,例如返回错误码或抛出异常。
7. 变量声明:变量应该在使用前先声明,并且尽量在被使用的代码块的起始处进行声明。
声明时应给予适当的初始值,以避免使用未初始化的变量。
8. 代码复用:避免重复的代码和冗余的逻辑。
可以通过编写可重用的函数、使用循环和条件语句等方式来提高代码的复用性和可读性。
9. 括号的使用:括号的使用是保证代码逻辑准确性的重要方式之一。
建议在 if、for、while、switch 等语句块的使用中,使用括号来明确代码块的范围,以避免出现逻辑错误。
10. 代码格式:代码应该有一致的格式,用以增加可读性。
应避免使用过长的代码行,一般建议每行代码长度不超过 80 个字符。
综上所述,C 编程规范是编写高质量、可维护代码的基本准则。
C++Builder (BCB)编程规范 之 鲨鱼美美版
本鲨于2002年出道,直今的2004年,快有两年啦! 时间流逝可真快! 毕业后共打了四份工,全部是做软件书写师。
都涉及到数据库的领域!.不过薪金也逐步提高了 从50,130,150,到250英镑。
每次进一家公司,不是去做开发而是做维护。
所以修改代码,调试程序,找出BUG。
简直是莫大的痛苦,尤其是修改那些用管C语言人开发的程序,乃是今生莫大的痛苦呀!就逐步总结了一些可行的经验。
1 单元
每个单元只包含一个类的声明。
类中不永许写类的实现,类成员函数不超过20个,需要被外界调用的成员函数放在Public外,其余的全部放在Proteced,明确的不想让继承者修改的话放在Private中。
包含的头文件 也就是#include <VCL.h> 在头文件应该包含该类所需要的类型的。
如果cpp也包含了,那么头文件就不要在包含,使用Class vcl; 告诉头文件有些需要的已经在CPP文件中包含啦!另外对不再使用的包含文件要及时的清除出去,否则可能碰到连接出错的问题,bcb的连接提示少的可怜啊!就有苦头吃拉!还有要记得给自己加进的包含写注解啊!!
2 实现文件中
千万不要定义全局变量和全局函数,至于会发什么问题啦,只有碰到了几十万的代码,五六个项目集合,一两百个单元所可能发生的问题。
那该怎么办了? 简单把它归到所在单元的类声明中去。
函数的实现代码行不要超过200行 包括之间的空格.因为人的暂时记忆能力不强啊! 为什么文章要分段落啊! 就是人暂存上下文的关联的内存是有限的呀
3 组件的属性设置和数据库的字段表名:
一般下都会在对象检查器中的设置。
当调试过不去而你又忘记了设置
的属性时的哭相,是多么地可气啊!而且BCB没有组件之间的比较,否则的话可以拖个同样的新组件来比一比到底哪里设置的不同! 所以没有办法只好麻烦些直接在代码中设置吧! 虽然很麻烦 却可以节省比较可观的时间呀! 要不就像 kateboy (老公)由于设置了ADOConnection 的Attrib里中的自动事务处理。
每当退出程序时就报错!从早上跑到各大BCB的QQ群中求人帮助,只到最后吃晚饭才惊奇发现了毛病所在! 还有一次不知那各BCB老大自报家丑 说自己吸了5包烟抓改BUG直到凌晨时分,方发现了它,原来是书写错误。
再者就是数据库的表名和字段名。
在写数据库中,一般会这样写ADOQuery->SQL->Text=”Select * From TabName Where
Name=’wowo’ and sex=’b’”;
ADOQuery->FieldByName(“Sex”)->AsBoolean=true;
程序中到处都是这样写,数据库中的字段名一当改变。
你得到处去修改,当然用BCB的查找功能帮一大忙,可是总有漏网之鱼吧! 而且BCB 的语法检查不会到字苻串中,每当运行到该处时,虽然程序很明确的告诉你字段不存在,你也很清楚知道如何去修改。
但找到它,再一次运行调试。
可这段时间以及这时的心情就没有那么好了!每次放同样的错误,每次浪费同样的时间,虽然说少。
可每天就8个小时的工作时间。
这样频繁的浪费,心情一次比一次不好了,工作效率就越低,只好晚上加班继续干!若次次因为它要去加班,则那有时间去炮轰美媚啦!更不用说挤出点时间学习啦!身体也每况俞下!
解决办法就是使用个单元名为:DBStruct 。
在该单元中用结构体来存放数据库的表名和字段。
列如:typedef struct{ stirng Name;
string sex;String TabName} MyTab;
MyTab m_dogTab;
ADOQuery->FieldByName(m_dogTab.Sex)->AsBoolean=true;
4 单元之间的引用
可以说单元其实就是类,虽然我们写类的时间较少。
但TFORM就是个已
经声明好的类,我们就给它添加功能就行了!类之间最好时少耦合,多内聚。
最好不要在单元之间使用回调的功能和数据成员。
直接使用函数和属性。
5命名
一般下的组件的命名是 Form1 Frm_Main Edit1 Edt_Name 等 你也可以不缩写!
其实不很长 无非是全局静态常量整形指针 gcs_ipMyAge; 一般情况下是 g_iMyAge 顶多三个或者是四个罢了!最重要的是能一眼区分出来!
6 注解:
我很反对注解占用一行,尤其是在代码头上,极大的防碍了阅读代码! // 这是我写的 N年钱
adoquery->sql->text=sName;
为什么不这样了
adoquery->sql->text=sName; // 这是我写的 N年钱当你看不懂代码时就向右看一看注解,就明白.
7 函数入口要检查参数.
OK !到此为之 2004-5-28。