您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文档 > C语言编写一个简单的绘图软件
#includestdio.h#includegraphics.h#includestdlib.h#includeconio.h#includemath.h#includetime.h#defineG65535voidDraw(void);//定义画图子程序intDraw2(void);//定义选择颜色子程序intCale(intyear,intmonth);//定义日历子程序intCqmou(void);//抽签鼠标选择intDaysmonth(intmonth,intyear);//用于计算该年某月的天数intFirstday(intmonth,intyear);//用于计算该年某月第一天是星期几intLeap(intyear);//判断给年是否为闰年intRandom(intmin,intmax);//抽签子程序intMou(MOUSEMSGm);//鼠标选择intHtmou(MOUSEMSGm);//画图鼠标选择intYsmou(MOUSEMSGm);//颜色鼠标选择voidMinu(void);//菜单程序voidHtminu(void);//画图菜单程序voidHtminu2(void);//颜色选择菜单子程序voidBack(void);//设置背景颜色子程序intHjx(intcolor);//画矩形子程序intHyx(intcolor);//画圆形子程序intHzx(intcolor);//画直线子程序intHqx(intcolor);//画曲线子程序//主程序voidmain(void){intflag,flag1,flag2,i;chary[10],c[10];chara[10],x[10];initgraph(640,480);//创建一个640*480的窗口HWNDhwnd=GetHWnd();//获取窗口句柄MOUSEMSGm;//定义鼠标信息SetWindowText(hwnd,创建人:陈俊君);//设置窗口标题文字Back();//设置背景setcolor(BLUE);//设置字体颜色setbkmode(TRANSPARENT);//消除文字背景颜色outtextxy(0,10,班级:机电131);outtextxy(270,10,第三次c语言大作业);outtextxy(540,10,学号:13143102);outtextxy(305,50,退出);Minu();//菜单程序while(true){m=GetMouseMsg();//获取鼠标信息flag=Mou(m);//鼠标选择if(flag==1){Draw();//画图子程序Back();//设置背景setcolor(BLUE);//设置字体颜色//setbkmode(TRANSPARENT);//消除文字背景颜色outtextxy(0,10,班级:机电131);outtextxy(270,10,第三次c语言大作业);outtextxy(540,10,学号:13143102);outtextxy(305,50,退出);Minu();//菜单程序}//continue;if(flag==2){flag1=1;while(flag1!=0){//定义白色背景for(i=0;i640;i++){setlinecolor(WHITE);line(i,0,i,480);}InputBox(y,10,请输入年份);//将用户输入的年份转换为数字intyear;sscanf(y,%d,&year);InputBox(c,10,请输入月份);//将用户输入的月份转换为数字intmonth;sscanf(c,%d,&month);flag1=Cale(year,month);//定义日历子程序}Back();//设置背景setcolor(BLUE);//设置字体颜色setbkmode(TRANSPARENT);//消除文字背景颜色outtextxy(0,10,班级:机电131);outtextxy(270,10,第三次c语言大作业);outtextxy(540,10,学号:13143102);outtextxy(305,50,退出);Minu();//菜单程序}if(flag==3){flag2=1;while(flag2!=0){//定义白色背景for(i=0;i640;i++){setlinecolor(WHITE);line(i,0,i,480);}InputBox(a,10,请输入范围最小值);//将用户输入的最小值转换为数字intmin;sscanf(a,%d,&min);InputBox(x,10,请输入最大值);//将用户输入的最大值转换为数字intmax;sscanf(x,%d,&max);flag2=Random(min,max);//抽签子程序}Back();//设置背景setcolor(BLUE);//设置字体颜色setbkmode(TRANSPARENT);//消除文字背景颜色outtextxy(0,10,班级:机电131);outtextxy(270,10,第三次c语言大作业);outtextxy(540,10,学号:13143102);outtextxy(305,50,退出);Minu();//菜单程序}if(flag==4)return;if(flag==5)continue;}}//设置背景颜色voidBack(void){intx;//红色for(x=640;x480;x--){setlinecolor(RGB(255,0,0));line(x,0,x,480);}//绿色for(x=480;x320;x--){setlinecolor(RGB(0,255,0));line(x,0,x,480);}//黄色for(x=320;x160;x--){setlinecolor(RGB(255,255,0));line(x,0,x,480);}//紫色for(x=160;x0;x--){setlinecolor(RGB(255,0,255));line(x,0,x,480);}}//菜单程序voidMinu(void){setlinecolor(MAGENTA);rectangle(300,45,340,70);rectangle(250,100,426,156);rectangle(250,200,426,256);rectangle(250,300,426,356);setcolor(RED);setbkmode(TRANSPARENT);outtextxy(323,120,画图);outtextxy(323,220,日历);outtextxy(323,320,抽签);}//鼠标选择intMou(MOUSEMSGm){//intx,y;//MOUSEMSGg;switch(m.uMsg){caseWM_LBUTTONDOWN://如果鼠标在方框中按下左键if((m.x=250)&&(m.x=426)&&(m.y=100)&&(m.y=156))return1;elseif((m.x=250)&&(m.x=426)&&(m.y=200)&&(m.y=256))return2;elseif((m.x=250)&&(m.x=426)&&(m.y=300)&&(m.y=356))return3;elseif(m.x=300&&m.x=340&&m.y=45&&m.y=70)return4;elsebreak;}return5;}//定义画图子程序voidDraw(void){intflag,i;intcolor;//定义一个颜色变量intg;//用于储存画矩形子程序的返回值Back();//背景设置子程序Htminu();//画图菜单子程序MOUSEMSGm;//定义鼠标信息while(true){m=GetMouseMsg();//获取鼠标信息flag=Htmou(m);//画图鼠标选择if(flag==1)//选择画矩形{g=0;//给g赋初值//定义白色背景for(i=0;i640;i++){setlinecolor(WHITE);line(i,0,i,480);}while(g!=2){color=Draw2();//定义选择颜色子程序g=Hjx(color);//画矩形//flag=Htmou(m);}Back();//设置背景菜单Htminu();//画图菜单子程序continue;}elseif(flag==2)//选择画圆{g=0;//给g赋初值//定义白色背景for(i=0;i640;i++){setlinecolor(WHITE);line(i,0,i,480);}while(g!=2){color=Draw2();//定义选择颜色子程序g=Hyx(color);//画圆形}Back();//设置背景菜单Htminu();//画图菜单子程序continue;}elseif(flag==3)//选择画线{g=0;//给g赋初值//定义白色背景for(i=0;i640;i++){setlinecolor(WHITE);line(i,0,i,480);}while(g!=2){color=Draw2();//定义选择颜色子程序g=Hzx(color);//画直线}Back();//设置背景菜单Htminu();//画图菜单子程序continue;}elseif(flag==4)//选择画曲线{g=0;//给g赋初值//定义白色背景for(i=0;i640;i++){setlinecolor(WHITE);line(i,0,i,480);}while(g!=2){color=Draw2();//定义选择颜色子程序g=Hqx(color);//画曲线}Back();//设置背景菜单Htminu();//画图菜单子程序continue;}elseif(flag==5){return;}}}//定义日历子程序intCale(intyear,intmonth){inti,j=80,a,b,k;chars[10],c[10],d[10];sprintf(s,%d,year);//将整形year转换成字符串sprintf(c,%d,month);//将整形month转换成字符串//定义白色背景for(i=0;i640;i++){setlinecolor(WHITE);line(i,0,i,480);}b=Daysmonth(month,year);//用于计算该年某月的天数a=Firstday(month,year);//用于计算该年某月第一天是星期几outtextxy(307,460,继续);outtextxy(285,400,单机右键退出);outtextxy(307,0,日历);outtextxy(290,20,s);outtextxy(340,20,c);outtextxy(25,40,星期日);outtextxy(116,40,星期一);outtextxy(207,40,星期二);outtextxy(298,40,星期三);outtextxy(389,40,星期四);outtextxy(480,40,星期五);outtextxy(571,40,星期六);if(a==7){for(i=0;ib;i++){k=i%7;sprintf(d,%d,i+1);//将整形日数转换成字符串outtextxy(25+91*k,j,d);if((i+1)%7==0){j+=40;}}}elseif(a!=7){for(i=0;ib;i++){sprintf(d,%d,i+1);//将整形日数转换成字符串outtextxy(25+91*a,j,d);a=a+1;if(a==7){j+=40;a=0;}}}MOUSEMSGm;//定义鼠标信息while(true){m=GetMouseMsg();//获取鼠标信息switch(m.uMsg){caseWM_LBUTTO
本文标题:C语言编写一个简单的绘图软件
链接地址:https://www.777doc.com/doc-7338514 .html