数据结构用c语言实现停车场管理系统报告书Word下载.docx
《数据结构用c语言实现停车场管理系统报告书Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构用c语言实现停车场管理系统报告书Word下载.docx(13页珍藏版)》请在冰点文库上搜索。
1,5)为1号车在5时刻到达,‘b'
5,20)为5号车在20这个时刻离去
2.要求程序输出每辆车到达后的停车位置,以及离开停车场时应缴纳的费用及停留时间。
3.编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果,并对采用的算法进行分析。
设计报告撰写格式要求:
(课程设计报告按统一通用格式书写)具体容如下:
①设计任务与要求②总体方案与说明
③程序主要模块的流程图④源程序清单与注释
⑤问题分析与解决方案(包括调试记录、调试报告,即在调试过程中遇到的主要问题、解决方法及改进设想);
⑥小结与体会
附录:
①源程序(必须有简单注释)②使用说明③参考资料
1、问题描述即要求
停车场是一个可停放n辆汽车的狭长通道,并只有一个大门可供汽车进出,汽车在停车
场按车辆到达的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在
车场的最北端),如车长已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;
当停车场某辆车要离开时,在它后进入的车辆
必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放
在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,以栈模拟停车场,以队列
模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理.每一组输入数据包括三
个数据项:
汽车”到达”或”离去”信息,汽车牌照以及到达或离去的时刻(到达或离去的
时刻也可用计算机控制)•对每一组输入数据进行操作后的输入信息为:
如是车辆到达,则输入汽车在停车场或便道上的停留位置;
如是车辆离去,则输入汽车在停车场停留的时间和
应交的费用。
2、需求分析
每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场应交
纳的费用和它在停车场停留的时间。
3、概要设计
1、系统分为:
初始化、有车进入、有车离开、退出四个模块。
2、停车场管理程序
4详细设计
菜单函数设计:
分为初始化、有车进入、有车离开、退出。
voidmenu()
{
intn,w;
do
puts("
****MENU***"
);
1.初始化”);
2.有车进入"
3.有车离开"
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();
/*开车函数*/
case3:
likai();
/*退出*/
case4:
exit(0);
/*初始化*/
初始化模块设计:
将车道和停车场所有的车清空。
voidchushi()/*初始化*/
inti,j;
for(i=0;
i<
N;
i++)
chn[i].neikong=0;
/*停车场设置为空*/
for(j=0;
j<
M;
j++)
chw[i].waikong=0;
已初始化"
menu();
进入函数设计:
车辆到达需要给车编号及给出车停的位置和停车时间等。
voidjinru()/*车辆进入函数*/
inti,a;
inth=0;
请输入该车系序号(从0开始):
scanf("
&
a);
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("
该车应该停在停车场"
请输入该车进停车场时间:
d%"
car[a].cararr);
menu();
离开函数设计:
车辆离开时间,应缴费用,判断便道上是否有车,有则将车停入停车
场。
voidlikai()/*车辆离开函数*/
inti,k,choi,time;
doublefee;
请输入离开车辆次序号[]"
i);
i);
请输入离开时间:
car[i].carlef);
fee=D*(car[i].carlef-car[i].cararr);
time=car[i].carlef-car[i].cararr;
次序号为%d的车停时间%d小时,应收费%f元"
i,time,fee);
printf(”便道上现在有车么?
(请选择1或2)1.有。
2.没有"
choi);
if(choi==2)
if(choi==1)
请让便道上的第一辆车进场"
该车次序号为:
car[k].cararr);
退出函数。
5调试分析
i.静态调试:
按求解算法和C语言的语法规则进行检查;
语法上出现一些很小的问题,但也是程序无法运行。
ii.动态调试:
将设计题给出的路径进行运行;
程序无法运行,无法给出结果,修改好后于理想结果产生偏差。
6测试结果
王采单
-初始住誤有手进入
3•有芋离开
4-退由
请选择你需要的服务(1-4):
.
初始化
|己初始化*忖口出*卜初始化
2・有车掘入
d.有车离开
请远择你需要的服务(1-4)?
进入
离开
撤入离开时"
1二渎#2
HewxffEHU
・初始化
时
退出
7用户手册
(1)本程序在TC环境下形成xxx.exe的执行文件。
(2)在windows系统界面上运行xxx.exe即可显示运行界面,按提示命令输入需要的服务进行选择。
8改进方案
本程序无法显示停车场所有车辆的信息,需要在有车进入函数和离开函数中添加变量,最后对变量进行输出,即为停车场所有车辆的信息。
9设计体会
学会了如何使用c程序来编写一个小的程序,看起来似乎很简单,动起手来真的不是很容易!
以后再学习中要更加努力的学习。
学习什么都要全身心的投入进去。
就没有什么做不到。
数据结构其实不是很难,只要理解了,所有的都很简单。
编写程序方面要多动手才会知
道怎么做!
参考资料:
《数据结构、算法与应用》、《数据结构辅导(第二版)》
附录
1•源程序文件名清单
C语言
2.源程序清单
#include<
stdio.h>
stdlib.h>
string.h>
#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()
/*菜单*/
1.初始化"
printf(”请选择你需要的服务(1-4):
主模块
time=car[i].carlef-car[i].cararr;
设计过程中质疑(或答辩)记载:
指导教师评语:
签名:
2011