求这个大题的C++作业答案。。有急用!!
答案:4 悬赏:0 手机版
解决时间 2021-11-29 09:32
- 提问者网友:嗝是迷路的屁
- 2021-11-29 00:16
求这个大题的C++作业答案。。有急用!!
最佳答案
- 五星知识达人网友:妄饮晩冬酒
- 2021-11-29 01:18
这个不难,怎么提供给你?私信我
全部回答
- 1楼网友:摆渡翁
- 2021-11-29 04:39
就说作业被你家猫撕了
- 2楼网友:杯酒困英雄
- 2021-11-29 03:16
把扩展名改成CPP,然后编译连接///////////////////////////////下面这个程序是我大二上数据结构课时交的作业,现在正好电脑里面放着,所以就给你,应该满足你老师的要求了.编译环境是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;typedefstructcarstack{LPTCARINFORMATIONlpCarInformation;//车辆信息intnTop;//栈顶元素下标intnStackSize;//栈容量}TCARSTACK,*LPTCARSTACK;//初始化栈lpCarStack,将其容量设置为nSizevoidInitStack(LPTCARSTACK&lpCarStack,intnSize){lpCarStack=(LPTCARSTACK)malloc(sizeof(TCARSTACK));lpCarStack->lpCarInformation=(LPTCARINFORMATION)malloc(nSize*sizeof(TCARINFORMATION));lpCarStack->nTop=-1;lpCarStack->nStackSize=nSize;}//车辆信息carinfo入栈lpCarStackvoidPush(LPTCARSTACK&lpCarStack,TCARINFORMATIONcarinfo){lpCarStack->nTop++;lpCarStack->lpCarInformation[lpCarStack->nTop]=carinfo;}//车辆信息从栈lpCarStack中弹出并存入carinfovoidPop(LPTCARSTACK&lpCarStack,TCARINFORMATION&carinfo){carinfo=lpCarStack->lpCarInformation[lpCarStack->nTop];lpCarStack->nTop--;}//若栈lpCarstack空,返回TRUE;否则,返回FALSEBOOLIsStackEmpty(LPTCARSTACKlpCarStack){returnlpCarStack->nTop==-1;}//若栈lpStackFull满,返回TRUE;否则,返回FALSEBOOLIsStackFull(LPTCARSTACKlpCarStack){returnlpCarStack->nTop==(lpCarStack->nStackSize-1);}//销毁栈lpCarStack,将指针lpCarStack置为NULLvoidDestroyStack(LPTCARSTACK&lpCarStack){free(lpCarStack->lpCarInformation);free(lpCarStack);lpCarStack=NULL;}typedefstructcarnode//链队结点信息{TCARINFORMATIONcarinfo;//车辆信息structcarnode*lpNext;//指向下一个元素的指针}TCARNODE,*LPTCARNODE;typedefstructcarqueue//链队{LPTCARNODElpHead;//头结点LPTCARNODElpRear;//指向当前队尾的指针intnEffectiveSize;//当前队中元素个数}TCARQUEUE,*LPTCARQUEUE;//初始化链队lpCarQueuevoidInitQueue(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入队lpCarQueuevoidEnQueue(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中出队并存入carinfovoidDeQueue(LPTCARQUEUE&lpCarQueue,TCARINFORMATION&carinfo){LPTCARNODElpTemp=lpCarQueue->lpHead->lpNext;carinfo=lpTemp->carinfo;lpCarQueue->lpHead->lpNext=lpTemp->lpNext;free(lpTemp);lpCarQueue->nEffectiveSize--;}//若链队lpCarQueue为空,返回TRUE;否则,返回FALSEBOOLIsQueueEmpty(LPTCARQUEUElpCarQueue){returnlpCarQueue->nEffectiveSize==0;}//销毁链队lpCarQueuevoidDestroyQueue(LPTCARQUEUE&lpCarQueue){LPTCARNODElpNextCarNode=NULL;for(LPTCARNODElpCarNode=lpCarQueue->lpHead;lpCarNode!=NULL;lpCarNode=lpNextCarNode){lpNextCarNode=lpCarNode->lpNext;free(lpCarNode);}free(lpCarQueue);lpCarQueue=NULL;}//将字符串时间格式转换为数字(分钟)格式,例如12:36将被转换为756(12*60+36)intConvertTimeFormat(char*lpTime){intnHour=0;intnMinute=0;sscanf(lpTime,"%d:%d",&nHour,&nMinute);returnnHour*60+nMinute;}//根据在停车场内的停留时间nContinuanceMinutes(分钟)计算费用doubleCalculateExpense(intnContinuanceMinutes){returnnContinuanceMinutes*(5.0/60);}intmain(void){intnParkCapability=0;//停车场容量putchar('\n');printf("请输入停车场容量:");scanf("%d",&nParkCapability);LPTCARSTACKlpCarStack=NULL;//停车场,用栈模拟InitStack(lpCarStack,nParkCapability);LPTCARQUEUElpCarQueue=NULL;//便道,用链队模拟InitQueue(lpCarQueue);charcCommandType=NULL;//命令类型charszUserInput[128]=;//用户输入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:51");puts("E");puts("O");putchar('\n');printf("请输入命令:");scanf("%s",szUserInput);puts("--------------------");charszCarInformation[128]=;sscanf(szUserInput,//将命令类型与车辆信息分开存放"%c,%s",&cCommandType,//用户输入的前半部分,即命令类型szCarInformation//用户输入的后半部分,即车辆信息);char*lpCommaLocation=NULL;//车辆信息字符串中的逗号位置for(lpCommaLocation=szCarInformation;*lpCommaLocation!='\0';lpCommaLocation++){if(*lpCommaLocation==','){break;}}*lpCommaLocation='\0';TCARINFORMATIONcarinfo=;//存储本次用户输入的车辆信息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+1);printf("车牌号:\t\t%s\n",carinfo.szRegistrationMark);printf("进入时间:\t%s\n",carinfo.szEntranceTime);puts("是否收费:\t是");}else{EnQueue(lpCarQueue,carinfo);printf("停车场已满,已停放在便道的第%d个车位\n",lpCarQueue->nEffectiveSize);printf("车牌号:\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=;BOOLbIsCarFound=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)){TCARINFORMATIONtempcarinfo=;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,nContinuanceMinutes);doublerExpense=CalculateExpense(nContinuanceMinutes);printf("应交纳的费用:\t%.1lf元\n",rExpense);if(FALSE==IsQueueEmpty(lpCarQueue)){TCARINFORMATIONtempcarinfo=;DeQueue(lpCarQueue,tempcarinfo);strcpy(tempcarinfo.szEntranceTime,carinfoOut.szDepartureTime);Push(lpCarStack,tempcarinfo);puts("--------------------");printf("停放在便道的第1个车位,车牌号为%s的车已进入停车场\n",tempcarinfo.szRegistrationMark);}}elseif(cCommandType=='E'){puts("********************");puts("陈赛-Build20090507\n");puts("********************");break;}elseif(cCommandType=='O'){ClearScreen();putchar('\n');puts("[停车场使用情况]\n");puts("[车位]\t[车牌号]\t[到达时间]\t[进入(开始计费)时间]\n");for(inti=0;inTop;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');}else{puts("输入信息有误.第一个字符只能为'A'或'D'或'E'或'O'(区分大小写).");}Pause("--------------------\n按任意键输入下一条信息.\n");}while(TRUE);DestroyStack(lpCarStack);DestroyQueue(lpCarQueue);Pause("\n按任意键退出程序\n");return0;}另外,站长团上有产品团购,便宜有保证
- 3楼网友:慢性怪人
- 2021-11-29 02:08
代做,需要联系。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯