这段代码是一个停车场模拟程序,通过结构体数组 CAR 存储车辆信息,实现车辆的进出以及等待功能。

#include <stdio.h>
#define M 100

struct CAR{
	char xinxi;
	int haoma;
	int shijian;
};

int main()
{
    int n,i,j,k,p,weizhi;
    k=0;
    weizhi=1;
    struct CAR tingche[M];
    
    int shichang,dengdai,a,b;
    dengdai=-1;
    
    scanf("%d",&n);
    while(tingche[k].xinxi!='E'){
    	scanf("%c%d%d",&tingche[k].xinxi,&tingche[k].haoma,&tingche[k].shijian);
    	if(tingche[k].xinxi!='E') {
    		k++;
		}
	}
	
	i=0;
	while(i<=k-1){
		if(tingche[i].xinxi=='E'){
    		break;
		}else if(tingche[i].xinxi=='A'){
			if(weizhi<=n){
				printf("car#%d in parking space #%d\n",tingche[i].haoma,weizhi);
				weizhi++;
			}else{
				printf("car#%d waiting\n",tingche[i].haoma);
				dengdai=tingche[i].haoma;
			}
		}else if(tingche[i].xinxi=='D'){
			a=0;
			b=tingche[i].shijian;
			for(j=0;j<i;j++){
				if(tingche[i].haoma==tingche[j].haoma){
					a=1;
					shichang=tingche[i].shijian-tingche[j].shijian;
					break;
				}
			}
			if(a==1){
			printf("car#%d out,parking time %d\n",tingche[i].haoma,shichang);
            for(p=0;p<k;p++){
                if(tingche[p].haoma==tingche[i].haoma){
                    tingche[p].haoma=-1;
                }
            }
            
			weizhi--;
			if(dengdai!=-1){
				for(j=0;j<k;j++){
					if(dengdai==tingche[j].haoma&&tingche[j].xinxi=='A'){
						tingche[j].shijian=b;
						break;
					}
				}
				printf("car#%d in parking space #%d\n",dengdai,weizhi);
				dengdai=-1;
			}
			}else{
				printf("the car not in park\n");
			}	
		}
		i++;
	}
}

程序功能:

  • 模拟车辆进入停车场 (A),并分配停车位。
  • 模拟车辆离开停车场 (D),并计算停车时间。
  • 处理车辆等待情况,将等待时间最长的车辆放入空闲的停车位。

主要重点和难点:

  • 计算停车时间: 查找对应车辆的进入时间和离开时间,并计算时间差。
  • 处理等待车辆: 记录等待车辆的车牌号码,并在有车辆离开时判断是否有等待车辆,如果有,则将等待时间最长的车辆放入停车位中。

改进建议:

  • 使用函数封装功能,例如 addCar()removeCar()calculateParkingTime() 等,提高代码可读性和可维护性。
  • 在输入车辆信息时,添加输入验证,例如检查车牌号码是否合法,停车时间是否合理等,避免出现输入错误。
  • 添加更多功能,例如显示停车场状态、统计停车场收入等,使其更完善。

学习收获:

  • 深刻理解结构体的用法,以及如何利用结构体数组实现复杂的数据操作。
  • 加深了对程序设计和逻辑思维的认识。
  • 了解了如何使用 C 语言实现简单的模拟程序。
C语言停车场模拟程序:结构体数组实现车辆进出管理

原文地址: https://www.cveoy.top/t/topic/otOH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录