c语言写一个完整的机票售卖系统
时间: 2024-09-24 13:21:53 浏览: 20
创建一个完整的机票售卖系统是一个复杂的项目,通常涉及到用户界面、数据库交互、业务逻辑等多个部分。以下是一个简化的C语言版机票售卖系统的概述,我们将构建一个命令行版本的基本框架:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结构体表示航班信息
typedef struct {
char destination[50];
int capacity;
int available_seats;
} Flight;
// 函数定义:添加航班
void add_flight(Flight *flights, int num_flights) {
for (int i = 0; i < num_flights; i++) {
printf("Enter destination and initial seat count:\n");
fgets(flights[i].destination, sizeof(flights[i].destination), stdin);
flights[i].capacity = atoi(fgets(NULL, sizeof(int), stdin)); // 假设输入是整数
flights[i].available_seats = flights[i].capacity;
}
}
// 函数定义:售票
bool sell_ticket(Flight *flight, int ticket_sold) {
if (flight->available_seats >= ticket_sold) {
flight->available_seats -= ticket_sold;
return true;
} else {
printf("Insufficient seats!\n");
return false;
}
}
int main() {
int num_flights;
printf("How many flights would you like to add?\n");
scanf("%d", &num_flights);
Flight flights[num_flights];
add_flight(flights, num_flights);
while (true) {
printf("\nEnter flight number (or 'quit' to exit): ");
char input[50];
fgets(input, sizeof(input), stdin);
if (!strcmp(input, "quit")) break;
int ticket_num;
scanf("%d", &ticket_num);
sell_ticket(&flights[int(input[0]-'1')], ticket_num); // 假设输入是数字,并转换为数组索引
}
return 0;
}
```
这个程序只是一个基础示例,实际应用会更复杂,包括错误处理、数据持久化(保存到文件或数据库)、用户界面等。此外,C语言并不适合用于大型的图形用户界面(GUI)应用,上述代码仅适用于控制台交互。