C语言课设 图形仿真系统.docx
- 文档编号:5319293
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:47
- 大小:55.69KB
C语言课设 图形仿真系统.docx
《C语言课设 图形仿真系统.docx》由会员分享,可在线阅读,更多相关《C语言课设 图形仿真系统.docx(47页珍藏版)》请在冰点文库上搜索。
C语言课设图形仿真系统
手工控温图形仿真系统
系统分析报告
第一部分系统分析
1.1系统概要分析
1.2主要功能模块
1.3模块细分及各模块的作用介绍
1.4程序流程图
第二部分程序清单
第三部分制作人员及任务情况
3.1制作人员介绍
3.2任务分配情况
第四部分感受
第一部分系统分析
1.1系统概要分析
手工控温图形仿真系统是将控温软件以图形的形式直观形象的展现在人们面前,使一个复杂的软件变得通俗。
对于想了解控温系统软件的求知者,是不错的入门选择。
在日常生活中,常常需要用到控温的装置,了解控温系统方面的知识成了当务之急。
本手工控温图形仿真系统将控温系统的表面工作原理,画面及使用方法都以图形的形式展现出来,可供一定的参考。
1.2主要功能模块
1.界面模块(欢迎界面模块、主界面模块、结束界面模块)。
2.程序控制主模块(选择控温方式)。
3.说明模块(告知使用方法)。
4.自动控温模块(温度输入,界面自动变化)。
5.手动控温模块(温度,界面随按键而变化)。
1.3模块细分及各模块的作用介绍
1.3.1界面模块
①欢迎界面模块:
进入系统的欢迎界面,体会一种温馨的气氛和感觉
②主界面模块:
显示程序的主界面,绚丽多彩,变化多端的动画
③结束界面模块:
程序结束离开界面,简单又不繁琐的告别画面
1.3.2程序控制主模块
①选择控温方式,分为自动控温和手动控温两种方式
②用鼠标点击的方法来选择控温方式,简单,方便,直观
1.3.3说明模块
①如何选择控温方式
②自动控温方式下,如何输入初始,最后温度,如何结束控温
③手动控温方式下,如何按不同的键,如何结束控温
1.3.4自动控温模块
①自动控温下的界面,水,天然气,火焰,温度计的动态显示
②温度的输入与数字显示
③结束控温
1.3.5手动控温模块
①手动控温下的界面,水,天然气,火焰,温度计的图形显示
②按键情况与温度调节
③结束控温
1.4程序流程图
第二部分程序清单
#include
#include
#include
#include
#include
#include
#defineKEY_ENTER0x1c0d
#defineKEY_UP0x4800
#defineKEY_DOWN0x5000
#defineKEY_10x0231
#defineKEY_20x0332
#defineKEY_70x0837
#defineKEY_80x0938
#defineKEY_90x0a39
#defineKEY_40x0534
#defineKEY_50x0635
#defineKEY_60x0736
#defineKEY_30x0433
#defineKEY_00x0b30
void*undermouse;
baibai()
{
inti;
cleardevice();
setbkcolor(CYAN);
show_hanzi(230,150,200,"手工控温图形仿真系统",100);
show_hanzi(290,170,200,"感谢您",100);
for(i=150;i<=500;i=i+10)
{
setfillstyle(SOLID_FILL,CYAN);
bar(50,200,600,450);
setcolor(YELLOW);
outtextxy(i,250,"bye");
outtextxy(640-i,300,"bye");
delay(200);
}
closegraph();
}
FILE*hzk_p;
voidopen_chinese()
{
hzk_p=fopen("Hzk16","rb");
if(!
hzk_p){
printf("ThefileHZK16notexist!
Entertosystem\n");
getch();
closegraph();
exit
(1);
}
}
voidfind_chinese(char*incode,char*bytes)
{
unsignedcharqu_num,wei_num;
unsignedlongoffset;
qu_num=incode[0]-0xa0;/*得到区号*/
wei_num=incode[1]-0xa0;/*得到位号*/
offset=(94*(qu_num-1)+(wei_num-1))*32L;/*得到偏移位置*/
fseek(hzk_p,offset,0);/*移文件指针到要读取的汉字字模处*/
fread(bytes,32,1,hzk_p);
}
show_hanzi(intx1,inty1,intlength,char*s,intcolor)
{
unsignedcharmask[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
charhanzi[32],word[2];
inti,j,x,y,z;
z=x1;
open_chinese();
while(*s!
='\0')
{
if((int)(*s)>=0&&(int)(*s)<128)/*输出可打印字符*/
{settextstyle(0,0,2);
settextjustify(0,2);
setcolor(color);
word[0]=*s;
outtextxy(x1,y1,word);
s+=1;
x1+=16;
}
else
{
find_chinese(s,hanzi);
for(y=y1,i=0;i<16;i++,y++)
{
for(x=x1,j=0;j<16;j++,x++)
{
if(mask[j%8]&hanzi[2*i+j/8])
{
putpixel(x,y,color);
}
}
}
s=s+2;
x1+=18;
}
if((x1-z)>=(length-16))
{y1+=18;
x1=z;}
}
fclose(hzk_p);
}
voidwelcome1()/*欢迎界面,画面逐步展开*/
{
inti;
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);
}
voidwelcome2()/*温度计横放*/
{
inti;
setcolor(YELLOW);
setlinestyle(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,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,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,262,"100");
for(i=0;i<=400;i++)
{
setfillstyle(1,RED);
bar(120,275,120+i,325);
}
getch();
cleardevice();
}
voidhello()/*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,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();
}
voidmain()
{
intdriver=DETECT;
intmode;
initgraph(&driver,&mode,"");
welcome1();
welcome2();
hello();
mouse();
}
wenduji()
{
inti;
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,180,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,370,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);
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,"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");
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()
{
inti,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;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,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()
{
intj;
setfillstyle(SOLID_FILL,BROWN);
bar(133,313,217,357);
setcolor(RED);
arc(175,315,180,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=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,214,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()
{
inti,j,key,flag=1;
char*p[100];
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循环*/
{
caseKEY_UP:
i++;
if(i<=90)
{
tiaojie1();
setcolor(RED);
setfillstyle(SOLID_FILL,RED);
bar(361,350-3*i,389,355);
setfillstyle(SOLID_FILL,BROWN);
bar(565,140,600,160);
setcolor(WHITE);
sprintf(p[i],"%d",i);
outtextxy(568,150,p[i]);
}
if(i>90)
{
i--;
setcolor(BROWN);
setfillstyle(SOLID_FILL,BROWN);
bar(470,176,640,280);
show_hanzi(480,180,200,"温度过高,请往下调",100);
}
break;
caseKEY_DOWN:
i--;
if(i<20)
{
i++;
setcolor(BROWN);
setfillstyle(SOLID_FILL,BROWN);
bar(470,176,640,280);
show_hanzi(480,180,200,"温度过低,请往上调",100);
}
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(p[i],"%d",i);
outtextxy(568,150,p[i]);
}
break;
caseKEY_ENTER:
flag=0;
setcolor(BROWN);
se
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言课设 图形仿真系统 语言 图形 仿真 系统