在这个数字化的时代,掌握一门编程语言不仅能丰富个人的技能树,还能将兴趣转化为实际的应用。今天,我们就来一起用C语言开发一个简单的电影订票系统。这个系统将包括用户界面、电影信息管理、座位选择和订单处理等功能。
系统需求分析
在开始编码之前,我们需要明确系统的基本需求:
- 用户界面:简洁明了,便于用户操作。
- 电影信息管理:包括电影名称、上映时间、票价等。
- 座位选择:用户可以自由选择座位。
- 订单处理:生成订单,并保存到文件中。
系统设计
数据结构
首先,我们需要定义一些数据结构来存储电影信息、座位信息和用户订单。
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;
功能模块
- 电影信息管理:添加、删除和修改电影信息。
- 座位选择:展示电影座位图,允许用户选择座位。
- 订单处理:生成订单,并保存到文件。
编码实现
电影信息管理
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语言编程。