C语言程計教程 第12章C语言综合应用程序示例 12.1多模块编程方法 12.2图形处理应用 12.3操作系统接口应用 12.4语言与汇编语言混合编程 12.5综合应用程序举例汉字显示技术
返回 12.1 多模块编程方法 12.2 图形处理应用 12.3 操作系统接口应用 12.4 C语言与汇编语言混合编程 12.5 综合应用程序举例—汉字显示技术
第12幸团倍言综合应用裎序苯〓 12.1多模块编程方法 个有实用价值的C语言应用程序往往较大,需 要划分成不同的模块,分配给不同的程序员去完成 因此,在实用软件的开发中,往往需要采用多模块编 程技术。 121.1程序模块组织 使用多模块编程技术的处理过程大致如下: 1、首先将一个大的源程序根据其功能合理地划分成 若干个小的源程序,每个小源程序均以程序文件(C) 的形式保存在磁盘上。并建立一个包括各个源程序 模块的文件名的工程文件(prj)
一个有实用价值的C语言应用程序往往较大,需 要划分成不同的模块,分配给不同的程序员去完成。 因此,在实用软件的开发中,往往需要采用多模块编 程技术。 12.1 多模块编程方法 使用多模块编程技术的处理过程大致如下: 1、首先将一个大的源程序根据其功能合理地划分成 若干个小的源程序,每个小源程序均以程序文件(.C) 的形式保存在磁盘上。并建立一个包括各个源程序 模块的文件名的工程文件(.prj)。 12.1.1 程序模块组织 下一页 第12章 C语言综合应用程序举例 上一页
第12幸团倍言综合应用裎序苯〓 2、然后用编译器进行编译,将工程文件中指定的 多个源程序文件进行编译,生成多个目标文件和 个可执行文件。注意,在分模块单独编译处理的各 个程序模块中,必须有且只有一个主函数main() 12.1.2模块之间的通信 1、使用外部变量 即一个程序文件fle1.c中定义一个外部变量,另 个程序文件fie2c中的函数可以通过外部变量说明 后来使用这个变量,以实现模块间的通信。 说明形式: extern类型说明符外部变量名; 注意:只是进行了说明,并不是变量定义
2、然后用编译器进行编译,将工程文件中指定的 多个源程序文件进行编译,生成多个目标文件和一 个可执行文件。注意,在分模块单独编译处理的各 个程序模块中,必须有且只有一个主函数 main( ) 。 下一页 第12章 C语言综合应用程序举例 上一页 12.1.2 模块之间的通信 1、使用外部变量 即一个程序文件file1.c中定义一个外部变量,另 一个程序文件file2.c中的函数可以通过外部变量说明 后来使用这个变量,以实现模块间的通信。 说明形式:extern 类型说明符 外部变量名 ; 注意:只是进行了说明,并不是变量定义
第12幸团倍言综合应用裎序苯〓 2、举例 利用外部变量实现程序模块组1c与程序模块n2c之 间的通信。 设程序模块文件f1c的内容如下: #include int var=8: /全局变量的定义* maino printf(s od var) procl 0; printf(“%dn”,var);
2、举例 利用外部变量实现程序模块f1.c与程序模块f2.c之 间的通信。 设程序模块文件 f1.c 的内容如下: #include int var=8; /* 全局变量的定义 */ main() { printf(“%d”,var); proc1(); printf(“%d\n”,var); } 下一页 第12章 C语言综合应用程序举例 上一页
第12幸团倍言综合应用裎序苯〓 程序模块文件n2c的内容如下: extern int var. /外部变量的说明* proclo 程序编译连接 生成可执行文 var= 25 件,执行结果 为:825 1213预处理命令# include的应用 1、# include命令经过预处理后,会将其后有关文件 的内容拷贝到命令所在的源程序文件中
程序模块文件f2.c 的内容如下: extern int var; /* 外部变量的说明 */ proc1() { var = 25 ; } 程序编译连接 生成可执行文 件,执行结果 为: 8 25 下一页 第12章 C语言综合应用程序举例 上一页 12.1.3 预处理命令#include的应用 1、#include命令经过预处理后,会将其后有关文件 的内容拷贝到命令所在的源程序文件中
第12幸团倍言综合应用裎序苯〓 2、在上一个例子中,程序要能够编译运行,需建立 个工程文件2pr,其内容为: C 然后对12prj文件编译运行即可。 3、也可以在们1c文件开头加一预处理命令 #include #include int var=8 maino 对fc文件直接编译运行即可
2、在上一个例子中,程序要能够编译运行,需建立 一个工程文件f12.prj,其内容为: f1.c f2.c 然后对f12.prj文件编译运行即可。 3、也可以在f1.c文件开头加一预处理命令: #include #include int var=8; main() { …… } 对f1.c文件直接编译运行即可。 第12章 C语言综合应用程序举例 上一页 返回
第12幸团倍言综合应用裎序苯〓 12.2图形处理应用 图形处理是计算机应用的一个极具特色的领域,有 很好的应用前景,可以增强程序的趣味性、实用性。 1221基本图形处理库函数 Turbo o支持多种显示适配器的各种显示模式,提 供了画点、线、圆、椭圆、多边形以及输出各种字 体等功能的函数。 这些函数包含在图形头文件( graphics. h)中,在 进行目标程序连接时,也必须将图形库文件 graphics.lib连接到目标程序中去,其图形接口还包 括图形显示驱动程序(.BGI等
12.2 图形处理应用 图形处理是计算机应用的一个极具特色的领域,有 很好的应用前景,可以增强程序的趣味性、实用性。 12.2.1 基本图形处理库函数 Turbo C支持多种显示适配器的各种显示模式,提 供了画点、线、圆、椭圆、多边形以及输出各种字 体等功能的函数。 这些函数包含在图形头文件(graphics.h)中,在 进 行 目 标 程 序 连 接 时 , 也 必 须 将 图 形 库 文 件 graphics.lib连接到目标程序中去,其图形接口还包 括图形显示驱动程序(*.BGI)等。 下一页 第12章 C语言综合应用程序举例 上一页
第12幸团倍言综合应用裎序苯〓 1、图形系统初始化函数 (1)显示模式控制函数 initgraph(gd,gm,path) 作用:将一个图形驱动程序装入内存,并将系统设置成 图形模式; 说明:gd指定所用的图形驱动程序,其值可参照书上 的图形驱动程序常量表; gm说明初始化的图形模式,其取值见附录; path指定驱动程序目录路径,空字符时表示驱动 程序就在当前目录下。 例如:若已知所用的图形适配器为CGA,并打算使用 640×200高分辨率模式 CGAHI,则图形初始化 部分可写成: int gd=CGA,gm= CGAHI; initgraph(&gd,&gm,“TC”);
作用:将一个图形驱动程序装入内存,并将系统设置成 图形模式; 说明:gd指定所用的图形驱动程序,其值可参照书上 的图形驱动程序常量表; gm说明初始化的图形模式,其取值见附录; path指定驱动程序目录路径,空字符时表示驱动 程序就在当前目录下。 例如:若已知所用的图形适配器为CGA,并打算使用 640×200高分辨率模式CGAHI,则图形初始化 部分可写成: 1、图形系统初始化函数 ⑴ 显示模式控制函数initgraph(gd,gm,path) int gd = CGA, gm = CGAHI; initgraph(&gd, &gm, “\\TC” ); 下一页 第12章 C语言综合应用程序举例 上一页
第12幸团倍言综合应用裎序苯〓 (2)自动检测显示器硬件的函数 detectgraph(gd,gm) 作用:当编程者不知所用的图形适配器的类型, 或者需要编写在不同图形模式下均能运行 的图形程序,使用该函数可以完成对适配 器的检查,获取显示器类型号(赋给gd) 及相应的显示模式(赋给gm)。 例如:图形初始化部分可以写成: int gd, gm; detectgraph(&gd,&dm);自动测试硬件 initgraph(&gd,&gm,“ⅦTC”); 根据测试结果进行图形初始化*
⑵ 自动检测显示器硬件的函数detectgraph(gd,gm) 作用:当编程者不知所用的图形适配器的类型, 或者需要编写在不同图形模式下均能运行 的图形程序,使用该函数可以完成对适配 器的检查,获取显示器类型号(赋给gd) 及相应的显示模式(赋给gm)。 例如:图形初始化部分可以写成: int gd, gm; detectgraph(&gd,&dm); /*自动测试硬件 */ initgraph(&gd, &gm, “\\TC” ); /* 根据测试结果进行图形初始化 */ 下一页 第12章 C语言综合应用程序举例 上一页
第12幸团倍言综合应用裎序苯〓 (3)清屏函数 cleardevice() 作用:用于画图前进行清除屏幕 作用范围为整个屏幕。 (4)恢复显示方式函数 closegraph() 作用:关闭图形系统,返回文本工作方式。 (5)恢复工作模式函数 restorecrtmode() 设置图形工作模式函数 setgraphmode() 作用:使显示器工作方式在图形和文本方式 之间来回切换
⑷ 恢复显示方式函数closegraph( ) 作用:关闭图形系统,返回文本工作方式。 ⑸ 恢复工作模式函数restorecrtmode( ) 设置图形工作模式函数setgraphmode( ) 作用:使显示器工作方式在图形和文本方式 之间来回切换。 ⑶ 清屏函数cleardevice( ) 作用:用于画图前进行清除屏幕; 作用范围为整个屏幕。 下一页 第12章 C语言综合应用程序举例 上一页