数据结构用c语言实现停车场管理系统报告书.docx
- 文档编号:12378110
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:13
- 大小:50.44KB
数据结构用c语言实现停车场管理系统报告书.docx
《数据结构用c语言实现停车场管理系统报告书.docx》由会员分享,可在线阅读,更多相关《数据结构用c语言实现停车场管理系统报告书.docx(13页珍藏版)》请在冰豆网上搜索。
数据结构用c语言实现停车场管理系统报告书
课程设计任务书
学生:
专业班级:
软件2101(计算2101)
指导教师:
黄启荃钱小红工作单位:
华夏学院计算机教研室
设计题目:
用C语言实现停车场管理程序的设计
初始条件:
1、栈与队列的建立和操作.
2、带TC或VC的计算机系统。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
主要任务:
(在规定的时间完成下列任务)
设有一个停放n辆车的狭长停车场,它只有一个大门供车辆出入。
车辆按到达停车场时间的早晚依次从停车场最里面向大门处停放。
若已放满n辆车,则后来的车只能停在外面等待,当有车开走后方依次进入,停在场的车按时计费。
编制一个程序模拟该停车场管理。
1.汽车的模拟输入信息格式可设为:
汽车牌照,到达/离去时刻
如(‘a’,1,5)为1号车在5时刻到达,(‘b’,5,20)为5号车在20这个时刻离去
2.要求程序输出每辆车到达后的停车位置,以及离开停车场时应缴纳的费用及停留时间。
3.编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果,并对采用的算法进行分析。
设计报告撰写格式要求:
(课程设计报告按统一通用格式书写)具体容如下:
①设计任务与要求②总体方案与说明
③程序主要模块的流程图④源程序清单与注释
⑤问题分析与解决方案(包括调试记录、调试报告,即在调试过程中遇到的主要问题、解决方法及改进设想);⑥小结与体会
附录:
①源程序(必须有简单注释)②使用说明③参考资料
设计题目:
用C语言实现停车场管理程序的设计
1、问题描述即要求
停车场是一个可停放n辆汽车的狭长通道,并只有一个大门可供汽车进出,汽车在停车场按车辆到达的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),如车长已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场某辆车要离开时,在它后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理.每一组输入数据包括三个数据项:
汽车”到达”或”离去”信息,汽车牌照以及到达或离去的时刻(到达或离去的时刻也可用计算机控制).对每一组输入数据进行操作后的输入信息为:
如是车辆到达,则输入汽车在停车场或便道上的停留位置;如是车辆离去,则输入汽车在停车场停留的时间和应交的费用。
2、需求分析
每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场应交纳的费用和它在停车场停留的时间。
3、概要设计
1、系统分为:
初始化、有车进入、有车离开、退出四个模块。
2、停车场管理程序
4详细设计
菜单函数设计:
分为初始化、有车进入、有车离开、退出。
voidmenu()
{
intn,w;
do
{
puts("****MENU***");
puts("1.初始化");
puts("2.有车进入");
puts("3.有车离开");
puts("4.退出");
printf("请选择你需要的服务(1-4):
");
scanf("%d",&n);
if(n<1||n>4)
{
w=1;
getchar();
}
elsew=0;
}while(w==1);
switch(n)
{
case1:
chushi();break;/*停车函数*/
case2:
jinru();break;/*开车函数*/
case3:
likai();break;/*退出*/
case4:
exit(0);break;/*初始化*/
}
}
初始化模块设计:
将车道和停车场所有的车清空。
voidchushi()/*初始化*/
{
inti,j;
for(i=0;i chn[i].neikong=0;/*停车场设置为空*/ for(j=0;j chw[i].waikong=0; printf("已初始化"); menu(); } 进入函数设计: 车辆到达需要给车编号及给出车停的位置和停车时间等。 voidjinru()/*车辆进入函数*/ { inti,a; inth=0; printf("请输入该车系序号(从0开始): "); scanf("%d",&a); for(i=0;i { if(chn[i].neikong==0)/*无车标记*/ if(chn[i].neikong==1)/*有车标记*/ h=h+1; } if(h==N) printf("停车场已满! "); else { car[a].carstay=h; chn[h].neikong=1; printf("该车应该停在停车场"); printf("请输入该车进停车场时间: "); scanf("d%",&car[a].cararr); } menu(); } 离开函数设计: 车辆离开时间,应缴费用,判断便道上是否有车,有则将车停入停车场。 voidlikai()/*车辆离开函数*/ { inti,k,choi,time; doublefee; printf("请输入离开车辆次序号[]",&i); scanf("%d",&i); printf("请输入离开时间: "); scanf("%d",&car[i].carlef); fee=D*(car[i].carlef-car[i].cararr); time=car[i].carlef-car[i].cararr; printf("次序号为%d的车停时间%d小时,应收费%f元",i,time,fee); printf("便道上现在有车么? (请选择1或2)1.有。 2.没有"); scanf("%d",&choi); if(choi==2) { menu(); } if(choi==1) { printf("请让便道上的第一辆车进场"); printf("该车次序号为: "); scanf("%d",&car[k].cararr); menu(); } } 退出函数。 5调试分析 i.静态调试: 按求解算法和C语言的语法规则进行检查; 语法上出现一些很小的问题,但也是程序无法运行。 ii.动态调试: 将设计题给出的路径进行运行; 程序无法运行,无法给出结果,修改好后于理想结果产生偏差。 6测试结果 主菜单 初始化 进入 离开 退出 7用户手册 (1)本程序在TC环境下形成xxx.exe的执行文件。 (2)在windows系统界面上运行xxx.exe即可显示运行界面,按提示命令输入需要的服务进行选择。 8改进方案 本程序无法显示停车场所有车辆的信息,需要在有车进入函数和离开函数中添加变量,最后对变量进行输出,即为停车场所有车辆的信息。 9设计体会 学会了如何使用c程序来编写一个小的程序,看起来似乎很简单,动起手来真的不是很容易! 以后再学习中要更加努力的学习。 学习什么都要全身心的投入进去。 就没有什么做不到。 数据结构其实不是很难,只要理解了,所有的都很简单。 编写程序方面要多动手才会知道怎么做! 参考资料: 《数据结构、算法与应用》、《数据结构辅导(第二版)》 附录 1.源程序文件名清单 C语言 2.源程序清单 #include #include #include #defineN100/*预设停车场有100个车位*/ #defineM100/*预设便道有100各出位*/ #defineD1.2/*预设车辆停车费为1.2元每小时*/ #defineNUMBER100 voidmenu(); voidchushi(); voidjinru(); voidlikai(); structcar { intcarnum; intcararr; intcarlef; intcarstay; }car[NUMBER]; structpark { intneikong; }chn[N-1]; structchangwai { intwaikong; }chw[M-1]; voidmain() { menu();/*菜单*/ } voidmenu() { intn,w; do { puts("****MENU***"); puts("1.初始化"); puts("2.有车进入"); puts("3.有车离开"); puts("4.退出"); printf("请选择你需要的服务(1-4): "); scanf("%d",&n); if(n<1||n>4) { w=1; getchar(); } elsew=0; }while(w==1); switch(n) { case1: chushi();break;/*停车函数*/ case2: jinru();break;/*开车函数*/ case3: likai();break;/*退出*/ case4: exit(0);break;/*初始化*/ } } voidchushi()/*初始化*/ { inti,j; for(i=0;i chn[i].neikong=0;/*停车场设置为空*/ for(j=0;j chw[i].waikong=0; printf("已初始化"); menu(); } voidjinru()/*车辆进入函数*/ { inti,a; inth=0; printf("请输入该车系序号(从0开始): "); scanf("%d",&a); for(i=0;i { if(chn[i].neikong==0)/*无车标记*/ if(chn[i].neikong==1)/*有车标记*/ h=h+1; } if(h==N) printf("停车场已满! "); else { car[a].carstay=h; chn[h].neikong=1; printf("该车应该停在停车场"); printf("请输入该车进停车场时间: "); scanf("d%",&car[a].cararr); } menu(); } voidlikai()/*车辆离开函数*/ { inti,k,choi,time; doublefee; printf("请输入离开车辆次序号[]",&i); scanf("%d",&i); printf("请输入离开时间: "); scanf("%d",&car[i].carlef); fee=D*(car[i].carlef-car[i].cararr); time=car[i].carlef-car[i].cararr; printf("次序号为%d的车停时间%d小时,应收费%f元",i,time,fee); printf("便道上现在有车么? (请选择1或2)1.有。 2.没有"); scanf("%d",&choi); if(choi==2) { menu(); } if(choi==1) { printf("请让便道上的第一辆车进场"); printf("该车次序号为: "); scanf("%d",&car[k].cararr); menu(); } } 设计过程中质疑(或答辩)记载: 指导教师评语: 签名: 2011年6月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 语言 实现 停车场 管理 系统 报告书