停车场管理系统课程设计

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

一、课程设计容

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

2. 假设停车场初始状态为第一层已经停有4辆车, 其车位号依次为1—4 , 停车时间依次为20, 15, 10 , 5 . 即先将这四辆车的信息存入文件”car.txt”中( 数组的对应元素也要进行赋值)

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

4. 收费管理(取车): 当有车离开时, 输入其车牌号, 先按其停车时间计算费用, 每5分钟0.2元. (停车费用可设置一个变量进行保存), 同时从文件”car.txt”中删除该车的信息, 并将该车对应的车位设置为可使用状态(即二维数组对应元素清零). 按用户的选择来判断是否要输出停车收费的总计.

5. 输出停车场中全部车辆的信息.

6. 退出系统.

实验程序流程图

停车

取车

实验源程序

#include

#include

#include

#include

#define N 12

void park();//停车

void getout();//取车并计算停车费用int x=4;

int Time=0;

struct C

{

char car_number[8];//车牌号

int fooler;//层数

int carport;//车位号

int time;//停车时间

}Car[N]={{"031098X",1,1,20},{"223X334",1,2,15},{"47328J3",1,3,10},{"3232G34",1,4,5}};/ /初始化

void main()

{

char choose,ch='\0';

FILE*fp=NULL;

fp=fopen("car.txt","aw");

if(fp==NULL)

{

printf("\n 打开文件失败!\n");

return;

}

fprintf(fp," 车牌层数车位号停车时间\n");

for(int i=0;i<=3;i++)

{

fprintf(fp,"%10s%5d%5d%10d\n",Car[i].car_number,Car[i].fooler,Car[i].carport,Car [i].time);

}

do{

printf("请输入选择的编号:(0--2)\n");

system("cls");

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

printf("1--- 停车\n");

printf("2--- 取车,并计算停车费用\n");

printf("0--- 退出\n");

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

choose=getch();

switch(choose)

{

case '1':park();break;

case '2':getout();break;

case '0':exit(0);

default : printf("您输入的为非法选项!\n");

}

printf("要继续吗?(Y or N)");

scanf("%c",&ch);

}while (ch=='Y'||ch=='y') ;

}

void park()

{

FILE*fp=NULL;

fp=fopen("car.txt","w");

if(fp==NULL)

{

printf("\n 打开文件失败!\n");

return;

}

printf("请输入车牌(以#开头):");

do{

//gets(Car[x].car_number);

getchar();

gets(Car[x].car_number);

// scanf("%s",&Car[x].car_number);

}while(strcmp(Car[x].car_number," ")==0);

for(int j=0;j<=11;j++)

{

if(Car[j].fooler==0)

{

if(j<6)

Car[x].fooler=1;

else if (j>=6)

Car[x].fooler=2;

Car[x].carport=++j;

break;

}

}

Car[x].time=Time;

for(int i=0;i<=x;i++)

{ Car[i].time+=5;

}

printf("登记成功!\n");

printf(" 车牌层数车位号停车时间\n");

相关文档
最新文档