logo资料库

C语言火车车票管理系统.docx

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
#include #include #include #include #include #include const int MAX=20; const int N=50; const int MAXFILENAME=100; enum {FALSE,TRUE}; struct time { int hour; int minutes; }; struct ticket { int SerialNumber; struct time SetOut; char DeparturePoint[MAX]; char TerminalPoint[MAX]; float LastTime; int FixNumber; int FixedNumber; }car[N]; int RecordNumber; int FLAG=FALSE; /**********************************************/ int ShowMessage(void); //载入原始数据 void mainmenu(void); //主菜单 void InsertMessage(void); //录入班次信息 void SearchMenu(void); //查询路线子菜单 void SearchByNumber(void); //按班次号查询 void SearchByAddress(void); //按终点站查询 void TicketManagement(void); //车票售出与退回 void TicketOrder(void); //售票 void TicketDelete(void); //退票 void exit(void); //退出该系统 void SaveRecord(ticket x); //储存信息到文件中 /********************************************/ int main(void) {
do{ mainmenu(); }while(FLAG==FALSE); return 0; } void mainmenu(void) { system("color 1f"); system("mode con: cols=140 lines=130"); char functionNumber; printf(" 车票管理系统\n\n"); printf(" 制作:hmm182007\n"); printf(" 日期:2007/11/25/19:57\n"); printf("=========================================================== =================\n"); printf(" 1.录入班次信息\t\n"); printf(" 2.浏览班次信息\t\n"); printf(" 3.查询行车路线\t\n"); printf(" 4.售票与退票系统\t\n"); printf(" 5.退出该系统\t\n"); printf("=========================================================== =================\n"); printf("请选择你所需要的功能:"); scanf("%c",&functionNumber); switch(functionNumber) { case '1': { InsertMessage(); printf("\n 按任意键回主菜单......\n"); getchar(); getchar(); } break; case '2': { RecordNumber=ShowMessage(); printf("\n 按任意键回主菜单......\n"); getchar(); getchar(); } break;
case '3': { SearchMenu(); printf("\n 按任意键回主菜单......\n"); getchar(); getchar(); } break; case '4': { TicketManagement(); getchar(); getchar(); } break; case '5':FLAG=TRUE;exit();break; default: { printf("输入错误,请确保你的输入为 1--5.\n"); printf("按任意键回主菜单......\n"); getchar(); getchar(); } }//switch ends FLAG=FALSE; } void InsertMessage(void) { FILE *fp; char filename[MAXFILENAME]; int i; printf("请输入文件名或者文件路径名:"); scanf("%s",filename); if((fp=fopen(filename,"r"))==NULL) { printf("文件%s 不可读,请确认文件%s 存在或者文件路径正确.\n\n",filename,filename); mainmenu(); } for(i=RecordNumber;!feof(fp)&&!ferror(fp);i++) { fscanf(fp,"%d%d%d",&car[i].SerialNumber,&car[i].SetOut.hour,&car[i].SetOut.minutes); fscanf(fp,"%s%s%f%d%d",&car[i].DeparturePoint,&car[i].TerminalPoint,&car[i].LastTime,&car[i].FixNu
mber,&car[i].FixedNumber); SaveRecord(*(car+i)); } RecordNumber=i; /*******************************输出更新后的订票记录 ************************************************************/ printf("班次\t 发车时间\t 起点\t 终点\t 行车时间(小时)\t 额定载量\t 已定票人数\n"); for(i=0;i
if((now->tm_hour==car[i].SetOut.hour&&now->tm_min>car[i].SetOut.minutes)||(now->tm_hour>car[i] .SetOut.hour)) printf("此车已发出"); printf("\n"); } return count; } void SearchMenu(void) { system("color 1f"); system("mode con: cols=140 lines=130"); char functionNumber; printf(" 查询子菜单\n"); printf("=========================================================== =================\n"); printf(" 1.按班次号查询\t\n"); printf(" 2.按终点站查询\t\n"); printf(" 3.返回主菜单\t\n"); printf("=========================================================== =================\n"); printf("请选择你所需要的功能:"); scanf("%*c%c",&functionNumber); switch(functionNumber) { case '1':SearchByNumber();break; case '2':SearchByAddress();break; case '3': getchar(); mainmenu(); break; default: printf("输入错误,请确保你的输入为 1--3.\n"); printf("按任意键回查询子菜单......\n"); getchar(); getchar(); SearchMenu(); } } void SearchByNumber(void) { int SearchNumber; printf("请输入要查询的班次号:");
scanf("%d",&SearchNumber); printf("班次\t 发车时间\t 起点\t 终点\t 行车时间(小时)\t 额定载量\t 已定票人数\n"); printf("%d\t%d:%d\t\t",car[SearchNumber-1].SerialNumber,car[SearchNumber-1].SetOut.hour,car[Sear chNumber-1].SetOut.minutes); printf("%s\t%s\t\t%.1f\t %d\t\t%d\n",car[SearchNumber-1].DeparturePoint,car[SearchNumber-1].Ter minalPoint,car[SearchNumber-1].LastTime,car[SearchNumber-1].FixNumber,car[SearchNumber-1].Fixed Number); } void SearchByAddress(void) { int i; char Address[MAX]; printf("请输入终点站的名称:"); scanf("%s",&Address); printf("班次\t 发车时间\t 起点\t 终点\t 行车时间(小时)\t 额定载量\t 已定票人数\n"); for(i=0;i
switch(functionNumber) { case '1': { TicketOrder(); //getchar(); //getchar(); } break; case '2':TicketDelete();break; case '3': { getchar(); mainmenu(); } break; default: { printf("输入错误,请确保你的输入为 1--3.\n"); printf("按任意键回主菜单......\n"); getchar(); getchar(); mainmenu(); } } } void TicketOrder(void) { int i; printf("请输入要订购的车票的班次:"); scanf("%d",&i); if(i<0||i>RecordNumber) { printf("对不起,今天没有这趟车,请明天再来,谢谢使用!\n"); printf("按任意键回主菜单......\n"); getchar();//getchar(); TicketManagement(); } time_t tval; struct tm *now; tval = time(NULL);
now = localtime(&tval); if((now->tm_hour==car[i].SetOut.hour&&now->tm_mintm_hourRecordNumber) { printf("对不起,今天没有这趟车,无法完成退票.谢谢使用!\n"); getchar(); //getchar(); TicketManagement(); getchar(); } time_t tval; struct tm *now; tval = time(NULL); now = localtime(&tval); if((now->tm_hour==car[i].SetOut.hour&&now->tm_mintm_hour=1) {
分享到:
收藏