《电子工程系C语言图形程序设计报告》由会员分享,可在线阅读,更多相关《电子工程系C语言图形程序设计报告(30页珍藏版)》请在金锄头文库上搜索。
1、大连东软信息学院电子工程系2015级 本科C语言图形程序设计报告系所:电子工程系专业:通信工程学生姓名:汤程皓学生学号:15161300106完成日期:2015 年 12 月大连东软信息学院Dalian Neusoft University of Information目录目录- 1 -1 设计要求- 2 -2 程序功能- 2 -3 核心算法- 2 -4 程序代码- 2 -5 运行结果- 2 -6 程序创新说明- 3 -参考文献- 3 -C语言图形程序设计主要内容包括图形模式的初始化、基本图形功能、图形窗口以及图形模式下的文本输出等图形函数的使用,以及按键处理和声音等。学生根据C语言图形程序设
2、计指导书,通过编辑、编译、调试、运行示例代码,逐步掌握C语言图形应用程序中常用函数的作用与使用方法,并综合运用C语言程序设计课程所学知识,设计、实现具有创新功能的程序。成果物是一个综合性较好的图形应用程序和项目报告。1 设计要求设计并实现一个独特的图形应用程序。要求程序功能完整;包含屏幕颜色设置、图形绘制与填充、图形窗口设置、图形模式下文本输出、按键操作等;用户界面友好;代码量500行以上。2 程序功能使用if,for,switch,circle,line,arc及另外一些图形化编程函数实现一些画面效果(形状颜色变化,字体颜色大小设置等),最后使用line画线的方法画出中文“再见“二字。3 核
3、心算法大量使用for循环,switch、if判断来实现一些画面的变化;大量使用函数调用的方式来保持代码的整洁;使用delay()函数来延迟两幅画面切换的时间;大量使用图形化编程的函数和方法来实现画面效果。注:流程图无能为力了,不会画。4 程序代码#include#include#include#include/*模块化编程*/*函数调用*/void start();void tuoyuan();void guochang();void kaitou();void huaban();void tree();void moon();void end();void zai();void jian()
4、;main()int gdriver;int gmode;int i;int line;clrscr();gdriver=DETECT;initgraph(&gdriver,&gmode,C:TC20BGI);kaitou();start();getch();tuoyuan();delay(800);setbkcolor(15);cleardevice();/*插入眼睛像*/ellipse(320,240,0,360,30,17.5);setcolor(4);circle(320,240,17.5);setfillstyle(1,4);floodfill(320,240,4);/*画颜色渐变同
5、心圆*/for(i=0;i=30;i+)setcolor(i);circle(320,240,20+i*10);delay(80);delay(800);guochang();delay(1000);cleardevice();huaban();moon();tree();delay(500);cleardevice();end();setbkcolor(6);zai();delay(1000);/*开头过渡*/void start()int gd;int gm;gd=DETECT;initgraph(&gd,&gm,C:TC20BGI);randomize();cleardevice();s
6、etbkcolor(3);setcolor(4);settextstyle(0,0,2);outtextxy(100,160, tttt ARE YOU READY?!);settextstyle(0,0,2);outtextxy(100,240, Input any key,lets go!); /*画一些形状颜色渐变椭圆*/void tuoyuan()int x=360;int y=160;int driver;int mode=VGAHI;int num=20;int i;int t;int b;driver=DETECT;initgraph(&driver,&mode,C:/TC20/
7、BGI);t=y-30;b=y-30;setbkcolor(0);for(i=0;inum;i+)setcolor(i+2-1);ellipse(200,230,0,360,t,b);t-=5;b+=5;delay(300);for(i=0;i20;i+)setcolor(i+2-1);ellipse(470,240,0,360,t,b);t+=5;b-=5; /*画变色圆周运动*/void guochang()int gdriver;int i;int b;int c;int gmode;gdriver=DETECT;initgraph(&gdriver,&gmode,C:TC20BGI);
8、setbkcolor(13);for(c=1;c9;c+)switch(c)case 1:for(i=1;i640;i+)if(i=1)setcolor(14);for(b=1;b240;b+)line(320, 240, 1, b);elsebreak;case 2:for(i=1;i640;i+)if(i=1)setcolor(4);for(b=240;b480;b+)line(320,240,1,b);elsebreak;case 3:for(i=1;i640;i+)if(i1)setcolor(6);line(320,240,i,479);elsebreak;case 4:for(i=
9、1;i640;i+)if(i=320)setcolor(5);line(320, 240, i,479);elsebreak;case 5:for(i=640;i0;i-)if(i=639)setcolor(10);for(b=480;b240;b-)line(320,240,639,b);elsebreak;case 6:for(i=640;i0;i-)if(i=639)setcolor(3);for(b=240;b0;b-)line(320, 240,639, b);elsebreak;case 7:for(i=640;i0;i-)if(i=320)setcolor(9);line(320
10、,240,i,1);elsebreak;case 8:for(i=640;i0;i-)if(i0)setcolor(12);line(320, 240, i, 1);elsebreak;/*开头*/void kaitou()int i;int a;int b;int c;int gdriver;int gmode;char s30;clrscr();gdriver=DETECT;initgraph(&gdriver, &gmode, C:TC20BGI);setbkcolor(14);cleardevice();for(a=50;a640;)b=50;setcolor(4);circle(a,
11、b,43);setcolor(9);ellipse(a,b,0,360,43,20);ellipse(a,b,0,360,20,43);setcolor(7);ellipse(a,b,0,360,20,10);setcolor(8);circle(a,b,10);setfillstyle(1,8);floodfill(a,b,8);a=a+90;for(b=50;b480;)a=50;setcolor(4);circle(a,b,45);setcolor(9);ellipse(a,b,0,360,21,45);ellipse(a,b,0,360,45,21);setcolor(7);ellipse(a,b,0,360,22.5,12);circle(a,b,12);b=b+95;for(a=50;a640;)b=430;setcolor(4);circle(a,b,43);setcolor(9);ellipse(a,b,0,360,43,20);ellipse(a,