2022年数据结构停车场管理系统

上传人:痛*** 文档编号:119321613 上传时间:2022-07-14 格式:PDF 页数:9 大小:59.92KB
收藏 版权申诉 举报 下载
2022年数据结构停车场管理系统_第1页
第1页 / 共9页
2022年数据结构停车场管理系统_第2页
第2页 / 共9页
2022年数据结构停车场管理系统_第3页
第3页 / 共9页
资源描述:

《2022年数据结构停车场管理系统》由会员分享,可在线阅读,更多相关《2022年数据结构停车场管理系统(9页珍藏版)》请在装配图网上搜索。

1、数据结构停车场管理系统.txt遇事潇洒一点,看世糊涂一点。相亲是经销,恋爱叫直销,抛绣球招亲则为围标。没有准备请不要开始,没有能力请不要承诺。爱情这东西,没得到可能是缺憾,不表白就会有遗憾,可是如果自不量力,就只能抱憾了。#include#include#include#include#include /清空当前屏幕#define ClearScreen()system(cls)/显示字符串 szPrompt 并等待用户按下任意键#define Pause(szPrompt)printf(%s,szPrompt),getch()typedef struct carinformation /车辆

2、信息 char szRegistrationMark64;/车牌号 char szArrivalTime16;/到达时间 char szEntranceTime16;/进入停车场(开始计费)时间 char szDepartureTime16;/离开时间 TCARINFORMATION,*LPTCARINFORMATION;typedef struct carstack LPTCARINFORMATION lpCarInformation;/车辆信息 int nTop;/栈顶元素下标 int nStackSize;/栈容量 TCARSTACK,*LPTCARSTACK;/初始化栈 lpCarSt

3、ack,将其容量设置为 nSize void InitStack(LPTCARSTACK&lpCarStack,int nSize)lpCarStack=(LPTCARSTACK)malloc(sizeof(TCARSTACK);lpCarStack-lpCarInformation=(LPTCARINFORMATION)malloc(nSize*sizeof(TCARINFORMATION);lpCarStack-nTop=-1;lpCarStack-nStackSize=nSize;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 9 页 -/车辆信息 carinfo 入栈 l

4、pCarStack void Push(LPTCARSTACK&lpCarStack,TCARINFORMATION carinfo)lpCarStack-nTop+;lpCarStack-lpCarInformationlpCarStack-nTop=carinfo;/车辆信息从栈 lpCarStack 中弹出并存入 carinfo void Pop(LPTCARSTACK&lpCarStack,TCARINFORMATION&carinfo)carinfo=lpCarStack-lpCarInformationlpCarStack-nTop;lpCarStack-nTop-;/若栈 lpC

5、arstack 空,返回 TRUE;否则,返回 FALSE BOOL IsStackEmpty(LPTCARSTACK lpCarStack)return lpCarStack-nTop=-1;/若栈 lpStackFull 满,返回 TRUE;否则,返回 FALSE BOOL IsStackFull(LPTCARSTACK lpCarStack)return lpCarStack-nTop=(lpCarStack-nStackSize-1);/销毁栈 lpCarStack,将指针 lpCarStack 置为 NULL void DestroyStack(LPTCARSTACK&lpCarSt

6、ack)free(lpCarStack-lpCarInformation);free(lpCarStack);lpCarStack=NULL;typedef struct carnode /链队结点信息 TCARINFORMATION carinfo;/车辆信息 struct carnode*lpNext;/指向下一个元素的指针 TCARNODE,*LPTCARNODE;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 9 页 -typedef struct carqueue /链队 LPTCARNODE lpHead;/头结点 LPTCARNODE lpRear;/指向当前队尾的

7、指针 int nEffectiveSize;/当前队中元素个数 TCARQUEUE,*LPTCARQUEUE;/初始化链队 lpCarQueue void InitQueue(LPTCARQUEUE&lpCarQueue)lpCarQueue=(LPTCARQUEUE)malloc(sizeof(TCARQUEUE);lpCarQueue-lpHead=(LPTCARNODE)malloc(sizeof(TCARNODE);lpCarQueue-lpHead-lpNext=NULL;lpCarQueue-lpRear=lpCarQueue-lpHead;lpCarQueue-nEffectiv

8、eSize=0;/车辆信息 carinfo 入队 lpCarQueue void EnQueue(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-nEffectiveS

9、ize+;/队头元素从链队 lpCarQueue 中出队并存入 carinfo void DeQueue(LPTCARQUEUE&lpCarQueue,TCARINFORMATION&carinfo)LPTCARNODE lpTemp=lpCarQueue-lpHead-lpNext;carinfo=lpTemp-carinfo;lpCarQueue-lpHead-lpNext=lpTemp-lpNext;free(lpTemp);lpCarQueue-nEffectiveSize-;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 9 页 -/若链队 lpCarQueue 为空,

10、返回 TRUE;否则,返回 FALSE BOOL IsQueueEmpty(LPTCARQUEUE lpCarQueue)return lpCarQueue-nEffectiveSize=0;/销毁链队 lpCarQueue void DestroyQueue(LPTCARQUEUE&lpCarQueue)LPTCARNODE lpNextCarNode=NULL;for(LPTCARNODE lpCarNode=lpCarQueue-lpHead;lpCarNode!=NULL;lpCarNode=lpNextCarNode)lpNextCarNode=lpCarNode-lpNext;fr

11、ee(lpCarNode);free(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 nContinuanceMi

12、nutes)return nContinuanceMinutes*(5.0/60);int main(void)int nParkCapability=0;/停车场容量名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 9 页 -putchar(n);printf(tt=欢迎你进入停车场管理系统=n);printf(tt 徐沙利 20074470149n);printf(请输入停车场容量:);scanf(%d,&nParkCapability);LPTCARSTACK lpCarStack=NULL;/停车场,用栈模拟 InitStack(lpCarStack,nParkCapabi

13、lity);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(A,冀 A1234,14:26);puts(D,冀 A1234,16:5

14、1);puts(E);puts(O);putchar(n);printf(请输入命令:);scanf(%s,szUserInput);puts(-);char szCarInformation128=NULL;sscanf(szUserInput,/将命令类型与车辆信息分开存放%c,%s,&cCommandType,/用户输入的前半部分,即命令类型 szCarInformation /用户输入的后半部分,即车辆信息 );char*lpCommaLocation=NULL;/车辆信息字符串中的逗号位置名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 9 页 -for(lpCommaL

15、ocation=szCarInformation;*lpCommaLocation!=0;lpCommaLocation+)if(*lpCommaLocation=,)break;*lpCommaLocation=0;TCARINFORMATION carinfo=NULL;/存储本次用户输入的车辆信息 strcpy(carinfo.szRegistrationMark,szCarInformation);if(cCommandType=A)strcpy(carinfo.szArrivalTime,lpCommaLocation+1);if(FALSE=IsStackFull(lpCarSta

16、ck)strcpy(carinfo.szEntranceTime,carinfo.szArrivalTime);Push(lpCarStack,carinfo);printf(已进入停车场第%d 个车位 n,lpCarStack-nTop+1 );printf(车牌号:tt%sn,carinfo.szRegistrationMark);printf(进入时间:t%sn,carinfo.szEntranceTime);puts(是否收费:t是);else EnQueue(lpCarQueue,carinfo);printf(停车场已满,已停放在便道的第%d 个车位 n,lpCarQueue-nE

17、ffectiveSize );printf(车牌号:tt%sn,carinfo.szRegistrationMark);printf(停放时间:t%sn,carinfo.szArrivalTime);puts(是否收费:t否);else if(cCommandType=D)strcpy(carinfo.szDepartureTime,lpCommaLocation+1);名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 9 页 -LPTCARSTACK lpTempCarStack=NULL;InitStack(lpTempCarStack,nParkCapability);TCA

18、RINFORMATION carinfoOut=NULL;BOOL bIsCarFound=FALSE;while(FALSE=IsStackEmpty(lpCarStack)Pop(lpCarStack,carinfoOut);if(0!=strcmp(carinfoOut.szRegistrationMark,carinfo.szRegistrationMark)Push(lpTempCarStack,carinfoOut);else bIsCarFound=TRUE;break;while(FALSE=IsStackEmpty(lpTempCarStack)TCARINFORMATION

19、 tempcarinfo=NULL;Pop(lpTempCarStack,tempcarinfo);Push(lpCarStack,tempcarinfo);if(FALSE=bIsCarFound)printf(车牌号为%s 的车未进入停车场.n,carinfo.szRegistrationMark);Pause(-n按任意键输入下一条信息.n);continue;strcpy(carinfoOut.szDepartureTime,carinfo.szDepartureTime);int nEntranceTime=ConvertTimeFormat(carinfoOut.szEntranc

20、eTime);int nDepartureTime=ConvertTimeFormat(carinfoOut.szDepartureTime);int nContinuanceMinutes=nDepartureTime-nEntranceTime;printf(计费时段:t%s-%s(共%d 分钟)n,carinfoOut.szEntranceTime,carinfoOut.szDepartureTime,nContinuanceMinutes );名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 9 页 -double rExpense=CalculateExpense(nCo

21、ntinuanceMinutes);printf(应交纳的费用:t%.1lf 元n,rExpense);if(FALSE=IsQueueEmpty(lpCarQueue)TCARINFORMATION tempcarinfo=NULL;DeQueue(lpCarQueue,tempcarinfo);strcpy(tempcarinfo.szEntranceTime,carinfoOut.szDepartureTime);Push(lpCarStack,tempcarinfo);puts(-);printf(停放在便道的第 1 个车位,车牌号为%s 的车已进入停车场n,tempcarinfo.s

22、zRegistrationMark );else if(cCommandType=E)puts(*);puts(徐沙利 -Build201006n);puts(*);break;else if(cCommandType=O)ClearScreen();putchar(n);puts(停车场使用情况n);puts(车位 t车牌号 t到达时间 t进入(开始计费)时间 n);for(int i=0;i nTop;i+)printf(%dt%stt%stt%sn,i+1,lpCarStack-lpCarInformationi.szRegistrationMark,lpCarStack-lpCarIn

23、formationi.szArrivalTime,lpCarStack-lpCarInformationi.szEntranceTime );putchar(n);putchar(n);putchar(n);puts(便道使用情况 n);puts(车位 t车牌号 t到达时间 t进入(开始计费)时间 n);int nNum=0;for(LPTCARNODE lpCarNode=lpCarQueue-lpHead-lpNext;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 9 页 -lpCarNode!=NULL;lpCarNode=lpCarNode-lpNext)nNum+;p

24、rintf(%dt%stt%stt%sn,nNum,lpCarNode-carinfo.szRegistrationMark,lpCarNode-carinfo.szArrivalTime,lpCarNode-carinfo.szEntranceTime );putchar(n);else puts(输入信息有误.第一个字符只能为 A 或 D 或 E 或 O(区分大小写).);Pause(-n按任意键输入下一条信息.n);while(TRUE);DestroyStack(lpCarStack);DestroyQueue(lpCarQueue);Pause(n按任意键退出程序.n);return 0;名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 9 页 -

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!