c语言长途汽车站订票系统代码
时间: 2024-04-16 18:21:07 浏览: 83
C语言长途汽车站订票系统代码可以包括以下几个主要功能模块:
1. 用户登录和注册模块:实现用户的登录和注册功能,包括输入用户名和密码、验证用户信息等。
2. 车次查询模块:提供用户查询车次信息的功能,包括输入出发地和目的地,显示符合条件的车次信息。
3. 车票预订模块:实现用户选择车次和座位号进行车票预订的功能,包括输入乘车日期、选择座位等。
4. 车票退订模块:实现用户对已预订车票进行退订的功能,包括输入订单号、验证订单信息等。
5. 订单查询模块:提供用户查询已预订车票订单信息的功能,包括输入订单号、显示订单详细信息等。
下面是一个简单的C语言长途汽车站订票系统代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义结构体表示车次信息
typedef struct {
char start[20]; // 出发地
char destination[20]; // 目的地
char date[20]; // 乘车日期
int seatNum; // 座位号
} Ticket;
// 定义结构体表示用户信息
typedef struct {
char username[20]; // 用户名
char password[20]; // 密码
} User;
// 全局变量,保存所有车次信息
Ticket tickets[100];
int ticketCount = 0;
// 全局变量,保存所有用户信息
User users[100];
int userCount = 0;
// 用户登录函数
int login() {
char username[20];
char password[20];
printf("请输入用户名:");
scanf("%s", username);
printf("请输入密码:");
scanf("%s", password);
for (int i = 0; i < userCount; i++) {
if (strcmp(users[i].username, username) == 0 && strcmp(users[i].password, password) == 0) {
return i; // 返回用户在数组中的索引
}
}
return -1; // 登录失败
}
// 用户注册函数
void registerUser() {
char username[20];
char password[20];
printf("请输入用户名:");
scanf("%s", username);
printf("请输入密码:");
scanf("%s", password);
strcpy(users[userCount].username, username);
strcpy(users[userCount].password, password);
userCount++;
printf("注册成功!\n");
}
// 车次查询函数
void searchTickets() {
char start[20];
char destination[20];
printf("请输入出发地:");
scanf("%s", start);
printf("请输入目的地:");
scanf("%s", destination);
for (int i = 0; i < ticketCount; i++) {
if (strcmp(tickets[i].start, start) == 0 && strcmp(tickets[i].destination, destination) == 0) {
printf("车次:%d,出发地:%s,目的地:%s,日期:%s,座位号:%d\n", i+1, tickets[i].start, tickets[i].destination, tickets[i].date, tickets[i].seatNum);
}
}
}
// 车票预订函数
void bookTicket(int userIndex) {
int ticketIndex;
printf("请输入要预订的车次:");
scanf("%d", &ticketIndex);
if (ticketIndex < 1 || ticketIndex > ticketCount) {
printf("无效的车次!\n");
return;
}
// 预订车票
strcpy(tickets[ticketIndex-1].date, "2022-01-01"); // 假设乘车日期为固定值
tickets[ticketIndex-1].seatNum = 1; // 假设座位号为固定值
printf("预订成功!\n");
}
// 车票退订函数
void cancelTicket(int userIndex) {
int ticketIndex;
printf("请输入要退订的车次:");
scanf("%d", &ticketIndex);
if (ticketIndex < 1 || ticketIndex > ticketCount) {
printf("无效的车次!\n");
return;
}
// 退订车票
strcpy(tickets[ticketIndex-1].date, ""); // 清空乘车日期
tickets[ticketIndex-1].seatNum = 0; // 清空座位号
printf("退订成功!\n");
}
// 订单查询函数
void searchOrders(int userIndex) {
for (int i = 0; i < ticketCount; i++) {
if (strcmp(tickets[i].date, "") != 0 && tickets[i].seatNum != 0) {
printf("订单号:%d,车次:%d,出发地:%s,目的地:%s,日期:%s,座位号:%d\n", i+1, i+1, tickets[i].start, tickets[i].destination, tickets[i].date, tickets[i].seatNum);
}
}
}
int main() {
int choice;
int userIndex = -1;
while (1) {
printf("1. 登录\n");
printf("2. 注册\n");
printf("3. 车次查询\n");
printf("4. 车票预订\n");
printf("5. 车票退订\n");
printf("6. 订单查询\n");
printf("0. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
userIndex = login();
if (userIndex == -1) {
printf("登录失败!\n");
} else {
printf("登录成功!\n");
}
break;
case 2:
registerUser();
break;
case 3:
searchTickets();
break;
case 4:
if (userIndex == -1) {
printf("请先登录!\n");
} else {
bookTicket(userIndex);
}
break;
case 5:
if (userIndex == -1) {
printf("请先登录!\n");
} else {
cancelTicket(userIndex);
}
break;
case 6:
if (userIndex == -1) {
printf("请先登录!\n");
} else {
searchOrders(userIndex);
}
break;
case 0:
printf("谢谢使用,再见!\n");
exit(0);
default:
printf("无效的操作!\n");
break;
}
}
return 0;
}
```
阅读全文