C语言综合程序设计停车场管理系统.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
综合性程序设计报告
设计题目:____停车场管理系统___________
指导教师: _______________
班级: _____________
学号: _______________
设计者: _______________
成绩: _______________
设计时间: 年月日
停车场管理系统
目录
1.题目描述
2.功能模块分解及说明
3.数据库设计及说明
4.界面说明
5.主要算法说明
6.代码清单及注释
7.设计测试说明
8.设计体会
停车场管理系统
1.题目描述
停车场的基本概述:用于利用计算机实现停车场的管理,包括车位调度,停车记费。车位记录,收费管理与计算。停车场的主要功能:
1.车位调度。
2.停车时间与费用的计算。
3.车位记录。
2.功能模块分解及说明
根据题目要求,可以用结构体实现,在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。车辆离开要计时计费。另外,每天开始时,停车场要初始化。
所以,这个系统可以分为:初始化、有车进入、有车离开、退出四个模块。
○1菜单函数:
main()函数体内包含了界面选则部分menu(),并单独
抽出来作为一个独立函数,目的在于系统执行每部分
模块后能够方便返回到系统界面。即main()函数写为
如下:
void main()/*主函数*/
{
menu();/*菜单函数*/
}
void menu()
{
int n,w;
do
{
puts("\t\t**************MENU**************\n\n");
puts("\t\t\t 1.初始化");
puts("\t\t\t 2.有车进入");
puts("\t\t\t 3.有车离开");
puts("\t\t\t 4.退出");
puts("\n\n\t\t*********************************\n");
printf("Please choice your number(1-4): [ ]\b\b");
scanf("%d",&n);
if(n<1||n>4) /*对选择的数字作判断*/
{
w=1;
getchar();
}
else w=0;
}while(w==1);
switch(n)
{
case 1:chushi();break; /*初始化函数*/
case 2:jinru();break; /*车辆进入函数*/
case 3:likai();break; /*车辆离开函数*/
case 4:exit(0); /*退出*/
}
}
○2车道信息
该模块是将每一天开始的停车场内和便道车位清零。首先建立场内场外的结构体,结构体内成员即车位的状态。用循环实现车位的致零即可。
struct changnei/*场内车道信息*/
{
int neikong;
}chn[N-1];
struct changwai/*场外车道信息*/
{
int waikong;
}chw[M-1];
N和M分别是停车场和便道的车位预设值,用宏定义。用户可根据实际情况改变。
#define N 100/*预设停车场有100个车位*/
#define M 100/*预设便道有100个出位*/
void chushi()/*初始化函数*/
{
int i,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();
}
函数出示化后将回到菜单界面。
○3车辆进入函数:
该模块车辆到达后,要指定车辆的停车位置。用户根据菜单函数进入车辆进入模块。按照每辆车的到达次序给予车辆次序号,由0号开始。车辆信息也建立结构体。
struct car/*车辆信息*/
{
int car_num;/*车辆次序号*/
int car_arr;/*车辆到达时间*/
int car_lef;/*车辆离开时间*/
int car_stay;/*车辆停放位置*/
}car[CIXUHAO];
其中,CIXUHAO是车辆次序号的宏定义:
#define CIXUHAO 1000/*预设车辆次序号。不管车辆到达时停在场内或便道,均依次设置一个次序号,由0开始*/
给予车辆次序号之后,用循环判断停车场是否停满,再分别给予选择:
void jinru()/*车辆进入函数*/
{
int i,a;
int h=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; }