• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

SCO UNIX环境下 面向对象的程序设计 1

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 21次 | 进入软件测试论坛讨论

领测软件测试网
SCO UNIX环境下

面向对象的程序设计

 

林风人 编著

 

 

 

 

 

 

 

 

 

二○○一年二月二十七日

版权所有   翻版必究

 



内 容 摘 要

 

本手册以范例的形式,由浅入深介绍了在SCO UNIX下进行面向对象程序设计的原理,并对包括类体系及其与UNIX环境的交互作用方式在内的Object UNIX Class Library的构成进行了详细介绍。本手册还是一本Object UNIX Class Library的参考手册,包括Object UNIX Class Library的类、类型、常量以及UNIX函数、类型和常量。

本手册还介绍SCO UNIX环境下集成编译系统(IDE)的使用指南。用户在编写自己的应用程序时,可以选择采用SCO UNIX提供的编辑器VI来编写自己的源程序代码,然后通过命令行cc或者make来编译自己的应用程序,也可以选择本系统提供的集成编辑编译系统IDE,在窗口环境下编写程序、创建工程、编译并且运行您的系统。本系统提供丰富的全屏幕编辑命令。

 



引    言

 

Object UNIX Class Library提供了一种有趣的开发SCO UNIX环境下的文本模式应用程序的新方法。直到最近,大多数UNIX编程都需要UNIX C编译器和大量分离而复杂的开发工具,这样,UNIX应用程序开发显得冗长、复杂和令人费解。借助Object UNIX Class Library应用程序框架,UNIX编程就容易了许多。

在大多数交互式的UNIX应用程序中,用户的界面元素操作处理以及程序内部的消息循环需要编程人员花费大量的时间并利用大量的case语句来分析用户该执行哪些操作。这就需要一个比较熟练的编程人员来实现它并掌握许多的SCO UNIX下的API函数以及界面处理的curses库函数,为编写一个可用的交互式应用程序,您可能必须掌握它们。

Object UNIX Class Library提供了一个面向对象的类库,其中封装了UNIX应用程序都要执行的(程序级和窗口级)行为。Object UNIX Class Library用以简化UNIX开发的手段是:

l     一个一致、直观简捷的UNIX应用程序接口

l     提供菜单、窗口、对话框以及许多类似VB的控件

l     为窗口管理和消息处理提供的行为

l     用于构造UNIX应用程序的基本框架

由于程序员可以“继承”这些基本功能,故可以把主要精力放在应用程序的功能实现上。

Object UNIX Class Library手册的内容

由于Object UNIX Class Library使用了某些新的技术,因此本书包含大量的解释材料。其中包括三个部分:

l     第一部分:Object UNIX Class Library初步,介绍了编写SCO UNIX 环境下的Object UNIX Class Library应用程序的原理。通过编写一个范例程序并将其逐步扩充,使用户能了解编写一个UNIX交互式应用程序的全过程。

l     第二部分:使用Object UNIX Class Library,对Object UNIX Class Library的构成提供了详细的说明,其中包括类体系结构概述,以及类体系与UNIX环境的交互作用方式。

l     第三部分:Object UNIX Class Library参考,提供了有关Object UNIX Class Library类、Object UNIX Class Library类型、Object UNIX Class Library常量的说明。

软硬件需求

由于Object UNIX ClassLibrary是一种用于编写SCO UNIX应用程序的应用程序框架,故Object UNIX ClassLibrary应用程序所需要的基本硬件配置与SCO UNIX程序相同:

l     一个硬盘

l     16MB(或更多的)内存

l     与UNIX兼容的终端方式,本系统采用ANSI终端方式

l     采用UNIX的文本模式,而不是Motif图形方式

可以借助SCO UNIX本身的编译系统来编译UNIX应用程序,也可以用本系统提供的集成编辑编译系统环境。

参考书目

《Windows环境下面向对象的程序设计》 Borland C++ 3.0技术丛书。

版权说明

Object Window Library(OWL)是美国Borland公司开发的产品。

请与我联系

    很高兴您选择《UNIX环境下的面向对象程序设计》和基于UNIX下的Object UNIX Class Library类库作为您开发UNIX应用程序的工具。请多提宝贵意见,我很乐意听取您的意见和回答您提出的问题,请联系linfengren@163.net,或者(0)13906918458(福州)。等候您的佳音。

 



目    录

 

第一部分 Object UNIX Class Library初步......... 1

第一章 继承窗口...... 1

1.1 面向对象的应用程序编程... 1

1.1.1 一个较好的UNIX接口... 2

1.2 “Hello,UNIX”. 3

第二章 基于Object UNIX Class Library的应用程序基础...... 5

2.1 编制一个Object UNIX Class Library应用程序:预备知识... 5

2.1.1 类库... 5

2.1.2 目录... 6

2.2 建立Object UNIX Class Library应用程序... 7

2.2.1 使用IDE建立Object UNIX Class Library应用程序... 7

2.2.2 使用UNIX系统提供的make或者CC命令行工具... 7

2.3 第一步:一个简单的基于UNIX系统的交互式应用程序... 8

2.3.1 应用程序要求... 8

2.4 第二步:主窗口类... 10

2.4.1 何谓主窗口... 10

2.4.2 生成主窗口对象... 11

2.4.3 响应事件... 12

2.4.4 终止应用程序... 12

第三章 在窗口中显示文本...... 14

3.1 在窗口中绘制文本... 14

3.2 清屏... 15

3.3 重新显示主窗口... 15

3.4 定义用户自己的主窗口... 16

第四章 增加菜单...... 17

4.1 主窗口菜单... 17

4.2 解释菜单消息... 18

4.3 响应菜单消息... 19

第五章 增加对话框...... 20

5.1 增加一个对话框... 20

5.2 增加用户自定义对话框的数据成员与操作函数... 21

5.2.1 增加对象成员(控件)到对话框中... 21

5.2.2 响应对话框事件... 23

5.2.3 定制自己的对话框初始化... 24

5.3 运行对话框... 24

5.4 控件对象... 25

5.4.1 建立对话框控件... 25

5.4.2 作为数据成员的控件对象... 26

5.4.3 管理控件对象... 26

5.4.4 对控件对象事件的响应... 27

第二部分 使用Object UNIX Class Library.... 29

第六章 概述...... 29

6.1 Object UNIX Class Library的约定... 29

6.2 Object UNIX Class Library的类体系结构... 31

6.2.1 TObject. 32

6.2.2 TApplication. 32

6.2.3 TWindow. 32

6.2.4 TDialog. 32

6.2.5 控件对象... 32

6.3 屏幕curses操作函数和标准运行库函数调用... 34

第七章 模块和应用程序...... 35

7.1 应用程序流程... 35

7.2 初始化应用程序... 36

7.2.1 初始化主窗口... 36

7.3 运行应用程序... 37

7.4 关闭应用程序... 38

第八章 界面对象...... 39

8.1 TObject. 39

8.2 为何要用界面对象... 39

8.3 窗口父/子关系... 40

8.3.1 控件列表... 41

8.3.2 子对象控件的遍历函数... 41

8.4 消息处理... 42

8.4.1 对控件事件的响应... 42

8.4.2 对菜单事件的响应... 43

第九章 窗口对象...... 44

9.1 TWindow类... 44

9.2 初始化和生成窗口对象... 44

9.2.1 初始化窗口对象... 44

9.2.2 生成窗口元素... 46

9.3 主窗口菜单系统... 46

9.3.1 菜单结构说明... 47

9.3.2 菜单对象定义... 50

9.4 主窗口菜单事件... 50

第十章 对话框对象...... 51

10.1 使用对话框对象... 51

10.2 构造和初始化对话框对象... 51

10.3 生成和执行对话框... 52

10.4 关闭对话框... 53

10.5 控件管理和事件消息处理... 53

10.5.1 定义消息响应函数... 54

10.5.2 执行消息响应函数... 54

第十一章 控件对象...... 56

11.1 控件对象的使用... 57

11.2 控件焦点与键盘... 57

11.3 标签(静态文本)控件... 58

11.3.1 创建标签控件... 58

11.3.2 查询标签控件... 58

11.3.3 修改标签控件... 59

11.4 编辑框控件... 59

11.4.1 创建编辑框控件... 59

11.4.2 查询编辑框控件... 60

11.4.3 修改编辑框控件... 60

11.5 按钮控件... 60

11.5.1 创建按钮控件... 60

11.5.2 对按钮事件的响应... 61

11.6 画线控件... 62

11.6.1 创建画线控件... 62

11.7 成组框控件... 63

11.7.1 创建成组框... 63

11.7.2 响应成组框消息... 63

11.8 列表框控件... 63

11.8.1 创建列表框... 64

11.8.2 修改列表框... 64

11.8.3 查询列表框... 65

11.9 组合框控件... 65

11.9.1 创建组合框... 65

11.9.2 查询组合框... 66

11.10 检验框和互锁按钮控件... 66

11.10.1 创建检验框和互锁按钮控件... 67

11.10.2 查询检验框和互锁按钮的状态... 67

11.10.3 修改检验框和互锁按钮的状态... 67

11.11 文本文件显示控件... 67

11.11.1 创建文本文件显示控件... 68

11.12 数据库浏览控件... 68

11.12.1 创建数据库浏览控件... 68

11.12.2 修改数据库控件... 68

11.12.3 查询记录和字段... 70

11.12.4 附加说明... 70

11.13 滑动尺控件... 71

11.13.1 创建滑动尺对象... 71

11.13.2 查询滑动尺... 71

11.13.3 修改滑动尺... 72

11.14 多行文本编辑控件... 72

11.14.1 创建多行文本编辑框控件... 73

11.14.2 查询多行文本编辑框控件... 73

11.14.3 修改多行文本编辑框控件... 73

第三部分 Object UNIX Class Library类参考......... 74

第一章 类参考...... 74

TObject. 75

数据成员... 75

成员函数... 76

TApplication. 77

数据成员... 77

成员函数... 77

TBrowser. 79

数据成员... 79

成员函数... 80

TButton. 83

数据成员... 83

成员函数... 83

TCheckBox. 85

成员函数... 85

TComboBox. 87

成员数据... 87

成员函数... 88

TControl. 89

数据成员... 89

成员函数... 90

TDialog. 91

数据成员... 91

成员函数... 92

TEdit. 93

数据成员... 94

成员函数... 94

TGroup. 96

成员函数... 96

TInputDialog. 97

数据成员... 97

成员函数... 98

TLabel. 98

成员函数... 99

TLine. 99

成员数据... 100

成员函数... 100

TList. 101

成员数据... 101

成员函数... 102

TMultiEdit. 104

成员数据... 105

成员函数... 106

TFileDialog. 109

数据成员... 109

成员函数... 110

TPrintDialog. 111

数据成员... 111

成员函数... 112

TRadioButton. 114

成员函数... 114

TView. 116

成员数据... 117

成员函数... 118

TWindow. 121

数据成员... 121

成员函数... 122

屏幕处理... 124

全局外部变量... 124

定义的颜色常量... 124

外部函数... 124

DES加密处理... 126

全局外部变量... 126

外部函数... 127

第四部分 C/C++集成编译系统(IDE)操作指南......... 129

第一章 C/C++集成编译系统提供的工具简介...... 129

第二章 C/C++集成编译系统(IDE)安装指南...... 129

第三章 C/C++集成编译系统(IDE)操作指南...... 129

3.1 C/C++集成编译系统IDE的启动... 130

3.2 了解菜单... 130

3.3 W文件菜单... 130

3.3.1 新建文件... 130

3.3.2 打开文件... 131

3.3.3 保存文件... 131

3.3.4 文件另存为…... 131

3.3.5 保存所有文件... 131

3.3.6 关闭文件... 132

3.3.7 关闭所有文件... 132

3.3.8 切换当前文件... 132

3.3.9 打印当前文件... 132

3.3.10 UNIX Shell. 132

3.3.11 退出系统... 132

3.4 P工程菜单... 133

3.4.1 创建新工程文件... 133

3.4.2 打开工程文件... 133

3.4.3 工程文件另存为…... 133

3.4.4 关闭工程文件... 133

3.4.5 编译工程文件... 133

3.4.6 运行工程文件... 134

3.5 R编辑菜单... 134

3.5.1 查找、替换、重复查找/替换... 134

3.5.2 到文件首... 134

3.5.3 到文件尾... 134

3.5.4 到某行... 134

3.6 S块操作菜单... 135

3.6.1 定义块首、定义块尾、取消块... 135

3.6.2 块拷贝... 135

3.6.3 块删除... 135

3.6.4 块写... 135

3.6.5 块读... 135

3.6.6 文件块拷贝... 136

3.7 S参数菜单... 136

3.7.1 定义参数... 136

3.7.2 类库使用指南... 136

3.7.3 版本信息... 136

 

 

 



第一部分 Object UNIX Class Library初步
第一章 继承窗口
本章重点放在面向对象编程上。读者通过学习本章可以了解UNIX应用程序的构成及其运行机制,同时还能看到如何利用Object UNIX Class Library编写基于UNIX环境下的面向对象程序。

这里需要说明的是,由于在UNIX环境下的文本模式编程中,没有象Microsoft Windows环境下的Windows图形界面概念以及编程机制,本系统就假设每个应用程序的界面就是一个文本窗口,而UNIX系统本身的字符文本模式就是一个大的隐含的大窗口,基于这个概念,Object UNIX Class Library提供的就是每个应用程序本身的窗口以及每个窗口内部的界面控制和消息传送机制。这里所说的Windows就是每个UNIX环境下应用程序主窗口。

1.1 面向对象的应用程序编程
面向对象的应用程序编程要求熟悉许多新概念,对于开发一个交互式的UNIX环境下的应用程序,需要进行一系列的判断和界面设计而令人望而却步。Object UNIX Class Library简化了基于UNIX环境下的交互式窗口编程的过程,它使程序员能够把主要的精力放在应用程序的功能上,而不是放在它的格式上。

借助Object UNIX Class Library,程序员可以使用对象来表示比较复杂的界面窗口操作,Object UNIX Class Library的窗口对象封装了所有窗口需要的数据,能执行公共的窗口操作,并且能够响应应用程序本身的Windows的消息和事件。Object UNIX Class Library的窗口类和应用程序类完全掌握了消息的处理。

 

1.1.1 一个较好的UNIX接口
Object UNIX Class Library使用了标准的UNIX C/C++的面向对象特征,把UNIX的curses库函数的主要部分封装起来,并提供交互式应用程序程序所需要用户界面元素,从而使程序员同UNIX编程的细节隔离开来。其结果是,只须花少量的时间和精力便能编写应用程序,特别是,Object UNIX Class Library提供了下述三个有益的特点:

l     窗口信息的封装。

l     许多curses函数的抽象化并提供许多控件

l     自动消息响应

 

1.  封装窗口信息

Object UNIX Class Library提供了定义UNIX窗口、对话框及窗口控制的操作与数据存储的对象,在一个Object UNIX Class Library应用程序中,一个界面对象便充当一个可见的UNIX界面元素的代表。

在用户创建一个新的UNIX界面元素时,或者是从TWindow类下派生出一个新的窗口时,用户获得了指向该窗口的指针并同时获得该窗口的一些信息如窗口的位置和状态信息。

 

2.  抽象化curses函数

在UNIX环境下的文本模式交互式应用程序编程中,需要从curses下申请主应用程序的窗口空间,并采用curses库提供的一系列屏幕操作函数来绘制您的窗口信息即屏幕元素,curses提供了几百个的函数调用来处理用户的键盘操作以便给用户进行交互处理,虽然您可以直接从curses中调用任意的Windows函数,但Object UNIX Class Library通过提供一组对象成员函数来简化调用函数的过程,通过抽象化用户的键盘交互操作,提供一系列界面元素操作如输入条、列表框、校验按钮等标准的屏幕操作来简化用户的编程并使用户的界面一致性。

Curses库函数的许多参数都存储在截面对象的数据成员之中,这样,成员函数能用这些数据为Curses函数提供参数。除此之外,Object UNIX Class Library把相关的函数单元组合到单一的成员函数之中,使其能执行更高级的任务,举个最简单的例子,您可以使用Object UNIX Class Library类库提供的行输入,当然,您也可以通过curses提供的函数自己编写一个行输入,但这需要几十行甚至上百行的程序量,如果您不嫌麻烦。

这一方法虽然减少了对每个curses函数的依赖性,但不限制您对curses库函数的直接调用。Object UNIX Class Library具备了两方面的优越性:高级面向对象的开发加之对UNIX文本模式环境的最大限度的控制。

 

3.  自动消息响应

常规的交互式应用程序需要由程序设计人员对用户的各种可能的按键进行比较来判别该执行哪种操作,通常通过大量的case语句来实现,这使得程序冗长而复杂,而且不编于程序的维护,对于实现应用程序的功能来说,正确处理和响应消息是至关重要的。

由于对象具有继承和重定义(成员函数)的能力,故它尤为适合处理和响应各种用户执行的消息。Object UNIX Class Library获取用户消息之后便把它转换成C++成员函数的调用,因此,使用Object UNIX Class Library,程序员可以简单地定义成员函数来响应所编程序需要处理的用户按键的消息。

Object UNIX Class Library定义了所有内部控件的键盘消息响应函数,每个控件类都有从基类派生出来的键盘事件成员函数KeyEvent,当用户需要定义自己的对话框时,重载KeyEvent成员函数,来执行不同的用户按键处理,达到消息的封装和自动消息响应。

1.2 “Hello,UNIX”
按照传统的方式,在介绍一种新的语言或环境之前要提供一个“Hello,World”程序范例。这种程序通常只包含在屏幕上显示字符串“Hello,World”的代码。

但是,对于UNIX应用程序需要作更多的事情,首先必须设置curses库函数窗口环境,显示一个窗口,将字符串写到窗口中,然后规定这个窗口如何同外界互作用。为此,将需要编写相当数量的代码。

其原因是UNIX对应用程序的编程具有一定的要求,即使最简单的程序,也必须包含最起码的功能设置。所幸的是,使用Object UNIX Class Library编程能够自动地符合大多数UNIX交互式应用程序的要求,包括生成和显示主窗口。因此,显示字符串“Hello,World”的代码行被简化成如下形式:

#include “owl.h”

class ThelloApp:public Tapplication {

public:

    ThelloApp(){};

    Virtual void InitMainWindow(void);

};

void ThelloApp::InitMainWindow(void)

{

    MainWindow=new LfrWindow("",1,0,78,25,WHITE_BLUE,

    BLUE_BLUE);

}

int main(void)

{

    THelloApp HelloApp(”HelloApp”);

    HelloApp.Run();

}

 yzxqc 回复于:2004-02-16 08:42:17
非常感兴趣,网上有该软件下载吗?

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网