火车票售票系统C语言大作业,C语言课程设计--火车票管理系统

本文介绍了一个使用C语言开发的火车票务管理系统的设计与实现。系统具备火车时刻信息的录入、查询及统计等功能,并提供了友好的用户交互界面。

《C语言课程设计--火车票管理系统》由会员分享,可在线阅读,更多相关《C语言课程设计--火车票管理系统(19页珍藏版)》请在人人文库网上搜索。

1、二、设计内容二、设计内容 设计一个火车票务管理系统,用 C 语言实现。对该系统的要求如下: 需求描述: 1.系统功能 (1)火车时刻信息录入。包括车次、日期、起点、终点、开车 时间、 到达时间、 票价。 数据存入数据文件 hchsk.dat 或 hchsk.txt 中。 (2)火车时刻信息查询。 按照车次查询 按终点查询 按起点查询 按终点和日期查询 (3)统计 按终点统计每日的车次数 按起点统计每日的车次数 2. 系统主界面应有以下功能选项 录入火车时刻信息 查询火车时刻信息 统计火车车次 。1 。 退出 三、详细设计说明三、详细设计说明 #include #include #include。

2、 int MENU(); /菜单模块 void INPUT(); /输入模块 void SEARCH(); /查询模块 void SELECT(); /统计模块 void WRITE(); /文件记录模块 void PRINT(); /打印模块 void READ(); /文件读取模块 void WRONG(); /纠错模块 #define N 1000 /最大列车组数 #definePrint %s%13s%10s%10s%12s%15s%11sn,Ti.code,Ti.data,Ti.lp,Ti.ap,Ti.lt,T i.at,Ti.price /输出记录格式 #define Wrong 。

3、n ! ! ! ! ! ! ! ! ! ! ! 输入错误,请重新输入 ! ! ! ! ! ! ! ! ! ! ! n #define GeShi 车次日期起点终点开车时间到达 时间票价n struct Train char code10; /车次 char data10; /日期 char lp10; /left place 起点 char ap10; /arrive place 终点 。2 。 char lt10; /left time 开车时间 char at10; /arrive time 到达时间 char price10; / 票价 TN; /* 全局变量 */ int i=0; /。

4、输入计数器 int n=0; /合计计数器 char l20; /纠错空间 / /主函数 int main() int x; do x=MENU(); switch(x) case 1:INPUT(); break; case 2:SEARCH(); break; case 3:SELECT(); break; case 4: printf(n -); printf(n正在退出,请按任意键退出); printf(nn ); printf(n -n ); break; default:WRONG(); break; 。3 。 while(x!=4); return 0; / /菜单模块 int 。

5、MENU() int choice; system(cls); printf(n -n); printf( -n); printf(- -n); printf(-欢迎进入火车票务管理系统 -n); printf(- -n); printf( -n); printf( -nn); printf(n-请 输 入 选 项 -n); printf( 1.录入火车时刻信息n); printf( 2.查询火车时刻信息n); printf( 3.统计火车车次n); printf( 4.退出n); 。4 。 printf( -n); printf(请选择: ); scanf(%d, gets(l); retu。

6、rn choice; / /输入模块 void INPUT() char ch; do system(cls); printf(nn=欢迎 进入 录入火车时刻信息界面 =n); do printf(n新建列车信息?(y/n) ); scanf(%c, gets(l); if(ch!=y while(ch!=y if(ch=n) break; printf( -); printf(n录入第%d 趟列车信息n,n+1); printf(车次 ); gets(Ti.code); 。5 。 printf(日期 ); gets(Ti.data); printf(起点 ); gets(Ti.lp); pr。

7、intf(终点 ); gets(Ti.ap); printf(开车时间 ); gets(Ti.lt); printf(到达时间 ); gets(Ti.at); printf(票价 ); gets(Ti.price); n+; i+; while(iN); WRITE(); system(cls); printf(n); printf( -n); printf(系统记载的列车信息如下n); printf( -nn); PRINT(); / /文件记录模块 void WRITE() FILE *fp,*fp1; if(fp=fopen(hchsk.txt,w)=NULL) 。6 。 if(fp1=。

8、fopen(N.txt,w)=NULL)/用于记录共几趟车 for(i=0;in;i+) if(fwrite( printf(无法创建文件!n); getchar(); return; printf(无法创建文件!nn); getchar(); return; fprintf(fp1,%d,n); fclose(fp); fclose(fp1); / /文件读取模块 void READ() FILE *fp,*fp1; if(fp=fopen(hchsk.txt,r)=NULL) if(fp1=fopen(N.txt,r)=NULL) 。 printf(无法打开文件n); getchar();。

9、 return; 7 。 fscanf(fp1,%d, fclose(fp1); for(i=0;in;i+) fclose(fp); fread( printf(无法打开文件!nn); getchar(); return; / /打印模块 void PRINT() char ch10; READ(); printf(n =n) ; printf(GeShi); for(i=0;in;i+) printf(Print); printf( =n) ; printf(n按任意键返回上级菜单: ); gets(ch); 。8 。 / /查询模块 void SEARCH() char name110;。

10、/车次 char name210;/终点 char name310;/起点 char name4110;/终点 char name4210;/日期 char choice; int j; int k; do system(cls); printf(nn = 欢迎进入查询火车时刻信息界面 =n); printf(n+ 请 选 择 查 找 方 式 +nn); printf( -1.显示所有列车信息 2.按车次查询 3.按终 点查询-n); printf( -4.按起点查询 5.按终点和日期查询 6.返回 上级菜单-n); printf(n请选择: ); scanf(%d, gets(l); swi。

11、tch(j) case 1: 。9 。 PRINT(); break; case 2: printf(n - 请输入车次 -: ); gets(name1); break; case 3: printf(n - gets(name2); break; case 4: printf(n - gets(name3); break; case 5: printf(n - gets(name41); printf(n - gets(name42); break; case 6: break; default: WRONG (); break; READ(); k=0; if(j=2) 请输入终点 -:。

12、 ); 请输入起点 -: ); 请输入终点 -: ); 请输入日期 -: ); 10。 。 for(i=0;in;i+) if(strcmp(Ti.code,name1)=0) printf(n按 车次 查找列车信息 成功!n); printf(n =n) ; for(i=0;i 共查询到 %d 趟列车信息,请按任意键返 回 - ,k); if(j=3) 。11 gets(l); 。 for(i=0;in;i+) if(strcmp(Ti.ap,name2)=0) printf(n按 终点 查找列车信息 成功!n); printf(n =n) ; for(i=0;i 共查询到 %d 趟列车信息。

13、,请按任意键返 回 - ,k); if(j=4) 。12 gets(l); 。 for(i=0;in;i+) if(strcmp(Ti.lp,name3)=0) printf(n按 起点 查找列车信息 成功!n); printf(n =n) ; for(i=0;i 共查询到 %d 趟列车信息,请按任意键返 回 - ,k); gets(l); if(j=5) 。13 。 for(i=0;in;i+) if(strcmp(Ti.ap,name41)=0 printf(n =n) ; for(i=0;i 共查询到 %d 趟列车信息,请按任意键返 回 继续查找(1),返回主菜单(2)- choice=。

14、getchar(); gets(l); if(choice!=1 while(choice!=1 while(choice!=2); / /统计模块 void SELECT() char name110;/终点 char name210;/起点 int t,k; char choice; do system(cls); printf(nn=欢迎进入统计火车车次界面 =n); printf(n -|- -|- -|- -|-请选择统计方式 -|- -|- -|- -|- nn); printf( 1.按终点统计每日的车次数n); printf( 2.按起点统计每日的车次数n); printf(n。

15、请选择: ); scanf(%d, gets(l); 。15 。 switch(t) case 1: printf(请输入终点: ); gets(name1); break; case 2: printf(请输入起点: ); gets(name2); break; default: WRONG(); break; READ(); if(t=1) k=0; for(i=0;in;i+) if(strcmp(Ti.lp,name1)=0) printf(n 成功!n); break; for(i=0;i 共查询到 %d 趟列车信息,请按任意键返 回 - ,k); if(t=2) k=0; for(i=0;in;i+) if(strcmp(Ti.lp,name2)=0) printf(n按 起点 统计列车信息 gets(l); 成功!n); for(i=0;i 共查询到 %d 趟列车信息,请按任意键返 if(strcmp(Ti.lp,name2)=0) k+; break; 回 继续统计(1),返回主菜单(2) ! ! ! 输入错误,请按任意键返回 ! ! ! - 。18 。 欢迎您的下载,欢迎您的下载, 资料仅供参考!资料仅供参考! 致力为企业和个人提供合同协议, 策划案计划书,学习课件等等 打造全网一站式需求 。19。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值