用c语言完成电影院的售票管理系统代码
时间: 2024-05-01 10:23:11 浏览: 8
以下是使用C语言实现的电影院售票管理系统代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SEATS 20 // 最大座位数
// 电影信息结构体
typedef struct {
char name[50]; // 电影名称
int duration; // 电影时长(分钟)
} Movie;
// 座位信息结构体
typedef struct {
int seat_number; // 座位号
int is_booked; // 是否已售出
char customer_name[50]; // 顾客姓名
} Seat;
// 初始化座位信息
void init_seats(Seat seats[]) {
for (int i = 0; i < MAX_SEATS; i++) {
seats[i].seat_number = i + 1;
seats[i].is_booked = 0;
strcpy(seats[i].customer_name, "");
}
}
// 显示座位信息
void display_seats(Seat seats[]) {
printf("座位信息:\n");
printf("座位号\t是否已售出\t顾客姓名\n");
for (int i = 0; i < MAX_SEATS; i++) {
printf("%d\t%s\t\t%s\n", seats[i].seat_number, seats[i].is_booked ? "是" : "否", seats[i].customer_name);
}
}
// 选择电影
Movie select_movie() {
Movie movie1 = {"复仇者联盟4", 181};
Movie movie2 = {"头号玩家", 140};
Movie movie3 = {"寻梦环游记", 105};
printf("请选择电影:\n");
printf("1. %s(%d分钟)\n", movie1.name, movie1.duration);
printf("2. %s(%d分钟)\n", movie2.name, movie2.duration);
printf("3. %s(%d分钟)\n", movie3.name, movie3.duration);
int choice;
do {
printf("请输入您的选择(1-3):");
scanf("%d", &choice);
} while (choice < 1 || choice > 3);
switch (choice) {
case 1:
return movie1;
case 2:
return movie2;
case 3:
return movie3;
default:
break;
}
return movie1; // 默认返回第一部电影
}
// 选择座位
int select_seat(Seat seats[]) {
int seat_number;
do {
printf("请输入座位号(1-%d):", MAX_SEATS);
scanf("%d", &seat_number);
} while (seat_number < 1 || seat_number > MAX_SEATS);
Seat *seat = &seats[seat_number - 1];
if (seat->is_booked) {
printf("该座位已售出,请选择其他座位!\n");
return -1;
}
return seat_number;
}
// 购票
void book_ticket(Seat seats[], Movie movie) {
int seat_number = select_seat(seats);
if (seat_number == -1) {
return;
}
Seat *seat = &seats[seat_number - 1];
char customer_name[50];
printf("请输入您的姓名:");
scanf("%s", customer_name);
seat->is_booked = 1;
strcpy(seat->customer_name, customer_name);
printf("恭喜您,购票成功!\n");
printf("您已成功购买 %s 的电影票,座位号为 %d,电影时长为 %d 分钟。\n", movie.name, seat_number, movie.duration);
}
// 退票
void return_ticket(Seat seats[]) {
int seat_number = select_seat(seats);
if (seat_number == -1) {
return;
}
Seat *seat = &seats[seat_number - 1];
seat->is_booked = 0;
strcpy(seat->customer_name, "");
printf("退票成功!\n");
}
int main() {
Movie movie = select_movie(); // 选择电影
Seat seats[MAX_SEATS]; // 初始化座位信息
init_seats(seats);
int choice;
do {
printf("\n");
printf("请选择操作:\n");
printf("1. 显示座位信息\n");
printf("2. 购票\n");
printf("3. 退票\n");
printf("4. 退出系统\n");
scanf("%d", &choice);
switch (choice) {
case 1:
display_seats(seats);
break;
case 2:
book_ticket(seats, movie);
break;
case 3:
return_ticket(seats);
break;
default:
break;
}
} while (choice != 4);
return 0;
}
```
这个代码实现了基本的售票管理系统功能,包括选择电影、选择座位、购票、退票等操作。可以根据自己的需求进行修改和扩展。