用c语言写车票管理系统
时间: 2023-10-15 15:08:12 浏览: 90
好的,车票管理系统可以分为以下几个模块:
1. 系统登录:用户输入用户名和密码进行系统登录,如果输入正确则显示主菜单。
2. 主菜单:显示系统提供的各种功能选项,如添加车次、删除车次、查询车次、售票等。
3. 车次管理:包括添加车次、删除车次、修改车次信息等操作。
4. 车票管理:包括售票、退票、查询余票等操作。
以下是一个简单的车票管理系统的代码示例(包括添加车次、查询车次和售票功能):
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_TRAIN 100 //最多车次数
#define MAX_SEAT 1000 //每趟列车最多座位数
//列车信息结构体
typedef struct {
char train_no[10]; //车次号
char start_station[20]; //起点站
char end_station[20]; //终点站
char start_time[10]; //发车时间
char end_time[10]; //到达时间
int seat_num; //座位数
int sold_num; //已售出的座位数
float price; //票价
} train_info;
int train_count = 0; //已添加的车次数
train_info trains[MAX_TRAIN]; //车次信息数组
//添加车次
void add_train() {
if (train_count >= MAX_TRAIN) {
printf("超过最大车次数!\n");
return;
}
train_info new_train;
printf("请输入新车次信息:\n");
printf("车次号:");
scanf("%s", new_train.train_no);
printf("起点站:");
scanf("%s", new_train.start_station);
printf("终点站:");
scanf("%s", new_train.end_station);
printf("发车时间:");
scanf("%s", new_train.start_time);
printf("到达时间:");
scanf("%s", new_train.end_time);
printf("座位数:");
scanf("%d", &new_train.seat_num);
printf("票价:");
scanf("%f", &new_train.price);
new_train.sold_num = 0;
trains[train_count++] = new_train;
printf("添加成功!\n");
}
//查询车次
void query_train() {
char train_no[10];
printf("请输入车次号:");
scanf("%s", train_no);
for (int i = 0; i < train_count; i++) {
if (strcmp(trains[i].train_no, train_no) == 0) {
printf("车次号:%s\n", trains[i].train_no);
printf("起点站:%s\n", trains[i].start_station);
printf("终点站:%s\n", trains[i].end_station);
printf("发车时间:%s\n", trains[i].start_time);
printf("到达时间:%s\n", trains[i].end_time);
printf("座位数:%d\n", trains[i].seat_num);
printf("已售票数:%d\n", trains[i].sold_num);
printf("票价:%.2f\n", trains[i].price);
return;
}
}
printf("没有找到该车次!\n");
}
//售票
void sell_ticket() {
char train_no[10];
printf("请输入车次号:");
scanf("%s", train_no);
for (int i = 0; i < train_count; i++) {
if (strcmp(trains[i].train_no, train_no) == 0) {
if (trains[i].sold_num >= trains[i].seat_num) {
printf("该车次已售完!\n");
return;
}
printf("请输入购票座位号(1-%d):", trains[i].seat_num);
int seat_no;
scanf("%d", &seat_no);
if (seat_no < 1 || seat_no > trains[i].seat_num) {
printf("座位号无效!\n");
return;
}
printf("请输入乘客姓名:");
char name[20];
scanf("%s", name);
printf("请输入乘客身份证号:");
char id[20];
scanf("%s", id);
printf("购票成功!\n");
printf("车次号:%s\n", trains[i].train_no);
printf("座位号:%d\n", seat_no);
printf("乘客姓名:%s\n", name);
printf("乘客身份证号:%s\n", id);
trains[i].sold_num++;
return;
}
}
printf("没有找到该车次!\n");
}
int main() {
while (1) {
printf("\n");
printf("请选择功能:\n");
printf("1.添加车次 2.查询车次 3.售票 0.退出\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
add_train();
break;
case 2:
query_train();
break;
case 3:
sell_ticket();
break;
case 0:
exit(0);
default:
printf("无效选择!\n");
}
}
return 0;
}
```
这只是一个简单的实现,实际的车票管理系统还需要考虑更多的因素,如数据持久化、多用户并发操作等。
阅读全文