C语言综合程序设计停车场管理系统.docx
- 文档编号:24900639
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:20
- 大小:152.64KB
C语言综合程序设计停车场管理系统.docx
《C语言综合程序设计停车场管理系统.docx》由会员分享,可在线阅读,更多相关《C语言综合程序设计停车场管理系统.docx(20页珍藏版)》请在冰豆网上搜索。
C语言综合程序设计停车场管理系统
综合性程序设计报告
设计题目:
____停车场管理系统___________
指导教师:
_______________
班级:
_____________
学号:
_______________
设计者:
_______________
成绩:
_______________
设计时间:
年月日
停车场管理系统
1.题目描述
2.功能模块分解及说明
3.数据库设计及说明
4.界面说明
5.主要算法说明
6.代码清单及注释
7.设计测试说明
8.设计体会
停车场管理系统
1.题目描述
停车场的基本概述:
用于利用计算机实现停车场的管理,包括车位调度,停车记费。
车位记录,收费管理与计算。
停车场的主要功能:
1.车位调度。
2.停车时间与费用的计算。
3.车位记录。
2.功能模块分解及说明
根据题目要求,可以用结构体实现,在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。
车辆离开要计时计费。
另外,每天开始时,停车场要初始化。
所以,这个系统可以分为:
初始化、有车进入、有车离开、退出四个模块。
菜单函数:
main()函数体内包含了界面选则部分menu(),并单独
抽出来作为一个独立函数,目的在于系统执行每部分
模块后能够方便返回到系统界面。
即main()函数写为
如下:
voidmain()/*主函数*/
{
menu();/*菜单函数*/
}
voidmenu()
{
intn,w;
do
{
puts("\t\t**************MENU**************\n\n");
puts("\t\t\t1.初始化");
puts("\t\t\t2.有车进入");
puts("\t\t\t3.有车离开");
puts("\t\t\t4.退出");
puts("\n\n\t\t*********************************\n");
printf("Pleasechoiceyournumber(1-4):
[]\b\b");
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);/*退出*/
}
}
车道信息
该模块是将每一天开始的停车场内和便道车位清零。
首先建立场内场外的结构体,结构体内成员即车位的状态。
用循环实现车位的致零即可。
structchangnei/*场内车道信息*/
{
intneikong;
}chn[N-1];
structchangwai/*场外车道信息*/
{
intwaikong;
}chw[M-1];
N和M分别是停车场和便道的车位预设值,用宏定义。
用户可根据实际情况改变。
#defineN100/*预设停车场有100个车位*/
#defineM100/*预设便道有100个出位*/
voidchushi()/*初始化函数*/
{
inti,j;
for(i=0;i<=N-1;i++)
chn[i].neikong=0;/*将场内车道设置为空*/
for(j=0;j<=M-1;j++)
chw[i].waikong=0;/*将便道车道设置为空*/
printf("\n\n\t\t已初始化\n\n");
menu();
}
函数出示化后将回到菜单界面。
车辆进入函数:
该模块车辆到达后,要指定车辆的停车位置。
用户根据菜单函数进入车辆进入模块。
按照每辆车的到达次序给予车辆次序号,由0号开始。
车辆信息也建立结构体。
structcar/*车辆信息*/
{
intcar_num;/*车辆次序号*/
intcar_arr;/*车辆到达时间*/
intcar_lef;/*车辆离开时间*/
intcar_stay;/*车辆停放位置*/
}car[CIXUHAO];
其中,CIXUHAO是车辆次序号的宏定义:
#defineCIXUHAO1000/*预设车辆次序号。
不管车辆到达时停在场内或便道,均依次设置一个次序号,由0开始*/
给予车辆次序号之后,用循环判断停车场是否停满,再分别给予选择:
voidjinru()/*车辆进入函数*/
{
inti,a;
inth=0;
printf("\n\n请输入该车次序号(从0号开始):
");
scanf("%d",&a);
for(i=0;i { if(chn[i].neikong==0);/*无车标记0*/ if(chn[i].neikong==1)/*有车标记1*/ h=h+1; } if(h==N) printf("停车场内已停满,请停在便道上\n"); else { car[a].car_stay=h; chn[h].neikong=1; printf("该车应该停在停车场内第道%d(从0道开始记)\n",h); printf("请输入该车进停车场时刻(24小时整点计时): \n"); scanf("%d",&car[a].car_arr); } 便道上还有车吗? menu(); } 程序执行完后回到菜单。 车辆离开函数: 该模块一辆车要离开,则需要记 录该车的离开时间,以计算出该车 在停车场内的停车时间和应该缴纳 的费用。 该车离开后,要判断便道 上是否有车等待进入,如有,则将 便道上第一辆车停放在停车场内最 后的位置并记录好进场时间;若无, 则返回菜单. voidlikai()/*车辆离开函数*/ {inti,k,choi,time; doublefee; printf("请输入离开车辆次序号[],并将此车之后的车先全部退出停车场! "); scanf("%d",&i); printf("\n请输入离开车辆的离开时刻(24小时整点计时): \n"); scanf("%d",&car[i].car_lef); fee=D*(car[i].car_lef-car[i].car_arr); time=car[i].car_lef-car[i].car_arr; printf("次序号为%d的车停车时间%d小时,应收费%f元\n",i,time,fee); printf("\n\n\n请让场内退出的车再依次进场! \n\n\n"); printf("便道上现在有车吗? (请选择1或2)\n1.有\n2.没有\n");/*因便道上可能没有车,因此要做选择*/ scanf("%d",&choi); if(choi==2) { menu(); } if(choi==1) { printf("请让便道上的第一辆车进场\n"); printf("该车次序号为: \n"); scanf("%d",&k); printf("请输入该车进场时间: \n"); scanf("%d",&car[k].car_arr); menu(); } } D为预设停车场单位小时费用,用宏定义,便于以后修改。 #defineD1.2/*预设车辆停车费为1.2元每小时*/ 3.数据库设计及说明 停车车道: 用宏定义管理数据。 N和M分别是停车场和便道的车位预设值 原因以及说明: 用户可根据实际情况改变。 预设车辆次序号: 用宏定义。 原因及说明不管车辆到达时停在场内或便道,均依次设置一个次序号,由0开始*/ 给予车辆次序号之后,用循环判断停车场是否停满,再分别给予选择: 停车费用: 用宏定义。 原因及说明: 以后便于修改。 车辆号码: 用数组。 原因及说明: 车辆数目较大,用数组更加有条理。 车道号码: 用数组。 原因及说明: 车辆数目较大,用数组更加有条理。 4.界面说明 主菜单函数 初始化操作 有车进入 以上分别举例0,1,2三个车的进场情况 有车离开 若便道上没车,则退回到主菜单 若便道上有车 5.主要算法说明 主菜单 车道是否停满。 便道上是否有车辆。 6.代码清单及注释 #include #include #include #defineN100/*预设停车场有100个车位*/ #defineM100/*预设便道有100个出位*/ #defineD1.2/*预设车辆停车费为1.2元每小时*/ #defineCIXUHAO1000/*预设车辆次序号。 不管车辆到达时停在场内或便道,均依次设置一个次序号,由0开始*/ voidmenu(); voidchushi(); voidjinru(); voidlikai(); structcar/*车辆信息*/ { intcar_num;/*车辆次序号*/ intcar_arr;/*车辆到达时间*/ intcar_lef;/*车辆离开时间*/ intcar_stay;/*车辆停放位置*/ }car[CIXUHAO]; structchangnei/*场内车道信息*/ { intneikong; }chn[N-1]; structchangwai/*场外车道信息*/ { intwaikong; }chw[M-1]; voidmain()/*主函数*/ { menu();/*菜单函数*/ } voidmenu() { intn,w; do { puts("\t\t**************MENU**************\n\n"); puts("\t\t\t1.初始化"); puts("\t\t\t2.有车进入"); puts("\t\t\t3.有车离开"); puts("\t\t\t4.退出"); puts("\n\n\t\t*********************************\n"); printf("Pleasechoiceyournumber(1-4): []\b\b"); 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);/*退出*/ } } voidchushi()/*初始化函数*/ { inti,j; for(i=0;i<=N-1;i++) chn[i].neikong=0;/*将场内车道设置为空*/ for(j=0;j<=M-1;j++) chw[i].waikong=0;/*将便道车道设置为空*/ printf("\n\n\t\t已初始化\n\n"); menu(); } voidjinru()/*车辆进入函数*/ { inti,a; inth=0; printf("\n\n请输入该车次序号(从0号开始): "); scanf("%d",&a); for(i=0;i { if(chn[i].neikong==0);/*无车标记0*/ if(chn[i].neikong==1)/*有车标记1*/ h=h+1; } if(h==N) printf("停车场内已停满,请停在便道上\n"); else { car[a].car_stay=h; chn[h].neikong=1; printf("该车应该停在停车场内第道%d(从0道开始记)\n",h); printf("请输入该车进停车场时刻(24小时整点计时): \n"); scanf("%d",&car[a].car_arr); } menu(); } voidlikai()/*车辆离开函数*/ {inti,k,choi,time; doublefee; printf("请输入离开车辆次序号[],并将此车之后的车先全部退出停车场! "); scanf("%d",&i); printf("\n请输入离开车辆的离开时刻(24小时整点计时): \n"); scanf("%d",&car[i].car_lef); fee=D*(car[i].car_lef-car[i].car_arr); time=car[i].car_lef-car[i].car_arr; printf("次序号为%d的车停车时间%d小时,应收费%f元\n",i,time,fee); printf("\n\n\n请让场内退出的车再依次进场! \n\n\n"); printf("便道上现在有车吗? (请选择1或2)\n1.有\n2.没有\n");/*因便道上可能没有车,因此要做选择*/ scanf("%d",&choi); if(choi==2) { menu(); } if(choi==1) { printf("请让便道上的第一辆车进场\n"); printf("该车次序号为: \n"); scanf("%d",&k); printf("请输入该车进场时间: \n"); scanf("%d",&car[k].car_arr); menu(); } } 7.设计测试说明 8.设计体会 c语言程序设计是一门重要的专业基础课,通过这次课程设计使我了解了,c语言程序设计的思想,并且掌握了程序设计的基本方法,为后续课程打下了坚实的基础。 同时这次课程设计又是一次实践性较强的知识应用,在对我进行程序设计基础理论与技术技巧能力训练的同时,更加培养了我解决实际问题的编程能力。 在设计过程中,首先要解决的是与同学的合作,接下来分工与协商,共同探讨,大家取长补短,认清自己的不足之处和薄弱环节,加以弥补和加强,要做出一个好的程序就要有不懈追求的精神和对理想崇高的追求,有一种不完成不罢休的精神。 c语言作为一种高级编程语言具有方便灵活的特点,适合各种类型的软件开发,为我们以后学习单片机非常有用。 在设计初期,根据题目的要求和所学的知识,车库中的车辆是先进后出是栈结构,便道上的车辆是先进先出的,是一个队列,结构很明显,但是现阶段我所学的基础知识不够,掌握的不多,对应用栈和队列来解决这个问题有一定的困难,因此我在整个设计中使用了结构体数组,运用一个结构体数组来同时记录车库和便道中车辆的信息,这样也可以起到一个连续记录数据的功能,完成设计要求的任务。 课程设计为我提供了一个既动手又动脑,独立实践的机会,将课本上的知识与实践相结合起来,提高了我适应实际,实践编程的能力。 在这一系统中用到了结构体,它让我更加巩固了结构体的特点和用法,本设计最好使用的结构是栈和队列,但是我们现阶段还未作学习,使用起来不是很流畅,因此我在这个设计中使用了结构体,使用了新的思路。 总之,这次课程设计挖掘了我潜在的能力,是我更加自信,也对编程更加有兴趣,为以后的学习打下了良好的基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 综合 程序设计 停车场 管理 系统