用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
程序人生
›
用C++实现停车场管理系统
用C++实现停车场管理系统
农妇山泉一亩田
论坛元老
|
2024-7-20 23:09:12
|
显示全部楼层
|
阅读模式
楼主
主题
1617
|
帖子
1617
|
积分
4851
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
该系统具有以下功能:
- 停车:输入车牌号和进入时间,自动分配停车位编号,如果停车场已满则提示停车场已满。
- 离开停车场结算停车费用:输入停车位编号和离开时间,自动盘算停车费用,如果已结算则提示已结算。
- 显示停车记录:按照停车位编号顺序显示停车记录,包括车牌号、进入时间、离开时间和停车费用。
- 退出系统:结束程序。
该程序通过利用 vector 存储停车记录,动态分配停车位编号,并通过 switch-case 语句实现菜单选择功能。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
const int MAX_CAPACITY = 100;
// 停车记录结构体
struct ParkingRecord {
int id; // 停车位编号
string licensePlate; // 车牌号
int timeIn; // 进入时间
int timeOut; // 离开时间
float cost; // 停车费用
};
// 停车场类
class ParkingLot {
public:
ParkingLot();
// 显示菜单
void showMenu();
// 停车
void parkCar();
// 离开停车场结算停车费用
void checkOutCar();
// 显示停车记录
void showParkingRecords();
private:
vector<ParkingRecord> parkingLot; // 停车场
int currentCapacity; // 当前停车场容量
};
// 构造函数
ParkingLot::ParkingLot() {
currentCapacity = 0;
}
// 显示菜单
void ParkingLot::showMenu() {
cout << "Welcome to the Parking Lot Management System!" << endl;
cout << "1. Park a car" << endl;
cout << "2. Check out a car" << endl;
cout << "3. Show parking records" << endl;
cout << "4. Exit" << endl;
cout << "Please enter your choice: ";
}
// 停车
void ParkingLot::parkCar() {
if (currentCapacity >= MAX_CAPACITY) {
cout << "Sorry, the parking lot is full." << endl;
return;
}
ParkingRecord newRecord;
cout << "Please enter the license plate number (up to 9 characters): ";
cin >> newRecord.licensePlate;
cout << "Please enter the time in (in minutes since 00:00): ";
cin >> newRecord.timeIn;
newRecord.id = currentCapacity + 1;
parkingLot.push_back(newRecord);
currentCapacity++;
cout << "The car is parked at spot " << newRecord.id << "." << endl;
}
// 离开停车场结算停车费用
void ParkingLot::checkOutCar() {
int id;
cout << "Please enter the parking spot number: ";
cin >> id;
if (id < 1 || id > currentCapacity) {
cout << "Invalid parking spot number." << endl;
return;
}
ParkingRecord *record = &parkingLot[id-1];
if (record->timeOut > 0) {
cout << "The car has already been checked out." << endl;
return;
}
cout << "Please enter the time out (in minutes since 00:00): ";
cin >> record->timeOut;
float hours = (record->timeOut - record->timeIn) / 60.0;
record->cost = hours * 1.5;
cout << "The cost for parking is $" << record->cost << "." << endl;
}
// 显示停车记录
void ParkingLot::showParkingRecords() {
if (currentCapacity == 0) {
cout << "There is no car parked in the parking lot." << endl;
return;
}
cout << "Parking records:" << endl;
cout << "ID\tLicense Plate\tTime In\tTime Out\tCost" << endl;
for (int i = 0; i < currentCapacity; i++) {
ParkingRecord record = parkingLot[i];
cout << record.id << "\t" << record.licensePlate << "\t\t"
<< record.timeIn << "\t" << record.timeOut << "\t"
<< record.cost << endl;
}
// 主函数
int main() {
ParkingLot parkingLot;
int choice;
do {
parkingLot.showMenu();
cin >> choice;
switch (choice) {
case 1:
parkingLot.parkCar();
break;
case 2:
parkingLot.checkOutCar();
break;
case 3:
parkingLot.showParkingRecords();
break;
case 4:
cout << "Thank you for using the Parking Lot Management System." << endl;
break;
default:
cout << "Invalid choice." << endl;
break;
}
cout << endl;
} while (choice != 4);
return 0;
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
农妇山泉一亩田
论坛元老
这个人很懒什么都没写!
楼主热帖
厉害了,腾讯云云巢荣获信通院“云原生 ...
2022 春节抖音视频红包系统设计与实现 ...
数据库概述
【Redis高手修炼之路】②Redis的五大数 ...
原型设计工具比较及实践--滴爱音乐 ...
ABP Framework 5.3.0 版本新增功能和变 ...
OpenHarmony和HarmonyOS有什么区别?这 ...
多线程(一)-两种创建线程的方式 ...
LoRa模块无线收发通信技术详解 ...
体系集成商已死,有事烧纸:浙江着名集 ...
标签云
集成商
AI
运维
CIO
存储
服务器
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表