C语言程序设计实习报告停车场管理系统Word下载.docx
《C语言程序设计实习报告停车场管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实习报告停车场管理系统Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
当有车离开时,输入其车牌号,先按其停车时间计算费用,每5分钟0.2元。
(停车费用可设置一个变量进行保存),同时从文件"
中删除该车的信息,并将该车对应的车位设置为可使用状态(即二维数组对应元素清零)。
按用户的选择来判断是否要输出停车收费的总计。
5、输出停车场中全部车辆的信息。
6、退出系统。
1.2算法设计
1、需求分析:
车辆信息用文件储存,提供文件的输入输出操作;
当车离开时要删除文件中该车的信息,因而要提供文件的删除操作;
用键盘式菜单实现功能选择。
2、总体设计思路:
整个管理系统设计可设计为停车模块、取车模块、车辆浏览信息模块。
另外车辆停放信息涉及到从中读取,保存和修改,为了方便起见和程序的模块化,我将文件的读入和保存单独设计为两个子程序。
整体模块图如下:
键盘式菜单
停车模块
取车模块
将车辆信息存入
输入车牌号码取车
删除车辆信息
显示停车费用
输入车辆车牌号存车
退出
图1.整体模块图
3、各子程序设计如下:
(1)使用全局变量数组,用一个二维数组实现停车场车位的信息,
[12][4];
(2)通过读取的数据,对程序初始化。
下图为的初始数据:
在()通过一个循环完成对中数据的读取。
(0<
12)
{
(,"
"
[i][0]);
[i][1]);
[i][2]);
[i][3]);
}
(3)设计一个子程序()用来保存停车场车位的信息到。
用循环再将处理后的数据存入文件中。
\n"
);
(4)停车模块:
首先,输入车辆的车牌号,我们从键盘读取车牌号码,并判断车牌号码是否正确(五位数整型车牌号码)。
输入出错时要求继续输入。
我们引入标志量判断车牌号是否正确,初始1,从键盘读入车牌号码,并判断:
("
请输入您的车牌号:
);
{
("
((>
9999)(<
100000));
0;
请重新输入五位数车牌号\n:
}();
其次,读取的车牌号正确之后对标志量清零0,代表没有没有找到车位,进行为车辆找停车位的操作,如下:
0;
(1<
13)
{
([i][0]0)
;
[i][0];
1;
;
通过循环和语句找到没有停车的车位,即[i][0]不等于0,并将标志量赋值1,表示有车位,用语句跳出循环。
再用语句处理1的情况,即停车场车位已满无法停车。
最后,对存入的车辆赋初始时间5,并且前面的已存入的车辆时间都加5。
语句如下:
(0<
[i][3]5;
[i][2];
又因为我在已经对车辆的停放楼层和车位有过初始赋值,可以省去再对[i][1]和[i][2]的操作。
并且可以满足“第一层有空位必须停在第一层”的要求,不过存在一个问题就是车辆只能按车位序号停放。
(5)取车模块:
第一步,读取要提取车辆的车牌号码。
再通过标志量对所输入车牌号正误分别处理。
(初始0)
第二步,对于输入正确的车辆进行操作:
删除车辆信息,再计算费用,再对时间清零并标志取车成功。
第三步,进过上一步后取车不成功时即还是为0时,提示重复输入车牌号直道成功为止。
程序如下:
100000)){
(0<
([i][0]){
[i][0]=0;
0.2*[i][3]/5;
[i][3]=0;
1;
;
}
}
(0)
("
您输入的车牌号码有误,请重新输入。
第四步,有选择性的显示收费价格:
("
\n显示停车费用?
是
(1)/否
(2)"
(i){
1:
\n车牌号:
费用%8.2f元\n"
2:
:
;
最后,调用()函数来保存数据到。
(6)车辆信息浏览模块:
只需要显示有车的车位,可以用循环语句再加上判断语句来实现显示功能。
车牌号\t\t楼层\t车位\t\t时间\n"
\t\t\t\\t\t\n"
[i][0][i][1][i][2][i][3]);
(7)主函数:
调用子函数()初始化读取文件。
用在屏幕上显示停车场的菜单。
再用语句实现选择执行哪个模块语句。
(a){
1();
2();
3();
4(0);
您输入的信息有误!
};
();
1.3程序设计及代码分析
程序代码如下:
<
>
<
/*停车场使用数组*/
()/*初始化*/
[]="
;
*;
i;
((=(,"
r"
))){
无法打开文件\"
\"
12){/*读数据文件内容到数组*/
();
}
()
{/*保存数据到*/
0;
w"
12){/*写数据到文件*/
{/*停车操作*/
1;
\n\n*********欢迎来到地大停车场*********\n"
请输入你的车牌号:
您输入的车牌号格式有误"
12){
(0){/*没有找到位置,停车场已满*/
很抱歉!
车位已满:
12){/*所有车的停车时间一起加5*/
存车成功!
\n按任意键回到主菜单..."
{/*取车*/
\n\n*********从停车场取车*********\n"
请输入你的车牌号码:
/*删除该车位车辆信息*/
\n
(1)
(2)"
/*保存数据*/
取车成功!
{/*显示当前停车场信息*/
\n\n*********当前停车场车位信息*********\n"
输入任意键返回主菜单..."
a;
{
\n\n\n*******************************************************************\n"
*地大停车场管理系统*\n"
*1.停车*\n"
*2.取车*\n"
*3.当前车位信息*\n"
*4.退出*\n"
*******************************************************************\n"
请输入选项:
(a){/*菜单选择*/
1();
}
(1);
1.4试验数据及运行效果截图
1、打开程序进入键盘式界面菜单,选择您所需要进行的操作选项:
2、车辆车位的初始化,查看当前车位信息如下:
3、停入车牌号为12345的车
4、查看当前车位信息:
5、取车并显示费用:
6、连续停入多辆车,当停第13辆车时:
7、查看当前车位信息:
8、输入4程序退出。
1.5设计中出现的错误及解决方法
错误:
停车时车辆无法按照楼层和车位要求停放,查看当前车辆信息时显示为0.
解决方法:
对进行修改楼层号初始化为111111222222车位号初始化为123456123456。
在使用停车操作时,车辆从一楼到二楼依次按序停放。
即:
修改后的程序运行如下:
运行正确。
检验其他功能能否正常运行:
取车并计算费用:
车辆停够12辆之后:
查看当前车辆信息:
输入4结束程序:
按任意键程序退出。
检验后程序无错误。