挪车小黄码 首页 新闻频道 挪车资讯 查看内容

挪车源码,你好,能否给我一份停车场管理系统的源码,我一直寻找。谢谢QQ

2022-6-25 10:30

1、你好,能否给我一份停车场管理系统的源码,我一直寻找。谢谢QQ /////////////////////////////// 下面这个程序是我大二



1、你好,能否给我一份停车场管理系统的源码,我一直寻找。谢谢QQ

///////////////////////////////

下面这个程序是我大二上数据结构课时交的作业,现在正好电脑里面放着,所以就给你,应该满足你老师的要求了.编译环境是VC++6.0

如果不会用的话就在问题补充里说,那个"例"是我临时给你打上去的,随便写了点,你要看不懂例子不会输命令就问我.

/*****************************************************************/

#include

#include

#include

#include

#include

//清空当前屏幕

#defineClearScreen()system("cls")

//显示字符串szPrompt并等待用户按下任意键

#definePause(szPrompt)printf("%s",szPrompt),getch()

typedefstructcarinformation//车辆信息charszRegistrationMark[64];//车牌号

charszArrivalTime[16];//到达时间

charszEntranceTime[16];//进入停车场(开始计费)时间

charszDepartureTime[16];//离开时间

}TCARINFORMATION,*LPTCARINFORMATION;

typedefstructcarstackLPTCARINFORMATIONlpCarInformation;//车辆信息

intnTop;//栈顶元素下标

intnStackSize;//栈容量

}TCARSTACK,*LPTCARSTACK;

//初始化栈lpCarStack,将其容量设置为nSize

voidInitStack(LPTCARSTACK&lpCarStack,intnSize)lpCarStack=(LPTCARSTACK)malloc(sizeof(TCARSTACK));

lpCarStack->lpCarInformation=(LPTCARINFORMATION)malloc(

nSize*sizeof(TCARINFORMATION)lpCarStack->nTop=-1;

lpCarStack->nStackSize=nSize;//车辆信息carinfo入栈lpCarStack

voidPush(LPTCARSTACK&lpCarStack,TCARINFORMATIONcarinfo)lpCarStack->nTop++;

lpCarStack->lpCarInformation[lpCarStack->nTop]=carinfo;//车辆信息从栈lpCarStack中弹出并存入carinfo

voidPop(LPTCARSTACK&lpCarStack,TCARINFORMATION&carinfo)carinfo=lpCarStack->lpCarInformation[lpCarStack->nTop];

lpCarStack->nTop--;//若栈lpCarstack空,返回TRUE;否则,返回FALSE

BOOLIsStackEmpty(LPTCARSTACKlpCarStack)returnlpCarStack->nTop==-1;//若栈lpStackFull满,返回TRUE;否则,返回FALSE

BOOLIsStackFull(LPTCARSTACKlpCarStack)returnlpCarStack->nTop==(lpCarStack->nStackSize-1);//销毁栈lpCarStack,将指针lpCarStack置为NULL

voidDestroyStack(LPTCARSTACK&lpCarStack)free(lpCarStack->lpCarInformation);

free(lpCarStack);

lpCarStack=NULL;typedefstructcarnode//链队结点信息TCARINFORMATIONcarinfo;//车辆信息

structcarnode*lpNext;//指向下一个元素的指针

}TCARNODE,*LPTCARNODE;

typedefstructcarqueue//链队LPTCARNODElpHead;//头结点

LPTCARNODElpRear;//指向当前队尾的指针

intnEffectiveSize;//当前队中元素个数

}TCARQUEUE,*LPTCARQUEUE;

//初始化链队lpCarQueue

voidInitQueue(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入队lpCarQueue

voidEnQueue(LPTCARQUEUE&lpCarQueue,TCARINFORMATIONcarinfo)LPTCARNODElpCarNode=(LPTCARNODE)malloc(sizeof(carnode));

lpCarNode->carinfo=carinfo;

lpCarNode->lpNext=NULL;

lpCarQueue->lpRear->lpNext=lpCarNode;

lpCarQueue->lpRear=lpCarQueue->lpRear->lpNext;

lpCarQueue->nEffectiveSize++;//队头元素从链队lpCarQueue中出队并存入carinfo

voidDeQueue(LPTCARQUEUE&lpCarQueue,TCARINFORMATION&carinfo)LPTCARNODElpTemp=lpCarQueue->lpHead->lpNext;

carinfo=lpTemp->carinfo;

lpCarQueue->lpHead->lpNext=lpTemp->lpNext;

free(lpTemp);

lpCarQueue->nEffectiveSize--;//若链队lpCarQueue为空,返回TRUE;否则,返回FALSE

BOOLIsQueueEmpty(LPTCARQUEUElpCarQueue)returnlpCarQueue->nEffectiveSize==0;//销毁链队lpCarQueue

voidDestroyQueue(LPTCARQUEUE&lpCarQueue)LPTCARNODElpNextCarNode=NULL; · · 关注微信公众号:挪车小黄码 · 官方免费领取:挪车码,车主双方虚拟号码,隐私保护,拒绝骚扰,违章查询,免费使用!--挪车电话 官网:https://www.nuoche.cc/ · ·

挪车源码

for(LPTCARNODElpCarNode=lpCarQueue->lpHead;lpCarNode!=NULL;lpCarNode=lpNextCarNode)lpNextCarNode=lpCarNode->lpNext;

free(lpCarNode);free(lpCarQueue);

lpCarQueue=NULL;//将字符串时间格式转换为数字(分钟)格式,例如12:36将被转换为(12*60+36)

intConvertTimeFormat(char*lpTime)intnHour=0;

intnMinute=0;

sscanf(lpTime,"%d:%d",&nHour,&nMinute);

returnnHour*60+nMinute;//根据在停车场内的停留时间nContinuanceMinutes(分钟)计算费用

doubleCalculateExpense(intnContinuanceMinutes)returnnContinuanceMinutes*(;intmain(void)intnParkCapability=0;//停车场容量

putchar('\n');

printf("请输入停车场容量:");

scanf("%d",&nParkCapability);

LPTCARSTACKlpCarStack=NULL;//停车场,用栈模拟

InitStack(lpCarStack,nParkCapability);

LPTCARQUEUElpCarQueue=NULL;//便道,用链队模拟

InitQueue(lpCarQueue);

charcCommandType=NULL;//命令类型

charszUserInput[]={NULL};//用户输入{

ClearScreen();

putchar('\n');

puts("--------------------");

puts("[命令类型]");

puts("A-车辆到达");

puts("D-车辆离开");

puts("E-停止输入");

puts("O-显示当前停车场和便道使用情况");

putchar('\n');

puts("例:");

puts("A,冀,14:26");

puts("D,冀,16:51");

puts("E");

puts("O");

putchar('\n');

printf("请输入命令:");

scanf("%s",szUserInput);

puts("--------------------");

charszCarInformation[]={NULL};

sscanf(szUserInput,//将命令类型与车辆信息分开存放

"%c,%s",

&cCommandType,//用户输入的前半部分,即命令类型

szCarInformation//用户输入的后半部分,即车辆信息char*lpCommaLocation=NULL;//车辆信息字符串中的逗号位置

for(lpCommaLocation=szCarInformation;*lpCommaLocation!='\0';lpCommaLocation++)if(*lpCommaLocation==',')break;*lpCommaLocation='\0';

TCARINFORMATIONcarinfo={NULL};//存储本次用户输入的车辆信息

strcpy(carinfo.szRegistrationMark,szCarInformation);

if(cCommandType=='A')strcpy(carinfo.szArrivalTime,lpCommaLocation+1);

if(FALSE==IsStackFull(lpCarStack))strcpy(carinfo.szEntranceTime,carinfo.szArrivalTime);

Push(lpCarStack,carinfo);

printf("已进入停车场第%d个车位\n",

lpCarStack->nTop+1printf("车牌号:\t\t%s\n",carinfo.szRegistrationMark);

printf("进入时间:\t%s\n",carinfo.szEntranceTime);

puts("是否收费:\t是");elseEnQueue(lpCarQueue,carinfo);

printf("停车场已满,已停放在便道的第%d个车位\n",

lpCarQueue->nEffectiveSizeprintf("车牌号:\t\t%s\n",carinfo.szRegistrationMark);

printf("停放时间:\t%s\n",carinfo.szArrivalTime);

puts("是否收费:\t否");elseif(cCommandType=='D')strcpy(carinfo.szDepartureTime,lpCommaLocation+1);

LPTCARSTACKlpTempCarStack=NULL;

InitStack(lpTempCarStack,nParkCapability);

TCARINFORMATIONcarinfoOut={NULL};

BOOLbIsCarFound=FALSE;

while(FALSE==IsStackEmpty(lpCarStack))Pop(lpCarStack,carinfoOut);

if(0!=strcmp(carinfoOut.szRegistrationMark,carinfo.szRegistrationMark))Push(lpTempCarStack,carinfoOut);elsebIsCarFound=TRUE;

break;while(FALSE==IsStackEmpty(lpTempCarStack))TCARINFORMATIONtempcarinfo={NULL};

Pop(lpTempCarStack,tempcarinfo);

Push(lpCarStack,tempcarinfo);if(FALSE==bIsCarFound)printf("车牌号为%s的车未进入停车场.\n",carinfo.szRegistrationMark);

Pause("--------------------\n按任意键输入下一条信息...\n");

continue;strcpy(carinfoOut.szDepartureTime,carinfo.szDepartureTime);

intnEntranceTime=ConvertTimeFormat(carinfoOut.szEntranceTime);

intnDepartureTime=ConvertTimeFormat(carinfoOut.szDepartureTime);

intnContinuanceMinutes=nDepartureTime-nEntranceTime;

printf("计费时段:\t%s-%s(共%d分钟)\n",

carinfoOut.szEntranceTime,

carinfoOut.szDepartureTime,

nContinuanceMinutesdoublerExpense=CalculateExpense(nContinuanceMinutes);

printf("应交纳的费用:\t%.1lf元\n",rExpense);

if(FALSE==IsQueueEmpty(lpCarQueue))TCARINFORMATIONtempcarinfo={NULL};

DeQueue(lpCarQueue,tempcarinfo);

strcpy(tempcarinfo.szEntranceTime,carinfoOut.szDepartureTime);

Push(lpCarStack,tempcarinfo);

puts("--------------------");

printf("停放在便道的第1个车位,车牌号为%s的车已进入停车场\n",

tempcarinfo.szRegistrationMark}elseif(cCommandType=='E')puts("********************");

puts("陈赛-\n");

puts("********************");

break;elseif(cCommandType=='O')ClearScreen();

putchar('\n');

puts("[停车场使用情况]\n");

puts("[车位]\t[车牌号]\t[到达时间]\t[进入(开始计费)时间]\n");

for(inti=0;i<=lpCarStack->nTop;i++)printf("%d\t%s\t\t%s\t\t%s\n",

i+1,

lpCarStack->lpCarInformation[i].szRegistrationMark,

lpCarStack->lpCarInformation[i].szArrivalTime,

lpCarStack->lpCarInformation[i].szEntranceTime}

putchar('\n');

putchar('\n');

putchar('\n');

puts("[便道使用情况]\n");

puts("[车位]\t[车牌号]\t[到达时间]\t[进入(开始计费)时间]\n");

intnNum=0;

for(LPTCARNODElpCarNode=lpCarQueue->lpHead->lpNext;

lpCarNode!=NULL;lpCarNode=lpCarNode->lpNext)nNum++;

printf("%d\t%s\t\t%s\t\t%s\n",

nNum,

lpCarNode->carinfo.szRegistrationMark,

lpCarNode->carinfo.szArrivalTime,

lpCarNode->carinfo.szEntranceTime}

putchar('\n');elseputs("输入信息有误.第一个字符只能为'A'或'D'或'E'或'O'(区分大小写).");Pause("--------------------\n按任意键输入下一条信息.\n");

}while(TRUE);

DestroyStack(lpCarStack);

DestroyQueue(lpCarQueue);

Pause("\n按任意键退出程序...\n");

return0;//车辆进入用A命令,格式如下:

//A,牌照,时间例如:A,,13:52

//离开用D命令,例如:D,,14:53

//查看当前停车场情况,用英文字母O命令直接输入O即可,

//结束,直接输入E

免责声明:本文来自网络,不代表挪车小黄码的观点和立场,侵权之处联系我们即时删除,谢谢关注。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

  • 产品列表

    挪车小黄码 挪车平台加盟 免费在线发稿
  • 免费领取

    电脑端领取 手机端领取 在线生成 邮寄方式
  • 问答社区

    问题反馈
  • 关于

    联系我们
  • 联系方式

    关注微信公众号
    挪车小黄码
    找客服

关注微信公众号

挪车小黄码 找客服

扫码挪车_挪车二维码_挪车小黄码-不再车牌号查挪车电话

Powered by Discuz! X3.4 Licensed© 2020-2030 Company. 版权所有:南阳市概念传媒有限公司 豫ICP备18020169号 |网站地图