帮我写一个火车票务系统c语言版本 必须含有排序和文件保存功能
时间: 2024-10-14 22:08:21 浏览: 5
编写一个简单的火车票务系统C语言版本,我们可以考虑以下几个步骤:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 结构体定义车次信息
typedef struct Train {
char name[20];
int from;
int to;
int dep_time;
} Train;
// 按出发时间排序函数
int compare(const void *a, const void *b) {
return (*(Train **) a).dep_time - (*(Train **) b).dep_time;
}
// 添加车次到文件
void saveTrains(Train trains[], int size, char filename[]) {
FILE* file = fopen(filename, "w");
if (file != NULL) {
for (int i = 0; i < size; i++) {
fprintf(file, "%s %d %d %d\n", trains[i].name, trains[i].from, trains[i].to, trains[i].dep_time);
}
fclose(file);
printf("车次已保存到文件 '%s'\n", filename);
} else {
printf("无法打开文件 '%s'.\n", filename);
}
}
// 主函数
int main() {
Train trainList[] = {{"T1", 1001, 2002, 900}, {"T2", 1003, 2004, 1200}};
int numTrains = sizeof(trainList) / sizeof(trainList[0]);
// 对车次按出发时间排序
qsort(trainList, numTrains, sizeof(Train), compare);
// 保存车次到文件
saveTrains(trainList, numTrains, "train_schedule.txt");
return 0;
}
```
此代码示例定义了一个简单的车次结构,通过`qsort`函数对车次按照出发时间进行排序,然后将排序后的车次信息存入一个文本文件。注意这只是一个基础版本,实际应用中可能还需要处理用户输入、错误检查以及更复杂的业务逻辑。
阅读全文