立即注册
查看: 506|回复: 0

[资料] C语言高级编程技术

已绑定手机
发表于 2021-12-1 17:16:01 | 显示全部楼层 |阅读模式 来自 广东省深圳市
使用过 Windows 系统的用户都感受到了图形用户界面的直观和高效。所有 Windows 系统的应用程序都拥有相同或相似的基本外观,包括窗口、菜单、工具条、状态栏等。用户只要掌握其中一个,就不难学会其他软件,从而降低了学习成本和难度。而且 Windows 是一个多任务的操作环境,它允许用户同时运行多个应用程序,或在一个程序中同时做几件事情。例如,我们可以边欣赏 MP3 的音乐边 IE 冲浪,可以在运行 Word 时同时编辑多个文档等。用户直接通过鼠标或键盘来使用应用程序,或在不同的应用程序之间进行切换,非常方便。这些都是单任务、命令行界面的 DOS 操作系统所无法比拟的。TC2.0 或 TC3.0 均是在 DOS 环境下运行的 C 系统。不过,无论采用 TC,还是 VC、BC,所产生的 C 可执行程序都是基于 DOS 系统的。C 语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。C 是一种“中”级语言,它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。C 语言具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外 C 语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的。C 系统提供了大量的功能各异的标准库函数,减轻了编程的负担。所以要用 C 语言实现具有类 Windows 系统应用程序界面特征的、或更生动复杂的 DOS 系统的程序,就必须掌握更高级的编程技术。
本章介绍了如何利用 TC 系统所提供的相关函数实现菜单设计、图形绘制、动画的播放、乐曲的演奏、汉字的显示、图片的显现等技术。

文本的屏幕输出和键盘输入
在前面几章的实例中,程序运行的结果都显示在黑色屏幕上,颜色单调。这并不是说 C语言的所有结果都只能显示在黑色屏幕上,与其他的高级语言一样,C 语言也可以显示多样的界面。例如,编写一个程序,将屏幕垂直平分成两个窗口,左边窗口为蓝色背景,白色前景,右边窗口为绿色背景,红色前景。两个窗口都设计为文本输入,即在窗口中可以输入文字,在窗口屏幕中显示出来。使用【Tab】键在左右两个窗口中切换,每个窗口都有光标,活动窗口光标进行闪烁。
这时前面不曾接触到的新概念,如文本窗口、前景色、背景色,以及如何在屏幕中显示文本输入的窗口;如何设置窗口的前景色、背景色或闪烁等显示属性;如何通过按键来控制窗口的切换等。这就涉及了有关文本的屏幕输出和键盘的输入知识。下面就来介绍这两个方面的内容。

文本屏幕输出
显示器的屏幕显示方式有两种:文本方式和图形方式。本节将介绍文本方式,而图形方式将会在后面一节介绍。文本方式就是显示文本的模式,它的显示单位是字符而不是图形方式下的像素,因而在屏幕上显示字符的位置坐标就用行和列表示。Turbo C 的字符屏幕函数主要包括文本窗口大小的设定、窗口颜色的设置、窗口文本的清除和输入输出等函数。这些函数的有关信息(如宏定义等)均包含在 conio.h 头文件中,因此在用户程序中使用这些函数时,必须用 include 将 conio.h 包含进程序。

Turbo C 图形处理
计算机图形程序设计是程序设计中较难且又最吸引人的部分。为了用户设计图形程序方便,不同版本和公司的 C 编译系统都提供了许多画图库函数,用户设计图形程序时,只要在需要的地方,设置相应的参数对其调用即可(这些画图库函数不是 C 语言标准要求的,一般 C语言程序设计课本中没做介绍)。
Turbo C 提供了非常丰富的图形函数以实现图形程序设计,所有图形函数的原型均在头文件 graphics.h 中,本节将介绍编制图形程序的各种库函数和相应的其他一些知识。使用图形函数时要确保有显示器图形驱动程序“*.BGI”,同时将集成开发环境Options/Linker 中的 Graphics lib 选为 on,只有这样才能保证正确使用图形函数.

图形模式的初始化和关闭
不同的显示器适配器有不同的图形分辨率。即使同一显示器适配器,在不同模式下也有不同分辨率。因此,在屏幕作图之前,必须根据显示器适配器种类将显示器设置成为某种图形模式,在未设置图形模式之前,微机系统默认屏幕为文本模式(80 列,25 行字符模式),此时所有图形函数均不能工作。
1.图形模式的初始化函数
Turbo C 提供了函数 initgraph 用来设置屏幕为图形模式,其原型为:
void far initgraph(int far *gdriver, int far *gmode, char *path);
其中 gdriver 和 gmode 分别表示图形驱动器和模式,path 是指图形驱动程序所在的目录路径。有关图形驱动器、图形模式的符号常数及对应的分辨率见表 14-4。
图形驱动程序由 Turbo C 出版商提供,文件扩展名为.BGI。根据不同的图形适配器有不同的图形驱动程序。例如对于 EGA、VGA 图形适配器就调用驱动程序 EGAVGA.BGI。

独立图形运行程序的建立
Turbo C 对于用 initgraph()函数直接进行的图形初始化程序,在编译和链接时并没有将相应的驱动程序(*.BGI)装入到执行程序,当程序进行到 intitgraph()语句时,再从该函数中第三个形式参数 char *path 中所规定的路径中去找相应的驱动程序。若没有驱动程序,则在 C:\TC中去找,如 C:\TC 中仍没有或 TC 不存在,将会出现错误:
BGI Error: Graphics not initialized (use 'initgraph')
因此,为了使用方便,可建立一个不需要驱动程序就能独立运行的可执行图形程序,Turbo
C 中规定用下述步骤(这里以 EGA、VGA 显示器为例):
(1)在 C:\TC 子目录下输入命令:BGIOBJ EGAVGA
此命令将驱动程序 EGAVGA.BGI 转换成 EGAVGA.OBJ 的目标文件。
(2)在 C:\TC 子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA
此命令的意思是将 EGAVGA.OBJ 的目标模块装到 GRAPHICS.LIB 库文件中。
(3)在程序中 initgraph()函数调用之前加上一句:registerbgidriver(EGAVGA_driver);
该函数告诉连接程序在连接时把 EGAVGA 的驱动程序装入到用户的执行程序中。
经过上面处理,编译链接后的执行程序可在任何目录或其他兼容机上运行。

更多内容请下载附件查看
2021-12-1 17:14 上传
文件大小:
693.33 KB
下载次数:
0
附件售价:
2 RD币  购买记录
本地下载 立即购买

16RD supports Paypal , Payment is calculated at the exchange rate of the day. Unable to download please contact 18902843661 (WhatsApp OR wechat number)

关于一牛网在微软浏览器(Microsoft Edge、IE浏览器)警报通告&解决方案!(无法下载直接更换浏览器即可)

*附件为作者发布,与本站无关,如有侵权,请联系客服删除


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表