大连东软信息学院 电子工程系 2014级 本科
C语言项目实践指导书
(图形程序设计)
2015年8月
大连东软信息学院
Dalian Neusoft University of Information
目录
0 C语言图形程序开发环境(4学时) ......................................................................................- 2 - 1 图形模式的初始化 ...................................................................................................................- 2 - 2 独立图形运行程序的建立 .......................................................................................................- 6 - 3 屏幕颜色的设置和清屏函数(4学时) ................................................................................- 7 - 4 基本图形函数(4学时) ..................................................................................................... - 10 - 5 封闭图形的填充(4学时) ................................................................................................. - 16 - 6 有关图形窗口和图形屏幕操作函数(4学时) ................................................................. - 21 - 7 图形模式下的文本输出(4学时) ..................................................................................... - 24 - 8 使用gotoxy & window函数(2学时) .............................................................................. - 30 - 9 按键(4学时) ..................................................................................................................... - 32 - 10 TC向VC控制台程序移植(2学时) ................................................................................ - 34 - 11 菜单制作(6学时) ........................................................................................................... - 40 - 12 综合程序设计(12学时) ................................................................................................. - 40 - 补充1 声音............................................................................................................................... - 41 - 补充2 鼠标............................................................................................................................... - 41 - 参考文献.................................................................................................................................... - 44 -
- 1 -
C语言项目实践(图形程序设计)分为14个部分(节),主要实践内容包括图形模式的初始化、基本图形功能、图形窗口以及图形模式下的文本输出等图形函数的使用,以及按键处理、菜单制作、TC向VC控制台程序移植、声音和鼠标的添加等。学生通过编辑、编译、调试、运行项目报告中的原代码和回答相关的问题,掌握C语言图形应用程序中常用函数的作用与使用方法,并综合运用《C语言程序设计》和《数据结构》课程所学知识,设计、实现具有创新功能的程序。成果物是一个综合性较好的图形应用程序和项目报告。
项目报告中除了第2节,其它各节都有程序练习和问题,由学生按要求填写完成。
0C语言图形程序开发环境(4学时)
C语言项目实践(图形程序设计)的开发环境是TurboC。Turbo C集成开发环境是由Borland公司开发的一套 C 语言开发工具,它集成了程序编辑、调试、链接等多种功能。关于Turbo C 2.0的安装与使用参考“Turbo C 2.0集成开发环境.pdf”文档。
Turbo C提供了非常丰富的图形函数,所有图形函数的原型均在graphics. h中。使用图形函数时要确保有显示器图形驱动程序*BGI,同时将集成开发环境Options/Linker中的Graphics lib选为on,只有这样才能保证正确使用图形函数。
如果想用C语言在VC++编译器中编辑图形界面程序,需安装VC++和EasyX。 EasyX是基于C++开发的,与TC的图形库一定程度上保持一致。关于VC++和EasyX 图形库的安装将在第10节“TC向VC控制台程序移植”部分进行说明。
1 图形模式的初始化
不同的显示器适配器有不同的图形分辨率。即是同一显示器适配器,在不同模式下也有不同分辨率。因此,在屏幕作图之前,必须根据显示器适配器种类将显示器设置成为某种图形模式,在未设置图形模式之前,微机系统默认屏幕为文本模式(80列, 25行字符模式),此时所有图形函数均不能工作。设置屏幕为图形模式,可用下列图形初始化函数:
- 2 -
void far initgraph(int far *gdriver, int far *gmode, char *path);
其中gdriver和gmode分别表示图形驱动器和模式,path是指图形驱动程序所在的目录路径,如:\或\等。有关图形驱动器、图形模式的符号常数及对应的分辨率见表1。
图形驱动程序由Turbo C出版商提供, 文件扩展名为.BGI。根据不同的图形适配器有不同的图形驱动程序。例如对于EGA、VGA图形适配器就调用驱动程序EGAVGA.BGI。
表1.1图形驱动器、模式的符号常数及数值
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 图形驱动器(gdriver)
图形模式(gmode)
色调 分辨率
─────────────── 符号常数
数值
─────────────
符号常数
数值
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ CGA
1
CGAC0 CGAC1 CGAC2 CGAC3
0 1 2 3 4
C0 320*200 C1 320*200 C2 320*200 C3 320*200 2色 640*200
CGAHI
───────────────────────────────────────────────────
MCGA
2
MCGAC0 MCGAC1 MCGAC2 MCGAC3 MCGAMED MCGAHI
0 1 2 3 4 5
C0 320*200 C1 320*200 C2 320*200 C3 320*200 2色 640*200 2色 640*480
───────────────────────────────────────────────────
EGA
3
EGALO EGAHI
0 1
16色 640*200 16色 640*350
───────────────────────────────────────────────────
EGA64
4
EGA64LO EGA64HI
0 1
16色 640*200 4色 640*350
───────────────────────────────────────────────────
EGAMON
5
EGAMONHI
0
2色 640*350
───────────────────────────────────────────────────
IBM8514
6
IBM8514LO IBM8514HI
0 1
256色640*480 256色1024*768
───────────────────────────────────────────────────
- 3 -
HERC 7 HERCMONOHI 0 2色 720*348
───────────────────────────────────────────────────
ATT400
8
ATT400C0 ATT400C1 ATT400C2 ATT400C3 ATT400MED ATT400HI
0 1 2 3 4 5
C0 320*200 C1 320*200 C2 320*200 C3 320*200 2色 320*200 2色 320*200
───────────────────────────────────────────────────
VGA
9
VGALO VGAMED VGAHI
0 1 2
16色 640*200 16色 640*350 16色 640*480
───────────────────────────────────────────────────
PC3270
10
PC3270HI
0
2色 720*350
───────────────────────────────────────────────────
DETECT
0
用于硬件测试
例1.1:使用图形初始化函数设置VGA高分辨率图形模式。
#include
int main() { int gdriver, gmode;
gdriver=VGA; gmode=VGAHI;
initgraph(&gdriver, &gmode, \
bar3d(100, 100, 300, 250, 50, 1);/*画一长方体*/
getch();
closegraph(); return 0; }
有时编程者并不知道所用的图形显示器适配器种类,或者需要将编写的程序用于不同图形驱动器,Turbo C提供了一个自动检测显示器硬件的函数,其调用格式为:
void detectgraph(int *gdriver, *gmode);
例1.2:自动进行硬件测试后进行图形初始化。
#include
- 4 -