厦门地铁票务管理系统设计与实现
#include <stdio.h> #include <stdlib.h> #include <string.h>
// 定义结构体存储线路信息 typedef struct LineInfo { int lineNo; char start[20]; char end[20]; char stations[100][20]; int stationNum; } LineInfo;
// 定义结构体存储列车时刻信息 typedef struct TrainInfo { int lineNo; char date[20]; char start[20]; char end[20]; char startTime[20]; char endTime[20]; } TrainInfo;
// 定义全局变量存储线路和列车时刻信息 LineInfo lines[100]; TrainInfo trains[1000]; int lineNum = 0; int trainNum = 0;
// 函数声明 void addLine(); void addTrain(); void queryLine(); void queryPrice(); void queryTrain(); void countTrain();
int main() { int choice = 0; while (1) { printf("欢迎使用厦门地铁票务管理系统\n"); printf("1. 录入新线路/新站点信息\n"); printf("2. 录入列车时刻信息\n"); printf("3. 查询线路及站点信息\n"); printf("4. 查询票价\n"); printf("5. 查询列车时刻信息\n"); printf("6. 统计每日车次数\n"); printf("7. 退出\n"); printf("请选择功能:"); scanf("%d", &choice); switch (choice) { case 1: addLine(); break; case 2: addTrain(); break; case 3: queryLine(); break; case 4: queryPrice(); break; case 5: queryTrain(); break; case 6: countTrain(); break; case 7: printf("谢谢使用,再见!\n"); exit(0); default: printf("输入有误,请重新选择!\n"); break; } printf("\n"); } return 0; }
// 录入新线路/新站点信息 void addLine() { printf("请输入线路编号:"); scanf("%d", &lines[lineNum].lineNo); printf("请输入起点站:"); scanf("%s", lines[lineNum].start); printf("请输入终点站:"); scanf("%s", lines[lineNum].end); printf("请输入途径站点(用空格隔开):"); char stations[100]; scanf("%s", stations); char *p = strtok(stations, " "); int i = 0; while (p != NULL) { strcpy(lines[lineNum].stations[i++], p); p = strtok(NULL, " "); } lines[lineNum].stationNum = i; lineNum++; printf("成功录入新线路/新站点信息!\n"); }
// 录入列车时刻信息 void addTrain() { printf("请输入线路编号:"); scanf("%d", &trains[trainNum].lineNo); printf("请输入日期(格式:20210101):"); scanf("%s", trains[trainNum].date); printf("请输入起点站:"); scanf("%s", trains[trainNum].start); printf("请输入终点站:"); scanf("%s", trains[trainNum].end); printf("请输入发车时间(格式:0800):"); scanf("%s", trains[trainNum].startTime); printf("请输入到达时间(格式:1000):"); scanf("%s", trains[trainNum].endTime); trainNum++; printf("成功录入列车时刻信息!\n"); }
// 查询线路及站点信息 void queryLine() { printf("请输入线路编号:"); int lineNo; scanf("%d", &lineNo); int i; for (i = 0; i < lineNum; i++) { if (lines[i].lineNo == lineNo) { printf("线路编号:%d\n", lines[i].lineNo); printf("起点站:%s\n", lines[i].start); printf("终点站:%s\n", lines[i].end); printf("途径站点:"); int j; for (j = 0; j < lines[i].stationNum; j++) { printf("%s ", lines[i].stations[j]); } printf("\n"); return; } } printf("未查询到该线路信息!\n"); }
// 查询票价 void queryPrice() { printf("请输入起点站:"); char start[20]; scanf("%s", start); printf("请输入终点站:"); char end[20]; scanf("%s", end); int i; for (i = 0; i < lineNum; i++) { if (strcmp(lines[i].start, start) == 0 && strcmp(lines[i].end, end) == 0) { printf("票价为:%d元\n", lines[i].stationNum * 2); return; } } printf("未查询到该线路信息!\n"); }
// 查询列车时刻信息 void queryTrain() { printf("请输入起点站:"); char start[20]; scanf("%s", start); printf("请输入终点站:"); char end[20]; scanf("%s", end); int i; for (i = 0; i < trainNum; i++) { if (strcmp(trains[i].start, start) == 0 && strcmp(trains[i].end, end) == 0) { printf("线路编号:%d\n", trains[i].lineNo); printf("发车时间:%s\n", trains[i].startTime); printf("到达时间:%s\n", trains[i].endTime); return; } } printf("未查询到该列车时刻信息!\n"); }
// 统计每日车次数 void countTrain() { printf("请输入日期(格式:20210101):"); char date[20]; scanf("%s", date); int count = 0; int i; for (i = 0; i < trainNum; i++) { if (strcmp(trains[i].date, date) == 0) { count++; } } printf("当日车次数为:%d\n", count);
原文地址: https://www.cveoy.top/t/topic/oKPS 著作权归作者所有。请勿转载和采集!