- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
交通灯模拟程序论文
合肥学院
计算机科学与技术系
课程设计报告
2012~2013学年第二学期
课程 JAVA语言 课程设计名称 交通灯模拟程序 学生姓名 吴健 学号 1104012025 专业班级 11计本四班 指导教师 张贯虹 胡春玲 2013 年 1 月
一、需求分析
随着城市汽车数量越来越多,城市的交通拥挤问题正逐渐引起人们的注意。交通灯是交管管理城市交通的重要工具。目前绝大部分交通灯,其时间都是设定好的,不管是车流高峰还是低谷,红绿灯的时间都固定不变;还有一些交通灯能根据简单划分的时间段来调整时间,但控制起来都不是很灵活,这使得城市车流的调节不能达到最优。本文所述设计正是针对这一弊端进行了改进,根据实时车流量对各路口的绿灯时间进行动态调节,大大加强了其灵活性和实时性。
二、设计
1.设计思想
根据设计要求首先用JAVA语言的GUI画出十字路口和交通灯设计程序界面,画出十字路口和交通灯。可以手工设置红、绿等的时间间隔,程序按设定值自动变换每个路口的交通灯颜色。
异步随机生成按照各个路线行驶的车辆???? 由南向北的直行车辆
??? ?由向南的车辆
????由东向信号灯黄灯红灯和绿灯具体信号灯控制逻辑与现实生活中普通交通灯控制辑相同,不考虑特殊情况下的控制南北向车辆与东西向车辆交替放行生成车辆时间间隔以及红绿灯交换时间间隔自定,可以设置type = (int) (((Math.random())*(new Date().getTime())*10)%4);Type值随机取值0,1,2,3四个整数,四个数分别各代表四个方向。再根据不同方向画出不同的圆,代表小车。
图1是一个典型的十字路口示意图。分别用1、2、3表明四个流向的主车道通过分析很容易得知,在同一时间,最多只能有两个车道通行,如、1通行时,车道都会被阻断。所以在设计红绿灯时,可以两两组合,共有组(-1、-3);而各车 Graphics g=image.getGraphics();”,然后在画布上画出路线和红绿灯,并且把画布画在面板中。
程序中主要设计流程:
图2 程序流程图
以下是程序中主要设计对象:
(1)每条路线上都会出现多辆车,路线上要随机增加新的车,if(car.getType() == 0){ //由西向东的车辆
if(car.getX()2000){
cars.remove(car);
i--;
continue; }
其他方向的车辆也会按此方式移除。
(2)每条路线上随机增加新的车辆,增加到一个集合中保存private ListCar cars = Collections.synchronizedList(new ArrayListCar())每条路线都会检查控制本路线的灯private boolean hasObstructor(Car car, ListCar cars),若有则停下,考虑接下来运行的车辆,否则car.setX(car.getX()+/-5)或car.setY(car.getY()+/-5)小车以5像素的大小前移。
(4)控制小车运行方向:public Car() {type = (int) (((Math.random())*(new Date().getTime())*10)%4);随机产生四个方向的小车。
if(type==0){
x = 0;y = 240; } //小车方向西由东
else if(type==1){
x = 1500;y = 200;} //小车方向由东向西
else if(type==2)
{ x = 235;y = 0;} //小车方向由北向南
else if(type==3)
{ x = 280;y = 1500;}//小车方向由南向北
(5)设计交通灯:每个交通灯都维护一个状态:,每个交通灯要有变亮和变黑的方法,并且能返回自己的亮黑状态。在编程处理时,只要从这组中各取出个灯,对这4个灯依次轮询变亮,与这4个灯方向对应的灯则随之一同变化,因此类中要有一个变量来记住自己相反方向的灯,在一个对象的变亮和变黑方法中,将对应方向的灯也变亮和变黑。每个灯变黑时,都伴随下一个灯的变亮public class PaintThread implements Runnable {//控制红绿灯状态线程
public void run() {
for (int i = 0; i redTimes+greenTimes+yellowTimes+yellowTimes; i++) {
if(i==0){
j = 0;
redStatus = true; //红灯
您可能关注的文档
最近下载
- HP打印机5100代码5200代码.doc VIP
- 2025贵州毕节七星关区德溪街道中心校(毕节市七星关区第五实验学校)教师“跨校竞聘”24人笔试备考题库及答案解析.docx VIP
- 2025贵州毕节七星关区实验学校教师“跨校竞聘”60人笔试参考题库附答案解析.docx VIP
- 电机拖动与电气控制 第2版 教案全套 葛芸萍 第1--7章 变压器 ---典型机床电气控制.docx
- 汇川变频器MD320手册.pdf VIP
- 2025贵州毕节七星关区碧阳街道中心校(毕节二十二小)教师“跨校竞聘”34人笔试参考题库附答案解析.docx VIP
- 班主任技能竞赛试题 (2).doc VIP
- 吡啶喹唑啉中间体的合成方法与设计方案.pdf VIP
- 培训资料-子宫内膜增生.ppt VIP
- 2025广东惠州市生态环境局博罗分局和博罗县污染防治攻坚战总指挥部办公室招聘编外人员38人笔试备考试题及答案解析.docx VIP
文档评论(0)