ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:44.85KB ,
资源ID:5882054      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5882054.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(车辆通过十字路口的演示程序.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

车辆通过十字路口的演示程序.docx

1、车辆通过十字路口的演示程序 学 号: 姓 名: 指导老师: 2010年12月 目录 1.需求分析…………………………………………………3 2.概要设计…………………………………………………5 3.测试 ……………………………………………………6 4.用户手册…………………………………………………6 5.总结提高…………………………………………………6 6.程序代码 …………………………………………………7 1 需求分析 1.

2、1 功能与数据需求 1.11 基本功能 (1)基本功能只考虑东西(或南北)方向有车辆,暂不考虑交叉方向的车辆。 (2)显示十字路口和交通灯的图案。 (3)按F1键开始出现车辆;按ESC键程序结束。 (4)按规律定时切换交通灯。 (5)各方向(即东西方向)在路的尾端随机出现车辆,出现的车辆逐渐进入屏幕, 车辆大小随机设置;车辆达到屏幕另一端时逐渐消失。 (6)各方向(即东西方向)的每辆车按自己的速度匀速运动,遇红灯或黄灯停车, 绿灯前行。 (7)各个车辆不能相撞。 1.12 拓展功能

3、 (1)车辆的速度随机产生(产生随机速度后,则保持此速度),以确保车辆的速度 不相尽同。 (2)可以通过鼠标点击按钮的方式或按键的方式将当前车辆行驶状况和交通灯的状况 保存到文件中,并可从文件中恢复储存前的状态。 (3)在四个方向都有车。 1.13 数据分析 1.2 界面需求 界面的背景色是深灰色。因为只考虑了南北向通车,所以没有开启东西向的红绿灯,所以改为灰色以示关闭。车辆的大小,颜色,均是随机的。 1.3 界面展示 1.4 开发与运行环境需求 本课设是在TC3.0的

4、图形模式环境下开发的,得通过TC3.0(或者是TC2.0)来运行这个程序。 2 概要设计 2.1 主要数据结构 这个程序的主要数据就是小车的数据。 根据教材和辅导教师的指导,我利用该结构体构建链表。 typedef struct car{ int len; /*小车的长度*/ int wei; /*小车的宽度*/ int x, y; /*小车的位置*/ int color; /*小车的颜色*/ int speed; /*小车的速度*/ struct car* next; /*用于指向下一个小车

5、结构体*/ } CAR; 2.2 程序总体结构 总体结构大体分为: #include<>/*声明函数*/ typedef struct car/*小车结构体*/ void setbk()/*设置背景*/ void changud(int c)/*设置红绿灯变化*/ struct car* newcar()/*新出现的小车的结构体*/ void drawcar(struct car* c,int color)/*画出新出现的小车*/ struct car* drawutd(struct car* t,int lt)/*北通向南小车的链表*/ s

6、truct car* drawdtu(struct car* t,int lt)/*南通向北小车的链表*/ void play()/*利用键盘操作开始与结束及灯的变化*/ main()/*主函数*/ 3 测试 程序开始的测试 测试用例:在程序开始的之前按的键不是F1或者ESC; 测试结果:没有任何反应,不会对其他按键产生回应。 4 用户手册 用户可以通过按F1键开始程序,按ESC键结束程序。 5 总结提高 5.1 课程设计总计总结 这次程序设计对于像我这种接触c语言不久的学生而言实在是太具有挑战性。在设计的过程中

7、屡次出现让我束手无策的问题。例如我多次试用do while 循环,想要使新出现的小车的颜色与背景颜色不同,然而无论我怎么更改,都还是会出现与背景色相同的小车。最终迫使我只能减少可出现的颜色,才貌似解决了问题。 总而言之,这次课设颇让人费尽脑筋,但也使我觉得,其实编程并非一件极其遥远的事。 5.2 对本课程的意见和建议 对于初次接触C语言的学生而言,还是太具难度。虽然知道教师资源有限,但还是希望能够有人辅导。 6 程序代码 #include #include #include

8、 #include #include #include #include #define F1 0x3b00 #define ESC 0x011b typedef struct car{ int len; int wei; int x, y; int color; int speed; struct car* next; } CAR; void setbk() { setbkcolor(DARKGRAY); setlinestyle(0, 0, 1);

9、 setfillstyle(SOLID_FILL, 7); gotoxy(5,1); printf("F1 = start"); gotoxy(20,1); printf("ESC = quit"); line(0, 190, 270, 190); line(0, 290, 270, 290); line(370, 190, 680, 190); line(370, 290, 680, 290); line(270, 190, 270, 0); line(370, 190, 370, 0); line(270, 290, 270, 480);

10、 line(370, 290, 370, 480); setlinestyle(1, 0, 1); line(0, 240, 270, 240); line(370, 240, 640, 240); line(320, 0, 320, 190); line(320, 290, 320, 480); circle(260, 180, 10); floodfill(260, 180, 15); circle(240, 180, 10); floodfill(240, 180, 15); circle(220, 180, 10); floodf

11、ill(220, 180, 15); circle(390, 180, 10); floodfill(390, 180, 15); circle(390, 160, 10); floodfill(390, 160, 15); circle(390, 140, 10); floodfill(390, 140, 15); circle(380, 300, 10); floodfill(380, 300, 15); circle(400, 300, 10); floodfill(400, 300, 15); circle(420, 300, 10)

12、 floodfill(420, 300, 15); circle(260, 300, 10); floodfill(260, 300, 15); circle(260, 320, 10); floodfill(260, 320, 15); circle(260, 340, 10); floodfill(260, 340, 15); setlinestyle(0, 0, 1); line(275, 190, 310, 190); line(330, 290, 365, 290); } void changud(int c) {

13、setwritemode(0); setfillstyle(SOLID_FILL, 8); circle(380, 300, 10); floodfill(380, 300, 15); circle(400, 300, 10); floodfill(400, 300, 15); circle(420, 300, 10); floodfill(420, 300, 15); circle(260, 180, 10); floodfill(260, 180, 15); circle(240, 180, 10); floodfill(240,

14、 180, 15); circle(220, 180, 10); floodfill(220, 180, 15); switch (c) { case GREEN: setfillstyle(SOLID_FILL, GREEN); circle(380, 300, 10); floodfill(380, 300, 15); circle(260, 180, 10); floodfill(260, 180, 15); break; case YELLOW: setfillstyle(SOLID_FILL, YEL

15、LOW); circle(400, 300, 10); floodfill(400, 300, 15); circle(240, 180, 10); floodfill(240, 180, 15); break; case RED: setfillstyle(SOLID_FILL, RED); circle(420, 300, 10); floodfill(420, 300, 15); circle(220, 180, 10); floodfill(220, 180, 15); break; }

16、 } struct car* newcar() { CAR *c; c = (CAR*)malloc(sizeof(CAR)); c->wei = 50 + random(10); c->len = 30 +random(10); c->x = 0; c->y = 0; c->color = random(15); if(c->color==DARKGRAY) c->color==BLACK; c->speed = 8 + random(10); c->next =NULL; return c; } void

17、 drawcar(struct car* c,int color) { setfillstyle(1, color); bar(c->x, c->y, c->x+c->len, c->y+c->wei); } struct car* drawutd(struct car* t,int lt) { CAR *p = t; int forecar = 600; int i = random(50); if(t == NULL) { t = newcar(); } else if(i == 1) { while(p->n

18、ext != NULL) p = p->next; if(p->y > 30) { p->next = newcar(); } } while(t->y+t->speed >= 480) { p = t; t = t->next; drawcar(p, 0); free(p); } for(p = t; p != NULL; p=p->next) { if(p->x == 0) { p->x = 275; p->y = -p->wei; drawcar(p, p->colo

19、r); forecar = p->y-10; } else if (p->y+p->speed+p->wei >= forecar) { drawcar(p, 0); p->y = forecar - p->wei ; drawcar(p, p->color); forecar = p->y - 10; } else if (lt != GREEN && p->y+p->wei <= 185&&p->y+p->speed+p->wei >185 ) { drawcar(p, 0); p->y = 185

20、 - p->wei; drawcar(p, p->color); forecar = p->y - 10; } else { drawcar(p, 0); p->y += p->speed; drawcar(p, p->color); forecar = p->y - 10; } } setlinestyle(0,0,1); line(275, 190, 310, 190); return t; } struct car* drawdtu(struct car* t,int lt)

21、 { CAR *p = t; int forecar = -100; int i = random(50); if(t == NULL) { t = newcar(); t->y = 480; } else if(i == 1) { while(p->next != NULL) p = p->next; if(p->y < 450) { p->next = newcar(); p->next->y = 480; } } while(t->y-t->speed+t->wei <= 0) {

22、 p = t; t = t->next; drawcar(p, 0); free(p); } for(p = t; p != NULL; p=p->next) { if(p->x == 0) { p->x = 325; drawcar(p, p->color); forecar = p->y+p->wei+10; } else if (p->y-p->speed <= forecar) { drawcar(p, 0); p->y = forecar ; drawcar(p, p

23、>color); forecar = p->y+p->wei+10; } else if (lt != GREEN && p->y >= 295&&p->y-p->speed<295) { drawcar(p, 0); p->y = 295; drawcar(p, p->color); forecar = p->y+p->wei+10; } else { drawcar(p, 0); p->y -= p->speed; drawcar(p, p->color); forecar =

24、p->y+p->wei+10; } } line(330, 290, 365, 290); return t; } void play() { FILE* fp; int udLight, i=0, key, t, udLt; struct car *utdHead = newcar(); struct car *dtuHead = newcar(); dtuHead->y = 480; do{ key = bioskey(0); }while(key != ESC && key != F1); whi

25、le(!kbhit()) { if(i == 1) { udLight = RED; changud(udLight); } else if(i == 151) { udLight = GREEN; changud(udLight); } else if(i == 271) { udLight = YELLOW; changud(udLight); } utdHead = drawutd(utdHead, udL

26、ight); dtuHead = drawdtu(dtuHead, udLight); delay(100); i++; if(i == 301) i= 1; if(key == ESC) exit(0); } key = bioskey(0); } main() { int graphdrive=DETECT,graphmode; initgraph(&graphdrive,&graphmode,"c: \\tc30\\bgi"); randomize(); setbk(); play(); closegraph(); return 0; } 14

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服