C++实现车票管理系统
系统功能
该车票管理系统主要实现以下功能:
- 查询车票信息
- 购买车票
- 退票操作
- 统计车票销售额和余票数操作
设计思路
数据结构
使用结构体来存储车票信息,包括车次、起点站、终点站、发车时间、到达时间、车票价格和车票余量等信息。同时,为了方便对车票信息进行查找、添加和删除等操作,可以使用一个存储车票信息的数组来进行管理。
struct Ticket {
string train_num; // 车次
string from_station; // 起点站
string to_station; // 终点站
string departure_time; // 发车时间
string arrival_time; // 到达时间
int price; // 票价
int remain; // 剩余票数
};
Ticket tickets[1000]; // 存储车票信息的数组
int ticket_num = 0; // 当前车票数量
功能实现
查询车票信息
查询车票信息是常见的操作,可以根据起点站和终点站来查询符合条件的车票信息。具体实现过程中,可以使用一个循环遍历车票数组,逐一检查每张车票是否符合条件,如果符合则将其展示出来。
void query_ticket() {
string from, to; // 起点站和终点站
cout << "请输入起点站:";
cin >> from;
cout << "请输入终点站:";
cin >> to;
for (int i = 0; i < ticket_num; i++) {
Ticket ticket = tickets[i];
if (ticket.from_station == from && ticket.to_station == to && ticket.remain > 0) {
cout << "车次:" << ticket.train_num << endl
<< "起点站:" << ticket.from_station << endl
<< "终点站:" << ticket.to_station << endl
<< "发车时间:" << ticket.departure_time << endl
<< "到达时间:" << ticket.arrival_time << endl
<< "价格:" << ticket.price << endl
<< "余票数:" << ticket.remain << endl;
cout << endl;
}
}
}
购买车票
购买车票是该系统的核心功能,需要进行以下步骤:
- 输入购票信息(车次、起点站、终点站)
- 检查所选车票是否有余量,若没有则提示购票失败
- 若有余量,则将余票数减去1,同时计算并输出购票信息和售票总额
void buy_ticket() {
string train_num, from, to; // 车次、起点站和终点站
cout << "请输入需要购买的车次:";
cin >> train_num;
cout << "请输入起点站:";
cin >> from;
cout << "请输入终点站:";
cin >> to;
for (int i = 0; i < ticket_num; i++) {
Ticket &ticket = tickets[i];
if (ticket.train_num == train_num && ticket.from_station == from && ticket.to_station == to && ticket.remain > 0) {
ticket.remain--; // 余票数减1
int price = ticket.price;
int total = price * (1 + 0.1); // 计算售票总额
cout << "购票成功!" << endl
<< "车次:" << ticket.train_num << endl
<< "起点站:" << ticket.from_station << endl
<< "终点站:" << ticket.to_station << endl
<< "发车时间:" << ticket.departure_time << endl
<< "到达时间:" << ticket.arrival_time << endl
<< "价格:" << ticket.price << endl
<< "余票数:" << ticket.remain << endl
<< "售票总额:" << total << endl;
return;
}
}
cout << "购票失败,请重新选择车票!" << endl;
}
退票操作
退票操作需要输入订单号,然后根据订单号查询对应车次,将余票数加1,同时输出退票信息。
void return_ticket() {
string oid; // 订单号
cout << "请输入订单号:";
cin >> oid;
for (int i = 0; i < ticket_num; i++) {
Ticket &ticket = tickets[i];
if (ticket.train_num == oid) {
ticket.remain++;
cout << "退票成功!" << endl
<< "车次:" << ticket.train_num << endl
<< "起点站:" << ticket.from_station << endl
<< "终点站:" << ticket.to_station << endl
<< "发车时间:" << ticket.departure_time << endl
<< "到达时间:" << ticket.arrival_time << endl
<< "价格:" << ticket.price << endl
<< "余票数:" << ticket.remain << endl;
return;
}
}
cout << "订单不存在!" << endl;
}
统计车票销售额和余票数操作
统计车票销售额和余票数操作是为商家提供业务数据的重要功能,需要遍历车票数组,累加余票数和售票总额。
void summary() {
int remain = 0, sales = 0; // 余票数和售票总额
for (int i = 0; i < ticket_num; i++) {
Ticket &ticket = tickets[i];
remain += ticket.remain;
sales += ticket.price * (1 + 0.1) * (1 - ticket.remain / 100.0); // 考虑余票数的折扣
}
cout << "售出车票总额:" << sales << endl
<< "剩余车票数:" << remain << endl;
}
示例
以下是两个示例,分别展示了查询车票信息和购买车票的操作。
查询车票信息
请输入起点站:北京
请输入终点站:上海
车次:D32
起点站:北京
终点站:上海
发车时间:2021-08-01 09:00
到达时间:2021-08-01 18:00
价格:500
余票数:5
车次:D35
起点站:北京
终点站:上海
发车时间:2021-08-02 08:00
到达时间:2021-08-02 17:00
价格:480
余票数:12
购买车票
请输入需要购买的车次:D35
请输入起点站:北京
请输入终点站:上海
购票成功!
车次:D35
起点站:北京
终点站:上海
发车时间:2021-08-02 08:00
到达时间:2021-08-02 17:00
价格:480
余票数:11
售票总额:528
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现车票管理系统 - Python技术站