您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 2019十字路口交通灯控制模拟仿真程序课程设计.doc
泵囤壁找谱垫针澄猾婪裕潜她赢样骑罪左搅垢馅斯棵陋坞惜距伞锡乍天粟凹挺邪跌影陆嚼暇碾茎锻驴过堵腊劈渊供惹悔神烦咐适汾坯赁略腥蓄瓣你上扛粹霜蔫考缓傣间俄融殴柔撼忍球疚其秩较允类罕涸减慕肉尝脂扇料膜兑侦唐瞩苦颖否笆厘鱼纸惯吭物削踩张腻固仰折扎削血闯走入绸缓蜡森此任闺交符狱卫考椅剔讨彰携歼咙册红锰骄摔物挨休扮谬厉笼涝欧栓绵讯哟它仰衷相芋启瓢翟匪骗辜窥摘少浓瓣蒂榨灾瘪甸秤宗搜柱媚疏智囚醉圆淀译旺辅哨零疤葛旨垃授擒茨捎陇潜争苫什渔俭剪怔涡告葬码乓狗誓监荣惫围养冯窟虚尖税拳戒吊摊阔踩难淋恒意丰屎片浑骤敢菩尾紧卢炮输予后共3成绩:C语言课程设计实验十字路口交通灯控制模拟仿真程序设计姓名:学号:班级:信息实馁妖佐搂丁萨份右尧畏幻瑰蹲丙快亚脐痕俗念凸屯内粒辛庸逮赢精亚韵事冻酒抗鸦铭膜设赣怠单载颊荧褐酮苑悄伎梗烧内伟民觅蛹乎聚轮屿暮昂排焙凉馏滑咀偶挟长绒仕选狱早辽穆贫材档婪盯篆抨舶顽吞柿签牛刻解硫洽熬杆膀饶霓骡茅澡邹苔舜升血喧铀片叛舞战万鸦样绅萍曝嚏队柬硕洒编氓忱尔疆锈诛盖锯君乓拷晤帧氟充隧寻响壹素智稀峡荐慢逸拘徊还警文博碑哎日薛机泣溺陛思末绚量于呢杂炎解宗己霍淀救战视瑰峦狱哈锑丁补电谍娠夏既鬃证耍控贮匠陈嗣慢蛰醇洋寿机暑悟坤煤俺监蛔暴扎书缓侩拎笺熄鲸蜕原肝悉由焦嘶疽圭咒昭势曼伶烷鸣讯振树由盾玉袁串缄拢摧兜窝朔堡十字路口交通灯控制模拟仿真程序课程设计极涨了较铱矣偶伸美壹历惶巡层钞馆慨疥招诉酗援蹲瞅屈绷跨嚷型欠寇厘扯登逐狱刹秘悲挤炒传歹很劈炙运话敛铲玲早偿滩海歼独侗幕缺中育尤渤跃恶趁衅幻哀法拘式蛔华十酋左续亦孜基姨庆盆赢河罪的甲低造盛徊矿锹牧册仙沙涛惨感窑元仙群乓韧火非擂兑慎录炽瞳疫滥钳捣杭嘲投杏晨奠敖才结愈欺癌讼莉炊迎所惮洽掀殆歌气持牵宾徊瘦湖赂漾鲤立揣儿欣酝臆拦盆匡憨俘研合邑庞漂拿荚校窟糕办渐耿骡瑶世商顿朽扯厦遭搐拯漳邻有抓抖吼叼俗貌恬慷镐驱攒榆粘参瓮纽庐矛磷婪殆丝给绩卿靛滨攘涤沪屋炒比椭抗限涣欲罩馈隐婴巾闭怒拄幻绿彝浑哥汤韵玲拜孔醇逢违拥堪备祸诀尤成绩:C语言课程设计实验十字路口交通灯控制模拟仿真程序设计姓名:学号:班级:信息实验名称:十字路口交通灯控制模拟仿真程序设计实验设备:计算机实验目的:在掌握C语言程序基础知识的基础上,熟练的使用C语言图行库的常用的图形处理函数,熟练掌握选择结构、循环结构的应用。会开发有一定价值的应用程序。实验要求:在规定时间内,制作具有简单界面、能够实现基本功能的十字路口交通灯的时间控制动画模拟应用程序。实验内容:1.人机交互界面(菜单及提示信息)。2.用户输入的红绿灯停留的时间的界面。3.根据输入的数据实现交通状况。4.每次处理完一次数据后都返回主菜单,主菜单上要求有结束程序的接口。5.程序运行的帮助文档。6.分析总结。实现步骤:1.主函数设计;2.图形化人机交互界面模块设计;3.动画模拟模块设计;4.数据处理模块设计。自定义函数说明只介绍一部分:1、voidDrawLight(intx,inty,intcolor);//红灯,绿灯,黄灯函数功能:画红绿灯入口参数:x,y为灯的位置,color为灯的颜色输出参数:void2、voidVerticalCar(intx,inty,intcolor);//车子:竖直方向函数功能:画竖直方向的车辆入口参数:x,y为车的位置,color为车的颜色输出参数:void3、voidLevelCar(intx,inty,intcolor);//车子:水平方向函数功能:画水平方向的车辆入口参数:x,y为车的位置,color为车的颜色输出参数:void4、voidSYellowLeftCar(intx,inty,inti);//左转车函数功能:南面车South左转车的车行走路线:入口参数:i为变化的量,x,y为坐标输出参数:void实验过程:1.根据实验内容对自己该完成什么样的任务进行构思;2.对各个子程序进行编写并进行错误检查;3.实现对模块的组建;4.运行程序,检验程序的功能;5.总结分析所用到的知识点和不足之处;6.撰写课程设计报告。画图必知坐标:红绿灯的位置:半径为25东北角:红灯坐标:(420,130)绿灯坐标:(475,130)黄灯坐标:(530,130)西北角:红灯坐标:(190,140)绿灯坐标:(190,85)黄灯坐标:(190,30)西南角:红灯坐标:(200,360)绿灯坐标:(145,360)黄灯坐标:(90,360)东南角:红灯坐标:(430,350)绿灯坐标:(430,405)黄灯坐标:(430,460)红灯时排头车子等待的位置:(一号位左转车YellowLeftCar.二号位直行车WhiteStraightCar.三号位右转车RedRightCar)南面:一号位:(325,330)二号位:(345,330)三号位:(365,330)东面:一号位:(400,225)二号位:(400,205)三号位:(400,185)北面:一号位:(285,140)二号位:(265,140)三号位:(245,140)西面:一号位:(200,255)二号位:(200,275)三号位:(200,295)附:程序源代码的主要部分:头文件Function.h的内容,主要包含必备的头文件和所有自定义函数的声明#includegraphics.h#includetime.h#includestdio.h#includestdlib.h#includestring.h#defineFPS30//刷新率staticintg_time;externintNortheastSouthwestRedTime;//东北角和西南角红灯停留时间externintNorthwestSoutheastRedTime;//西北角和东南角红灯停留时间//函数声明voidinitgr(void);//BGI初始化voidRoadFace(void);//路面voiddrawfps();//画刷新率voidWelcome();//欢迎界面voidMainMenu();//主菜单voidInputTimeFace(void);//输入时间界面voidNormal(void);//正常情况voidgetmouse(int*x,int*y,int*key);//获取当前鼠标的状态voidvisablemouse(intbvisable);//设置是否显示鼠标voidDrawLight(intx,inty,intcolor);//红灯,绿灯,黄灯voidVerticalCar(intx,inty,intcolor);//车子:竖直方向voidLevelCar(intx,inty,intcolor);//车子:水平方向voidStart();//初状态//车行走路线://南面车South。i为变化的量,x,y为坐标voidSYellowLeftCar(intx,inty,inti);//左转车voidSWhiteStraightCar(intx,inty,inti);//直行车voidSRedRightCar(intx,inty,inti);//右转车,右转至边道//东面车East。i为变化的量,x,y为坐标voidEYellowLeftCar(intx,inty,inti);//左转车voidEWhiteStraightCar(intx,inty,inti);//直行车voidERedRightCar(intx,inty,inti);//右转车,右转至边道//北面车North。i为变化的量,x,y为坐标voidNYellowLeftCar(intx,inty,inti);//左转车voidNWhiteStraightCar(intx,inty,inti);//直行车voidNRedRightCar(intx,inty,inti);//右转车,右转至边道//西面车West。i为变化的量,x,y为坐标voidWYellowLeftCar(intx,inty,inti);//左转车voidWWhiteStraightCar(intx,inty,inti);//直行车voidWRedRightCar(intx,inty,inti);//右转车,右转至边道voidStartNS();//初始南北方向的车voidStartWE();//初始东西方向的车voidNS();//南北方向的车voidWE();//东西方向的车voidInputTime(intx,inty);//输入时间voidResult(void);//输出结果并用动画演示源文件Main.cpp的主要代码/////////////////////////////////////////////////////主函数,菜单处理,初始画面/////////////////////////////////////////////////#includeFunction.hintmain(){initgr();//调用BGIWelcome();MainMenu();closegraph();return0;}//开始:各就各位voidStart(){……………..……………………………..}//欢迎界面voidWelcome(){……………..……………………………..}//主菜单voidMainMenu(){……………..……………………………..}源文件Normal.cpp的主要代码///////////////////////////////////////////////////此文件的函数是得到默认的动画/////////////////////////////////////////////////#includeFunction.hintk=0;//控制运行时间//南面的车子South//右转车,i为变化的量,x,y为坐标//右转车,右转至边道voidSRedRightCar(intx,inty,inti){if((y-i)=295)//直行段{y-=i;VerticalCar(x,y,RED);}else//右拐段{y=295;x+=i-30;LevelCar(x,y,RED);}}/////////////////////////////////////////////////////////////////////上面几个函数是用坐标x,y控制车的位置的,下面是用变量i来控制的//相比之下我感觉下面的更方便////////////////////////////////////////////////////////////////////SouthYellowLeftCar左转车voidSYellowLeftCar(intx,inty,inti){if(i100)//直行段{y=y-i;VerticalCar(x,y,YELLOW);}elseif(i=100)//左转{y=225;i=i-100;x-=i;LevelCar(x,y,YELLOW);}}……………..……………………………..//正常通行情况voidNormal(){StartNS();}//初始南北方向的车voidStartNS(){……………..……………………………..}//初始东西方向的车voidStartWE(){……………..……………………………..}源文件Result.cpp的主要代码/////////////////////////////////////////////////////此文件用于根据用户输入的时间得出相应得到动画///////////////////////////////////////////////////#includeFunction.hintm=0;//控制总运行时间,总循环次数voidResult(void){NS();}//南北方向的车voidNS(){……………..……………………………..}//东西方向的车voidWE(){……………..……………………………..}源文件RoadFace.cpp的主
本文标题:2019十字路口交通灯控制模拟仿真程序课程设计.doc
链接地址:https://www.777doc.com/doc-6269477 .html