用C加加写一个火车售票系统
时间: 2023-08-24 19:07:16 浏览: 99
火车售票系统是一个比较复杂的系统,需要考虑到票务管理、座位管理、订单管理等多个方面。在这里,我来给你提供一个简单的火车售票系统的代码框架,供你参考。
#include <iostream>
#include <cstring>
using namespace std;
const int MAX_SEATS = 100; // 最大座位数
struct Train {
int id; // 火车编号
int seats[MAX_SEATS]; // 每个座位的状态,0表示空,1表示占用
int price; // 票价
int num_sold; // 已售票数
};
Train trains[10]; // 10辆火车
void init() {
// 初始化10辆火车
for (int i = 0; i < 10; i++) {
trains[i].id = i + 1;
memset(trains[i].seats, 0, sizeof(trains[i].seats));
trains[i].price = 50;
trains[i].num_sold = 0;
}
}
void display_menu() {
cout << "================================" << endl;
cout << "1. 查询余票" << endl;
cout << "2. 购买车票" << endl;
cout << "3. 退票" << endl;
cout << "4. 查询订单" << endl;
cout << "5. 退出系统" << endl;
cout << "================================" << endl;
}
void query_tickets() {
int id;
cout << "请输入要查询的火车编号:";
cin >> id;
if (id < 1 || id > 10) {
cout << "输入的火车编号不合法!" << endl;
return;
}
Train& train = trains[id - 1];
int num_available = MAX_SEATS - train.num_sold;
cout << "火车编号:" << train.id << endl;
cout << "票价:" << train.price << endl;
cout << "余票数量:" << num_available << endl;
}
void buy_ticket() {
int id, num;
cout << "请输入要购买的火车编号:";
cin >> id;
if (id < 1 || id > 10) {
cout << "输入的火车编号不合法!" << endl;
return;
}
Train& train = trains[id - 1];
int num_available = MAX_SEATS - train.num_sold;
if (num_available == 0) {
cout << "该火车已售罄!" << endl;
return;
}
cout << "请输入要购买的票数:";
cin >> num;
if (num < 1 || num > num_available) {
cout << "输入的票数不合法!" << endl;
return;
}
int seat_num = 0;
for (int i = 0; i < MAX_SEATS; i++) {
if (train.seats[i] == 0) {
train.seats[i] = 1;
seat_num = i + 1;
num--;
if (num == 0) {
break;
}
}
}
train.num_sold += seat_num;
cout << "购票成功!座位号为:" << seat_num << ",总价为:" << train.price * num << endl;
}
void refund_ticket() {
int id, num;
cout << "请输入要退票的火车编号:";
cin >> id;
if (id < 1 || id > 10) {
cout << "输入的火车编号不合法!" << endl;
return;
}
Train& train = trains[id - 1];
cout << "请输入要退票的座位号:";
cin >> num;
if (num < 1 || num > MAX_SEATS || train.seats[num - 1] == 0) {
cout << "输入的座位号不合法!" << endl;
return;
}
train.seats[num - 1] = 0;
train.num_sold--;
cout << "退票成功!" << endl;
}
void query_order() {
// TODO: 实现查询订单功能
}
int main() {
init();
while (true) {
display_menu();
int choice;
cout << "请选择操作:";
cin >> choice;
switch (choice) {
case 1:
query_tickets();
break;
case 2:
buy_ticket();
break;
case 3:
refund_ticket();
break;
case 4:
query_order();
break;
case 5:
cout << "欢迎下次光临!" << endl;
return 0;
default:
cout << "输入的选项不合法!" << endl;
}
}
return 0;
}
这段代码实现了基本的火车售票系统功能,包括查询余票、购买车票、退票和查询订单。但是这个系统还有很多需要完善的地方,比如增加管理员登录、实现对座位的管理等。
相关推荐















