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

车辆通过十字路口的演示程序学号:姓名:指导老师:2010年12月目录1.需求分析…………………………………………………32.概要设计…………………………………………………53.测试……………………………………………………64.用户手册…………………………………………………65.总结提高…………………………………………………66.程序代码…………………………………………………71需求分析1.1功能与数据需求1.11基本功能(1)基本功能只考虑东西(或南北)方向有车辆,暂不考虑交叉方向的车辆。(2)显示十字路口和交通灯的图案。(3)按F1键开始出现车辆;按ESC键程序结束。(4)按规律定时切换交通灯。(5)各方向(即东西方向)在路的尾端随机出现车辆,出现的车辆逐渐进入屏幕,车辆大小随机设置;车辆达到屏幕另一端时逐渐消失。(6)各方向(即东西方向)的每辆车按自己的速度匀速运动,遇红灯或黄灯停车,绿灯前行。(7)各个车辆不能相撞。1.12拓展功能(1)车辆的速度随机产生(产生随机速度后,则保持此速度),以确保车辆的速度不相尽同。(2)可以通过鼠标点击按钮的方式或按键的方式将当前车辆行驶状况和交通灯的状况保存到文件中,并可从文件中恢复储存前的状态。(3)在四个方向都有车。1.13数据分析1.2界面需求界面的背景色是深灰色。因为只考虑了南北向通车,所以没有开启东西向的红绿灯,所以改为灰色以示关闭。车辆的大小,颜色,均是随机的。1.3界面展示1.4开发与运行环境需求本课设是在TC3.0的图形模式环境下开发的,得通过TC3.0(或者是TC2.0)来运行这个程序。2概要设计2.1主要数据结构这个程序的主要数据就是小车的数据。根据教材和辅导教师的指导,我利用该结构体构建链表。typedefstructcar{intlen;/*小车的长度*/intwei;/*小车的宽度*/intx,y;/*小车的位置*/intcolor;/*小车的颜色*/intspeed;/*小车的速度*/structcar*next;/*用于指向下一个小车结构体*/}CAR;2.2程序总体结构总体结构大体分为:#include<>/*声明函数*/typedefstructcar/*小车结构体*/voidsetbk()/*设置背景*/voidchangud(intc)/*设置红绿灯变化*/structcar*newcar()/*新出现的小车的结构体*/voiddrawcar(structcar*c,intcolor)/*画出新出现的小车*/structcar*drawutd(structcar*t,intlt)/*北通向南小车的链表*/structcar*drawdtu(structcar*t,intlt)/*南通向北小车的链表*/voidplay()/*利用键盘操作开始与结束及灯的变化*/main()/*主函数*/3测试程序开始的测试测试用例:在程序开始的之前按的键不是F1或者ESC;测试结果:没有任何反应,不会对其他按键产生回应。4用户手册用户可以通过按F1键开始程序,按ESC键结束程序。5总结提高5.1课程设计总计总结这次程序设计对于像我这种接触c语言不久的学生而言实在是太具有挑战性。在设计的过程中屡次出现让我束手无策的问题。例如我多次试用dowhile循环,想要使新出现的小车的颜色与背景颜色不同,然而无论我怎么更改,都还是会出现与背景色相同的小车最终迫使我只能减少可出现的颜色,才貌似解决了问题。总而言之,这次课设颇让人费尽脑筋,但也使我觉得,其实编程并非一件极其遥远的事。5.2对本课程的意见和建议对于初次接触C语言的学生而言,还是太具难度。虽然知道教师资源有限,但还是希望能够有人辅导。6程序代码#include<stdio.h>#include<math.h>#include<stdlib.h>#include<graphics.h>#include<dos.h>#include<conio.h>#include<bios.h>#defineF10x3b00#defineESC0x011btypedefstructcar{intlen;intwei;intx,y;intcolor;intspeed;structcar*next;}CAR;voidsetbk(){setbkcolor(DARKGRAY);setlinestyle(0,0,1);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);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);floodfi...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?