帮我写一个火车站售票系统 用c语言 要求有管理员和售票员
时间: 2024-04-05 21:33:36 浏览: 85
当然可以帮您写一个简单的火车站售票系统。以下是一个基本的示例代码,使用C语言实现,包括管理员和售票员的功能。请注意,这只是一个简单的示例,可能还需要根据具体需求进行修改和完善。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义最大的车票数量
#define MAX_TICKETS 100
// 定义车票结构体
typedef struct {
int ticketId;
char passengerName[50];
int seatNumber;
int isBooked;
} Ticket;
// 定义管理员结构体
typedef struct {
char username[50];
char password[50];
} Admin;
// 声明全局变量
Ticket tickets[MAX_TICKETS];
int numTickets = 0;
Admin admin;
// 函数声明
void initSystem();
void adminLogin();
void addTicket();
void sellTicket();
void showTickets();
void sellTicketById();
int main() {
initSystem();
adminLogin();
int choice;
do {
printf("\n==== 火车站售票系统 ====\n");
printf("1. 添加车票\n");
printf("2. 售票\n");
printf("3. 查看所有车票\n");
printf("4. 根据ID售票\n");
printf("0. 退出系统\n");
printf("请输入您的选择: ");
scanf("%d", &choice);
switch (choice) {
case 1:
addTicket();
break;
case 2:
sellTicket();
break;
case 3:
showTickets();
break;
case 4:
sellTicketById();
break;
case 0:
printf("感谢使用火车站售票系统,再见!\n");
break;
default:
printf("无效的选择,请重新输入。\n");
}
} while (choice != 0);
return 0;
}
// 初始化系统
void initSystem() {
admin.username = "admin";
admin.password = "admin";
}
// 管理员登录
void adminLogin() {
char username[50];
char password[50];
printf("请输入管理员用户名: ");
scanf("%s", username);
printf("请输入管理员密码: ");
scanf("%s", password);
if (strcmp(username, admin.username) == 0 && strcmp(password, admin.password) == 0) {
printf("管理员登录成功!\n");
} else {
printf("管理员用户名或密码错误,程序退出。\n");
exit(0);
}
}
// 添加车票
void addTicket() {
if (numTickets >= MAX_TICKETS) {
printf("车票已满,无法添加更多车票。\n");
return;
}
Ticket ticket;
printf("请输入车票ID: ");
scanf("%d", &ticket.ticketId);
printf("请输入乘客姓名: ");
scanf("%s", ticket.passengerName);
printf("请输入座位号: ");
scanf("%d", &ticket.seatNumber);
ticket.isBooked = 0;
tickets[numTickets] = ticket;
numTickets++;
printf("车票添加成功!\n");
}
// 售票
void sellTicket() {
int ticketId;
printf("请输入要售出的车票ID: ");
scanf("%d", &ticketId);
for (int i = 0; i < numTickets; i++) {
if (tickets[i].ticketId == ticketId) {
if (tickets[i].isBooked) {
printf("该车票已售出。\n");
} else {
tickets[i].isBooked = 1;
printf("车票售出成功!\n");
}
return;
}
}
printf("未找到指定ID的车票。\n");
}
// 查看所有车票
void showTickets() {
printf("\n==== 所有车票 ====\n");
for (int i = 0; i < numTickets; i++) {
printf("ID: %d, 乘客姓名: %s, 座位号: %d, 已售出: %s\n",
tickets[i].ticketId, tickets[i].passengerName,
tickets[i].seatNumber, tickets[i].isBooked ? "是" : "否");
}
}
// 根据ID售票
void sellTicketById() {
int ticketId;
printf("请输入要售出的车票ID: ");
scanf("%d", &ticketId);
for (int i = 0; i < numTickets; i++) {
if (tickets[i].ticketId == ticketId) {
if (tickets[i].isBooked) {
printf("该车票已售出。\n");
} else {
tickets[i].isBooked = 1;
printf("车票售出成功!\n");
}
return;
}
}
printf("未找到指定ID的车票。\n");
}
```
这是一个简单的火车站售票系统示例代码,包括添加车票、售票、查看所有车票和根据ID售票等功能。请根据需要进行修改和完善。注意,此示例未进行输入验证和错误处理,请在实际应用中添加适当的验证和错误处理机制。
阅读全文