C++Builder 6怎么编写C程序?

C++Builder 6怎么编写C程序?,第1张

C++builder中都是按工程组织文件的。

可以这样建立c语言程序。

1.菜单:file/new

2.选择 console wizard

3.选择source type(单选钮) 为c,就可以了。 C++ builder 的C和通常的C 有点不一样 还是推荐你用标准C的编译器哈 DEV C++

摘要:本文详细介绍了利用C++ Builder6.0 设计开发车辆 管理 系统的过程,涉及到了类的设计,数据库访问技术,对数据库表的 *** 作,Access数据库的设计等

关键词:C++ Builder6.0开发 ADO Access数据库

C++ Builder作为一个快速的可视化开发工具,受到广大编程爱好者的喜爱。利用该工具可以快速地建立各种应用,笔者以开发一个“车辆管理系统”为例来说明如何开发一个管理系统的过程,以及相关的技术。

1 确定需求

对于不同的管理系统有不同的需求模型,我们仅以“车辆管理系统”为例来确定需求。主要有以下系统需求:

(1)管理功能,能够对车辆派遣单(表)等进行添加、删除、修改的 *** 作;

(2) 查询功能,能够对各表单的数据进行查询;

(3) 打印功能,能够按指定的格式生成Word文件,并打印;

(4) 统计分析功能,如统计驾驶员和车辆的行驶公里数等。

涉及到的管理表单主要有车辆派遣单、加油情况单、车辆保养单、行驶卡管理表等。限于篇幅关系本文只讨论满足需求1和2的情况。

2 确定使用的技术

使用C++ Builder6.0作为开发工具,使用Microsoft Access2000作为后台数据库,根据车辆派遣单、加油情况单、车辆保养单、行驶卡管理表建立相应的数据表;访问数据库采用ADO技术等。

3 设计相应的类

a)类TMainFrame,是主框架,是整个系统的基本界面,也是其它界面控件的容器;

b)类TCheliangpaiqian,车辆派遣类,包括有车辆派遣表记录的插入,修改、删除、统计等方法(成员函数);

c)数据库通用访问类TDBAccess,是一个TDataModule类的子类,它的主要功能是为访问各种表单(车辆派遣单、加油情况单、车辆保养单、行驶卡管理表等)提供统一的数据库访问接口,它封装(包含)了TADOConnection,TADOTable,ADOQuery三个ADO数据库类;

d)其它的表单处理类,如加油情况类等;

e)其它辅助类及界面对话框等,如查询对话框,删除确认对话框,修改查看记录对话框等。

4 数据库设计

考虑到系统的简单易用性以及不涉及到 网络 连接的需求,使用Access作为后台数据库。打开Microsoft Access2000,分别创建车辆派遣单(cheliangpaiqian)、加油情况单(jiayouqingkuang)、车辆保养单(cheliangbaoyang)、行驶卡管理表(xingshika)等,如下图:

图1 数据库设计

车辆派遣表主要记录车辆派遣的情况,包括车辆型号、车牌号,到达时间地点,以及何人因何事用车等信息。以此表为例,主要包括的字段为:

从上表可以看出,字段id为该表的主键,它地标识表中的记录。字段jiashiyuanname的内容不可为空。其它表的创建与此表类同,这里不再赘述。

5 程序设计

5.1 程序的界面设计与主框架TMainFrame

首先是程序的界面设计,界面力求简洁美观,利用C++ Builder提供的可视化控件可以很方便快速地设计出系统的界面,但由于C++ Builder提供的可视化控件样式过于单一,界面千篇一律。本系统在设计中采用了第三方的Skin控件,使系统界面更加美观,具有亲和力。在具体控件的布局与选用上,采用了人性化设计的理念。如下图:

图2 车辆管理系统

设计完界面后,为各个按钮添加行为代码。以车辆派遣模块为例,在主框架的头文件MainframeObj.h中加入车辆派遣类TCheliangpaiqian的头文件CheliangpaiqianObj.h,如下所示:

……

#include “CheliangpaiqianObj.h”

……

怎样在C++BUILDER6下使用 .ocx

本说明亦适合C++BUILDER的姐妹可视化工具Delphi.

首先要在windows下手工注册此.ocx,

regsvr32 usbVein.ocx

如果要从windows注销此.ocx ,加参数 /u

Regsvr32 usbVein.ocx /u

如果此 ocx 有版权Licensed, 还要在注册表下 导入注册项或写入标志,否则无法在IDE设计态使用此控件。

一、设法将OCX安装到 C++BUUILDER6 IDE下,先当成第三方控件一样使用。

1. 在BCB6 IDE下,先关闭工程,导入类型库:

IDE: Project --- Import Type Library

找到 usbVein.ocx 对应的 usbVein Library[Version 1.0] 出现 TFingerVein就是类名

注意下面的Unit目录名 C:\Program Files\Borland\CBuilder6\Imports\

点 Install , 注意产生的工程名 c:\program files\borland\cbuilder6\Lib\dclusr.bpk

如果要再次卸掉此OCX控件,就得打开此dclusr.bpk工程,删除三个OCX相关文件。

安装此OCX控件后,在控件组 ActiveX 下,出现 FingerVein控件,就是此OCX安装后的新控件。

2. 点下保存,以保存此控件的工程 dclusr.bpk,关闭工程,结束。

安装OCX产生的四个文件usbVein_OCX.CPP,usbVein_OCX.h

usbVein_TLB.cpp,usbVein_TLB.h 称为此OCX的类型库

4. 从BCB6卸掉不用的OCX控件步骤:

从IDE打开工程c:\program files\borland\cbuilder6\Lib\dclusr.bpk

用Remove 钮删除三个文件 usbVein_OCX.cpp usbVein_OCX.dcr, usbVein_TLB.cpp

点保存,点build dclusr.bpk 运行,提示OCX控件被删除,从控制组ActiveX中消失。

二、OCX不安装成IDE控件的使用方法

客户源直接使用OCX,必须要有类型库四文件 usbVein_OCX.cpp,usbVein_OCX.h

usbVein_TLB.cpp,usbVein_TLB.h

前面两个要在源程序分别用include嵌入,.cpp中嵌入.cpp,.h中嵌入.h,它们会自动调用后两个,后两个要放到 C:\Program Files\Borland\CBuilder6\Imports\中。

这种方法在程序设计态就不能在窗体直接使用OCX控件,只能用 new 的动态方式使用。

产生ocx类型库的方法:跟上面安装控件类似,但不要点install,而要点 Create Unit.,将产生四个文件。

程序中就可创建对象了。

# include “usbVein_OCX.cpp”

TFingVein *FingerVein1

FingerVein1=new TFingerVein(this)

FingerVein1->openUSB( )

FingerVein1->closeUSB()

delete FingerVein1

三、OCX的自注册

OCX对象有两种使用方法:

如果安装成直接控件的方式,设计时就可直接在窗体上放成控件,但这种方式,程序运行前,就必须先要在系统中已注册OCX,否则,会出现“类未注册”的错误。所以建议改用动态创建对象的方式,即new创建.

如果不在程序窗体内放OCX控件,就可用 new 动态创建对象,好处是 OCX控件不会在主界面上显示(你也可以设置成显示),运行时,OCX还可以在自已的程序中自注册,源码子程序如下:

// RegOcx.cpp ,可以用include 嵌入到自已的源程序中

include <Registry.hpp>// .OCX自注册子程序

boolRegisterOCX(String ocxf)// .OCX的全文件名

{

bool success=false

DWORD (__stdcall * DllRegisterServer)()

DllRegisterServer=NULL

HINSTANCE hOCX=NULL

hOCX=LoadLibrary(ocxf.c_str())

if (hOCX)

{

(void * &)DllRegisterServer=

(void *)GetProcAddress(hOCX,"DllRegisterServer")

if (DllRegisterServer)

{

success=DllRegisterServer()==S_OK

FreeLibrary(hOCX)

}

}

return(success) // Success:1 Fail:0

}// DLL和OCX 自注册子程序


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

原文地址: https://outofmemory.cn/yw/11504122.html

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

发表评论

登录后才能评论

评论列表(0条)

保存