补充:C语言综合应用程序设计(课程设计后期使用)_第1页
补充:C语言综合应用程序设计(课程设计后期使用)_第2页
补充:C语言综合应用程序设计(课程设计后期使用)_第3页
补充:C语言综合应用程序设计(课程设计后期使用)_第4页
补充:C语言综合应用程序设计(课程设计后期使用)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第13章C语言综合应用程序设计13.1多模块程序设计基础13.2图形处理基础13.3操作系统接口13.4C程序中的汉字显示技术111.1多模块程序设计13.1多模块程序设计基础一.多模块程序的建立使用多模块编程技术的处理过程大致如下:首先将一个大型程序根据其功能合理地划分为若干个小的源程序,每个小源程序均以程序文件(文件扩展名为.C)的形式保存在磁盘上。例如,一个较在程序应该分解成、、、...等多个源程序,各自独立地保存在磁盘上。这些源程序可以进行单独编译,形成.OBJ文件,然后将这些文件组合成一个大的程序。2#include<stdio.h>#include””/*将源程序包含到源程序中*/voidmain(){ ┇A2(); ┇}为:#include<stdlib.h>voidA2(){┇}例如,一个大型程序分解为、两个小源程序.1.include方法为:11.1多模块程序设计3在TurboC中,可以建立一个工程文件(文件扩展名为.prj),将各个源程序模块的文件名包含其中。再用编译器进行编译,将工程文件中指定的多个文件进行编译,生成多个目标文件和一个可执行的文件。2.建立project文件当某个文件有错时,例如,有错误时,编译器会报告错误。用户可对进行修改,修改后再编译时,编译器只会对进行重新编译,其它模块不再被编译,原来生成的目标文件仍可使用。11.1多模块程序设计4【例13-1】从键盘上输入两个整数,输出最大值、最小值及平均值。分析:◆在多模块设计中,首先是源程序拆分成几个小的源程序,每个小的源程序完成一个简单的功能。◆这里,可将源程序文件分成4个小源程序:、、和。其中是主函数,它的功能是从键盘输入两个整数i,j,然后分别调用函数max、min和average,最后在主函数中输出最大值、最小值及平均值。文件、和分别为求两个整数的最大值、最小值和平均值。11.1多模块程序设计5(1)建立一个以.prj为扩展名的工程文件建立.prj工程文件与编写源程序的方法相同,只是这个文件的每行都是C的源程序名,例如文件内容为:/*源程序的扩展名.c可以省略*/然后以.prj为扩展名将以上文件存盘,例如文件名为。11.1多模块程序设计6(2)对工程文件处理在主菜单窗口下,选择菜单项Project/Projectname,系统弹出一个如图13-1所示的窗口。这时,可在该窗口直接输入文件名或通过通配符选择文件。然后按热键Ctrl-F9或选择菜单项Compile/CompiletoOBJ,即可对文件进行编译、连接,最后生成同名的可执行文件。(3)选择菜单项Run/Run,运行文件,11.1多模块程序设计7二。程序模块之间的通信一个大型程序分解成若干个程序模块后,各个模块之间常常需要相互联系,一个模块中的函数可能要调用另一个模块中的函数;函数间也常常需要传递参数,返回处理结果。因此,在多模块编程中,需要解决模块之间的通信问题。在C语言的多模块编程中,模块间通信往往使用外部变量。function1()/**/{externintstudent;…}externintstudent;/*file2.*/fun1(){student=50;…}11.1多模块程序设计813.2图形处理基础一.图形程序运行的条件显示器的图形驱动程序主要有:att.bgi、cga.bgi、egavga.bgi、herc.bgi、ibm8514.bgi、pc3270.bgi、bgiobj.exe.图形程序运行的基本条件是:将相应的显示驱动程序装入内存运行。在C语言中,可通过调用函数initgraph对图形系统进行初始化来实现。11.2图形处理基础9二.基本图形处理函数及基本图形处理方法图形屏幕的坐标与象素点屏幕左上角(0,0)右下角(x,y)xyx方向y方向11.2图形处理基础101.图形系统初始化函数(1)显示模式控制函数initgraphvoidfarinitgraph(intfar*graphdriver,intfar*graphmode,charfar*path);intgraphdriver=EGA;intgraphmode=EGAHI;initgraph(&graphdriver,&graphmode,”\\tc”);intgraphdriver=DETECT;intgraphmode;intgraph(&graphdriver,&graphmode,"\\tc");11.2图形处理基础11(2)检测显示器硬件函数detectgraphvoidfardetectgraph(intfar*graphdriver,intfar*graphmode);(3)清屏函数cleardevicevoidfarcleardevice(void);(4)恢复文本显示方式(或关闭图形系统)函数closegraphvoidfarclosegraph(void);11.2图形处理基础12voidfarrestorecrtmode(void);(5)恢复文本工作模式函数restorecrtmode(6)设置图形工作模式函数setgraphmodevoidfarsetgraphmode(void);11.2图形处理基础132.基本图形处理函数(1)画点、线函数①画点函数putpixelvoidfarputpixel(intx,inty,intcolor);②画线函数linevoidfarline(intstartx,intstarty,intendx,intendy);例:编程,从在屏幕的左上角到屏幕的右下角画一条直线。11.2图形处理基础14(2)画多边形、矩形和条形图函数①画多边形函数drawpolyvoidfardrawpoly(intnumpoints,intfar*points);②画矩形函数rectanglevoidfarrectangle(intleft,inttop,intright,intbottom);③画实心条形图函数barvoidfarbar(intleft,inttop,intright,intbottom);11.2图形处理基础15④画三维条形图函数bar3voidfarbar3d(intleft,inttop,intright,intbottom,intdepth,inttopflag);depth(left,top)(right,bootom)topflag=1(a)depth(left,top)(right,bootom)topflag=0(b)图13-3函数bar3d参数的含义11.2图形处理基础16(3)画圆、圆弧、扇形、椭圆函数①画圆函数circlevoidfarcircle(intx,inty,intradius);②画圆弧函数arcvoidfararc(intx,inty,intstart,intend,intradius);③画扇形函数pieslicevoidfarpieslice(intx,inty,intstart,intend,intradius);④画椭圆函数ellipsevoidfarellipse(intx,inty,intstart,intend,intxradius,intyradius);11.2图形处理基础17起始角=0结束角=起始角和结束角注意:在TurboC中对于角的规定是:屏幕x轴方向为0度,当半径从此处逆时针方向旋转时,则依次是90度、180度、270度。当为360度时,和x轴正向重合,即旋转了一周.11.2图形处理基础183.颜色控制函数在初始化图形系统时,函数initgraph的参数graphmode用来确定屏幕显示模式,也就是用来选择“调色板”。屏幕上显示出的点、线、面的颜色称为前景色,而衬托它们的背景颜色称为背景色。模

式调色板号颜色值0123CGAC0CGAC1CGAC2CGAC30123背景色背景色背景色背景色绿青淡绿淡青红洋红淡红淡洋红黄白棕淡灰11.2图形处理基础1916个标准色及其颜色值颜色值颜色宏

名颜色值颜色宏

名01234567黑蓝绿青红洋红棕浅灰BLACKBLUEGREENCYANREDMAGENTABROWNLIGHTGRAY89101112131415深灰淡蓝淡绿淡青淡红淡洋红黄白DARKGRAYLIGHTBLUELIGHTGREENLIGHTCYANLIGHTREDLIGHTMAGENTAYELLOWWHITE11.2图形处理基础20(1)前景颜色设置函数setcolorvoidfarsetcolor(intcolor);(2)背景颜色设置函数setbkcolorvoidfarsetbkcolor(intcolor);(3)填色函数setfillstylevoidfarsetfillstyle(intpattern,intcolor);(4)封闭图形的填充函数floodfillvoidfarfloodfill(intx,inty,intbordercolor);例,设计一个简单动画,将一个三维条形图从屏幕左上角向右下角移动。11.2图形处理基础214.视口操作函数在图形工作方式下,用户可以在屏幕上设置一个窗口,该窗口称为视口(viewport)。视口中坐标也是以其左上角为参考点,每个视口的左上角坐标也为(0,0),它与物理屏幕坐标(左上角为(0,0)无关,(0,0)

(400,150)(200,100)(200,50)11.2图形处理基础22(1)在屏幕上设置视口的函数setviewportvoidfarsetviewport(intx1,inty1,intx2,inty2,intclipflag);(2)视口清除函数clearviewportvoidfarclearviewport(void);例,利用视口的设置,设计一个简单动画,将一个方块图从屏幕左上角向右下角移动。11.2图形处理基础235.图形模式下字符输出函数(1)当前位置文本输出函数outtextvoidfarouttext(char*str);(2)字符输出定位函数outtextxy(3)改变字型、大小和方向的函数settextstylevoidfarouttextxy(intx,inty,char*str);voidfarsettextstyle(intfont,intdirection,intcharsize);11.2图形处理基础24字体值含义DEFAULT_FONTTRIPLEX_FONTSMALL_FONTSANS_FONTGOTHIC_FONT012348×8点阵三倍笔划小号笔划字体无衬线笔划黑体笔划字符的字体11.2图形处理基础2513.3操作系统接口一.DOS简介1.DOS的基本功能是对系统的基本输入输出进行控制及对内存和进程的管理。2.DOS为用户引用其功能子程序,提供系统的软中断。通过CPU的软中断指令INTn调用相应的程序。指令中的n是中断调用号(中断类型号),中断调用号不同,则调用的程序就不同。3.在TurboC编译系统中,函数int86用于实现ROM-BIOS系统调用。11.3操作系统接口26二.操作系统接口库函数1.通用软中断调用库函数int86intint86(intintno,uinonREGS*inregs,uinonREGS*outregs);软中断号实现功能软中断号实现功能05H10H11H12H13H屏幕打印显示器I/O处理设备列表内存空间管理磁盘I/O处理14H15H16H17H1AH串行接口I/O处理磁带机控制键盘I/O处理打印机I/O处理时钟处理常用BIOS例行程序的软中断号和实现功能11.3操作系统接口27功能号AH功能和使用的寄

器功能号AH功能和使用的寄

器0设置屏幕显示方式AL为显示代码3读光标位置,BH:页号返回在以下寄存器中DH:行坐标DL:列坐标CL:显示模式1设置光标类型CH:光标开始CL:光标结束8读光标位置的字符,BH:页号返回值AL:读取的字符AH:字符的属性2设置光标位置DH:行坐标DL:列坐标BH:页号9显示字符AL:字符的ASCII码BL:字符显示属性BH:显示页号CX:重复次数INT10H的部分功能11.3操作系统接口282.系统功能调用库函数(1)系统功能调用库函数intdosintintdos(unionREGS*inregs,unionREGS*outregs);(2)系统功能调用库函数intdosxintintdosx(unionREGS*inregs,unionREGS*outregs,structSREGS*segregs);segregs是一个结构SREGS类型的指针,结构SREGS类型在dos.h头文件中定义如下:struct SREGS {unsignedint es;/*附加段*/unsignedint ds;/*数据段*/unsignedint ss;/*堆栈段*/unsignedint cs;/*代码段*/}11.3操作系统接口293.发送DOS命令库函数systemintsystem(char*cmd);三.鼠标器及其应用1.鼠标器概况2.鼠标器驱动程序device=mouse.s

温馨提示

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

评论

0/150

提交评论