第12章 C语言综合应用程序示例.ppt
《第12章 C语言综合应用程序示例.ppt》由会员分享,可在线阅读,更多相关《第12章 C语言综合应用程序示例.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1212章章 C C语言综合应用程序示例语言综合应用程序示例北京邮电大学出版社北京邮电大学出版社内容提要内容提要 多模块编程方法多模块编程方法多模块编程方法多模块编程方法 图形处理应用图形处理应用图形处理应用图形处理应用 操作系统接口应用操作系统接口应用操作系统接口应用操作系统接口应用 C C C C语言与汇编语言混合编程语言与汇编语言混合编程语言与汇编语言混合编程语言与汇编语言混合编程 综合应用程序示例综合应用程序示例综合应用程序示例综合应用程序示例-汉字显示技术汉字显示技术汉字显示技术汉字显示技术 C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设
2、计C C语言程序设计语言程序设计上一页上一页下一页下一页一个有实用价值的一个有实用价值的C语言应用程序往往较大,需要划分语言应用程序往往较大,需要划分成不同的模块,分配给不同的程序员去完成。因此,在实成不同的模块,分配给不同的程序员去完成。因此,在实用软件的开发中,往往需要采用多模块编程技术。用软件的开发中,往往需要采用多模块编程技术。12.1 12.1 多模多模块编块编程方法程方法 使用多模块编程技术的处理过程大致如下:使用多模块编程技术的处理过程大致如下:1 1、首首先先将将一一个个大大的的源源程程序序根根据据其其功功能能合合理理地地划划分分成成若若干干个个小小的的源源程程序序,每每个个小
3、小源源程程序序均均以以程程序序文文件件(.C)(.C)的的形形式式保保存存在在磁磁盘盘上上。并并建建立立一一个个包包括括各各个个源源程程序序模模块的文件名的工程文件块的文件名的工程文件(.prj)(.prj)。2 2、然然后后用用编编译译器器进进行行编编译译,将将工工程程文文件件中中指指定定的的多多个个源源程程序序文文件件进进行行编编译译,生生成成多多个个目目标标文文件件和和一一个个可可执执行行文文件件。注注意意,在在分分模模块块单单独独编编译译处处理理的的各各个个程程序模块中,必须有且只有一个主函数序模块中,必须有且只有一个主函数 main()。一、程序模块组织C C语言程序设计语言程序设计
4、C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页1 1、使用外部变量使用外部变量 即即一一个个程程序序文文件件file1.c中中定定义义一一个个外外部部变变量量,另另一一个个程程序序文文件件file2.c中中的的函函数数可可以以通通过过外外部部变变量量说说明明后后来来使用这个变量,以实现模块间的通信。使用这个变量,以实现模块间的通信。说明形式:说明形式:extern 类型说明符类型说明符 外部变量名外部变量名;注意:只是进行了说明,并不是变量定义。注意:只是进行了说明,并不是变量定义。2、举例举例 利利用用外外部部变变量量实实现
5、现程程序序模模块块f1.c与与程程序序模模块块f2.c之之间的通信。间的通信。二、模块之间的通信设程序模块文件设程序模块文件f1.c的内容如下:的内容如下:#includeintvar=8;/*全局变量的定义全局变量的定义*/C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页main()printf(“%d”,var);proc1();printf(“%dn”,var);程序模块文件程序模块文件f2.c的内容如下:的内容如下:externintvar;/*外部变量的说明外部变量的说明*/proc1()
6、var=25;程序编译连接生成可执行文件,执行结果为:程序编译连接生成可执行文件,执行结果为:825C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页1、#include命命令令经经过过预预处处理理后后,会会将将其其后后有有关关文文件的内容拷贝到命令所在的源程序文件中。件的内容拷贝到命令所在的源程序文件中。2、在在上上一一个个例例子子中中,程程序序要要能能够够编编译译运运行行,需需建建立一个工程文件立一个工程文件f12.prj,其,其内容为:内容为:f1.cf2.c然后对然后对f12.prj文件编译运
7、行即可。文件编译运行即可。3、也可以在、也可以在f1.c文件开头文件开头加一预处理命令加一预处理命令:三、预处预处理命令理命令#include的应用#include#includeintvar=8;main()对对f1.c文件直接编译运行即可。文件直接编译运行即可。C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页12.2 12.2 图形处理应用图形处理应用 图形处理是计算机应用的一个极具特色的领域,有图形处理是计算机应用的一个极具特色的领域,有很好的应用前景,可以很好的应用前景,可以增强程序的趣味性
8、、实用性。增强程序的趣味性、实用性。一、基本图形处理库函数TurboC支支持持多多种种显显示示适适配配器器的的各各种种显显示示模模式式,提提供供了了画画点点、线线、圆圆、椭椭圆圆、多多边边形形以以及及输输出出各各种种字字体体等功能的函数。等功能的函数。这这些些函函数数包包含含在在图图形形头头文文件件(graphics.h)中中,在在进进行行目目标标程程序序连连接接时时,也也必必须须将将图图形形库库文文件件graphics.lib连连接接到到目目标标程程序序中中去去,其其图图形形接接口口还还包包括括图图形形显显示示驱驱动程序(动程序(*.BGI)等。等。C C语言程序设计语言程序设计C C语言程
9、序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页作用:将一个图形驱动程序装入内存,并将系统设置成作用:将一个图形驱动程序装入内存,并将系统设置成 图形模式;图形模式;说明:说明:gd指定指定所用的图形驱动程序,其值可参照书上所用的图形驱动程序,其值可参照书上 的图形驱动程序常量表;的图形驱动程序常量表;gm说明初始化的图形模式,其取值见附录说明初始化的图形模式,其取值见附录;path指定驱动程序目录路径,空字符时表示驱动指定驱动程序目录路径,空字符时表示驱动 程序就在当前目录下。程序就在当前目录下。例如:若已知所用的图形适配器为例如:若已知
10、所用的图形适配器为CGA,并打算使用并打算使用640200高分辨率模式高分辨率模式CGAHI,则图形初始化则图形初始化部分可写成:部分可写成:1 1、图形系统初始化函数图形系统初始化函数 显示模式控制函数显示模式控制函数initgraph(gd,gm,path)intgd=CGA,gm=CGAHI;initgraph(&gd,&gm,“TC”);C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页自动检测显示器硬件的函数自动检测显示器硬件的函数detectgraph(gd,gm)作用:当编程者不知所用的
11、图形适配器的类型,作用:当编程者不知所用的图形适配器的类型,或者需要编写在不同图形模式下均能运行或者需要编写在不同图形模式下均能运行的图形程序,使用该函数可以完成对适配的图形程序,使用该函数可以完成对适配器的检查,获取显示器类型号(赋给器的检查,获取显示器类型号(赋给gd)及相应的显示模式(赋给及相应的显示模式(赋给gm)。)。例如:图形初始化部分可以写成:例如:图形初始化部分可以写成:intgd,gm;detectgraph(&gd,&dm);/*自动测试硬件自动测试硬件*/initgraph(&gd,&gm,“TC”);/*根据测试结果进行图形初始化根据测试结果进行图形初始化 */C C语
12、言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页恢复显示方式函数恢复显示方式函数closegraph()作用:作用:关闭图形系统,返回文本工作方式。关闭图形系统,返回文本工作方式。恢复工作模式函数恢复工作模式函数restorecrtmode()设置图形工作模式函数设置图形工作模式函数setgraphmode()作用:作用:使显示器工作方式在图形和文本方式使显示器工作方式在图形和文本方式 之间来回切换。之间来回切换。清屏函数清屏函数cleardevice()作用:用于作用:用于画图前进行清除屏幕画图前进行清除
13、屏幕;作用范围为整个屏幕。作用范围为整个屏幕。C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页2 2、基本图形函数基本图形函数三种最基本的图形函数:画点、线、圆函数三种最基本的图形函数:画点、线、圆函数画点函数画点函数putpixel(x,y,color);作用:将在坐标作用:将在坐标x、y指定的位置上画一点,指定的位置上画一点,该点的颜色由该点的颜色由color值决定。值决定。画线函数画线函数line(startx,starty,endx,endy);作作用用:在在(startx,starty)和
14、和(endx,endy)两两点点间画一直线,颜色为系统当前颜色。间画一直线,颜色为系统当前颜色。画圆函数画圆函数circle(x,y,radius);作作用用:用用当当前前颜颜色色画画一一个个圆圆心心在在(x,y)处处,半半径大小为径大小为radius的圆的圆。C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页画圆弧、扇形、椭圆函数画圆弧、扇形、椭圆函数画圆弧函数画圆弧函数arc(x,y,start,end,radius);作作用用:用用当当前前颜颜色色,以以(x,y)为为圆圆心心,(start,en
15、d)为起为起止角,止角,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)为两轴半径画为两轴半径画椭圆。椭圆。说明:说明:sta
16、rt、end均以角度为单位。均以角度为单位。C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页画多边形、矩形和条形图函数画多边形、矩形和条形图函数画多边形函数画多边形函数drawpoly(numpoints,points);作用:用当前颜色画一个多边形,多边形的顶点数作用:用当前颜色画一个多边形,多边形的顶点数为为numpoints,而,而points指向的整形数组连续指向的整形数组连续存放着各顶点的存放着各顶点的(x,y)坐标。坐标。画画矩形矩形函数函数rectangle(left,top,righ
17、t,bottom);作用:用当前颜色,以作用:用当前颜色,以(left,top)为左上角坐标,以为左上角坐标,以(right,bottom)为右下角坐标画一个矩形。为右下角坐标画一个矩形。画画条形图条形图函数函数bar(left,top,right,bottom);bar3d(left,top,right,bottom,depth,topflag);作用:用当前颜色,画一实心条形图;作用:用当前颜色,画一实心条形图;depth决定决定bar3d()产生的三维条形图的厚度,产生的三维条形图的厚度,topflag决定是否加顶盖。决定是否加顶盖。C C语言程序设计语言程序设计C C语言程序设计语言程
18、序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页3 3、颜色控制函数颜色控制函数 屏幕上显示出的点、线、面的颜色称为前景色,屏幕上显示出的点、线、面的颜色称为前景色,而衬托它们的背景颜色称为背景色。而衬托它们的背景颜色称为背景色。在在TurboC中常使中常使用的用的16个标准色为:个标准色为:C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页颜色设置颜色设置函数函数setcolor(color);作用:作用:用颜色值用颜色值color设置当前画图颜色设置当前画
19、图颜色。图形填充图形填充函数函数floodfill(x,y,bordercolor);作用:该函数对任意封闭图形进行填充,其颜色和作用:该函数对任意封闭图形进行填充,其颜色和模式由设定的或缺省的颜色与图形模式决定。模式由设定的或缺省的颜色与图形模式决定。说明:编程时该函数位于画图函数之后;参数说明:编程时该函数位于画图函数之后;参数(x,y)为封闭图形中的任意一点,为封闭图形中的任意一点,bordercolor是封是封闭图形的边框颜色。闭图形的边框颜色。填充模式填充模式函数函数setfillstyle(pattern,color);作用:作用:来设定来设定floodfill()函数函数的填充模
20、式的填充模式。说明:说明:参数参数pattern的值及其符号如下表所示。的值及其符号如下表所示。C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页举例:举例:利用基本作图函数及颜色控制函数画图。利用基本作图函数及颜色控制函数画图。#include#include#includevoidbox(int,int,int,int);C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页main()intgd=DETEC
21、T,gm,i;/*将图形模式设置成缺省模式将图形模式设置成缺省模式*/initgraph(&gd,&gm,“tc”);/*根据测试结果进行图形初始化根据测试结果进行图形初始化*/cleardevice();/*清屏幕清屏幕*/setcolor(1);/*设置当前画图颜色为蓝色设置当前画图颜色为蓝色*/line(0,0,639,349);/*画一条直线画一条直线*/box(100,100,300,200,1);/*调调box函数画一个框函数画一个框*/floodfill(110,110,1);/*填充颜色填充颜色*/setcolor(2);/*设置当前画图颜色为绿色设置当前画图颜色为绿色*/li
22、ne(50,200,400,125);/*画一条直线画一条直线*/circle(320,175,100);/*画一个圆画一个圆*/C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页setcolor(BLUE);/*设置当前画图颜色为蓝色设置当前画图颜色为蓝色*/circle(100,100,200);/*再画一个圆再画一个圆*/setfillstyle(SILID-FILL,GREEN);/*设填充模式设填充模式*/floodfill(500,250,1);/*填充填充*/getch();for(i=
23、0;i15;i+)setfillstyle(HATCH-FILL,i);/*设填充线为阴影线设填充线为阴影线*/bar(20*i,0,20*(i+1),20);/*画矩形条画矩形条*/getch();closegraph();/*关闭图形模式关闭图形模式*/C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页voidbox(x1,y1,x2,y2,color)/*画一个封闭框画一个封闭框*/intx1,y1,x2,y2,color;setcolor(color);line(x1,y1,x1,y2);li
24、ne(x1,y1,x2,y1);line(x2,y1,x2,y2);line(x2,y2,x1,y2);4 4、图形模式下字符输出函数图形模式下字符输出函数 字符输出字符输出函数函数outtext(str);作用:作用:在当前位置输出由在当前位置输出由str指定的指定的字符串。字符串。说明:说明:它能用不同的字型、大小,和不同的显示它能用不同的字型、大小,和不同的显示 方向输出文字。方向输出文字。C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一页下一页下一页字符输出属性函数字符输出属性函数settextstyle
25、(font,direction,charsize);作用:作用:改变输出字符串的字型、大小和方向。改变输出字符串的字型、大小和方向。说明:说明:参数参数font确定所用的字型;确定所用的字型;direction的值表示字符的显示方向。它可以的值表示字符的显示方向。它可以是是HORIZ-DIR(水平输出,值为水平输出,值为0),或是),或是VERT-DIR(垂直输出,值为垂直输出,值为1)。)。charsize是增加字符大小的倍数(是增加字符大小的倍数(010)。)。C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计C C语言程序设计语言程序设计上一页上一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第12章 C语言综合应用程序示例 12 语言 综合 应用程序 示例
限制150内