C语言程序设计实习报告停车场管理系统.docx

上传人:b****1 文档编号:939125 上传时间:2022-10-14 格式:DOCX 页数:17 大小:335.80KB
下载 相关 举报
C语言程序设计实习报告停车场管理系统.docx_第1页
第1页 / 共17页
C语言程序设计实习报告停车场管理系统.docx_第2页
第2页 / 共17页
C语言程序设计实习报告停车场管理系统.docx_第3页
第3页 / 共17页
C语言程序设计实习报告停车场管理系统.docx_第4页
第4页 / 共17页
C语言程序设计实习报告停车场管理系统.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言程序设计实习报告停车场管理系统.docx

《C语言程序设计实习报告停车场管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实习报告停车场管理系统.docx(17页珍藏版)》请在冰豆网上搜索。

C语言程序设计实习报告停车场管理系统.docx

C语言程序设计实习报告停车场管理系统

 

 

C语言课程设计实习报告

 

 

 

姓名:

成帅安学号:

20141002605

院(系):

工程学院专业:

土木工程

 

2016年6月

第一章停车场管理系统

 

§1.1题目描述

1、有一个两层的停车场,每层有6个车位,当第一层车停满后才允许使用第二层,(停车场可用一个二维数组实现,每个数组元素存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共4项,其中停车时间按分钟计算。

2、假设停车场初始状态为第一层已经停有4辆车,其车位号依次为1-4,停车时间依次为20,15,10,5。

即先将这四辆车的信息存入文件“"中(数组的对应元素也要进行赋值)。

3、停车操作:

当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件""中,并将在此之前的所有车的停车时间加5。

4、收费管理(取车):

当有车离开时,输入其车牌号,先按其停车时间计算费用,每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)设计一个子程序()用来保存停车场车位的信息到。

用循环再将处理后的数据存入文件中。

(0<12)

{

(,"",[i][0]);

(,"",[i][1]);

(,"",[i][2]);

(,"",[i][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<12)

{

([i][0]0)

[i][3]5;

[i][2];

}

又因为我在已经对车辆的停放楼层和车位有过初始赋值,可以省去再对[i][1]和[i][2]的操作。

并且可以满足“第一层有空位必须停在第一层”的要求,不过存在一个问题就是车辆只能按车位序号停放。

(5)取车模块:

第一步,读取要提取车辆的车牌号码。

再通过标志量对所输入车牌号正误分别处理。

(初始0)

第二步,对于输入正确的车辆进行操作:

删除车辆信息,再计算费用,再对时间清零并标志取车成功。

第三步,进过上一步后取车不成功时即还是为0时,提示重复输入车牌号直道成功为止。

程序如下:

{

("");

((>9999)(<100000)){

(0<12)

([i][0]){

[i][0]=0;

0.2*[i][3]/5;

[i][3]=0;

1;

;

}

}

(0)

("您输入的车牌号码有误,请重新输入。

\n");

}();

第四步,有选择性的显示收费价格:

("\n显示停车费用?

(1)/否

(2)");

("");

(i){

1:

("\n车牌号:

费用%8.2f元\n");

2:

:

;

}

最后,调用()函数来保存数据到。

(6)车辆信息浏览模块:

只需要显示有车的车位,可以用循环语句再加上判断语句来实现显示功能。

("车牌号\t\t楼层\t车位\t\t时间\n");

(0<12)

([i][0]0)

("\t\t\t\\t\t\n"[i][0][i][1][i][2][i][3]);

(7)主函数:

调用子函数()初始化读取文件。

用在屏幕上显示停车场的菜单。

再用语句实现选择执行哪个模块语句。

(a){

1();;

2();

3();

4(0);;

("您输入的信息有误!

\n");;

};

();

§1.3程序设计及代码分析

程序代码如下:

<>

<>

<>

<>

[12][4];/*停车场使用数组*/

()/*初始化*/

{

[]="";

*;

i;

((=(,"r"))){

("无法打开文件\"\"\n");

;

}

(0<12){/*读数据文件内容到数组*/

(,"",[i][0]);

(,"",[i][1]);

(,"",[i][2]);

(,"",[i][3]);

}

();

}

()

{/*保存数据到*/

[]="";

*;

0;

((=(,"w"))){

("无法打开文件\"\"\n");

;

}

(0<12){/*写数据到文件*/

(,"",[i][0]);

(,"",[i][1]);

(,"",[i][2]);

(,"",[i][3]);

(,"\n");

}

();

}

()

{/*停车操作*/

i;

;

1;

("\n\n*********欢迎来到地大停车场*********\n");

("请输入你的车牌号:

");

{

("");

((>9999)(<100000));

0;

("您输入的车牌号格式有误");

}();

0;

(0<12){

([i][0]0)

;

[i][0];

1;

;

}

(0){/*没有找到位置,停车场已满*/

("很抱歉!

车位已满:

\n");

;

}

(0<12){/*所有车的停车时间一起加5*/

([i][0]0)

[i][3]5;

}

();

();

("存车成功!

\n按任意键回到主菜单...");

}

()

{/*取车*/

0;

;

("\n\n*********从停车场取车*********\n");

("请输入你的车牌号码:

");

{

("");

((>9999)(<100000)){

(0<12)

([i][0]){

[i][0]=0;/*删除该车位车辆信息*/

0.2*[i][3]/5;

[i][3]=0;

1;

;

}

}

(0)

("您输入的车牌号码有误,请重新输入。

\n");

}();

("\n

(1)

(2)");

("");

(i){

1:

("\n车牌号:

费用%8.2f元\n");

2:

:

;

}

();/*保存数据*/

();

("取车成功!

\n按任意键回到主菜单...");

}

()

{/*显示当前停车场信息*/

i;

("\n\n*********当前停车场车位信息*********\n");

("车牌号\t\t楼层\t车位\t\t时间\n");

(0<12)

([i][0]0)

("\t\t\t\\t\t\n"[i][0][i][1][i][2][i][3]);

();

("输入任意键返回主菜单...");

}

()

{

a;

();

{

("\n\n\n*******************************************************************\n");

("*地大停车场管理系统*\n");

("*1.停车*\n");

("*2.取车*\n");

("*3.当前车位信息*\n");

("*4.退出*\n");

("*******************************************************************\n");

("请输入选项:

");

("");

(a){/*菜单选择*/

1();;

2();

3();

4(0);;

("您输入的信息有误!

\n");;

};

();

}

(1);

0;

}

§1.4试验数据及运行效果截图

1、打开程序进入键盘式界面菜单,选择您所需要进行的操作选项:

2、车辆车位的初始化,查看当前车位信息如下:

3、停入车牌号为12345的车

4、查看当前车位信息:

5、取车并显示费用:

6、连续停入多辆车,当停第13辆车时:

7、查看当前车位信息:

8、输入4程序退出。

§1.5设计中出现的错误及解决方法

错误:

停车时车辆无法按照楼层和车位要求停放,查看当前车辆信息时显示为0.

解决方法:

对进行修改楼层号初始化为111111222222车位号初始化为123456123456。

在使用停车操作时,车辆从一楼到二楼依次按序停放。

即:

修改后的程序运行如下:

运行正确。

检验其他功能能否正常运行:

取车并计算费用:

车辆停够12辆之后:

查看当前车辆信息:

输入4结束程序:

按任意键程序退出。

检验后程序无错误。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1