#include <stdio.h> #include <stdlib.h> #define SIZE 128 int input(struct TRAIN * Head); void output(struct TRAIN * Head,int Rnum); void searchbystartime(struct TRAIN * Head,int Rnum); void MENU(void); void Modify(struct TRAIN * Head,int Rnum); struct TRAIN { char szNum[SIZE]; char szStartStation[SIZE]; char szOverStation[SIZE]; int nStartTime; int nOverTime; }; int input(struct TRAIN * Head) { int i = 0; printf("请输入第%d个车次的信息/n请输入车次(exit to 0):/n",i+1); scanf("%s",Head[i].szNum); while(Head[i].szNum != NULL && Head[i].szNum[0] != '0') { fflush(stdin); puts("请输入始发站:/n"); gets(Head[i].szStartStation); fflush(stdin); puts("请输入终点站:/n"); gets(Head[i].szOverStation); fflush(stdin); puts("请输入始发时间:/n"); scanf("%d",&Head[i].nStartTime); fflush(stdin); puts("请输入到达时间:/n"); scanf("%d",&Head[i].nOverTime); fflush(stdin); i++; printf("请输入第%d个车次的信息/n请输入车次:/n",i+1); scanf("%s",Head[i].szNum); } return i; } void output(struct TRAIN * Head,int Rnum) { int i; for(i = 0;i < Rnum;i ++) { printf("第%d列车的信息:/n/n",i + 1); printf("车次:%s/n", Head[i].szNum); printf("始发站:%s/n",Head[i].szStartStation); printf("终点站:%s/n", Head[i].szOverStation); printf("发车时间:%d/n",Head[i].nStartTime); printf("到达时间:%d/n",Head[i].nOverTime); } while(getchar()!='/n'); getchar(); } void searchbystartime(struct TRAIN * Head,int Rnum) { int nTmp,i; int nRW = 0; printf("请输入你想查询的列车的始发时间:/n"); scanf("%d",&nTmp); for(i = 0;i < Rnum;i++) { if(Head[i].nStartTime == nTmp) { printf("车次:%s/n", Head[i].szNum); printf("始发站:%s/n",Head[i].szStartStation); printf("终点站:%s/n", Head[i].szOverStation); printf("发车时间:%d/n",Head[i].nStartTime); printf("到达时间:%d/n",Head[i].szOverStation); nRW++; } } if(!nRW) { printf("对不起 查无此车"); } while(getchar()!='/n'); getchar(); } void Modify(struct TRAIN * Head,int Rnum) { int nTmp,i; int nRW = 0; printf("请输入你想修改的列车的始发时间:/n"); scanf("%d",&nTmp); for(i = 0;i < Rnum;i++) { if(Head[i].nStartTime == nTmp) { printf("请输入车次:/n",i+1); scanf("%s",Head[i].szNum); fflush(stdin); puts("请输入始发站:/n"); gets(Head[i].szStartStation); fflush(stdin); puts("请输入终点站:/n"); gets(Head[i].szOverStation); fflush(stdin); puts("请输入始发时间:/n"); scanf("%d",&Head[i].nStartTime); fflush(stdin); puts("请输入到达时间:/n"); scanf("%d",&Head[i].nOverTime); fflush(stdin); nRW++; } } if(!nRW) { printf("对不起 查无此车"); } while(getchar()!='/n'); getchar(); } void MENU(void) { system("cls"); printf("/n/n/n/n/t***************************************************************/n"); printf("/t*********************1.输入信息********************************/n"); printf("/t*********************2.输出信息********************************/n"); printf("/t*********************3.时间查询********************************/n"); printf("/t*********************4.修改信息********************************/n"); printf("/t*********************0. 退出 ******************************/n"); printf("/t***************************************************************/n"); } int main(void) { int nChoice; int nRealnum; int nRW; struct TRAIN Head[SIZE]; while(1) { MENU(); nRW = scanf("%d",&nChoice); if(nRW == 0) { printf("输入有误 请重新输入"); continue; } switch(nChoice) { case 1: { nRealnum = input(Head); break; } case 2: { output(Head,nRealnum); break; } case 3: { searchbystartime(Head,nRealnum); break; } case 4: { Modify(Head,nRealnum); break; } case 0: { exit(0); } default: { printf("对不起 您得输入有错"); break; } } } }