手把手教你用C语言开发电影订票系统

2026-08-11 0 阅读

在这个数字化的时代,掌握一门编程语言不仅能丰富个人的技能树,还能将兴趣转化为实际的应用。今天,我们就来一起用C语言开发一个简单的电影订票系统。这个系统将包括用户界面、电影信息管理、座位选择和订单处理等功能。

系统需求分析

在开始编码之前,我们需要明确系统的基本需求:

  1. 用户界面:简洁明了,便于用户操作。
  2. 电影信息管理:包括电影名称、上映时间、票价等。
  3. 座位选择:用户可以自由选择座位。
  4. 订单处理:生成订单,并保存到文件中。

系统设计

数据结构

首先,我们需要定义一些数据结构来存储电影信息、座位信息和用户订单。

typedef struct {
    char title[50];
    char time[20];
    float price;
} Movie;

typedef struct {
    int row;
    int col;
    int isBooked;
} Seat;

typedef struct {
    char movieTitle[50];
    char time[20];
    int row;
    int col;
    float totalCost;
} Order;

功能模块

  1. 电影信息管理:添加、删除和修改电影信息。
  2. 座位选择:展示电影座位图,允许用户选择座位。
  3. 订单处理:生成订单,并保存到文件。

编码实现

电影信息管理

void addMovie(Movie *movies, int *movieCount) {
    printf("Enter movie title: ");
    scanf("%s", movies[*movieCount].title);
    printf("Enter movie time: ");
    scanf("%s", movies[*movieCount].time);
    printf("Enter movie price: ");
    scanf("%f", &movies[*movieCount].price);
    (*movieCount)++;
}

void displayMovies(Movie *movies, int movieCount) {
    printf("Movie List:\n");
    for (int i = 0; i < movieCount; i++) {
        printf("%d. %s - %s - $%.2f\n", i + 1, movies[i].title, movies[i].time, movies[i].price);
    }
}

座位选择

void selectSeat(Seat seats[][10], int movieRow, int movieCol) {
    int row, col;
    printf("Enter row and column to book seat (e.g., 1 2): ");
    scanf("%d %d", &row, &col);
    if (row < 1 || row > movieRow || col < 1 || col > movieCol) {
        printf("Invalid seat number!\n");
        return;
    }
    if (seats[row - 1][col - 1].isBooked) {
        printf("Seat is already booked!\n");
        return;
    }
    seats[row - 1][col - 1].isBooked = 1;
    printf("Seat booked successfully!\n");
}

订单处理

void createOrder(Order *order, Movie *movies, Seat seats[][10], int row, int col) {
    order->movieTitle = movies->title;
    strcpy(order->time, movies->time);
    order->row = row;
    order->col = col;
    order->totalCost = movies->price;
    // Save order to file
    FILE *file = fopen("orders.txt", "a");
    if (file == NULL) {
        printf("Error opening file!\n");
        return;
    }
    fprintf(file, "%s %s %d %d %.2f\n", order->movieTitle, order->time, order->row, order->col, order->totalCost);
    fclose(file);
    printf("Order created successfully!\n");
}

系统测试

编写一个简单的测试程序来验证我们的电影订票系统。

int main() {
    Movie movies[10];
    int movieCount = 0;
    Seat seats[10][10];
    Order order;

    // Add movies
    addMovie(movies, &movieCount);
    // Display movies
    displayMovies(movies, movieCount);
    // Select seat
    selectSeat(seats, 10, 10);
    // Create order
    createOrder(&order, movies, seats, 1, 1);

    return 0;
}

通过以上步骤,我们就完成了一个简单的电影订票系统的开发。这个系统虽然功能简单,但已经涵盖了基本的编程概念和技巧。希望这个示例能帮助你更好地理解C语言编程。

分享到: