高级编程技术的实现ppt课件优秀PPT.pptx
《高级编程技术的实现ppt课件优秀PPT.pptx》由会员分享,可在线阅读,更多相关《高级编程技术的实现ppt课件优秀PPT.pptx(149页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3 3章章 高级编程技术的实现高级编程技术的实现操作手段:键盘操作手段:键盘在键盘内有一个微处理器,用来扫描和检测每个键的按下和抬起状态,然后以程序中断(INT9H)的方式与主机通信,向主机传送一个字节的按键扫描码。接着ROM中BIOS内的键盘中断处理程序,将按键扫描码翻译成对应的ASCII码或扩充的ASCII码,存放在AX寄存器中。它不是它不是ASCIIASCII码;其码;其0606位标识位标识了每个键在键盘上的位置,最了每个键在键盘上的位置,最高位为高位为0 0对应该键是被按下;对应该键是被按下;1 1对应松开;它并不能区别大小对应松开;它并不能区别大小写字母,而且一些特殊键不产写字母
2、,而且一些特殊键不产生扫描码直接引起中断调用生扫描码直接引起中断调用 键名AHAL字符键ASCII码ASCII码功能键/组合键扩充码的ASCII码0原理原理1第第3 3章章 高级编程技术的实现高级编程技术的实现操作手段:键盘操作手段:键盘方法方法方法一:干脆运用声明在bios.h中的库函数bioskey();方法二:通过库函数int86(),调用BIOS的INT 16H、功能 号为0的中断。它将按键的扫描码存放在AH寄存器 中;方法三:简洁地利用声明在conio.h中的库函数kbhit()。2第第3 3章章 高级编程技术的实现高级编程技术的实现操作手段:键盘操作手段:键盘方法一方法一int b
3、ioskey(int cmd)int bioskey(int cmd);/*/*参数cmd用来确定函数如何操作*/cmd=0bioskey()返回按健的键值,该值是返回按健的键值,该值是2个字节的整型数。若个字节的整型数。若没有键按下,则该函数始终等待,直到有键按下。当按没有键按下,则该函数始终等待,直到有键按下。当按下时,若返回值的低下时,若返回值的低8位为非零,则表示为一般键,其位为非零,则表示为一般键,其值代表该键的值代表该键的ASCII码。若返回值的低码。若返回值的低8位为位为0,则高,则高8位位表示为扩展的表示为扩展的ASCII码,表示按下的是特殊功能键码,表示按下的是特殊功能键3第
4、第3 3章章 高级编程技术的实现高级编程技术的实现操作手段:键盘操作手段:键盘方法一方法一int bioskey(int cmd)int bioskey(int cmd);/*/*参数cmd用来确定函数如何操作*/cmd=1bioskey()查询是否有键按下。若返回非0值,则表示有键按下,若为0表示没键按下。4第第3 3章章 高级编程技术的实现高级编程技术的实现操作手段:键盘操作手段:键盘方法一方法一int bioskey(int cmd)int bioskey(int cmd);/*/*参数cmd用来确定函数如何操作*/cmd=2bioskey()将返回一些限制键是否被按过,按过的状态将返回
5、一些限制键是否被按过,按过的状态由该函数返回的低由该函数返回的低8位的各位值来表示:位的各位值来表示:字节位字节位 对应的对应的16进制数进制数含义含义 0 0 x01右边的右边的shift键被按下键被按下 1 0 x02 左边的左边的shift键被按下键被按下 2 0 x04Ctrl键被按键被按下下 3 0 x08 Alt键被按下键被按下 4 0 x10 Scroll Lock已打开已打开 5 0 x20Num Lock已已打开打开 6 0 x40Caps Lock已已打开打开 7 0 x80 Insert已打开已打开5第第3 3章章 高级编程技术的实现高级编程技术的实现操作手段:键盘操作手
6、段:键盘方法二方法二/*读键函数,返回扫描码*/intgetKeySCode()unionREGSrg;rg.h.ah=0;int86(0 x16,&rg,&rg);returnrg.h.ah;6键盘扫描码表见课程主页键盘扫描码表见课程主页第第3 3章章 高级编程技术的实现高级编程技术的实现操作手段:键盘操作手段:键盘方法三方法三int kbhit(void);若按了键盘,该函数返回值1,否则返回值0。7第第3 3章章 高级编程技术的实现高级编程技术的实现操作手段:鼠标操作手段:鼠标DOS操作系统和TurboC2.0并不支持鼠标器的操作。要操纵鼠标器,首先必需安装相应的鼠标驱动程序。鼠标驱动程
7、序由生产鼠标的厂家供应,它供应了很多鼠标操作的功能。这些功能可以通过INT33H鼠标中断调用来运用。原理原理8第第3 3章章 高级编程技术的实现高级编程技术的实现操作手段:鼠标操作手段:鼠标常用功能常用功能/*显示鼠标器光标*/voidcursorOn()unionREGSr;structSREGSs;1;/*1号鼠标器功能:显示鼠标光标*/msvisibleTRUE;int86x(0 x33,&r,&r,&s);9第第3 3章章 高级编程技术的实现高级编程技术的实现/*关闭鼠标器光标*/void cursorOff()union REGS r;struct SREGS s;2;/*2号鼠标器
8、功能:不显示鼠标光标*/msvisibleFALSE;int86x(0 x33,&r,&r,&s);操作手段:鼠标操作手段:鼠标常用功能常用功能10第第3 3章章 高级编程技术的实现高级编程技术的实现/*设定鼠标光标的初始位置*/void cursorXY(unsigned int x,unsigned int y)union REGS r;struct SREG s;r.x.ax=4;/*4号鼠标器功能:设置鼠标光标位置*/r.x.cx=x;/*设定光标x坐标*/r.x.dx=y;/*设定光标y坐标*/int86x(0 x33,&r,&r,&s);mousex=x;mousey=y;操作手段
9、:鼠标操作手段:鼠标常用功能常用功能11第第3 3章章 高级编程技术的实现高级编程技术的实现/*报告鼠标器当前光标位置和当前按键状态*/voidmouseRead()unionREGSrl,r2;structSREGSs;r1.x.ax=3;/*3号鼠标器功能:取按钮状态和鼠标位置*/int86x(0 x33,&r1,r2,&s);mousex=r2.x.cx;/*鼠标器光标x方向坐标*/mousey=r2.x.dx;/*鼠标器光标y方向坐标*/mousekey=r2.x.bx;/*鼠标器按健状态*/操作手段:鼠标操作手段:鼠标常用功能常用功能12第第3 3章章 高级编程技术的实现高级编程技术
10、的实现/*等待鼠标器的某种状态*/void wait(int i)do mouseread();while(mousekey=i);操作手段:鼠标操作手段:鼠标常用功能常用功能13第第3 3章章 高级编程技术的实现高级编程技术的实现主要内容主要内容操作手段显示方式图形绘制技术图像技术动画技术发声技术汉字显示技术精确的时间限制技术14第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:显示系统显示方式:显示系统显卡在计算机主机和显示器之间起到了信息转换和视频发送作用,必须与显示器配套。不同种类的显卡支持的显示模式种类不同,而且同一显卡一般可以支持多种显示模式。一种显示模式指定了相应显示
11、器的工作方式、分辨率和颜色数目。显显 卡卡15第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:显示系统显示方式:显示系统 常见显卡及其模式常见显卡及其模式16第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:显示系统显示方式:显示系统 显示器工作方式显示器工作方式显示器有两种工作方式,即文本显示方式和图形显示方式,它们的主要差别是显示存储器(VRAM)中存的信息不同。文本方式时,VRAM存放要显示字符的ASCII码,用它作为地址,取出字符发生器ROM中存放的相应字符的图像变成视频信号在显示器屏幕上进行显示。图形方式时,则要显示的图形的图像干脆存在VRAM中,VRAM中
12、某地址单元存放的数就表示了相应屏幕上某行和列上的像素及颜色。17第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:显示方式:也称作字符显示方式,是TurboC确省的显示方式。文本方式屏幕的最大分辨单位是单个字符,字符显示的位置用行和列坐标来表示。文本方式文本方式18第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:文本方式显示方式:文本方式方式设定方式设定TurboC支持的几种文本显示方式可以用下面的函数来设置:void textmode(int newmode);。19第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:文本方式显示方式:文本方式颜色设置颜色
13、设置void textbackground(int color);/*设置字符背景颜色*/void textcolor(int color);/*设置字符颜色*/void textattr(int attr);/*/*可同时设置文本的字符和背景颜色*/颜色函数颜色函数20第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:文本方式显示方式:文本方式窗口设置窗口设置Turbo C确省定义的文本窗口为整个屏幕。用户可以通过函数:void window(int left,int top,int right,int bottom);定义屏幕上的一个矩形域作为窗口窗口。参数(left,top)
14、是窗口左上角所在的屏幕坐标,(right,bottom)是窗口的右下角所在的屏幕坐标。窗口定义之后,用有关窗口的输入输出函数就可以只在此窗口内进行操作而不超出窗口的边界。另外,一个屏幕可以定义多个窗口,但现行窗口只能有一个。21第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:文本方式显示方式:文本方式窗口操作窗口操作窗口内文本输出函数:窗口内文本输出函数:int cprintf(char*format int cprintf(char*format,表达式表,表达式表);int cputs(char*str)int cputs(char*str);int putch(int ch
15、)int putch(int ch);/*/*这三个函数受窗口的限制,窗口内显示光标的位置就这三个函数受窗口的限制,窗口内显示光标的位置就是它们起先输出的位置。当输出行超过窗口右边界或输是它们起先输出的位置。当输出行超过窗口右边界或输出到窗口底部边界时,会自动转到窗口内的下一行输出出到窗口底部边界时,会自动转到窗口内的下一行输出或自动上卷窗口内的内容接着输出或自动上卷窗口内的内容接着输出*/*/光标操作函数:光标操作函数:void gotoxy(int x,int y);/*void gotoxy(int x,int y);/*把光标移到窗口把光标移到窗口(x,y)(x,y)处处*/*/22第
16、第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:文本方式显示方式:文本方式屏幕操作屏幕操作 清屏函数:清屏函数:void void clrscr(void);clrscr(void);/*/*清清除除窗窗口口文文本本,光光标标移移到到(1,1)*/(1,1)*/void void clreol(void);clreol(void);/*/*清清除除窗窗口口从从光光标标位位置置起起先到本行先到本行 结结尾尾的的全全部字符,但光标不变部字符,但光标不变*/*/void void delline(void);delline(void);/*/*删删除除当当前前窗窗口口的的当当前前行行*/
17、*/23第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:文本方式显示方式:文本方式屏幕操作屏幕操作 屏幕文本移动函数:屏幕文本移动函数:void movetext(int x1,int y1,int x2,int y2,int x3,int y3);屏幕文本存取函数屏幕文本存取函数void gettext(int x1,int y1,int x2,int y2,void*buffer);void puttext(int x1,int y1,int x2,int y2,void*buffer);24第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:文本方式显示方式:文本
18、方式编制一个程序,将屏幕垂直平分成两个窗口,左边窗口为蓝色背景,白色前景,右边窗口为绿色背景,红色前景。两个窗口都设计为文本输入,即在窗口中可以输入文字,在窗口屏幕中显示出来。运用tab键在左右两个窗口中切换,每个窗口都有光标,活动窗口光标进行闪烁。应应用用实实例例 问题描述问题描述25第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:文本方式显示方式:文本方式首先用文本窗口函数window(int x1,int y1,int x2,int y2)画出两个窗口,用textcolor(int color),textbackground(int color),clrscr(void)等
19、进行窗口属性的设置。用tab键进行两个窗口间的循环切换,在每次切换前先调用gettext(int left,int top,int right,int bottom,void*buf)函数把当前矩形窗口上的字符拷贝到由buf所指向的内存中,在切换到另一个窗口后调用puttext(int left,int top,int right,int bottom,void*buf)把从前存储在该窗口buf所指向的内存中的字符拷贝到当前窗口中,并用gotoxy(int x,int y)把光标移到原先所在位置,因此可以接着从前的文本接着编辑。应应用用实实例例 设计思想设计思想26第第3 3章章 高级编程技术
20、的实现高级编程技术的实现显示方式:文本方式显示方式:文本方式应应用用实实例例 程序运行截图程序运行截图27第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:显示方式:图形方式图形方式图形显示方式可以满足在屏幕上作图的要求。在此方式下,屏幕显示的单位是像素。屏幕显示的像素大小(分辨率)可以通过设置不同的显示方式来改变。像素在屏幕上的位置可由其所在的x,y坐标来决定。此时,屏幕的坐标系统就象一个倒置的直角坐标系。28第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:图形方式显示方式:图形方式方式设定方式设定图形系统的初始化:图形系统的初始化:用什么类型的显卡的驱动程序用什么
21、类型的显卡的驱动程序接受什么模式的图形方式接受什么模式的图形方式适配器驱动程序的找寻路径名。适配器驱动程序的找寻路径名。留意:所用系统的卡确定要支持所选用的显示模式,留意:所用系统的卡确定要支持所选用的显示模式,否则将出错。否则将出错。29第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:图形方式显示方式:图形方式方式设定方式设定图形系统的初始化函数:图形系统的初始化函数:void far initgraph(int far*pdriver,int far*pmode,char far*ppath_for_driver);enumgraphics_driver DETECT,CGA
22、,MCGA,EGA,EGA64,EGAMONO,IBM8514,HERCMONO,ATT400,VGA,PC3270;30第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:图形方式显示方式:图形方式方式设定方式设定图形系统的初始化函数:图形系统的初始化函数:void far initgraph(int far*pdriver,int far*pmode,char far*ppath_for_driver);31第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:图形方式显示方式:图形方式方式设定方式设定图形系统检测函数图形系统检测函数 :void far detectgr
23、aph(int far*pdrivervoid far detectgraph(int far*pdriver,int far int far*pmode)*pmode);完成对适配器的检查并得到显示器类型号和相应的最高辨完成对适配器的检查并得到显示器类型号和相应的最高辨别率模式别率模式 将graphdriver设成DETECT,initgraph()将调用detectgraph()自动检测所用显卡类型,并将相应的驱动程序装入,并将其最高的显示模式作为当前显示模式。int graphdriver=DETECT,graphmode;initgraph(&graphdriver,&graphmod
24、e,);32第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:图形方式显示方式:图形方式方式设定方式设定清屏函数:清屏函数:画画图图前前一一般般需需清清除除屏屏幕幕,使使得得屏屏幕幕犹犹如如一一张张白白纸纸,以以画最新最美的图画。画最新最美的图画。void far cleardevice(void);图形系统的关闭:图形系统的关闭:当画图结束时可以通过调用关闭图形系统的函数:当画图结束时可以通过调用关闭图形系统的函数:void far closegraph(void);使显示器复原到调用使显示器复原到调用initgraph()函数之前的文本方式。函数之前的文本方式。33第第3 3章
25、章 高级编程技术的实现高级编程技术的实现显示方式:图形方式显示方式:图形方式颜色设置颜色设置前景色设置函数:前景色设置函数:void far setcolor(int color);背景色设置函数:背景色设置函数:void far setbkcolor(int color);34第第3 3章章 高级编程技术的实现高级编程技术的实现显示方式:图形方式显示方式:图形方式颜色设置颜色设置前景色设置函数:前景色设置函数:void far setcolor(int color);背景色设置函数:背景色设置函数:void far setbkcolor(int color);35第第3 3章章 高级编程技术
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 编程 技术 实现 ppt 课件 优秀
限制150内