用devc++设计一个飞机订票系统设计 要求实现功能本飞机共有80个坐位,分20排,每排4个位子。编号为A,B,C,D。如10D 表示10排D座。A和D靠窗,19到20排为吸烟区。本系统可让乘客自己选座号和区域,直到乘客满意为止,无法满足的话,只能改乘另一个航班。定上票的乘客需给出姓名和身份证号,最后要打印出乘客清单。 要求:1、用C++语言实现程序设计; 2、利用类实现信息的数据结构设计; 3、系统的各个功能模块要求用函数的形式实现; 4、界面友好(良好的人机交互),程序加必要的注释。
时间: 2024-03-14 08:46:31 浏览: 68
好的,以下是一个简单的Dev-C++代码示例,可以作为您的参考:
```c++
#include <iostream>
#include <string>
using namespace std;
const int NUM_ROWS = 20;
const int SEATS_PER_ROW = 4;
const int NUM_SEATS = NUM_ROWS * SEATS_PER_ROW;
bool seats[NUM_SEATS] = { false }; // 初始化所有座位为未预订状态
class Passenger {
public:
string name;
string id;
int seatNum;
};
void displayMenu() {
cout << "请选择操作:" << endl;
cout << "1. 预订座位" << endl;
cout << "2. 打印乘客清单" << endl;
cout << "3. 退出系统" << endl;
}
void bookSeat() {
int row = 0;
char col = ' ';
cout << "请输入座位号(如10D):" << endl;
cin >> row >> col;
int seatNum = (row - 1) * SEATS_PER_ROW;
switch (col) {
case 'A':
seatNum += 0;
break;
case 'B':
seatNum += 1;
break;
case 'C':
seatNum += 2;
break;
case 'D':
seatNum += 3;
break;
default:
cout << "无效的座位号!" << endl;
return;
}
if (row >= 1 && row <= 18) { // 非吸烟区
if (seatNum % SEATS_PER_ROW == 0 || seatNum % SEATS_PER_ROW == 3) { // 靠窗
cout << "您已选择座位 " << row << col << "(靠窗)" << endl;
} else { // 不靠窗
cout << "您已选择座位 " << row << col << "(不靠窗)" << endl;
}
} else { // 吸烟区
cout << "您已选择座位 " << row << col << "(吸烟区)" << endl;
}
if (seats[seatNum]) {
cout << "该座位已经被预订,请选择其他座位!" << endl;
} else {
seats[seatNum] = true;
Passenger passenger;
cout << "请输入您的姓名:" << endl;
cin >> passenger.name;
cout << "请输入您的身份证号:" << endl;
cin >> passenger.id;
passenger.seatNum = seatNum;
cout << "恭喜您,成功预订座位!" << endl;
// TODO: 将乘客信息保存到容器中
}
}
void printPassengerList() {
// TODO: 打印乘客清单
}
int main() {
int choice = 0;
while (true) {
displayMenu();
cin >> choice;
switch (choice) {
case 1:
bookSeat();
break;
case 2:
printPassengerList();
break;
case 3:
return 0;
default:
cout << "无效的操作!" << endl;
break;
}
}
return 0;
}
```
上述代码中,我们定义了一个`Passenger`类来表示乘客信息,包括姓名、身份证号和座位号。`displayMenu()`函数用于显示操作菜单,`bookSeat()`函数用于预订座位,`printPassengerList()`函数用于打印乘客清单。在`bookSeat()`函数中,我们首先读取用户输入的座位号,并计算座位在数组中的下标。然后,我们根据不同的情况输出座位类型(靠窗、不靠窗或吸烟区),并检查该座位是否已经被预订。如果该座位未被预订,则将其标记为已预订状态,并读取乘客姓名和身份证号,并将乘客信息保存到容器中。需要注意的是,由于座位号从1开始,而数组下标从0开始,因此在计算座位在数组中的下标时需要将座位号减1。
阅读全文