(完整)C语言停车场管理系统课程设计.docx
《(完整)C语言停车场管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《(完整)C语言停车场管理系统课程设计.docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程设计课程设计名称:课程设计专业班级:学生姓名:学 号:指导教师:课程设计时间:IpCarStack = ( LPTCARSTACK ) malloc( sizeof ( TCARSTACK );IpCarStacklpCarInformation =(LPTCARINFORMATION ) malloc(nSize * sizeof ( TCARINFORMATION );IpCarStacknTop = -1 ;IpCarStack-) nStackSize = nSize ;)/ 车辆信息 carinfo 入栈 IpCarStackvoid Push ( LPTCARSTACK &Ip
2、CarStack , TCARINFORMATION carinfo ) (IpCarStack-) nTop+;IpCarStacklpCarInformation IpCarStack nTop = carinfo ; )/车辆信息从栈IpCarStack中弹出并存入carinfovoid Pop( LPTCARSTACK StlpCarStack, TCARINFORMATION &carinfo ) (carinfo = IpCarStack-) IpCarlnformation IpCarStack一nTop ;IpCarStack-) nTop;/若栈IpCarstack空,返回T
3、RUE ;否则,返回FALSEBOOL IsStackEmpty ( LPTCARSTACK IpCarStack )(return IpCarStacknTop = 1;)/ 若栈 IpStackFull 返回 TRUE ;否则,返回 FALSEBOOLIsStackFull( LPTCARSTACK IpCarStack)(return IpCarStack-) nTop = (IpCarStack-nStackSize 1 );)/ 销毁栈 IpCarStack,将指针 IpCarStack 置为 NULLvoid DestroyStack ( LPTCARSTACK &lpCarSta
4、ck )(free ( IpCarStack-lpCarInformation );free ( IpCarStack);IpCarStack = NULL ;) typedef struct carnode / 链队结点信息TCARINFORMATION carinfo; / 车辆信息struct carnode *lpNext;/指向下一个元素的指针 TCARNODE, *LPTCARNODE;typedef struct carqueue / 链队(LPTCARNODE IpHead ;/ 头结点LPTCARNODE IpRear;/指向当前队尾的指针int nEffectivesize
5、 ;/当前队中元素个数 TCARQUEUE , * LPTCARQUEUE;/初始化链队IpCarQueuevoid InitQueue ( LPTCARQUEUE &lpCarQueue )(IpCarQueue = ( LPTCARQUEUE ) malloc( sizeof ( TCARQUEUE );IpCarQueue-) IpHead = ( LPTCARNODE ) malloc( sizeof( TCARNODE );IpCarQueue-IpHead-) IpNext = NULL;IpCarQueuelpRear = IpCarQueue-IpHead ;IpCarQueu
6、e一nEffectiveSize = 0;)void EnQueue ( LPTCARQUEUE &lpCarQueue , TCARINFORMATION carinfo )LPTCARNODE IpCarNode = ( LPTCARNODE ) malloc ( sizeof ( carnode );IpCarNode-) carinfo = carinfo;IpCarNodelpNext = NULL ;lpCarQueue-lpRearlpNext = IpCarNode ;IpCarQueue-) IpRear = IpCarQueue-) IpRear-) IpNext;IpCa
7、rQueuenEffectiveSize+ ;)/队头元素从链队IpCarQueue中出队并存入carinfovoid DeQueue ( LPTCARQUEUE &lpCarQueue, TCARINFORMATION &carinfo )LPTCARNODE IpTemp = IpCarQueue-lpHead一lpNext;carinfo = IpTemp carinfo;IpCarQueuelpHeadlpNext = IpTempIpNext;free( IpTemp);IpCarQueue-nEffectiveSize;)/若链队IpCarQueue为空返回TRUE ;否则,返回F
8、ALSEBOOL IsQueueEmpty ( LPTCARQUEUE IpCarQueue )return IpCarQueuenEffectiveSize = 0 ;)/销毁链队IpCarQueuevoid DestroyQueue ( LPTCARQUEUE &IpCarQueue )(LPTCARNODE IpNextCarNode = NULL;for ( LPTCARNODE IpCarNode = IpCarQueue-) IpHead; IpCarNode ! = NULL ; IpCarNode =IpNextCarNode )(IpNextCarNode = IpCarNo
9、deIpNext;free ( IpCarNode);)free( IpCarQueue);IpCarQueue = NULL;)/将字符串时间格式转换为数字(分钟)格式,例如12:36将被转换为756 ( 12 * 60 + 36 )int ConvertTimeFormat( char *lpTime )(int nHour = 0;int nMinute = 0;sscanf ( IpTime, %d : %d , &nHour, &nMinute);return nHour * 60 + nMinute ;)/根据在停车场内的停留时间nContinuanceMinutes (分钟)计算
10、费用 double CalculateExpense( int nContinuanceMinutes )(return nContinuanceMinutes * ( 5O 0/60 );)int main( void )(int nParkCapability = 0 ;停车场容量putchar (;p ri ntf (请输入停车场容量:);scant ( %d” , &nParkCapability);LPTCARSTACK IpCarStack = NULL; / 停车场,用栈模拟InitStack( IpCarStack , nParkCapability );LPTCARQUEUE
11、 IpCarQueue = NULL; / 便道,用链队模拟char cCommandType = NULL; / 命令类型char szllserlnput128 = NULL ; 用户输入 do(ClearScreen ();putchar (,n );puts ( );puts(命令类型r );puts ( H A 车辆到达);puts( HD 车辆离开);puts ( H E -停止输入);puts( O 显示当前停车场和便道使用情况);putchar(znl);puts (例 r );puts ( ”A,冀 A1234,14 : 26 );puts ( D,冀A1234,16 : 5
12、r );puts( E);puts(H On);putchar( nz );printf (请输入命令:);scanf( %s , szllserlnput);puts ( -/);char szCarlnformation 128 = NULL;sscanf ( szllserlnput, /将命令类型与车辆信息分开存放c , %s,&cCommandType /用户输入的前半部分,即命令类型szCarlnformation /用户输入的后半部分,即车辆信息 );char *lpCommaLocation = NULL ; /车辆信息字符串中的逗号位置for ( IpCommaLocatio
13、n = szCarlnformation ; *lpCommaLocation != 0; lpCommaLocation + + ) (if ( *IpCommaLocation =二,1 )(break;)* IpCommaLocation =0;TCARINFORMATION carinfo = NULL ; 存储本次用户输入的车辆信息strcpy ( carinfOo szRegistrationMark, szCarlnformation );if ( cCommandType = A ) strcpy( carinfo.szArrivalTime, IpCommaLocation
14、+ 1 );if ( FALSE = IsStackFull ( IpCarStack )strcpy( carinfo.szEntranceTime, carinfoo szArrivalTime );Push ( IpCarStack, carinfo );printf( H已进入停车场第%d个车位n”,IpCarStacknTop + 1);printf (车牌号:tt%sn/z carinfoo szRegistrationMark );print* 进入时间:t%sn,carinfoo szEntranceTime );puts (是否收费:t是);)else(EnQueue ( I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 语言 停车场 管理 系统 课程设计
限制150内