以下程序实现了一个简单的汽车站售票系统,包括购票、退票、查询和退出等功能。其中,定义了一个Passenger结构体来存储乘客的信息,使用一个passengers数组来存储已售票的乘客信息。使用了while循环和switch语句来实现菜单的交互功能。购票时判断是否已售完和座位号是否已被占用,退票时判断座位号是否已售出,查询时遍历乘客列表输出已售票的乘客信息。
下面是一个简单的C语言程序,实现汽车站售票系统:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_TICKETS 100 // 最大票数 typedef struct { char name[50]; // 姓名 int id; // 身份证号 int num; // 购票数量 int seat; // 座位号 } Passenger; int main() { Passenger passengers[MAX_TICKETS]; // 乘客列表 int n = 0; // 已售票数 while (1) { // 显示菜单 printf("\n======== 汽车站售票系统 ========"); printf("\n1. 购票"); printf("\n2. 退票"); printf("\n3. 查询"); printf("\n4. 退出"); printf("\n请选择操作:"); int choice; scanf("%d", &choice); switch (choice) { case 1: { // 购票 if (n >= MAX_TICKETS) { // 判断是否已售完 printf("\n对不起,已售完!"); break; } Passenger passenger; printf("\n请输入姓名:"); scanf("%s", passenger.name); printf("请输入身份证号:"); scanf("%d", &passenger.id); printf("请输入购票数量:"); scanf("%d", &passenger.num); printf("请输入座位号(1-%d):", MAX_TICKETS); scanf("%d", &passenger.seat); // 判断座位号是否已被占用 if (passenger.seat <= 0 || passenger.seat > MAX_TICKETS || passengers[passenger.seat - 1].id != 0) { printf("\n对不起,座位号已被占用!"); break; } // 添加到乘客列表 passengers[passenger.seat - 1] = passenger; n++; printf("\n购票成功!"); break; } case 2: { // 退票 int seat; printf("\n请输入座位号:"); scanf("%d", &seat); // 判断座位号是否已售出 if (seat <= 0 || seat > MAX_TICKETS || passengers[seat - 1].id == 0) { printf("\n对不起,座位号未售出!"); break; } // 从乘客列表中删除 passengers[seat - 1].id = 0; passengers[seat - 1].num = 0; passengers[seat - 1].seat = 0; memset(passengers[seat - 1].name, 0, sizeof(passengers[seat - 1].name)); n--; printf("\n退票成功!"); break; } case 3: { // 查询 printf("\n已售票数:%d", n); printf("\n剩余票数:%d", MAX_TICKETS - n); printf("\n详细信息如下:\n"); printf("\n姓名\t身份证号\t购票数量\t座位号"); for (int i = 0; i < MAX_TICKETS; i { if (passengers[i].id != 0) { printf("\n%s\t%d\t\t%d\t\t%d", passengers[i].name, passengers[i].id, passengers[i].num, passengers[i].seat); } } break; } case 4: { // 退出 printf("\n感谢使用,再见!"); exit(0); } default: { printf("\n输入有误,请重新输入!"); break; } } } return 0; }
以下代码实现了一个简单的汽车站售票系统,具体需求如下:
- 实现购票功能,包括输入乘客的姓名、身份证号、购票数量和座位号,若座位号已被占用,则提示座位号已被占用,购票失败;否则,将乘客的信息添加到乘客列表中,并提示购票成功。
- 实现退票功能,包括输入要退票的座位号,若座位号未售出,则提示座位号未售出,退票失败;否则,从乘客列表中删除该座位号的乘客信息,并提示退票成功。
- 实现查询功能,包括输出已售票数、剩余票数和已售票的乘客信息。
- 实现退出功能,退出程序。
此外,程序还需要定义一个Passenger结构体来存储乘客的信息,使用一个passengers数组来存储已售票的乘客信息。程序使用了while循环和switch语句来实现菜单的交互功能,根据用户的输入选择相应的功能。
猜你喜欢:
评论