课程设计 停车场管理系统(附源码)
【摘要】 大一时的拙作
c++数据结构课设
这个代码目前有一些问题,因为暂时不知道如何使用栈来实现出库任意车辆,所以暂定先有两个停车位,之后应该会有优化。
菜单界面
入库界面
在入库后它会自动弹回主菜单
入库界面(车库已满)
查询库中车辆
查询等待车辆
出库界面
#include<iostream>
#include<vector>
#include<string>
#include<queue>
#include<stack>
#include<Windows.h>
#include<ctime>
#include<cstdlib>
#include<cstdio>
using namespace std;
struct Data
{
int num;//车牌号码
int cheku;//停靠车库
int time1;
};
void ruku(stack<Data>& jinchu, Data& b, int i)//入库
{
cout << "\t\t\t请输入车辆的车牌号码:";
cin >> b.num;
cout << "\t\t\t请输入车辆的到达时间:";
cin >> b.time1;
b.cheku = i;
jinchu.push(b);
}
void rubiandao(queue<Data>& biandao, Data& b, int i)//入便道
{
cout << "\t\t\t请输入车辆的车牌号码:";
cin >> b.num;
cout << "\t\t\t请输入车辆的到达时间:";
cin >> b.time1;
b.cheku = i;
biandao.push(b);
}
void chuku(stack<Data>& jinchu)
{
jinchu.pop();
}
int main()
{
char loc;
int i = 1;
int j = 1;
stack<Data> jinchu1;
stack<Data> jinchu2;
queue<Data> biandao;
while (1)
{
//界面
cout << endl << endl << endl << endl << endl;
cout << "\t\t\t************************************************************************" << endl;
cout << "\t\t\t**************************欢迎使用停车场管理器**************************" << endl;
cout << "\t\t\t************************************************************************" << endl;
cout << "\t\t\t***************** A.入库 *****************" << endl;
cout << "\t\t\t***************** B.出库 *****************" << endl;
cout << "\t\t\t***************** C.查询车辆信息 *****************" << endl;
cout << "\t\t\t***************** D.查看等待信息 *****************" << endl;
cout << "\t\t\t***************** E.退出程序 *****************" << endl;
cout << "\t\t\t************************************************************************" << endl;
cout << "\t\t\t*************************请输入字母执行相关功能*************************" << endl;
cout << "\t\t\t************************************************************************" << endl;
cout << "\t\t\t请选择功能:";
cin >> loc;//输入选择
if (loc == 'a' || loc == 'A')
{
if (i == 2 || i == 1)
{
Data* e = new Data;
if (i == 1)
{
ruku(jinchu1, *e, i);
i = 2;
}
else if (i == 2)
{
ruku(jinchu2, *e, i);
i = 3;
}
cout << "\t\t\t*************************请驶入" << i - 1 << "号车库\n\t\t\t";
Sleep(1150);
}
else
{
cout << "\t\t\t很抱歉,车库已满,请入便道耐心等待" << endl;
cout << "\t\t\t************************************************************************" << endl;
Data* e = new Data;
rubiandao(biandao, *e, j);
cout << "\t\t\t************************当前便道等待车辆:" << j++ << "辆***************************" << endl;
Sleep(1300);
}
}
else if (loc == 'B' || loc == 'b')
{
int k;
int num1;
cout << "\t\t\t请输入出库车辆的车牌号码:";
cin >> num1;
if ((!jinchu1.empty() && num1 == jinchu1.top().num) || (!jinchu2.empty() && num1 == jinchu2.top().num))
{
if (!jinchu1.empty() && num1 == jinchu1.top().num)//i=2
{
k = jinchu1.top().cheku;
chuku(jinchu1);
i = 1;
}
else if (!jinchu2.empty() && num1 == jinchu2.top().num)//i=3
{
k = jinchu2.top().cheku;
chuku(jinchu2);
i = 2;
}
cout << "\t\t\t" << k << "车库内的车已成功出库!" << endl;
Sleep(1500);
if (!biandao.empty())
{
Data e = biandao.front();
if (i == 2) jinchu1.push(e);
else if (i == 3) jinchu2.push(e);
cout << "\t\t\t************************************************************************" << endl;
cout << "\t\t\t" << biandao.front().cheku << "号便道中等待车驶入车库" << endl;
biandao.pop();
if (!biandao.empty())biandao.front().cheku--;
Sleep(1500);
}
}
else
{
cout << "\t\t\t车库中不存在此车,请重新输入字母选择你所需要的功能!\n\t\t\t";
Sleep(1700);
}
}
else if (loc == 'c' || loc == 'C')
{
if (jinchu2.empty() && jinchu1.empty())
{
cout << "\t\t\t****************************当前车库为空********************************" << endl;
Sleep(1000);
}
if (!jinchu1.empty())
{
cout << endl;
cout << "\t\t\t------------------------------ 一号车库 --------------------------------" << endl;
cout << "\t\t\t所停车辆车牌号为:" << jinchu1.top().num << endl;
cout << "\t\t\t停车时间为:" << jinchu1.top().time1 << endl;
cout << "\t\t\t------------------------------------------------------------------------" << endl;
Sleep(1200);
}
if (!jinchu2.empty())
{
cout << endl;
cout << "\t\t\t------------------------------ 二号车库 --------------------------------" << endl;
cout << "\t\t\t所停车辆车牌号为:" << jinchu2.top().num << endl;
cout << "\t\t\t停车时间为:" << jinchu2.top().time1 << endl;
cout << "\t\t\t------------------------------------------------------------------------" << endl;
Sleep(1200);
}
}
else if (loc == 'd' || loc == 'D')
{
if (!biandao.empty())
{
queue<Data> a = biandao;
for (int k = 1; k <= j && !a.empty(); k++)
{
cout << "\t\t\t------------------------- " << k << "号便道等待车辆 -------------------------" << endl;
cout << "\t\t\t等待车辆的车牌号为:" << a.front().num << endl;
cout << "\t\t\t等待车辆进入便道时间为:" << a.front().time1 << endl;
a.pop();
Sleep(1200);
}
}
else
{
cout << "\t\t\t目前无等待车辆" << endl;
Sleep(1000);
}
}
else if (loc == 'e' || loc == 'E')
{
break;
}
else
{
cout << "\t\t\t不存在此项功能,请重新输入字母!" << endl;
Sleep(2500);
}
system("cls");
}
cout << "\t\t\t***********************感谢您的使用,请下次再见!***********************" << endl;
return 0;
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)