可视化程序设计-实验指导书

上传人:痛*** 文档编号:163572453 上传时间:2022-10-22 格式:DOC 页数:44 大小:11.48MB
收藏 版权申诉 举报 下载
可视化程序设计-实验指导书_第1页
第1页 / 共44页
可视化程序设计-实验指导书_第2页
第2页 / 共44页
可视化程序设计-实验指导书_第3页
第3页 / 共44页
资源描述:

《可视化程序设计-实验指导书》由会员分享,可在线阅读,更多相关《可视化程序设计-实验指导书(44页珍藏版)》请在装配图网上搜索。

1、可视化程序设计实验指导书重庆科技学院电气与信息工程学院测控技术系2011年10月目 录第一部分 C+简介1一、C+语言和面向对象11、C与C+12、类(Class)13. 封装24. 继承25. 重载36. 多态3二、Windows的运行机制41、Windows的元素-窗体42、Windows的动力-消息4第二部分 BCB简介4一、BCB的历史与未来4二、BCB的定位5三、BCB与其它语言的比较51、与Delphi的比较52、与VC+的比较5四、重要的不可视组件与BCB类51、AnsiString52、Tstrings与TStringList6五、BCB6的一般编程步骤6第三部分 可视化程序设

2、计实验项目6实验一 C+ Builder初步应用6实验二 口令字的实现8实验三 简单的文字处理程序11实验四 定时器的使用14实验五 串口通讯程序的实现19实验六 数据库的初步应用21实验七 使用SQL连接数据库25实验八 网络通信28附表 C+Builder常用控件属性、方法表35第一部分 C+简介一、C+语言和面向对象1、C与C+ C+是更好的C和面向对象的C; C+的基本单位是类(Class),它关注的是自然界中稳定事物,它有固定的属性(Property)和方法(Method),只要用类把事物描述好存入库中,然后根据需要改变这些事物联系起来的方法,就能达到以不变应万变的目的,这是面向对象

3、程序设计的基本思想; C的基本单位是函数(Function),它关注的是事物之间的联系,而这种联系是变化的、不稳定的,只要有一点小变化,就会引起整个系统功能的大变化。2、类(Class) 类的开式类似于C语言中的结构体,只是比结构体多了成员函数(Member Function)typedef struct _Entity int ID; char Caption50; char Name50; char Type250; char CreatedTime20; char Keyword200; Entity;/-class TEntityprivate: int ID; char Captio

4、n50; char Name50; char Type250; char CreatedTime20; char Keyword200;public: TEntity(int id, char* caption = NULL, char* name = NULL, char* type = NULL, char* createdtime = NULL, char* keyword = NULL); TEntity(TEntity& entity) ID = entity.ID; strcpy(Caption, entity.Caption); strcpy(Name, entity.Name)

5、; strcpy(Type, entity.Type); strcpy(CreatedTime, entity.CreatedTime); strcpy(Keyword, entity.Keyword); TEntity(void); void WriteToFile(const char* FileName); void ReadFromFile(const char* FileName);一般说来一个类的会在两个文件中实现: 在头文件(*.h)中对类进行说明,象上一页的代码就应放在头文件中。 在源文件(*.CPP)中完成类成员函数的实现,象上面WriteToFile与ReadFromFil

6、e的具体实现的代码就应放在CPP文件中。3. 封装 通过上面的形式,对类中的私有成员进行了封装,而公有成员函数则是该类对外统一的接口,这种封装可以使类之间的减少相互干扰。这样从外面来看,类就是一个通过接口能完成一定功能的“黑匣子”,而用户根本不需要关心类的内部实现情况。4. 继承 通过继承,可以子类具有父类的的所有特性(成员数据与成员函数)。(1)继承的方式 继承方式有三种: public 公有方式 private 私有方式 protected 保护方式继承方式决定了派生类对继承基类属性的使用权限继承方式说明公有继承 public基类的public和protected成员被派生类继承后,保持原

7、来的特性私有继承 private基类的public和protected成员被派生类继承后,变成private成员保护继承 protected基类的public和protected成员被派生类继承后,变成protected成员无论何种继承,基类的private成员都不能被派生类访问(2)派生类的构造函数与析构函数基类的构造函数与析构函数不能被派生类继承。派生类对象建立时,先执行基类的构造函数,然后执行派生的构造函数。对于析构函数来说,其顺序刚好相反。(3)派生类成员函数的重载当派生类中需要扩展或修改某些成员函数的功能时,则在派生类中要重新声明这些函数,然后在实现部分重新实现被声明的函数。 如果是

8、在原有功能进行扩展,则要在派生类函数中调用基类的函数。 如不需要原有功能,也可以不调用基类的函数。 这就是函数的重载,它可以用同一个函数名实现不同的功能。5. 重载这是C+不同于C语言的一个重要特征。它允许几个功能相似的函数共有一个函数名称。 实际上,C+通过一种特殊的命名技术来解决重载的问题,通过参数的个数和参数的类型来确定特定的函数。但不能通过不同的函数返回值来进行区分。int fn(int x);folat fn(int x);double fn(int x);long double fn(int x);int abs(int x);float abs(float x);double a

9、bs(double x);long double abs(long double x);正确 不正确6. 多态用相同的指令,调用不同的函数。(1)编译时多态:如前面的函数重载实现的就是编译时多态。它可以用相同的函数名,根据函数参数的不同(数量或类型)去实现不同的功能。但调用什么函数去实现什么功能却是在编译时就已确定,并以后不能更改,是一种静止的多态。(2)运行时多态:它是利用虚函数实现的。用同一条指令,可以根据程序运行时的不同的情况去调用对应的函数去实现不同的功能。 如薪水的计算或几何形状的显示。CShap *pShape6;for(int i=0; idisplay();二、Windows的

10、运行机制1、Windows的元素-窗体2、Windows的动力-消息 多任务成为Windows的基本功能,因此引入了事件驱动机制。 它不同于过程驱动,没有固定的流程,而是等待用户或系统发出的指令,再来响应。第二部分 BCB简介一、BCB的历史与未来Borland 公司是历史上编程工具第一开发商。 Delphi是Borland公司在C+领域惨败后的一个突破点,是RAD(快速应用程序开发)的领导者。BCB就是Delphi for C+,它与Delphi十分相似:l 程序界面相同; l 使用相同的程序柜架VCL ; l 相同的开发过程; l 不同的只是语法。 新的VCL 有望用C+ 重写,使BCB

11、摆脱Delphi 的影响。 二、BCB的定位语言工具应根据自身情况和目标进行选择,没有最好的工具,各种工具都有用。BCB定位于Windows桌面应用程序开发,有强大的可视化开发能力,界面开发快;对于桌面数据库开发有一定的优势;开发系统级程序(驱动程序)非常困难。三、BCB与其它语言的比较1、与Delphi的比较l 由于Windows是由C语言写成,较Delphi调用API(应用程序接口)更为方便;l 更适合有C语言基础的程序员;l 但Delphi的资源更丰富;2、与VC+的比较l 它们使用了不同的程序框架,VC+使用MFC(微软基础类库),BCB使用VCL(可视化组件库)l 从层次上VCL优于

12、MFC,能做到快速开发;l 不过MFC与Windows同出一门,MFC有微软的强力支持;l VC+跨平台的兼容性更好;l VC+运行时间长,积累的资源最多;l C+是一种语言标准,好比图纸,而BCB与VC+则是根据这一图纸生产的不同的产品;四、重要的不可视组件与BCB类1、AnsiString 是功能很强的字符串类,利用构造函数可以从其它类型生成AnsiString类型; 可以用+进行连接,还重载了,=,!=等运算符,除进行字节比较外,还可以用AnsiCompare方法进行中文比较; 它还有众多强大的方法,见表3.212、Tstrings与TStringList 用于访问多行文本,可以看到Li

13、nes属性就是Tstrings类对象指针; Tstrings类的Strings属性就是一个AnsiString类对象的数组;本质上是一个double类型的浮点数; 0 - 1899年12月30日零点 计时起点 37750. - 2003年5月9日22点10分35秒 整数部份-距离计时起点的天数 小数部份-当前时间与全天24小时的比值 可以将TDateTime对象用作浮点数,也可以把浮点数转换成TDateTime,实际上可以方便地在时间类型与其它类型间完成转换; 用Now()函数可以取当前时间; 用DayOfWeek可以取出星期 0 1 2 3 4 5 6 Sunday Monday Tuesd

14、ay Wednesday Thursday Friday Saturday 五、BCB6的一般编程步骤 File|New开始一个项目 设计界面,设置组件属性 撰写组件事件处理程序 运行程序 对程序中的错误进行调试和修改 在上面的过程中不要忘记随时保存文件第三部分 可视化程序设计实验项目实验一 C+ Builder初步应用一、 实验目的通过一个简单的实例,让学生熟悉C+Builder集成开发环境,掌握利用C+Builder进行应用程序开发的步骤,初步能完成简单的程序设计,掌握基本的调试手段和调试方法,熟悉简单控件的使用方法。二、 实验设备1台PC、CB6开发环境等。三、 程序功能点击“隐藏”按钮

15、,“Hello World”消失,按钮变成“显示”;再点击“显示”按钮,“Hello World”又显示出来,同时按钮变成“隐藏”。四、 设计步骤1、 从Standard面板放一个Label控件和一个Button控件,建立如图1-1界面:图1-1图1-2图1-4 图1-3 图1-5 2、有关控件属性设置如下表控件类型控件名称属性值ButtonButton1Caption“隐藏”LabelLabel1Caption“Hello World”3、在“隐藏”按钮上双击或如图1-2选择对象观察器(Object Inspector)的事件(Event)页的OnClick项,为Button1按钮添加单击事

16、件响应代码如下void _fastcall TForm1:Button1Click(TObject *Sender)/此行代码自动生成,不用书写 if(Button1-Caption=隐藏) Button1-Caption=显示; Label1-Visible=false;/Visible属性为false表示该控件不可见 else Button1-Caption=隐藏; Label1-Visible=true; /Visible属性为true表示该控件可见 /此行代码自动生成,不用书写4、 单击File-Save Project As保存文件,如图1-3。保存时最好为每一个程序新建一个文件夹来

17、存放文件,如图1-45、单击运行按钮,如图1-5,运行程序。五、 C+Builder项目文件介绍图1-61、 一般情况下在运行该程序以前,C+Builder项目中只有图1-6中前6个文件,就是所谓的源程序。1)Project1.bprC+Builder的项目文件(Borland Project),它统一管理着所有的源程序,通过打开它可以打开C+Builder项目;2)Project.cpp主要包含了WinMain( )函数,WinMain( )函数的作用相当于Turbo C中的Main( )函数。它实际上完成应用程序的初始化、创建如图1 这样的窗体。这里顺便说一句,要深入学习C+Builder

18、编程,除了要对各种控件能熟练使用以外,还要深入了解Windows下程序运行的机制,打开黑匣子。3)Unit1.h窗体Form1是用一个类来实现的,Unit1.h是这个类的头文件,在这个头文件中可以看见在界面中所放的每一个控件都对应成这个类的一个成员变量。添加的每一个事件(消息)响应,如“隐藏”按钮的单击事件响应,都对应成这个类的一成员函数。当然,这些操作都会自动完成,我们也可以手动进行操作。了解这些将有助于我们调试程序。4)Uni1.cpp它是窗体Form1的实现文件,具体实现程序功能。上面的代码就添加在这里,它是我们最常用的一个文件,但它不能单独工作。5)Unit1.dfm它主要定义窗体的位

19、置信息以及外观信息。6)Project1.res 它是资源文件,2、 运行程序后,会增加后4 个文件。扩展名为EXE的Project1.exe是经链接后生成的可执行文件,可在Windows中直接运行;扩展名为Obj的文件,是对源程序编译后生成的目标文件,供链接程序使用以生成可执行文件;实验二 口令字的实现一、 实验目的通过验证用户输入的密码是否正确,让学生掌握常用标准对话框函数,并建立阅读英文帮助文件的习惯。二、 实验设备1台PC、CB6开发环境等。三、 程序功能验证用户输入的密码,如果正确则显示欢迎界面,如果密码错误,则提示用户重新输入,用户最多有三次输入密码的机会。可选做功能:1、密码可以

20、修改,并能保存到文件中;2、在验证密码时,密码从文件中加载;3、密码保存时不用明文的方式保存,用简单的算法对密码进行加密后保存(常用MD5加密方式)。四、 设计步骤1、 从Standard面板放一个Edit控件和一个Button控件,建立如图2-1界面。2、有关控件属性设置如下表控件类型控件名称属性值ButtonButton1Caption“确定”DefaulttrueEditEdit1PassWordChar*Text空值图2-13、为Button1按钮添加单击事件响应代码如下:void _fastcall TForm1:Button1Click(TObject *Sender) stati

21、c i=0; if(Edit1-Text=1234) ShowMessage(欢迎); else i+; if(i=3) ShowMessage(退出); Close(); else ShowMessage(口令错误+AnsiString(i)+次); Edit1-SetFocus();/Edit1控件设置焦点 4、运行程序,并思考为什么变量I被定义成静态变量?5、重新修改程序,让程序增加一些功能。void _fastcall TForm1:Button1Click(TObject *Sender) static i=0; if(Edit1-Text=1234) ShowMessage(欢迎)

22、; else i+; if(i=3) /ShowMessage(退出); Application-MessageBox(退出,错误,MB_OK+MB_ICONWARNING); Close(); else /ShowMessage(口令错误+AnsiString(i)+次); AnsiString msg; int nResult; msg=口令错误+AnsiString(i)+次n是否重新输入?; nResult=Application-MessageBox(msg.c_str(),提示, MB_YESNO + MB_ICONINFORMATION); if(nResult=IDYES)/根

23、据用户的输入确定是否继续输入密码 Edit1-SetFocus();/Edit1控件设置焦点 Edit1-Clear(); else Close(); 6、程序中新增加的功能主要是因为使用了MessageBox函数,下面是它的介绍,摘录自C+Builder的帮助文件,会看帮助是编程者必备的基本功。int _fastcall MessageBox(const char * Text, const char * Caption, int Flags);DescriptionUse MessageBox to display a generic dialog box a message and on

24、e or more buttons. Caption is the caption of the dialog box and is optional.MessageBox is an encapsulation of the Windows API MessageBox function. TApplication encapsulation of MessageBox automatically supplies the missing window handle parameter needed for the Windows API function.The value of the

25、Text parameter is the message, which can be longer than 255 characters if necessary. Long messages are automatically wrapped in the message box. The value of the Caption property is the caption that appears in the title bar of the dialog box. Captions can be longer than 255 characters, but dont wrap

26、. A long caption results in a wide message box.The Flags parameter specifies what buttons appear on the message box and the behavior (possible return values). The following table lists the possible values. These values can be combined to obtain the desired effect.ValueMeaningMB_ABORTRETRYIGNOREThe m

27、essage box contains three push buttons: Abort, Retry, and Ignore.MB_OKThe message box contains one push button: OK. This is the default.MB_OKCANCELThe message box contains two push buttons: OK and Cancel.MB_RETRYCANCELThe message box contains two push buttons: Retry and Cancel.MB_YESNOThe message bo

28、x contains two push buttons: Yes and No.MB_YESNOCANCELThe message box contains three push buttons: Yes, No, and Cancel.MessageBox returns 0 if there isnt enough memory to create the message box. Otherwise it returns one of the following values:ValueNumeric valueMeaningIDOK1The user chose the OK butt

29、on.IDCANCEL2The user chose the Cancel button.IDABORT3The user chose the Abort button.IDRETRY4The user chose the Retry button.IDIGNORE5The user chose the Ignore button.IDYES6The user chose the Yes button.IDNO7The user chose the No button.实验三 简单的文字处理程序一、 实验目的通过一个简单的文字处理程序,让学生掌握菜单控件、图像列表控件、RichEdit控件及常

30、用对话框控件的使用。二、 实验设备1台PC、CB6开发环境等。三、 程序功能本程序可以打开、修改和保存一个文本文件,是一个最简单的文字处理程序。四、 设计步骤图3-11、 从Standard面板放一个MainMenu控件,从Win32面板放一个ImageList控件和一个RichEdit控件,从Dialogs面板上放一个OpenDialog控件和一个SaveDialog控件,建立如图3-1所示界面。2、 有关控件属性设置如下表控件类型控件名称属性值OpenDialogOpenDialog1Filter文本文件|*.txt|所有文件|*.*SaveDialogSaveDialog1Filter文

31、本文件|*.txt|所有文件|*.*MainMenuMainMenu1ImageListImageList1FormForm1MainMenuMainMenu1RichEditRichEdit1ImageListImageList13、 双击ImageList1控件,出现如图3-2界面,点击Add按钮,为它加入适当的图标,最后的结果如图3-2所示。图3-2图3-34、双击MainMenu1控件,出现如图3-3界面,为主菜单加入适当的菜单项,并设置快捷键。各菜单项的属性设置如下表。控件类型控件名称属性值MenuItemmiFileCaption文件(&F)miFileOpenCaption打开(

32、&O)ImageIndex1ShortCutCtrl+OmiFileSaveCaption保存(&S)ImageIndex2ShortCutCtrl+SN1Caption-miFileExitCaption退出(&X)ImageIndex-1ShortCutCtrl+X5、关闭菜单设计器,回到Form1,打开主菜单如图3-4,依次点击各菜单项,并加入对应响应代码如下:_fastcall TForm1:TForm1(TComponent* Owner) : TForm(Owner) sFileName=MyText.txt;/-void _fastcall TForm1:miFileOpenCl

33、ick(TObject *Sender)图3-4 if(OpenDialog1-Execute() sFileName=OpenDialog1-FileName;RichEdit1-Lines-LoadFromFile(sFileName);RichEdit1-Modified=false; /-void _fastcall TForm1:miFileSaveClick(TObject *Sender) SaveDialog1-FileName=sFileName; if(SaveDialog1-Execute()RichEdit1-Lines-SaveToFile(SaveDialog1-F

34、ileName);RichEdit1-Modified=false;/-void _fastcall TForm1:miFileExitClick(TObject *Sender) int nResult; AnsiString sMsg; sMsg=AnsiString(将修改后的结果保存)+sFileName+AnsiString(吗?); if(RichEdit1-Modified) nResult=Application-MessageBox(sMsg.c_str(),我的字处理器,MB_YESNOCANCEL); if(nResult!=IDCANCEL) if(nResult=ID

35、YES) miFileSaveClick(Sender); /RichEdit1-Lines-SaveToFile(sFileName); Close(); 6、打开Unit1.h文件,在private:/ User declarations下面加入对默认文件名变量sFileName的申明: AnsiString sFileName;7、运行程序。五、 程序说明1、 ImageList控件相当于一个图标管理器,它统一管理图标,并供给其它一个或多个控件使用。2、 OpenDialog与SaveDialog两个控件并未完成文件真正的打开或保存工作,它们实际只是提供了一个打开与保存的界面,程序只能从

36、中获取用户选择的打开或保存文件的路径与文件名。有关它们使用的详细介绍请查看帮助文档。3、 AnsiString sFileName变量用于保存默认的文件名,有点类似于WORD中的“文档1”。由于这个变量在各个函数中都要使用,作用范围限于本对话框,因此它应该只在本类中可见。所以,在C+中我们应该定义它为类的私有成员。实验四 定时器的使用一、 实验目的通过在程序中实现文字在闪烁中移动,让学生掌握定时器控件、工具条、单选按钮控件、多选按钮控件的使用,并以及进一步掌握菜单控件的使用方法。二、 实验设备1台PC、CB6开发环境等。三、 程序功能本程序首先实现文字在闪烁中向左移动,然后再分别通过控件、菜单

37、和工具栏控制文字的移动方向与是否移动。四、 设计步骤1、Timer控件的使用功能:文字不受控制地循环地向左移动。1)从Standard面板放一个Label控件,从System面板放一个Timer控件,设计如图4-1界面2)有关控件属性设置如下表控件类型控件名称属性值LabelLabel1Caption“欢迎光临”Font自行设置AnchorsTimerTimer1InterVal503)为Timer1控件添加定时事件响应代码如下:void _fastcall TForm1:Timer1Timer(TObject *Sender) Label1-Left-=4; if(Label1-LeftWi

38、dth) Label1-Left=Form1-Width; Label1-Font-Color=RGB(255*rand(),255*rand(),255*rand();4)运行程序图4-1图4-2图4-3图4-42、Radio与CheckBox控件的使用功能: CheckBox控件控制文字是否移动,Radio控件控制文字移动的方向。1)在图4-1的基础上,再从Standard面板上加入一个CheckBox控件和一个RadioGroup控件,建立如图4-2界面。2)有关控件属性设置如下表控件类型控件名称属性值TimerTimer1InterVal50CheckBoxCheckBox1Capti

39、on运行CheckedfalseRadioGroupRadioGroup1Caption方向Items向左向右Columns23)各控件事件响应代码如下:void _fastcall TForm1:Timer1Timer(TObject *Sender) if(RadioGroup1-ItemIndex=1) Label1-Left+=4; else if(RadioGroup1-ItemIndex=0) Label1-Left-=4; if(Label1-Left Width) Label1-Left=Form1-Width; Label1-Font-Color=RGB(255*rand()

40、,255*rand(),255*rand(); /-void _fastcall TForm1:CheckBox1Click(TObject *Sender) if(CheckBox1-State=cbChecked) Timer1-Enabled=true; else Timer1-Enabled=false;/-void _fastcall TForm1:FormActivate(TObject *Sender) CheckBox1-OnClick(Sender);3、菜单与工具条的使用功能:用菜单各工具条控制文字是否移动以及移动的方向。1)建立如图4-3界面,并建立如图4-4所示菜单,工

41、具条的加入如第3步所示。2)菜单的有关控件属性设置如下表控件类型控件名称属性值MenuItemmiLeftCaptionm向左CheckedtrueRadioItemtruemiRightCaption向右CheckedfalseRadioItemtruemiStopCaption停止Checkedtrue3)工具条可按以下步骤建立:(1)参照图3-2,在ImageList1控件中加入合适的图标(2)插入ControlBar工具条控件,如4-4(3)在刚才插入的ControlBar工具条控件中插入ToolBar工具条控件,如图4-5(4)在ToolBar控件上单击鼠标右键,选择“New But

42、ton”命令,新建三个工具按钮图 4-4图 4-5(5)有关工具条控件属性设置如下表:控件类型控件名称属性值ControlBarControlBar1AutoSizetrueAlignalTopBevelEdgefalse false false falseToolBarToolBar1AutoSizetrueAlignalTopFlattrueDragKinddkDockEdgeBordersfalse false false falseImagesImageList1ToolButtonToolButton1StyletbsCheckGroupedtrueOnClickmiRightCli

43、ckToolButton2StyletbsCheckGroupedtrueOnClickmiLeftClickToolButton3StyletbsCheckeGroupedfalseOnClickmiStopClick4)各控件事件响应代码如下:_fastcall TForm1:TForm1(TComponent* Owner) : TForm(Owner) bRun=false; nDirect=0; if(nDirect=0) miLeft-Checked=true; else miRight-Checked=true; miStop-Checked=!bRun; CheckBox1-C

44、hecked=bRun; RadioGroup1-ItemIndex=nDirect;/-void _fastcall TForm1:Timer1Timer(TObject *Sender) if(nDirect=1) Label1-Left+=4; else if(nDirect=0) Label1-Left-=4; if(Label1-Left Width) Label1-Left=Form1-Width; else if(Label1-Left Form1-Width) Label1-Left=0;Label1-Font-Color=RGB(255*rand(),255*rand(),2

45、55*rand();/-void _fastcall TForm1:CheckBox1Click(TObject *Sender) bRun=CheckBox1-Checked; miStop-Checked=!bRun; Timer1-Enabled=bRun;/-void _fastcall TForm1:ComboBox1Change(TObject *Sender) Label1-Caption=ComboBox1-Text;/-void _fastcall TForm1:miLeftClick(TObject *Sender) nDirect=0; miLeft-Checked=tr

46、ue; RadioGroup1-ItemIndex=nDirect;/-void _fastcall TForm1:miRightClick(TObject *Sender) nDirect=1; miRight-Checked=true; RadioGroup1-ItemIndex=nDirect;/-void _fastcall TForm1:miStopClick(TObject *Sender) miStop-Checked=!miStop-Checked; bRun=!miStop-Checked; CheckBox1-Checked=bRun; Timer1-Enabled=bRu

47、n;/-void _fastcall TForm1:FormActivate(TObject *Sender) CheckBox1-OnClick(Sender);/-void _fastcall TForm1:RadioGroup1Click(TObject *Sender) nDirect=RadioGroup1-ItemIndex; if(nDirect) miRight-Checked=true; else miLeft-Checked=true;/-5)打开Unit1.h文件,在private:/ User declarations下面加入对默认文件名变量sFileName的申明:

48、char nDirect; /用于保存用户定义的文字移动方向 0表示向左,1表示向右 bool bRun; /文字是否进行移动 true表示运行,false表示停止实验五 串口通讯程序的实现一、 实验目的通过计算机串口实现近距离通信,让学生掌握MSComm串行通信控件为代表的Active X控件的使用方法。二、 实验设备1台PC、CB6开发环境、少量导线等。三、 程序功能本程序利用计算机的串行口实现近距离的通信,这种通信既可以在两台计算机之间进行,也可以在计算机与单片机之间进行。四、 设计步骤1、 从Standard面板上放两个Label控件、两个Edit控件和三个Button控件,设计如图5

49、-1界面。如电话形状的MSComm控件是完成串行通信的关键,它的加入如第2、3步所述。图5-1图 5-2图5-32、如图5-2,打开菜单Component-Import ActiveX Control,然后按图5-3所示选择,再点击Install按钮,最后根据提示进行操作,就在C+Builder项目中引入所需的Active X控件MSComm。ActiveX控件基于微软的COM技术,由于COM技术的语言无关性,使得ActiveX控件不仅可以在C+Builder中使用,实际上它可以在任何语言中使用。从上图可以看出它的种类是很多的,功能也各不相同,使用ActiveX控件是扩展程序功能的重要手段。3

50、、上面导入的ActiveX控件一般会在ActiveX控件页面出现,选中后放入窗体中。4、 下面主要介绍一下在MSComm控件中用到的主要属性:属性值意义CommPort1使用串行口COM1Settings9600,n,8,1设置通信的波特率、奇偶校验、数据位、停止位这些通信协议,当两台计算机或计算机与单片机相互通信时,该设置应完全一样PortOpen运行时使用,没有初值返回或设置串口是否打开,只有串口打开后才能进行通信Input在适当的时候,可以在接收缓冲区取得对方通过串口送来的信息OutPut在发送信息时,只需把信息放在发送缓冲区中就可以了InputLen0把接收缓冲区中的信息一次全部读完I

51、nputMode00文本模式接收信息,1二进制形式接收信息RtsHold1每接收一个字符,就产生OnCommEvent事件,我们常在这个事件中接收信息,并对接收到的信息进行处理,为0时表示不产生OnCommEvent事件5、分别为各控件编写事件响应代码如下:void _fastcall TForm1:Button1Click(TObject *Sender)/发送按钮 MSComm1-Output=OleVariant(Edit1-Text);/-void _fastcall TForm1:FormActivate(TObject *Sender) MSComm1-PortOpen=true; /-

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!