毕业设计C语言论文(6)

2019-06-17 09:30

int main() {

int i, gdriver, gmode; char s[30];

gdriver=DETECT;

initgraph(&gdriver, &gmode, \setbkcolor(BLUE); cleardevice();

setviewport(100, 100, 540, 380, 1); /*定义一个图形窗口*/

setfillstyle(1, 2); /*绿色以实填充*/ setcolor(YELLOW);

rectangle(0, 0, 439, 279); floodfill(50, 50, 14); setcolor(12);

settextstyle(1, 0, 8);

/*三重笔划字体, 水平放大8倍*/ outtextxy(20, 20, \setcolor(15);

settextstyle(3, 0, 5);

/*无衬笔划字体, 水平放大5倍*/

outtextxy(120, 120, \setcolor(14);

settextstyle(2, 0, 8); i=620;

sprintf(s, \/*将数字转化为字符串*/ outtextxy(30, 200, s); /*指定位置输出字符串*/ setcolor(1);

settextstyle(4, 0, 3); outtextxy(70, 240, s); getch();

closegraph(); return 0; }

- 26 -

第三章 程序设计说明

3.1 程序功能简介和使用方法

功能:编出来的该程序实现画虚线,实线,画圆,画椭圆,画立体形,画矩形,画直线等图形功能。

使用方法:由于为了方便左手的操作,本程序采用了流行的游戏反恐精英CS的左右上下移动。W向上画线;S向下画线;A向左画线;D向右画线;F1和F2是改变画图颜色;按键Z、X、C、V、B、N、Q等都是功能键,下面为它们分别详细说明:Z键主要是清除屏幕上所有的图形,这时按下z键,整个屏幕都变成蓝色背景,因本程序不设有固定的图形操作窗口,因此整个屏幕都做为画图窗口。X键主要是画一个立体形并填充。C键画圆,以50为半径,以X,Y轴为圆点画圆,本程序不设有以任意长为半径画圆。 V键主要是清除屏幕上的局部图形,该键能够清除上半屏幕90%的图形。B键是帮助,按B键会有相应的操作帮助文字在显示屏中显示出来,如要返回画图操作,须要清除帮助文字,清除按B键。N键画椭圆,同样,跟画圆一样,本程序不设有以任意半径为画椭圆,这时,只有以X轴,Y轴为圆心,以半径为60、40画椭圆。Q键画矩形。

空格键SPACE与回车键ENTER尤为重要,他们主要应用于画线应用,下面也为它们如何使用进行详细的说明,首先,按下ENTER键,则是画点,按下SPACE键关闭画笔;按下SPACE键然后再按下ENTER键,则打开画笔,这是画出的图形为虚线,再按下ENTER键后,虚线变为实线,如果画直线为虚线状态,那么按下Q键画出来的矩形也是虚线的边框。利用本程序可以画出很漂亮的图形出来。

注:在画图的情况下要确保在小写的状态下,也就是说要确保键盘上的CapsLock灭的状态下才能移动光标。否则移动按键将不起作用。打开程序后,要首先按F1或F2来改变作图颜色,不然将可能不能实现显示图像。

- 27 -

3.2 程序设计说明

首先从头文件开始,因为程序用到了图形函数,所以调用了graphics.h头文件图形函数,头文件下来的,define主要定义了一些按键,W、S、A、D、ESC、ENTER、F1、F2、SPACE、C、V、B、N、Q等按键,这些主要定义为键盘功能按键,这利用了键盘所具有的键盘扫描码来实现的,获得键盘码有好几种方法,设计本程序都是利用下面的程序来获得键盘扫描码,程序如下: #include #include #include main() {

int key;

gey=boiskey(0);

printf(“scancode=%d”,key); getch(); }

每输入一个键盘按键,程序就会自动获得相应的扫描码并在屏幕上显示出来,该程序能够获得键盘上的全部所有键盘扫描码。 程序接下来,用到了自己定义函数,定义一个画笔移动的函数,程序一般都是首先定义然后调用函数,本程序采用了这种方法,关于定义函数在这里不在作详细说明。

一个程序,开始都是从main()函数下执行程序的,并根据里面的所要来调用别的函数。程序里先给变量定义整形变量。gdriver=DETECT,mode,initgraph(&gdriver,&mode.””)这里是图形初始化。成开发环境Options/;Linker中的Graphics lib选为on,只有这样才能保证正确使用图形函数。使用图形模式初始化不同显示器有不同的图形分辨率。即使是同一个显示器适配器,在不同模式下也有不同的分辨率。国此,在屏幕作图之前,必须根据显示器适配器的种类将显示器设置成为某种图形模式,在未设置图形模式之前,微机系统默认屏幕为文本模式(80列,25行字符模式),此时反有图形函数均不能工作。要设置屏幕为图形模式,才可以使用。关于这方面的内容,在第二章第一、二节已有详细的介绍,在此不再重要。

在图形模式下显示文字,本程序用了outtextxy(230.450,”Help-B Graduation design of SU HUA XIAN”)函数,在坐标X轴为230,Y轴为450的坐标点输出Help-B Graduation design of SU HUA

- 28 -

XIAN等英文字,在这里关于坐标,在屏幕内是这样定义的,在屏幕左上角坐标为(0,0)右下角坐标为(639,479),水平方向从左到右为X轴正向,垂直方向从上到下为Y轴正向。TURBOC的图形函数都是相对于图形屏幕坐标,即像元来说的。在图形模式下,对VGA适配器,它的最高分辨率为640*480,其中640为整个屏幕从左到右所有像元的个数,480为整个屏幕从上到下所有像元的个数。

关于文本的颜色以及屏幕背景颜色在第二章已有详细介绍,在此不再重复说明,程序流程执行到循环语句While(!kbhit()&&(!ifexit)).,在这里主要是开始执行到按键的操作,循环执行,并遇到switch语句,switch是一个选择结构,在语句体内寻找与该值吻合case标号,如果有与该值相等的标号,则执行该标号后开始的各语句,包托在其后的所有case和default中的语句,真到switch语句结束,为了必免执行下不相关的操作,switch采用了break语句间断语句,在case之后的语句最后加上break语句,每当执行到break语句时,立即跳出switch语句体。从而起到了选择的作用,语句内的主本以key按键作为体内语句,如果用户在键盘上按W键,那么语句将会执行case分支W的语句,在语句内又有一个选择语句,i

If(y>5) {

y=y-1;

action(x,y,lastx,lasty,buf[3],x1,y1,drawmode); lastx=x; lasty=y; }

如果y>5就是说以y轴为从上向下的正向,向上画线,按键X\\A\\D也同样的,在此不做详细介绍。在分支case的ESC,在这里主要执行了退出程序功能,如果用户按下ESC键时,首先执行了clrscr()清除语句,清除屏幕上的图形,并接下来执行printf输出语句,按任意键退出程序。

关于case语句后面的语句在第二章中已经提到,在此不再重复,程序一直以选择的语句和循环的语句执行,直到遇到closegraph();函数时退出图形操作,退出程序。该程序源代码比较简单,通过本程序可以了解到一般程序的设计过程和实现方法,知道程序的语法结构,程序不外乎人定义后,再执行出人相要的结果,程序流程也表现出了这种趋势,通过相应的函数并调用它,知道C语言的语法,实现自己写出一个程序并不难。

- 29 -

参考文献

任志宏 程超编著的《C语言经典范例50讲》 北京希望电子出版社出版

求是科技编著的《C&C++实效编程百例》 电子工业出版社出版

田淑清编著的《C语言程序设计》 高等教育出版社出版

谭浩强编著的《C语言程序设计》 清华大学出版社出版

[美]Donald编著的《计算机图形学C语言版》 清华大学出版社出版

苏小红编著的《C 语言大学实用教程》 电子工业出版社出版

- 30 -


毕业设计C语言论文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:广播电视概论复习提纲

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: