停车场管理系统—C语言课程设计

  • 格式:doc
  • 大小:287.50 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

停车场管理系统

1题目要求

设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车站。停车站内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。

【基本要求】要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场是的停车时间及它应该交的费用。

2需求分析

根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。车辆离开要计时计费。另外,每天开始时,停车场要初始化。

3总体设计

这个系统可以分为:初始化、有车进入、有车离开、退出四个模块。

4详细设计

main()函数体内包含了界面选则部分menu(),并单独Array抽出来作为一个独立函数,目的在于系统执行每部分

模块后能够方便返回到系统界面。即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);/*退出*/

}

}

初始化模块设计:

【需求分析】

该模块是将每一天开始的停车场内和便道车位清零。首先建立场内场外的结构体,结构体内成员即车位的状态。用循环实现车位的致零即可。

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();

}

函数出示化后将回到菜单界面。

车辆进入函数:

【需求分析】

车辆到达后,要指定车辆的停车位置。用户根据菜单函数进入车辆进入模块。按照每辆车的到达次序给予车辆次序号,由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

便道上还有车吗?

menu(); }

程序执行完后回到菜单。