C++Builder (BCB)编程规范
BCB第一讲C++ Builder简介

第一讲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程序就象搭积木一样简单有趣。
C++Bulider编码标准

第一章命名约定 (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等。
BCB基础

第一部分:基础入门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

C++Builder的基本功能我们用高级语言写程序,我们很得意,因为高级语言比较接近人类的语言,使我们用起来得心应手,所以我们当然得意。
但我们更得意的一定是让程序代码赶快变成可执行文件。
无论是在写代码的过程,还是最后要编译成可执行文件,都需要有一个工具存在。
这一工具一般称为编程集成环境(IDE)。
之所以称为集成,是因为从写代码到最后软件的出炉,我们需要它的地方实在太多了,这里列出其中最重要的功能项。
1、代码编辑:方便的代码编辑功能。
尽管你可以使用记事本、Word或其它任何文本编辑器来写代码,但除非特殊需要,否则那将是极为低效的方法。
相反,现在的编程集成环境,都相当的智能,举例如:代码自动功能,可以在很多情况下自动完成我们所需的代码,既准确还迅速。
Borland公司出品的编程集成环境不仅有常见的关键字高亮等功能,还支持代码模板,支持键盘宏,同样支持高级的脚本插件功能。
2、界面设计:可视化的程序界面设计功能。
你所要产生的窗口,在设计期间就真实地出现,包括字体、颜色和定位。
比如:你不仅可以插入falsh的动画,而且无需运行,就直接可以在你的界面上看到该动画的演播,这是别的编程环境不能做到的。
3、程序编译:这是编程工具的主要功能。
我们写的代码在成为机器能懂的可执行程序时,必须通过编译。
4、程序调试:如何尽量减少你程序的BUG呢?没有编程集成环境提供的强大调试功能,我们做的程序将毫无质量保证。
5、代码优化:Borland 提供的编译器,不仅在编译速度上一直在美国屡获大奖,而且其代码自动优化功能一直领先对手几近一个时代。
使用编程集成环境,我们可以轻松获得更快更优的最终可执行程序文件。
6、辅助程序安装:程序的安装已属于另外一种工具的范畴,但我们仍可以通过编程集成环境来决定最终生成单一可执行文件,还是带有其它动态库。
如果是后者,我们还可以通过集成环境来检查程序运行时调用了哪些动态库文件。
C++Builder 提供的功能远不止我上面所说的,并不是因为我嘴笨,而是我认为对一个工具,你只有动手使用,才会真正了解它。
BCB01

基础知识
什么是C++ Builder
Borland C++Bilder 是Interprise(Borland)公司推出 的基于C++ 语言的快速应用程序开发(Rapid Application Development,RAD)工具,它是最先进的开发应用程序 的组件思想和面向对象的高效语言C++融合的产物。 C++Builder 充分利用了已经发展成熟的Delphi 的可 视化组件库(Visual Component Library,VCL),吸收 了Borland C++ 这个优秀编译器的诸多优点。 C++Builder 结合了先进的基于组件的程序设计技术, 成熟的可视化组件库和优秀编译器,调试器。C++Builder 已经成为一个非常成熟的可视化应用程序开发工具,功能 强大而且效率高。
C++Builder5.0的集成开发环境
• 1. C++Builder 5.0的IDE主界面
标准组件选项卡
• 标准组件选项卡上的组件是构成Windows应用 程序窗口最常用的标准元素,它们包括15种组 件。主要有:主菜单(MainMenu),右键菜单 (PopMenu),标签(Label),备注 (Memo),命令按钮(Button),单选按钮 (GroupBox),复选按钮(CheckBox),列 表框(ListBox),下拉式列表框 (ComboBox),滚动条(ScrollBar),组框 (GroupBox)和单项按钮组框(RadioGroup)。
C++Builder的特色
C++builder课程设计要求

附录:源程序
//-------------------主窗体 查询与浏览--------------------------------------#include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "Unit2.h" #include "Unit3.h" #include "Unit4.h" #include "Unit5.h" #include "Unit6.h" #pragma package(smart_init) #pragma resource "*.dfm" TFmain *Fmain; bool onshow=false; __fastcall TFmain::TFmain(TComponent* Owner) : TForm(Owner) { } void __fastcall TFmain::N5Click(TObject *Sender) { Close();//退出程序 } void __fastcall TFmain::SpeedButton3Click(TObject *Sender) { DataModule3->ADOQuery1->First() ; StatusBar1->Panels->Items[0]->Text="数据指向第一个";
二、系统分析(需求分析)
1.需求分析: ① 能够输入学生的综合情况的输入、修改以及删除; ② 能够实现对学生信息的浏览; ③ 能够实现对学生进行查询; ④ 设计系统封面并由计时器控制; 2.系统性能要求: ① 系统安全、可靠; ② 功能齐全; ③ 操作方便、界面友好; ④ 易于维护和扩充。 3.系统的功能分析: 资料维护:系统维护包括对各种表记录的修改、删除、添加等操作。 资料维护:对数据表中的信息进行浏览。 系统查询:可以按学号、姓名等相关信息进行详细或模糊查询。
C语言编程规范

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 改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。
BCB编程过程中的各种问题集锦

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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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。