简单泊车管理系统-c++实现
来源:互联网 发布:mac下载office办公软件 编辑:程序博客网 时间:2024/05/01 20:31
泊车系统
该系统要求对一个文件中所存储的汽车数据进行各种常规操作,如:查找、计费、显示等功能。目的是熟练掌握文件、数组的各种操作,以及一些算法思想的应用,实现一个简单的泊车管理系统。
#include <iostream>#include <string>#include <algorithm>#include <cstdlib>#include <ctime>#include <stdlib.h>using namespace std;struct Location //车位信息{public:int num = -1; //车位编号 char ID[10] ="0"; //车牌号码char carClass = -1; //车辆类型int startTime = -1; //入库时间int carState = -1; //泊车状态(空或已泊车)int carInfo = -1; //车位状态(正常使用,维修)};class Manager //管理人员{public://Manager();Location carport[100]; //共100个车位int carportLength = sizeof(carport) / sizeof(Location); //车位数量int price = 50; //每小时费用//初始化停车位信息void Init(){for (int i = 0;i < carportLength;i++){carport[i].num = i + 1; //编号//carport[i].IDcarport[i].startTime = -1; //时间默认-1carport[i].carState = 0; //0表示空,1表示泊车carport[i].carInfo = 0; //0表示正常使用,1表示正在维修}}//停车登记 停车位为第一个为空的位置,自动查询给出车牌号,车位满给出提示void Add(){cout << "停车登记" << endl;string idAdd; //停车牌号char carClass; //车辆类型int startTime = -1;int num = -1;//遍历车位 找到第一个空车位for (int i = 0;i < carportLength;i++){if (carport[i].carState == 0 && carport[i].carInfo == 0) //判断是否是空车位并且正常使用状态{num = i;break;}else{num = -1;}}if (num == -1) //车位已满{cout << "车位已满" << endl;system("pause");system("cls");}else{cout << "请输入车牌号(9位),输入-1取消登记" << endl;cin >> idAdd;if (idAdd == "-1"){return;}strcpy(carport[num].ID, idAdd.c_str()); //string 导入char数组cout << "请输入车辆类型(a,b,c)" << endl;cin >> carClass;carport[num].carClass = carClass;//车辆入库时间carport[num].startTime = time(NULL);//标记为已经停车carport[num].carState = 1; cout << "车辆停泊在" << num + 1 << "号车位" << endl;system("pause");system("cls");}}//取车登记(按车牌/车位查找) 根据车辆停泊时间自动计算费用并显示void Reduce(){cout << "取车登记" << endl;int funReduce = -1; string idReduce; //取车车牌int numReduce; //取车车位int timeReduce; //取车时间char tempReduce[10]; //临时数组cout << "请输入: [1]:按车牌登记 [2]:按车位号登记 [3]:返回主菜单" << endl;cin >> funReduce;switch (funReduce){case 1:cout << "请输入车牌号码:" << endl;cin >> idReduce;strcpy(tempReduce, idReduce.c_str());for (int i = 0;i < carportLength;i++){if (carport[i].ID == tempReduce) //找到指定车牌{timeReduce = time(NULL);//共计时间int lastTime = timeReduce - carport[i].startTime; //计算停车时间//计算费用int totalPrice = (lastTime / 60) / 60 * price;cout << "停车时间: " << lastTime << endl;cout << "停车费用: " << totalPrice << "\n" << "当前费率: " << price << endl;memset(carport[i].ID, 0, sizeof(carport[i].ID)); //数组置零carport[i].carState = 0;system("pause");system("cls");}}break;case 2:cout << "请输入车位号码:" << endl;cin >> numReduce;for (int i = 0;i < carportLength;i++){if (carport[i].num == numReduce && carport[i].carState == 1) //找到指定车位且车位有车{timeReduce = time(NULL);//共计时间int lastTime = timeReduce - carport[i].startTime; //计算停车时间//计算费用int totalPrice = (lastTime / 60) / 60 * price;cout << "停车时间: " << lastTime << endl;cout << "停车费用: " << totalPrice << "\n" << "当前费率: " << price << endl;memset(carport[i].ID, 0, sizeof(carport[i].ID)); //数组置零carport[i].carState = 0; system("pause");system("cls");}}break;case 3:break;default:break;}} //查找 根据车牌、车位号void Search(){int fun = -1;int num = -1;string id;cout << "查询功能" << endl;cout << "请输入:[1]:按车牌查找,[2]:按车位号查找,[3]:返回主菜单" << endl;cin >> fun;switch (fun){case 1:cout << "请输入车牌(9位数字)" << endl;cin >> id;char temp[11];strcpy(temp, id.c_str());for (int i = 0;i < carportLength;i++){if (carport[i].ID == temp) //找到车牌{cout << "已找到" << "\n" << "车位号: " << carport[i].num << "\t车类型: " << carport[i].carClass << endl;system("pause");system("cls");break;}else{cout << "没有找到指定车牌" << endl;//Search();}}break;case 2:cout << "请输入车位(1-100)" << endl;cin >> num;for (int i = 0;i < carportLength;i++){if (carport[i].num == num) //找到车位{cout << "已找到" << "\n" << "车位状态: " << carport[i].carState << "\t车位信息: " << carport[i].carInfo << endl;if (carport[i].carState == 1) //车位有车{cout << "车牌号: " << carport[i].ID << "\t车类型: " << carport[i].carClass << endl;system("pause");system("cls");break;}}else{cout << "请输入正确车位" << endl;//Search();}}break;case 3:break;default:cout << "Error Input" << endl;Search();break;}} //修改车位信息(状态:正常使用,维修)void ChangeInfo(){int num;int info = -1; //要修改的状态cout << "请输入指定车位号(1-100)" << endl;cin >> num;if (num>=1 && num<=100){for (int i = 0;i < carportLength;i++){if (carport[i].num == num){cout << num << "号车位当前状态: " << carport[i].carInfo << endl;cout << "请输入要修改的状态: [0]:正常使用,[1]:正在维修" << endl;cin >> info;carport[i].carInfo = info; //修改状态cout << "修改成功\t" <<num<<"号车位状态为"<<info<< endl;system("pause");system("cls");}}}else{cout << "输入错误" << endl;ChangeInfo();}}//改变每小时收费比率void ChangePrice(){int targetPrice = -1;cout << "当前费率: " << price << "\n"<<"请输入要修改的费率: "<<endl;cin >> targetPrice;if (targetPrice != -1){price = targetPrice;cout << "修改成功!\n" << "当前费率: " << price << endl;system("pause");system("cls");}}void ShowState(){for (int i = 0;i < carportLength;i++){cout << "车位号码:"<<carport[i].num<<"\t车牌:"<< carport[i].ID << "\t入库时间:" << carport[i].startTime << "\t泊车状态:" << carport[i].carState << "\t车位信息:" << carport[i].carInfo <<endl;}system("pause");system("cls");} };class UserSystem{public:string id;string password;string idAdmin;string passwordAdmin;//登录void login(){id = "abc";password = "123";string idInput;string passwordInput;int count = 0; //输入次数cout << "**********欢迎使用泊车管理系统**********" << endl;cout << "\t\t请登录系统\t\t" << endl;while (count == 0){cout << "请输入用户名:" << endl;cin >> idInput;cout << "请输入密码:" << endl;cin >> passwordInput;if (idInput == id && passwordInput == password) //用户名密码输入正确{cout << "\t\t登录成功\t\t" << endl;system("pause");system("cls"); //清屏int funUse;Manager manager;UserSystem user;cout << "**********欢迎进入泊车管理系统**********" << endl;manager.Init();while (1){cout << "菜单\t\t" << endl;cout << "1.停车登记\t2.取车登记\t3.查询车辆信息\t4.修改车位状态\t5.改变费率\t6.显示所有车位信息" << endl;cin >> funUse;switch (funUse){case 1: //停车登记manager.Add();break;case 2: //取车登记manager.Reduce();break;case 3: //查询车辆信息manager.Search();break;case 4: //修改车位状态manager.ChangeInfo();break;case 5: //改变费率manager.ChangePrice();break;case 6: //显示所有车位信息manager.ShowState();break;default:cout << "输入错误,请重新输入" << endl;system("pause");break;}}}else{system("cls");cout << "账号名或密码错误,请重新输入" << endl;}}}};int main(){ Manager manager;UserSystem user;//manager.Init();user.login();return 0;}
阅读全文
0 0
- 简单泊车管理系统-c++实现
- C[泊车管理系统]
- C语言实现简单学籍管理系统
- 自动泊车辅助系统
- 泊车
- c语言实现的简单学生管理系统
- C语言-实现简单的车辆管理系统-课程设计
- C语言简单用链表实现学生管理系统
- C语言实现简单的停车场管理系统
- 简单实现医疗管理系统
- c简单的图书管理系统
- 又一个简单的C语言管理系统
- [C++]简单版学生管理系统(结构)
- 【C语言】简单图书管理系统
- 简单电话簿管理系统(C语言)
- 用链表实现一个简单的学生操作管理系统C语言版
- java实现的简单文件管理系统
- smarty实现简单的新闻管理系统
- CentOS安装Chrome及Please start Google Chrome as a normal user. To run as root, you must specify an ...
- AUC理解与实现
- Top 10 Machine Learning Algorithms for Beginners
- 面试技巧
- 7.JSP技术
- 简单泊车管理系统-c++实现
- Google Developers:发布TensorFlow Lite
- 动态创建CMFCToolbar并添加按钮
- C和指针之数组和函数部分总结
- 多元时间序列分析基础一
- POJ 1182 食物链 (并查集解法)(详细注释)
- C
- Ubuntu16.04安装Redis
- 【算法】Kruskal算法(解决最小生成树问题) 含代码实现