[工学]C语言课程设计 手工控温图形仿真系统.doc

上传人:音乐台 文档编号:1976609 上传时间:2019-01-27 格式:DOC 页数:67 大小:191.50KB
返回 下载 相关 举报
[工学]C语言课程设计 手工控温图形仿真系统.doc_第1页
第1页 / 共67页
[工学]C语言课程设计 手工控温图形仿真系统.doc_第2页
第2页 / 共67页
[工学]C语言课程设计 手工控温图形仿真系统.doc_第3页
第3页 / 共67页
亲,该文档总共67页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[工学]C语言课程设计 手工控温图形仿真系统.doc》由会员分享,可在线阅读,更多相关《[工学]C语言课程设计 手工控温图形仿真系统.doc(67页珍藏版)》请在三一文库上搜索。

1、 手工控温图形仿真系统 系统分析报告第一部分 系统分析 1.1系统概要分析 1.2主要功能模块1.3模块细分及各模块的作用介绍 1.4程序流程图第二部分 程序清单第三部分 制作人员及任务情况 3.1制作人员介绍 3.2任务分配情况第四部分 感受 第一部分 系统分析1.1系统概要分析手工控温图形仿真系统是将控温软件以图形的形式直观形象的展现在人们面前,使一个复杂的软件变得通俗。对于想了解控温系统软件的求知者,是不错的入门选择。在日常生活中,常常需要用到控温的装置,了解控温系统方面的知识成了当务之急。本手工控温图形仿真系统将控温系统的表面工作原理,画面及使用方法都以图形的形式展现出来,可供一定的参

2、考。1.2主要功能模块1.界面模块(欢迎界面模块、主界面模块、结束界面模块)。2.程序控制主模块(选择控温方式)。3.说明模块(告知使用方法)。4.自动控温模块(温度输入,界面自动变化)。5.手动控温模块(温度,界面随按键而变化)。1.3模块细分及各模块的作用介绍 1.3.1界面模块 欢迎界面模块:进入系统的欢迎界面,体会一种温馨的气氛和感觉 主界面模块:显示程序的主界面,绚丽多彩,变化多 端的动画结束界面模块:程序结束离开界面,简单又不繁琐的告别画面1.3.2程序控制主模块选择控温方式,分为自动控温和手动控温两种方式用鼠标点击的方法来选择控温方式,简单,方便,直观1.3.3说明模块如何选择控

3、温方式自动控温方式下,如何输入初始,最后温度,如何结束控温手动控温方式下,如何按不同的键,如何结束控温 1.3.4自动控温模块 自动控温下的界面,水,天然气,火焰,温度计的动态显示 温度的输入与数字显示 结束控温 1.3.5手动控温模块手动控温下的界面,水,天然气,火焰,温度计的图形显示按键情况与温度调节结束控温1.4程序流程图 第二部分 程序清单#include#include#include#include#include#include #define KEY_ENTER 0x1c0d#define KEY_UP 0x4800#define KEY_DOWN 0x5000#define

4、KEY_1 0x0231#define KEY_2 0x0332#define KEY_7 0x0837#define KEY_8 0x0938#define KEY_9 0x0a39#define KEY_4 0x0534#define KEY_5 0x0635#define KEY_6 0x0736#define KEY_3 0x0433#define KEY_0 0x0b30void *undermouse; baibai() int i; cleardevice();setbkcolor(CYAN);show_hanzi(230,150,200,手工控温图形仿真系统,100);show

5、_hanzi(290,170,200,感谢您,100);for(i=150;i=0&(int)(*s)128)/*输出可打印字符*/ settextstyle(0,0,2); settextjustify(0,2); setcolor(color); word0=*s; outtextxy(x1,y1,word); s+=1; x1+=16; else find_chinese(s,hanzi); for(y=y1,i=0;i16;i+,y+) for(x=x1,j=0;j=(length-16) y1+=18 ; x1=z; fclose(hzk_p);void welcome1() /*欢

6、迎界面,画面逐步展开*/ int i; setbkcolor(LIGHTBLUE);show_hanzi(230,150,200,手工控温图形仿真系统,100);show_hanzi(280,250,200,欢迎您,100);getch(); cleardevice(); for(i=0;i=639;i+) setfillstyle(1,LIGHTGREEN); bar(0,0,i,479); getch(); cleardevice(); setbkcolor(LIGHTCYAN); void welcome2() /*温度计横放*/ int i; setcolor(YELLOW); set

7、linestyle(0,0,1); rectangle(110,225,530,375); rectangle(120,275,520,325); for(i=0;i=400;i=i+4) line(120+i,325,120+i,327); for(i=0;i=400;i=i+20) line(120+i,325,120+i,329); for(i=0;i=400;i=i+40) line(120+i,325,120+i,331); for(i=0;i=400;i=i+4) line(120+i,275,120+i,273); for(i=0;i=400;i=i+20) line(120+i

8、,275,120+i,271); for(i=0;i=400;i=i+40) line(120+i,275,120+i,269); setcolor(BLUE); settextstyle(0,0,1); outtextxy(115,332,0); outtextxy(153,332,10); outtextxy(193,332,20); outtextxy(233,332,30); outtextxy(273,332,40); outtextxy(313,332,50); outtextxy(353,332,60); outtextxy(393,332,70); outtextxy(433,

9、332,80); outtextxy(473,332,90); outtextxy(507,332,100); outtextxy(115,262,0); outtextxy(153,262,10); outtextxy(193,262,20); outtextxy(233,262,30); outtextxy(273,262,40); outtextxy(313,262,50); outtextxy(353,262,60); outtextxy(393,262,70); outtextxy(433,262,80); outtextxy(473,262,90); outtextxy(507,2

10、62,100); for(i=0;i=400;i+) setfillstyle(1,RED); bar(120,275,120+i,325); getch(); cleardevice(); void hello() /*hello界面*/ setbkcolor(GREEN); setcolor(BLUE); bar(170,190,187,290); bar(187,230,203,250); bar(203,190,220,290); bar(230,190,245,290); bar(245,190,280,210); bar(245,230,280,250); bar(245,270,

11、280,290); bar(290,190,305,290); bar(305,270,340,290); bar(350,190,365,290); bar(365,270,400,290); bar(410,190,425,290); bar(425,190,470,210); bar(455,210,470,290); bar(425,270,455,290); getch(); cleardevice(); void main()int driver=DETECT;int mode;initgraph(&driver,&mode,);welcome1();welcome2();hell

12、o();mouse();wenduji() int i; cleardevice(); setbkcolor(BROWN); setfillstyle(SOLID_FILL,WHITE); bar(100,80,220,81); bar(100,110,190,111); bar(189,110,190,160); bar(219,80,220,160); bar(100,160,250,161); bar(100,160,101,380); bar(249,160,250,380); bar(100,379,250,380); bar(120,180,230,181); bar(120,18

13、0,121,290); bar(229,180,230,290); bar(120,289,230,290); bar(120,310,230,311); bar(120,310,121,360); bar(229,310,230,360); bar(120,359,230,360); bar(100,400,190,401); bar(100,429,220,430); bar(189,380,190,400); bar(219,380,220,430); setcolor(RED); circle(375,367.5,6); bar(250,364,368,365); bar(250,37

14、0,368,371); line(372.5,355,372.5,363); line(377.5,355,377.5,363); line(300,40,300,355); line(300,40,450,40); line(300,355,450,355); line(450,40,450,355); line(360,40,360,355); line(390,40,390,355); for(i=50;i=350;i=i+3) line(340,i,360,i); line(390,i,410,i); line(320,50,340,50); line(320,80,340,80);

15、line(320,110,340,110); line(320,140,340,140); line(320,170,340,170); line(320,200,340,200); line(320,230,340,230); line(320,260,340,260); line(320,290,340,290); line(320,320,340,320); line(320,350,340,350); for(i=50;i=350;i=i+30) line(410,i,430,i); biaowendu() outtextxy(270,45,100); outtextxy(275,75

16、,90); outtextxy(275,105,80); outtextxy(275,135,70); outtextxy(275,165,60); outtextxy(275,195,50); outtextxy(275,225,40); outtextxy(275,255,30); outtextxy(275,285,20); outtextxy(275,315,10); outtextxy(275,345,0); outtextxy(455,45,100); outtextxy(455,75,90); outtextxy(455,105,80); outtextxy(455,135,70

17、); outtextxy(455,165,60); outtextxy(455,195,50); outtextxy(455,225,40); outtextxy(455,255,30); outtextxy(455,285,20); outtextxy(455,315,10); outtextxy(455,345,0);shuziwater() int i,j; setcolor(WHITE); for(i=406;i=424;i=i+6) for(j=106;j=214;j=j+6) circle(j,i,2); for(i=196;i=214;i=i+6) for(j=387;j=399

18、;j=j+6) circle(i,j,2); setfillstyle(SOLID_FILL,BLUE); bar(122,182,228,288); bar(101,82,218,109); bar(191,109,218,159); setcolor(GREEN); setfillstyle(SOLID_FILL,GREEN); bar(170,40,190,50); bar(175,50,185,80); bar(175,430,185,460); bar(170,460,190,470); setcolor(YELLOW); arc(175,315,180,0,40); arc(155

19、,315,180,0,20); arc(195,315,180,0,20); setfillstyle(SOLID_FILL,YELLOW); floodfill(175,330,YELLOW); setcolor(RED); show_hanzi(500,150,200,现在温度,100); setfillstyle(SOLID_FILL,RED); bar(361,290,389,355);tiaojie1() int j; setfillstyle(SOLID_FILL,BROWN); bar(133,313,217,357); setcolor(RED); arc(175,315,18

20、0,0,40); arc(155,315,180,0,20); arc(195,315,180,0,20); setfillstyle(SOLID_FILL,RED); floodfill(175,330,RED); for(j=145;j=205;j=j+30) setcolor(BLUE); circle(j,214,11); for(j=145;j=205;j=j+30) setcolor(WHITE); circle(j,262,5); delay(200); for(j=145;j=205;j=j+30) setcolor(BLUE); circle(j,262,5); for(j=

21、145;j=205;j=j+30) setcolor(WHITE); circle(j,250,7); delay(200); for(j=145;j=205;j=j+30) setcolor(BLUE); circle(j,250,7); for(j=145;j=205;j=j+30) setcolor(WHITE); circle(j,234,9); delay(200); for(j=145;j=205;j=j+30) setcolor(BLUE); circle(j,234,9); for(j=145;j=205;j=j+30) setcolor(WHITE); circle(j,21

22、4,11); delay(200); for(j=145;j=205;j=j+30) setcolor(BLUE); circle(j,214,11); setfillstyle(SOLID_FILL,BROWN); bar(133,313,217,357); setcolor(YELLOW); arc(175,315,180,0,40); arc(155,315,180,0,20); arc(195,315,180,0,20); setfillstyle(SOLID_FILL,YELLOW); floodfill(175,330,YELLOW);shoudong() int i,j,key,

23、flag=1; char *p100; i=20; while(flag=1) while(!kbhit() /*当不敲击键盘时执行下面循环*/ while(kbhit() /*当敲击键盘时*/ key=bioskey(0); /*将键值赋给key*/ setfillstyle(SOLID_FILL,BROWN); bar(470,176,640,280); switch(key) /*对key进行switch循环*/ case KEY_UP: i+; if(i90) i-; setcolor(BROWN); setfillstyle(SOLID_FILL,BROWN); bar(470,17

24、6,640,280); show_hanzi(480,180,200,温度过高,请往下调,100); break; case KEY_DOWN: i-; if(i=20) tiaojie1(); setcolor(BROWN); setfillstyle(SOLID_FILL,BROWN); bar(361,350-3*(i+1),389,350-3*i); setfillstyle(SOLID_FILL,BROWN); bar(565,140,600,160); setcolor(WHITE); sprintf(pi,%d,i); outtextxy(568,150,pi); break;

25、case KEY_ENTER: flag=0; setcolor(BROWN); setfillstyle(SOLID_FILL,BROWN); bar(170,40,190,50); bar(175,50,185,80); bar(175,430,185,460); bar(170,460,190,470); bar(133,314,217,357); setcolor(GREEN); setfillstyle(SOLID_FILL,GREEN); bar(170,70,190,80); bar(175,80,185,110); bar(175,400,185,430); bar(170,4

26、30,190,440); break; getch(); mouse() int buttons,x,y; if(init(&x,&y)=0 ) /* 调用init 函数对鼠标器初始化*/ printf(Mouse or Mouse Driver Absent,P1ease install!); delay(50); exit(1); setfillstyle(SOLID_FILL,BLUE); bar(560,15,576,31);show_hanzi(280,200,200,自动控温,100); /*选择*/ show_hanzi(280,300,200,手动控温,100); show_h

27、anzi(290,100,200,帮助,100); while(1) newxy(&x,&y,&buttons); if(x=560& x=15&y=280& x=200&y=280& x=300&y=290& x=100&y=120& buttons) shuoming(); getch(); cleardevice(); mouse(); void showmouse(int x,int y) int i; int point116=0,0,11,5,8,7,13,12,11,14,6,9,4,12,0,0,point216; for(i=0;i16;i+=2) point2i=x+poi

28、nt1i; point2i+1=y+point1i+1; undermouse=malloc(imagesize(x,y,x+15,y+15); if(undermouse=NULL) puts(not enough memory!n); exit(1); getimage(x,y,x+15,y+15,undermouse); setlinestyle(0,0,0); setfillstyle(1,6); setcolor(11); fillpoly(8, point2);void hidemouse(int current_x,int current_y) putimage(current_

29、x,current_y,undermouse,0); free(undermouse);int init(int *x,int *y) /* 鼠标器初始化函数 */ int retcode; union REGS inregs,outregs; inregs.x.ax=4; /*设定鼠标初始位置*/ inregs.x.cx=*x=320; inregs.x.dx=*y=240; int86(0x33,&inregs,&outregs); showmouse(*x,*y); inregs.x.ax=0; int86(51,&inregs,&outregs); retcode=outregs.x.

30、ax; if(retcode=0) return 0; /* 返回0 表示鼠标或鼠标驱动程序未安装 */ inregs.x.ax=7; inregs.x.cx=0; inregs.x.dx=getmaxx()-16; int86(51,&inregs,&outregs); inregs.x.ax=8; inregs.x.cx=0; inregs.x.dx=getmaxy()-16; int86(51,&inregs,&outregs); /* 表示鼠标器和驱动程序已安装 */ return retcode;int reader(int *current_x,int *current_y,int

31、 *buttonstate) /* 读鼠标的位置和按钮状态函数 */ union REGS inregs,outregs; int x1=*current_x,y1=*current_y,but0=0,ch; int xnew, ynew; do inregs.x.ax=3; int86(51,&inregs,&outregs); xnew=outregs.x.cx; ynew=outregs.x.dx; *buttonstate=outregs.x.bx; while(xnew=x1 & ynew=y1 & *buttonstate= but0 ); *current_x=xnew; *cu

32、rrent_y=ynew; ch=(*buttonstate); if(ch) if(ch=1) return 1; /*左键按下*/ if(ch=2) return 2; /*右键按下*/ return 3; /*其它的按键情况*/ else return 0;newxy(int *current_x,int *current_y,int *buttonstate) /* 是否有按钮按下,若按下,在新位置画十字 */ int ch,x1=*current_x,y1=*current_y; int xnew,ynew; ch=reader(&xnew,&ynew,buttonstate); switch (ch) case 0: hidemouse(x1,y1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1