第12章 c语言综合应用程序示例
第12章 C语言综合应用程序示例
北京邮电大学出版社
内容提要 多模块编程方法 图形处理应用 操作系统接口应用
C语言与汇编语言混合编程 综合应用程序示例--汉字显示技术
12.1 多模块编程方法一个有实用价值的C语言应用程序往往较大,需要划 分成不同的模块,分配给不同的程序员去完成。因此,在 实用软件的开发中,往往需要采用多模块编程技术。 一、程序模块组织 使用多模块编程技术的处理过程大致如下: 1、首先将一个大的源程序根据其功能合理地划分 成若干个小的源程序,每个小源程序均以程序文件(.C) 的形式保存在磁盘上。并建立一个包括各个源程序模 块的文件名的工程文件(.prj)。 2、然后用编译器进行编译,将工程文件中指定的 多个源程序文件进行编译,生成多个目标文件和一个 可执行文件。注意,在分模块单独编译处理的各个程 序模块中,必须有且只有一个主函数 main( ) 。上一页 下一页
二、模块之间的通信 1、使用外部变量 即一个程序文件file1.c中定义一个外部变量,另一 个程序文件file2.c中的函数可以通过外部变量说明后来 使用这个变量,以实现模块间的通信。 说明形式:extern 类型说明符 外部变量名 ; 注意:只是进行了说明,并不是变量定义。 2、举例 利用外部变量实现程序模块 f1.c 与程序模块 f2.c 之 间的通信。 设程序模块文件 f1.c 的内容如下: #include<stdio.h> int var=8; /* 全局变量的定义 */上一页 下一页
main() { printf(―%d‖,var); proc1(); printf(―%d\n‖,var); } 程序模块文件f2.c 的内容如下: extern int var; /* 外部变量的说明 */ proc1() { var = 25 ; } 程序编译连接生成可执行文件,执行结果为: 8 25上一页 下一页
三、预处理命令#include的应用 1、#include命令经过预处理后,会将其后有关文件 的内容拷贝到命令所在的源程序文件中。 2 、在上一个例子中,程序要能够编译运行,需建 立一个工程文件f12.prj,其内容为: f1.c f2.c 然后对f12.prj文件编译运行即可。 3、也可以在f1.c文件开头加一预处理命令: #include<stdio.h> #include<f2.c> int var=8; main() { …… } 对f1.c文件直接编译运行即可。上一页 下一页
12.2 图形处理应用图形处理是计算机应用的一个极具特色的领域,有 很好的应用前景,可以增强程序的趣味性、实用性。 一、基本图形处理库函数 Turbo C支持多种显示适配器的各种显示模式,提 供了画点、线、圆、椭圆、多边形以及输出各种字体 等功能的函数。 这些函数包含在图形头文件( graphics.h )中,在进 行目标程序连接时,也必须将图形库文件graphics.lib 连接到目标程序中去,其图形接口还包括图形显
示驱 动程序(*.BGI)等。上一页 下一页
1、图形系统初始化函数 ⑴ 显示模式控制函数initgraph(gd,gm,path) 作用:将一个图形驱动程序装入内存,并将系统设置成 图形模式; 说明:gd指定所用的图形驱动程序,其值可参照书上 的图形驱动程序常量表; gm说明初始化的图形模式,其取值见附录; path指定驱动程序目录路径,空字符时表示驱动 程序就在当前目录下。 例如:若已知所用的图形适配器为CGA,并打算使用 640×200高分辨率模式CGAHI,则图形初始化 部分可写成: int gd = CGA, gm = CGAHI; initgraph(&gd, &gm, ―\\TC‖ );上一页 下一页
⑵ 自动检测显示器硬件的函数detectgraph(gd,gm) 作用:当编程者不知所用的图形适配器的类型, 或者需要编写在不同图形模式下均能运行 的图形程序,使用该函数可以完成对适配 器的检查,获取显示器类型号(赋给gd) 及相应的显示模式(赋给gm)。 例如:图形初始化部分可以写成: int gd, gm; detectgraph(&gd,&dm); /*自动测试硬件 */ initgraph(&gd, &gm, ―\\TC‖ ); /* 根据测试结果进行图形初始化 */上一页 下一页
⑶ 清屏函数cleardevice( ) 作用:用于画图前进行清除屏幕; 作用范围为整个屏幕。 ⑷ 恢复显示方式函数closegraph( ) 作用:关闭图形系统,返回文本工作方式。 ⑸ 恢复工作模式函数restorecrtmode( ) 设置图形工作模式函数setgraphmode( ) 作用:使显示器工作方式在图形和文本方式 之间来回切换。上一页 下一页
2、基本图形函数 ⑴ 三种最基本的图形函数:画点、线、圆函数 画点函数 putpixel(x, y, color); 作用:将在坐标x、y指定的位置上画一点, 该点的颜色由color值决定。 画线函数 line(startx, starty, endx, endy); 作用:在(startx, starty)和(endx, endy)两点 间画一直线,颜色为系统当前颜色。 画圆函数 circle(x, y, radius); 作用:用当前颜色画一个圆心在(x,y)处,半 径大小为radius的圆。上一页 下一页
⑵ 画圆弧、扇形、椭圆函数 画圆弧函数 arc(x, y,start, end, radius); 作用:用当前颜色,以(x,y)为圆心,(start,end)为起 止角,radius为半径画圆弧。 画扇形函数 pieslice(x, y, start, end, radius); 作用:用当前颜色,以(x,y)为圆心, (start,end)为起 止角,radius为半径画扇形。 画椭圆函数 ellipse(x,y,start,end,xradius, yradius); 作用:用当前画线颜色,以(x,y)为中心, (start,end) 为起止角,(xradius,yradius)为两轴半径画 椭圆。 说明:start、end均以角度为单位。上一页 下一页
⑶ 画多边形、矩形和条形图函数 画多边形函数drawpoly(numpoints,points); 作用:用当前颜色画一个多边形,多边形的顶点数 为numpoints,而points指向的整形数组连续 存放着各顶点的(x,y)坐标。 画
矩形函数rectangle(left,top,right,bottom); 作用:用当前颜色,以(left,top)为左上角坐标,以 (right,bottom)为右下角坐标画一个矩形。 画条形图函数bar(left,top,right,bottom); bar3d(left,top,right,bottom,depth,topflag); 作用:用当前颜色,画一实心条形图; depth决定bar3d()产生的三维条形图的厚度, topflag决定是否加顶盖。上一页 下一页
3、颜色控制函数 屏幕上显示出的点、线、面的颜色称为前景色, 而衬托它们的背景颜色称为背景色。在Turbo C中常 使用的16个标准色为:
上一页
下一页
⑴ 颜色设置函数setcolor(color); 作用:用颜色值color设置当前画图颜色。 ⑵ 图形填充函数floodfill(x, y, bordercolor); 作用:该函数对任意封闭图形进行填充,其颜色和 模式由设定的或缺省的颜色与图形模式决定。 说明:编程时该函数位于画图函数之后;参数(x,y) 为封闭图形中的任意一点,bordercolor是封 闭图形的边框颜色。
⑶ 填充模式函数setfillstyle(pattern, color); 作用:来设定floodfill( )函数的填充模式 。 说明:参数pattern的值及其符号如下表所示。上一页 下一页
举例:利用基本作图函数及颜色控制函数画图。 #include<graphics.h> #include<stdio.h> #include<conio.h> void box(int, int, int, int);上一页 下一页
…… 此处隐藏:1807字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [行业范文]美好的法语句子
- [行业范文]描写露珠的句子
- [行业范文]精彩禅语句子图片
- [行业范文]关于满嘴谎言的句子
- [行业范文]关于安静的句子48句
- [行业范文]关于小河的句子
- [行业范文]描写稻田的句子
- [行业范文]思念好朋友的句子
- [行业范文]赞美雪的句子
- [行业范文]早上激励人心的句子
- [行业范文]失恋忧伤的句子
- [行业范文]努力积极向上的句子
- [行业范文]对工作心灰意冷的句子
- [行业范文]失恋让人心疼的句子
- [行业范文]描写珍惜青春的句子
- [行业范文]表达思念的句子简短
- [行业范文]关于父爱的句子范例
- [行业范文]浪漫的英语句子
- [行业范文]关于周末的句子
- [行业范文]思念牵挂的句子
- 有关感恩班会课件简短(二篇)(感恩班会
- 2025年初二下乡军训心得体会800字(15篇
- 关于新员工培训方案汇编(关于新员工培
- 精选高考生寒假学习计划书(精)(高考生
- 毕业实训报告心得体会(3篇)(实训报告心
- 银行工作感悟及心得范文怎么写(四篇)(
- 精选领导干部个人政治画像报告通用(七
- 精选超市11.11活动促销方案(精品超市品
- 2025年怎么做自我介绍汇总(5篇)(至2025
- 最新企业错峰生产方案(26篇)(山西企业
- 最新暑期三下乡社会实践调研报告范本(
- 最新幼儿园大班教育教学总结怎么写(最
- 最新教师节主持词小学(优秀9篇)(教师节
- 关于小学安全教育教学方案(推荐)(关于
- 员工信模板范文怎么写(五篇)(员工信息
- 最新保险销售离职申请书(十六篇)(最新
- 最新XX小学防校园欺凌工作方案怎么写(2
- 有关特岗教师辞职信范文(推荐)(特岗教
- 精选党的建设工作要点简短(党的建设的
- 如何写安康杯竞赛活动总结汇总(4篇)(安




