按关键词阅读: 系统 管理 数据结构 停车场
/ 离开时间 TCARINFORMATION, *LPTCARINFORMATION;
typedef struct carstackLPTCARINFORMATION lpCarInformation;
/ 车辆信息 int nTop;
/ 栈顶元素下标int nStackSize;
/ 栈容量 TCARSTACK, *LPTCARSTACK;
/ 初始化栈 lpCarStack, 将其容量设置为 nSizevoid InitStack( LPTCARSTACK &lpCarStack, int nSize )l 。
14、pCarStack = ( LPTCARSTACK ) malloc( sizeof ( TCARSTACK ) );
lpCarStack-lpCarInformation = ( LPTCARINFORMATION ) malloc(nSize * sizeof ( TCARINFORMATION );
lpCarStack-nTop = -1;
lpCarStack-nStackSize = nSize;
/ 车辆信息 carinfo 入栈 lpCarStackvoid Push( LPTCARSTACK &lpCarStack, TCARINFORMATION carinfo )lpCarSt 。
15、ack-nTop+;
lpCarStack-lpCarInformationlpCarStack-nTop = carinfo;
/ 车辆信息从栈 lpCarStack 中弹出并存入 carinfovoid Pop( LPTCARSTACK &lpCarStack, TCARINFORMATION &carinfo )carinfo = lpCarStack-lpCarInformationlpCarStack-nTop;
lpCarStack-nTop-;
/ 若栈 lpCarstack 空,返回 TRUE;
否则,返回 FALSEBOOL IsStackEmpty( LPTCARSTACK lpCa 。
16、rStack )return lpCarStack-nTop = -1;
/ 若栈 lpStackFull 满,返回 TRUE;
否则,返回 FALSEBOOL IsStackFull( LPTCARSTACK lpCarStack )return lpCarStack-nTop = ( lpCarStack-nStackSize - 1 );
/ 销毁栈 lpCarStack,将指针 lpCarStack 置为 NULLvoid DestroyStack( LPTCARSTACK &lpCarStack )free( lpCarStack-lpCarInformation );
free( lpCa 。
17、rStack );
lpCarStack = NULL;
typedef struct carnode / 链队结点信息TCARINFORMATION carinfo;
/ 车辆信息struct carnode *lpNext;
/ 指向下一个元素的指针 TCARNODE, *LPTCARNODE;
typedef struct carqueue / 链队LPTCARNODE lpHead;
/ 头结点LPTCARNODE lpRear;
/ 指向当前队尾的指针int nEffectiveSize;
/ 当前队中元素个数 TCARQUEUE, *LPTCARQUEUE;
/ 初始化链队 lpCarQu 。
18、euevoid InitQueue( LPTCARQUEUE &lpCarQueue )lpCarQueue = ( LPTCARQUEUE ) malloc( sizeof( TCARQUEUE ) );
lpCarQueue-lpHead = ( LPTCARNODE) malloc( sizeof( TCARNODE ) );
lpCarQueue-lpHead-lpNext = NULL;
lpCarQueue-lpRear = lpCarQueue-lpHead;
lpCarQueue-nEffectiveSize = 0;
/ 车辆信息 carinfo 入队 lpCarQueuevoid E 。
19、nQueue( LPTCARQUEUE &lpCarQueue, TCARINFORMATION carinfo )LPTCARNODE lpCarNode = ( LPTCARNODE ) malloc( sizeof( carnode ) );
lpCarNode-carinfo = carinfo;
lpCarNode-lpNext = NULL;
lpCarQueue-lpRear-lpNext = lpCarNode;
lpCarQueue-lpRear = lpCarQueue-lpRear-lpNext;
lpCarQueue-nEffectiveSize+;
/ 队头元素从链队 lpCar 。
20、Queue 中出队并存入 carinfovoid DeQueue( LPTCARQUEUE &lpCarQueue, TCARINFORMATION &carinfo )LPTCARNODE lpTemp = lpCarQueue-lpHead-lpNext;
carinfo = lpTemp-carinfo;
lpCarQueue-lpHead-lpNext = lpTemp-lpNext;
free( lpTemp );
lpCarQueue-nEffectiveSize-;
/ 若链队 lpCarQueue 为空,返回 TRUE;
否则,返回 FALSEBOOL IsQueueEmpty( LPTC 。
21、ARQUEUE lpCarQueue )return lpCarQueue-nEffectiveSize = 0;
/ 销毁链队 lpCarQueuevoid DestroyQueue( LPTCARQUEUE &lpCarQueue )LPTCARNODE lpNextCarNode = NULL;
for ( LPTCARNODE lpCarNode = lpCarQueue-lpHead;
lpCarNode != NULL;
lpCarNode = lpNextCarNode )lpNextCarNode = lpCarNode-lpNext;
free( lpCarNode );
free( 。
22、 lpCarQueue );
lpCarQueue = NULL;
/ 将字符串时间格式转换为数字(分钟)格式,例如 12:36 将被转换为 756 ( 12 * 60 + 36 )int ConvertTimeFormat( char *lpTime )int nHour = 0;
int nMinute = 0;
sscanf( lpTime, %d:%d, &nHour, &nMinute );
return nHour * 60 + nMinute;
/ 根据在停车场内的停留时间 nContinuanceMinutes (分钟)计算费用double CalculateExpense( int nC 。
23、ontinuanceMinutes )return nContinuanceMinutes * ( 5.0 / 60 );
int main( void )int nParkCapability = 0;
/ 停车场容量putchar( n );
printf(tt=欢迎你进入停车场管理系统=n);
printf(tt 徐沙利 20074470149n);
printf( 请输入停车场容量: );
scanf( %d, &nParkCapability );
LPTCARSTACK lpCarStack = NULL;
/ 停车场,用栈模拟InitStack( lpCarStack, nParkCapab 。
24、ility );
LPTCARQUEUE lpCarQueue = NULL;
/ 便道,用链队模拟InitQueue( lpCarQueue );
char cCommandType = NULL;
/ 命令类型char szUserInput128 = NULL ;
/ 用户输入do ClearScreen();
putchar( n );
puts( - );
puts( 命令类型 );
puts( A - 车辆到达 );
puts( D - 车辆离开 );
puts( E - 停止输入 );
puts( O - 显示当前停车场和便道使用情况 );
putchar( n );
puts( 例: );
puts( 。
25、 A,冀A1234,14:26 );
puts( D,冀A1234,16:51 );
puts( E );
puts( O );
putchar( n );
printf( 请输入命令: );
scanf( %s, szUserInput );
puts( - );
char szCarInformation128 = NULL ;
sscanf( szUserInput, / 将命令类型与车辆信息分开存放%c,%s,&cCommandType, / 用户输入的前半部分,即命令类型szCarInformation / 用户输入的后半部分,即车辆信息);
稿源:(未知)
【傻大方】网址:/a/2021/0902/0024074420.html
标题:数据结构|数据结构 停车场管理系统( 三 )