一、课程设计内容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.退出系统.实验程序流程图停车输入2输入0开始输出提示信息,进入选项1-停车2-取车3-退出系统输入1进入管理系统进入停车流程退出管理系统车离开停车场开始进入停车场管理系统判断一楼是否有空位车停入一楼车停入二楼输入停车信息,车牌号,车位,停车让时间(预设为5)车进入停车场YN取车进入管理系统开始输入取车的信息(车牌号或车位号)弹出取车信息(车牌号,车位号,停车费用)车离开停车场实验源程序#include#include#include#include#defineN12voidpark();//停车voidgetout();//取车并计算停车费用intx=4;intTime=0;structC{charcar_number[8];//车牌号intfooler;//层数intcarport;//车位号inttime;//停车时间}Car[N]={{"031098X",1,1,20},{"223X334",1,2,15},{"47328J3",1,3,10},{"3232G34",1,4,5}};//初始化voidmain(){charchoose,ch='\0';FILE*fp=NULL;fp=fopen("car.txt","aw");if(fp==NULL){printf("\n打开文件失败!\n");return;}fprintf(fp,"车牌号码层数车位号停车时间\n");for(inti=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("要继续吗?(YorN)");scanf("%c",&ch);}while(ch=='Y'||ch=='y');}voidpark(){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(intj=0;j<=11;j++){if(Car[j].fooler==0){if(j<6)Car[x].fooler=1;elseif(j>=6)Car[x].fooler=2;Car[x].carport=++j;break;}}Car[x].time=Time;for(inti=0;i<=x;i++){Car[i].time+=5;}printf("登记成功!\n");printf("车牌号码层数车位号停车时间\n");printf("%5s%5d%5d%10d\n",Car[x].car_number,Car[x].fooler,Car[x].carport,Car[x].time);fprintf(fp,"车牌号码层数车位号停车时间\n");for(i=0;i<=x;i++)fprintf(fp,"%10s%5d%5d%10d\n",Car[i].car_number,Car[i].fooler,Car[i].carport,Car[i].time);x++;}voidgetout(){structCtemp={0};doubleM=0;FILE*fp=NULL;fp=fopen("car.txt","w");if(fp==NULL){printf("\n打开文件失败!\n");return;}printf("请输入您停车的车位号:");//改成车位号比较方便计算(1234车位号已经初始化了)//getchar();//吃掉一个字符//gets(temp.car_number);scanf("%d",&temp.carport);//for(inti=0;i<=x;i++)//{//if(!strcmp(temp.car_number,Car[x].car_number))//break;//}for(inti=0;i<=x;i++){if(temp.carport==Car[i].carport)break;}if(i>x){printf("无此辆车的记录!\n");return;}else{M=(double)Car[i].time*0.2;printf("停车费用为:%5.1f\n",M);}Car[i].fooler=0;fprintf(fp,"车牌号码层数车位号停车时间\n");for(i=0;i<=x;i++){while(Car[i].fooler!=0)fprintf(fp,"%10s%5d%5d%10d\n",Car[i].car_number,Car[i].fooler,Car[i].carport,Car[i].time);return;}}