版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、附录 源代码1. 头文件Car.h#ifndef CAR#define CAR#include <iostream>using namespace std;typedef struct Nodevoid *data;struct Node *link;nodeS;typedef struct StanodeS *top;int count;Stack;typedef struct NodeQvoid *dataptr;struct NodeQ *next;nodeQ;typedef struct Queuesint count;nodeQ *front;nodeQ *rear;Qu
2、e;Stack *Createstack();void* pop(Stack *stack);void push(Stack *stack,void *data);void DestroyStack(Stack *stack);Que *CreateQueue();void Enqueue(Que *queue);void *Dequeue(Que *queue);void Destroyqueue(Que *queue);#endif2. 实现文件Car.cpp#include "Car.h"Stack *Createstack()Stack *stack;stack =
3、 new Stack;if(stack = NULL)return NULL;stack->count = 0;stack->top = NULL;return stack;void push(Stack *stack,void *data)nodeS *node;node = new nodeS;if(node = NULL | stack = NULL)return ;node->data = data;node->link = stack->top;stack->top = node;stack->count+;void* pop(Stack *
4、stack)void *data;nodeS *node;node = new nodeS;if(stack->count = 0)return NULL;data = stack->top->data;node = stack->top;stack->top = node->link;stack->count-;return data;void DestroyStack(Stack *stack)nodeS *node;if(stack->count = 0)return ;while(stack->count = 0)delete st
5、ack->top->data;node = stack->top;stack->top = node->link;stack->count-;delete stack;Que *CreateQueue()Que *queue;queue = new Que;if(queue = NULL)return NULL;queue->count = 0;queue->front = NULL;queue->rear = NULL;return queue;void Enqueue(Que *queue)nodeQ *node;node = new
6、nodeQ;if(node = NULL | queue = NULL)return ;node->next = NULL;if(queue->count = 0)queue->front = node;elsequeue->rear->next = node;queue->rear = node;queue->count+;void *Dequeue(Que *queue)void *dataptr;if(queue->count = 0)return NULL;dataptr = queue->front->dataptr;if(
7、queue->count = 1)queue->front = queue->rear = NULL;elsequeue->front = queue->front->next;queue->count-;return dataptr;void Destroyqueue(Que *queue)nodeQ *node;if(queue->count = 0)return ;while(queue->count = 0)delete queue->front->dataptr;node = queue->front;queue
8、->front = node->next;queue->count-;delete queue;3.主文件ThePort.cpp#include "Car.h"#include <CTime>#include <fstream>#include <string>typedef struct InForstring num;int hour;int min;int sec;int year;int mon;int day;Infor;int face();int Face();bool Book(Stack *stack,
9、Que *queue,int max);void bookface();time_t compare(Infor *infor);void Display(Infor *infor);time_t arrival(Stack *stack,Infor *infor,Que *queue,int max);void leave(Stack *stack,Que *queue,time_t inform);void Getmoney(Infor *infor,int Bianhao,time_t inform);void checknum(string num);void InforBook(St
10、ack *stack,Que *queue,int max);int Inforface();void Inforstack();void Inforleave();void Inforqueue(Que *queue);int main()ofstream fout("estdout.txt",ios:trunc);ofstream fout2("leaveout.txt",ios:trunc);bookface();fout.close();fout2.close();return 0;void bookface()Stack *stack;Que
11、*queue;stack = Createstack();queue = CreateQueue();int max;bool flag = false;while(max = face()if(max > 20 | max <= 0)cout<<"ttt输入错误,请重新输入!"<<endl;system("pause");system("cls");elseflag = Book(stack,queue,max);if(flag = true)break;system("pause&qu
12、ot;);int face()cout<<endl<<endl;cout<<"请输入停车场的最大容量(1-20):"int max;cin>>max;return max;int Face()system("cls");cout<<endl;cout<<"ttt*"<<endl;cout<<"ttt* *"<<endl;cout<<"ttt* 1、停车登记 2、离开结算 *"&
13、lt;<endl;cout<<"ttt* *"<<endl;cout<<"ttt* 3、登记记录 4、退出系统 *"<<endl;cout<<"ttt* *"<<endl;cout<<"ttt*"<<endl;cout<<"tt请输入你的业务:"int choose;cin>>choose;return choose;bool Book(Stack *stack,Que
14、*queue,int max)int choose;bool flag = false;time_t inform;while(choose = Face()Infor *infor;infor = new Infor;if(choose > 4 | choose <= 0)cout<<"ttt输入错误,请重新输入!"<<endl;system("pause");system("cls");elseswitch(choose)case 1:inform = arrival(stack,infor,q
15、ueue,max);max-;break;case 2:leave(stack,queue,inform);break;case 3:InforBook(stack,queue,max);break;case 4:cout<<endl;cout<<"ttt使用,欢迎下次再来"<<endl;flag = true;break;if(flag = true)break;system("pause");return flag;time_t arrival(Stack *stack,Infor *infor,Que *queu
16、e,int max)time_t inform;if(max > 0)inform = compare(infor);push(stack,infor);Display(infor);return inform;elsecout<<endl<<"ttt对不起停车场已满,请停靠在便道上"<<endl;Enqueue(queue);time_t compare(Infor *infor)time_t now;struct tm *inform;time(&now);inform = localtime(&now);inf
17、or->hour = inform->tm_hour;infor->min = inform->tm_min;infor->sec = inform->tm_sec;infor->year = inform->tm_year;infor->mon = inform->tm_mon;infor->day = inform->tm_mday;cout<<endl;cout<<"请输入你的车牌号<B23548>:"cin>>infor->num;check
18、num(infor->num);return now;void Display(Infor *infor)ofstream fout("estdout.txt",ios:app);cout<<endl;cout<<"ttt车牌号 :"<<infor->num<<endl;cout<<"ttt当前年月:"<<infor->year+1900<<"/"<<infor->mon+1<<&qu
19、ot;/"<<infor->day<<endl;cout<<"ttt当前时刻: "<<infor->hour<<":"<<infor->min<<":"<<infor->sec<<endl;fout<<infor->num<<" "<<infor->year+1900<<" "<<in
20、for->mon+1<<" "<<infor->day<<" "<<infor->hour<<" "<<infor->min<<" "<<infor->sec<<endl;fout.close();void leave(Stack *stack,Que *queue,time_t inform)Stack *stacktemp;stacktemp = Createstack();
21、Infor *temp,*a;temp = new Infor;a = new Infor;string num;int m;bool flag;m = stack->count;if(m <= 0)cout<<endl;cout<<"ttt停车场没有车!"<<endl;return ;elsecout<<endl;cout<<"请输入将要离开的车的车牌号:"cin>>num;while(1)checknum(num);for(int i=0;i<m;i+)temp
22、 = (Infor *)pop(stack);push(stacktemp,temp);for(int k=0;k<6;k+)if(temp->numk != numk)flag = false;break;elseflag = true;if(flag = true)if(m = 1)Getmoney(temp,m,inform);elsea = (Infor *)pop(stacktemp);Getmoney(a,i,inform);for(int j=0;j<i;j+)a = (Infor *)pop(stacktemp);push(stack,a);if(queue-
23、>count > 0)a = (Infor *)Dequeue(queue);compare(a);push(stack,a);if(flag = false)cout<<endl;cout<<"没有此车的车牌号或车牌号错误,请重新输入:"cin>>num;for(int n=0;n<m;n+)temp = (Infor *)pop(stacktemp);push(stack,temp);else break;return ;void checknum(string num)while(1)bool flag = tru
24、e;if(num.length() != 6 | num0 > 'Z' | num0 < 'A')flag = false;for(int i=1;i<num.length();i+)if(numi > '9' | numi < '0')flag = false;break;if(flag = false)cout<<endl;cout<<"你输入的车牌类型,请重新输入你的车牌号<B23548>:"cin>>num;continue;
25、elsebreak;void Getmoney(Infor *infor,int Bianhao,time_t inform)time_t now;struct tm *inform2;time(&now);inform2 = localtime(&now);double pay;ofstream fout("leaveout.txt",ios:app);pay = (difftime(now,inform)*1)/10;cout<<endl;cout<<"tt编号 :"<<Bianhao<<
26、;endl;cout<<"tt车牌号 :"<<infor->num<<endl;cout<<"tt起始年月 :"<<infor->year+1900<<"/"<<infor->mon+1<<"/"<<infor->day<<endl;cout<<"tt起始时刻 :"<<infor->hour<<":&q
27、uot;<<infor->min<<":"<<infor->sec<<endl;cout<<"tt当前年月 :"<<inform2->tm_year+1900<<"/"<<inform2->tm_mon+1<<"/"<<inform2->tm_mday<<endl;cout<<"tt当前时刻 :"<<inform
28、2->tm_hour<<":"<<inform2->tm_min<<":"<<inform2->tm_sec<<endl;cout<<"tt你的需要缴纳的费用:"<<pay<<"元"<<endl;fout<<Bianhao<<" "<<infor->num<<" "<<inform2-&
29、gt;tm_year+1900<<" "<<inform2->tm_mon+1<<" "<<inform2->tm_mday<<" "<<inform2->tm_hour<<" "<<inform2->tm_min<<" "<<inform2->tm_sec<<" "<<pay<<endl;f
30、out.close();void InforBook(Stack *stack,Que *queue,int max)int choose;while(choose = Inforface()if(choose > 4 | choose <= 0)cout<<"ttt输入错误,请重新输入!"<<endl;system("pause");system("cls");elseswitch(choose)case 1:Inforstack();break;case 2: Inforleave();brea
31、k;case 3:Inforqueue(queue);break;case 4:Book(stack,queue,max);break;int Inforface()system("cls");cout<<endl;cout<<"ttt*"<<endl;cout<<"ttt* *"<<endl;cout<<"ttt* 1、今天登记情况 2、离开车辆记录 *"<<endl;cout<<"ttt* *"&
32、lt;<endl;cout<<"ttt* 3、便道信息查询 4、返回主页面 *"<<endl;cout<<"ttt* *"<<endl;cout<<"ttt*"<<endl;cout<<"tt请输入你的业务:"int choose;cin>>choose;return choose;void Inforstack()ifstream fin("estdout.txt");if(fin.eof()
33、 = NULL)cout<<endl;cout<<"ttt当前没有停车记录!"<<endl;system("pause");return ;while(fin.eof() != NULL)Infor *infor;infor = new Infor;fin>>infor->num>>infor->year>>infor->mon>>infor->day>>infor->hour>>infor->min>&g
34、t;infor->sec;cout<<endl;cout<<"ttt车牌号 :"<<infor->num<<endl;cout<<"ttt当前年月:"<<infor->year+1900<<"/"<<infor->mon+1<<"/"<<infor->day<<endl;cout<<"ttt当前时刻: "<<infor->hour<<":"<<infor->min<<":"<<infor->sec<<endl;system("pause");fin.close();void Inforleave() ifstream fin("leaveout.txt");if(fin.eof() = NULL)cout<<endl;cout<<"ttt当前没有离开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年公共基础知识考点题库(附答案)
- 2025年公务员考试公基高分核心试题含参考答案
- 2026年郑州电力职业技术学院单招综合素质笔试模拟试题带答案解析
- 长武县(2026年)招聘警务辅助人员考试真题及答案
- 2026年工厂职工考试题及答案
- 2026年国企社招公共基础知识能力测评训练题库(含答案)
- 2026年骨科关节个人试题带答案
- 2026年卫生防疫车行业分析报告及未来发展趋势报告
- 2026年周陂中心卫生院医德医风培训试题附答案
- 2026年智能泊车系统行业分析报告及未来发展趋势报告
- 长江产业投资集团校招面笔试题及答案
- 2026年济南职业学院公开招聘高层次人才(38人)笔试参考题库及答案解析
- 2025年黄河出版传媒集团有限公司公开招聘工作人员笔试参考题库附带答案详解
- 2025年高职眼视光技术(眼镜加工)试题及答案
- AI实时导航下机器人辅助肝脏精准手术策略
- 电力工程项目质量监督报告
- 二级建造师应试重点总结大全
- 2025年哈尔滨市中考数学试题(含答案)
- 《化工企业液化烃储罐区安全管理规范》宣贯(AQ 30592023)
- 阀门型号分类及应用手册
- 2025年R2移动式压力容器充装证考试题库(含答案)
评论
0/150
提交评论