C语言实现动画小车模拟焊药自动配料系统.doc

上传人:marr****208 文档编号:132127037 上传时间:2020-05-12 格式:DOC 页数:17 大小:91KB
返回 下载 相关 举报
C语言实现动画小车模拟焊药自动配料系统.doc_第1页
第1页 / 共17页
C语言实现动画小车模拟焊药自动配料系统.doc_第2页
第2页 / 共17页
C语言实现动画小车模拟焊药自动配料系统.doc_第3页
第3页 / 共17页
C语言实现动画小车模拟焊药自动配料系统.doc_第4页
第4页 / 共17页
C语言实现动画小车模拟焊药自动配料系统.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《C语言实现动画小车模拟焊药自动配料系统.doc》由会员分享,可在线阅读,更多相关《C语言实现动画小车模拟焊药自动配料系统.doc(17页珍藏版)》请在金锄头文库上搜索。

1、成绩课程名称: 设计题目:电焊条焊药的自动配料系统模拟软件设计 姓 名:学 号:专业班级:指导老师:完成日期:学 校: 题目姓名学号班级指导老师完成日期1 设计任务 1.1 设计目的 (1) 了解电焊条的焊药生产过程的自动配料系统的原理; (2) 进一步学习C语言或者C+程序工程设计的方法以及程序调试技巧; (3) 学习撰写专业技术文档。1.2 设计内容 在电焊条的生产过程中,需要将不同的化学原料按照不同的比例混合在一起,然后搅拌成糊状并均匀地裹在焊料上。自动配料系统的作用是,根据焊药的配方,将有关化学原料按照规定的重量比例投放到搅拌机里。自动配料系统的工作过程如下: 1) 操作员通过计算机键

2、盘设定一种焊药的配方(即需用到要哪几种化学原料,每种化学原料的重量)。假设一种焊药配方最多只需要6 种化学原料,分别是A,B,C,D,E,F,并假设A,B,C,D,E,F这6种化学原料分别存放在1,2,3,4,5,6这6只料斗里面。因此还要设定好要用到的每种化学原料分别装在那只料斗里面。下面我们假设某种焊药的配方用到4种化学原料A,C,D和E。A,C,D和E这4种化学原料分别装在1,3,4,5这4只料斗里面,而且A,C,D和E这4种化学原料的重量比例是5公斤,10公斤,20公斤和65公斤(假设小车最多能装100公斤化学原料)。设定好后,操作员发布“开始配料”命令。 2) 首先将小车退回到达0号

3、位置开关,准备开始一次配料。即当小车到达0号位置开关时,小车停止。 3) 启动小车向前行驶,当小车到达1号位置开关时,小车停止,1号料斗打开,开始向小车里面流入化学原料A,当达到5公斤时,1号料斗关闭,停止流料。启动小车向前行驶。 4) 当小车2号位置开关时,因为不需要配2号料斗里面的化学原料B,故小车不停止,继续向前行驶。 5) 当小车3号位置开关时,小车停止,3号料斗打开,开始向小车里面流入化学原料C,当达到10公斤时,3号料斗关闭,停止流料。启动小车向前行驶。 6) 当小车4号位置开关时,小车停止,4号料斗打开,开始向小车里面流入化学原料D,当达到20公斤时,4号料斗关闭,停止流料。启动

4、小车向前行驶。 7) 当小车5号位置开关时,小车停止,5号料斗打开,开始向小车里面流入化学原料E,当达到65公斤时,5号料斗关闭,停止流料。启动小车向前行驶。 8) 当小车6号位置开关时,因为不需要配6号料斗里面的化学原料F,故小车不停止,继续向前行驶。 9) 当小车到达7号位置开关时,小车停止,并将车厢自动翻起来,将车厢里的化学原料倒入搅拌机,然后小车快速倒退行驶。小车倒退行驶过程中,遇到6,5,4,3,2,1号位置开关都不停止行驶,直到小车遇到0号位置开关才停止行驶。 10) 循环执行第3步到第9步,直到操作员发布“停止配料”命令,配料过程结束。操作员只有在小车到达0号和7号位置开关时,才

5、能发布“停止配料”命令。用C语言或者C+语言编写一个程序,用形象化的动画动作模拟上述焊药自动配料系统的工作过程。图1-4中料斗、开关和小车的形状仅是示意图,你可以根据自己的想象设计更加美观、逼真的形象。1.3 设计指标或者要求 1)假设小车匀速向前行驶,小车匀速倒退行驶,且倒退速度明显快于前进速度。其目的是提高生产效率。 2)配料重量可以用小车在料斗前停顿的时间长度来模拟。例如每公斤料对应小车停顿0.2秒。(希望每公斤料对应小车的停顿时间应该可以调整)。 3)所有的化学原料都是面粉状的固体原料。2 设计过程 2.1 程序功能 用C语言编写程序,制作动画模拟上述焊药自动配料系统的工作过程。2.2

6、 算法原理 小车行驶:小车在屏幕上行驶采用的方法是在原地画出该图形在此刻将其擦去,并在下一时刻在其将要行驶到的位置将其再次画出,利用视觉暂留现象实现小车的行驶。配料下落:配料下落的过程,首先生成随机数,进而生成随机点的坐标,再利用函数关系将随机点根据料筒的位置固定在不同的区域,在小车到来停下时生成下落的配料。生成配料的同时将随机生成的点的坐标存入数组,待配料下落的粉末在屏幕上生成完全,再很快将其擦除,以此达到配料的下落的消失过程。2.3 程序流程图 Y结束小车行驶,开始一个配料周期开始有配料输入输入配料比例NY是否停止N2.4 程序主要模块或者函数 int show_the_car(int r

7、ight_x)/生成小车/int three_corner6=this_num-9,120,this_num+14,120,this_num+2,132;/fillpoly(3,three_corner);setcolor(BLACK);rectangle(right_x-50,260,right_x,285);setlinestyle(0,NULL,2);circle(right_x-36,292,6);circle(right_x-14,292,6);return 0;int cut_the_car(int right_x)/擦除小车/int three_corner6=this_num-

8、9,120,this_num+14,120,this_num+2,132;/fillpoly(3,three_corner);setcolor(LIGHTWHITE);setfillstyle(LIGHTWHITE,SOLID_FILL);rectangle(right_x-50,260,right_x,285);/bar(right_x-50,258,right_x,286);setlinestyle(0,NULL,2);circle(right_x-36,292,6);circle(right_x-14,292,6);return 0;int move_car(int begin_tail

9、,int end_tail)/移动小车/show_the_car(begin_tail+27);int distance=begin_tail-end_tail;int small_distance=distance/3;int big_distance=distance-small_distance;/快走for(int i_1=0;i_1big_distance;i_1+)cut_the_car(begin_tail+27-i_1);/Sleep(1);show_the_car(begin_tail+26-i_1);Sleep(5);/慢走for(int i_2=0;i_2small_di

10、stance;i_2+)cut_the_car(begin_tail+27-big_distance-i_2);/Sleep(5);show_the_car(begin_tail+26-big_distance-i_2);Sleep(20);/move_counter=0;return 0;3 软件运行或者测试结果 进入界面时会弹出对话框,要求用户输入配料的重量。当用户将配料重量全部输入时,配料开始,小车将开始行驶。小车行驶过程中,如果需要配料,将会在对应的料筒下停住,等待下料后会继续行驶。小车最后将接到的配料倒入搅拌机。4 软件设计过程中遇到的问题以及解决办法 问题一:小车行走过程中出现多余

11、线条小车的显示调用出现小车的函数show_the_car(),行走的时候同时调用show_the_car()和cut_the_car(),由于设置的坐标的缘故,小车开始出现的初始位置和move()函数开始发挥作用的位置不一致,造成开始位置处由于小车移动产生多余线条。在不修改初始坐标位置的基础上,在主函数中将开始出现的小车在开始位置强行覆盖擦除,再调用move()即可消除多余线条。问题二:配料下落随机点形成的粉末区域太死板配料下落时,会先产生随机数生产坐标的X和Y坐标,在一开始的时候只是采用简单的生成区域限制导致生成的坐标形成了死板的矩形。后来根据料筒所在的位置计算出X和Y的线性约束关系,把下落

12、的形状调整成了梯形。 5 总结 这次实习任务锻炼了我在DOS下使用C图形库绘图的能力,在具体实施的过程中遇到了很多问题,比如一开始的对点线绘制的控制,后来逐渐掌握一块图形的出现消失与运动。当遇到问题的时候虽然不知道怎么处理,还是主动去搜索问题的解决办法。绘制图形的过程有点繁琐,不过对图像实现的动态效果也是很有意思的一件事情。原本想深入地探索一下C绘图,但由于时间和自身能力的原因,目前只是做到这个地步。希望以后自己在程序上多多练习。附录 #include #include #include #include #include #include #include #define INTERCEPT = 0#define PI 3.1415int show_three_corner(int this_num)/绘制上面的三角形int three_corner6=this_num-9,120

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号