写一个飞机订票系统c语言代码,要求包括以下内容5.用户改签功能:可进行机票改签。 6.用户自我查询购票信息功能。
时间: 2024-03-30 12:39:55 浏览: 18
好的,下面是一个简单的飞机订票系统的C语言代码,包括以上要求的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct flight {
char flight_no[10]; // 航班号
char from[20]; // 出发地
char to[20]; // 目的地
char departure_time[20]; // 起飞时间
char arrival_time[20]; // 到达时间
float price; // 票价
char passenger_name[20]; // 乘客姓名
char passenger_id[20]; // 乘客身份证号
char payment_method[20]; // 支付方式
};
int num_flights = 0;
struct flight flights[100];
void register_user();
void login_user();
void search_flights();
void book_flight();
void change_flight();
void query_booked_flights();
int main() {
int choice;
do {
printf("\nWelcome to Airline Reservation System\n");
printf("1. Register user\n");
printf("2. Login user\n");
printf("3. Search flights\n");
printf("4. Book flight\n");
printf("5. Change flight\n");
printf("6. Query booked flights\n");
printf("0. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
register_user();
break;
case 2:
login_user();
break;
case 3:
search_flights();
break;
case 4:
book_flight();
break;
case 5:
change_flight();
break;
case 6:
query_booked_flights();
break;
case 0:
printf("Thank you for using Airline Reservation System\n");
break;
default:
printf("Invalid choice\n");
}
} while (choice != 0);
return 0;
}
void register_user() {
char username[20], password[20];
printf("\nEnter username: ");
scanf("%s", username);
printf("Enter password: ");
scanf("%s", password);
// 在这里可以将用户名和密码存储到文件或数据库中
printf("User registered successfully\n");
}
void login_user() {
char username[20], password[20];
printf("\nEnter username: ");
scanf("%s", username);
printf("Enter password: ");
scanf("%s", password);
// 在这里可以从文件或数据库中验证用户名和密码是否正确
printf("User logged in successfully\n");
}
void search_flights() {
char from[20], to[20];
printf("\nEnter source: ");
scanf("%s", from);
printf("Enter destination: ");
scanf("%s", to);
int i;
for (i = 0; i < num_flights; i++) {
if (strcmp(flights[i].from, from) == 0 && strcmp(flights[i].to, to) == 0) {
printf("%s %s %s %s %s %.2f\n", flights[i].flight_no, flights[i].from, flights[i].to, flights[i].departure_time, flights[i].arrival_time, flights[i].price);
}
}
}
void book_flight() {
char flight_no[10], passenger_name[20], passenger_id[20], payment_method[20];
printf("\nEnter flight no: ");
scanf("%s", flight_no);
int i;
for (i = 0; i < num_flights; i++) {
if (strcmp(flights[i].flight_no, flight_no) == 0) {
printf("Enter passenger name: ");
scanf("%s", passenger_name);
printf("Enter passenger id: ");
scanf("%s", passenger_id);
printf("Enter payment method: ");
scanf("%s", payment_method);
strcpy(flights[i].passenger_name, passenger_name);
strcpy(flights[i].passenger_id, passenger_id);
strcpy(flights[i].payment_method, payment_method);
printf("Flight booked successfully\n");
return;
}
}
printf("Invalid flight no\n");
}
void change_flight() {
char flight_no[10], passenger_name[20], passenger_id[20], payment_method[20];
printf("\nEnter flight no: ");
scanf("%s", flight_no);
int i;
for (i = 0; i < num_flights; i++) {
if (strcmp(flights[i].flight_no, flight_no) == 0) {
printf("Enter passenger name: ");
scanf("%s", passenger_name);
printf("Enter passenger id: ");
scanf("%s", passenger_id);
printf("Enter payment method: ");
scanf("%s", payment_method);
strcpy(flights[i].passenger_name, passenger_name);
strcpy(flights[i].passenger_id, passenger_id);
strcpy(flights[i].payment_method, payment_method);
printf("Flight changed successfully\n");
return;
}
}
printf("Invalid flight no\n");
}
void query_booked_flights() {
char passenger_name[20];
printf("\nEnter passenger name: ");
scanf("%s", passenger_name);
int i;
for (i = 0; i < num_flights; i++) {
if (strcmp(flights[i].passenger_name, passenger_name) == 0) {
printf("%s %s %s %s %s %.2f %s %s %s\n", flights[i].flight_no, flights[i].from, flights[i].to, flights[i].departure_time, flights[i].arrival_time, flights[i].price, flights[i].passenger_name, flights[i].passenger_id, flights[i].payment_method);
}
}
}
```
这个程序使用了一个全局数组`flights`来存储航班信息,使用结构体来表示每个航班。函数`register_user()`和`login_user()`用来注册用户和登录用户,可以将用户名和密码存储到文件或数据库中。函数`search_flights()`用来查询航班信息,函数`book_flight()`用来预订航班,函数`change_flight()`用来改签航班,函数`query_booked_flights()`用来查询已预订的航班信息。
这只是一个简单的例子,实际上一个完整的飞机订票系统要涉及到很多其他的问题,比如票价计算、座位选择、支付等等,需要仔细设计和实现。