免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
火车票务管理系统一、 课题内容和要求设计目标:设计一个火车票务管理系统,用C语言实现。对该系统的要求如下:需求描述:1.系统功能(1)火车时刻信息录入。包括车次、日期、起点、终点、开车时间、到达时间、票价。数据存入数据文件hchsk.dat或hchsk.txt中。(2)火车时刻信息查询。按照车次查询按终点查询按起点查询按终点和日期查询 (3)统计 按终点统计每日的车次数 按起点统计每日的车次数2. 系统主界面应有以下功能选项录入火车时刻信息查询火车时刻信息统计火车车次退出注:建议用VC环境开发用户界面。结果形式:提交程序设计报告和可演示的系统软件二、需求分析系统主界面应有以下功能选项1录入火车时刻信息2查询火车时刻信息3统计火车车次4.退出 (1)火车时刻信息录入。包括车次、日期、起点、终点、开车时间、到达时间、票价。数据存入数据文件hchsk.dat或hchsk.txt中。(2)火车时刻信息查询。按照车次查询按终点查询按起点查询按终点和日期查询 (3)统计 按终点统计每日的车次数 按起点统计每日的车次数二、 概要设计 void SearchTrainNum();/按照车次查询void SearchToPlace();/按终点查询void SearchFromPlace();/按起点查询void SearchToPlaceAndDate();/按终点和日期查询void CountToPlace();/按终点统计每日的车次数void CountFromPlace();/按起点统计每日的车次数三、详细设计 程序的源代码与注释 #include#include#includevoid SearchTrainNum();void SearchToPlace();void SearchFromPlace();void SearchToPlaceAndDate();void CountToPlace();void CountFromPlace();void Star();struct TRAIN char trainNum10; char date30;char fromPlace20;char toPlace20;char inTime30;char outTime30; double price;struct TRAIN train30;int main() int request; char ch=Y;int i=0;double myprice; FILE *fp;repeat: Star(); printf(火车管理系统界面n);printf(1.录入火车时刻信息.n);printf(2.查询火车时刻信息.n);printf(3.统计火车车次.n);printf(4.退出.n); Star();printf(n);printf(请输入:);scanf(%d,&request);switch(request) /利用case分支结构case 1: fp=fopen(.train.rec,wb); /利用文件与流 if(!fp) printf(File can not be openedn); exit(1); doprintf(Enter车次 日期 起点 终点 开车时间 到达时间 票价n );scanf(%s%s%s%s%s%s%lf,traini.trainNum,traini.date,traini.fromPlace ,traini.toPlace,traini.inTime,traini.outTime,&myprice);traini.price=myprice;fwrite(&traini,sizeof(struct TRAIN),1,fp);i+; printf(continue(Y/N)(N to end)?);getchar(); scanf(%c,&ch); while(ch!=N); fclose(fp);printf(返回主界面吗?(Y返回);getchar();scanf(%c,&ch);if(ch=Y)printf(nn);goto repeat; break; case 2: printf(nn); printf(火车时刻信息查询火车车次统计系统);scanf(%s,num);while(!feof(fp1)fread(&traini,sizeof(struct TRAIN),1,fp1);if(strcmp(num,traini.trainNum)=0)printf(%-4s%-12s%-8s%-10s%-10s%-8s%.2lf,traini.trainNum,traini.date,traini.fromPlace,traini.toPlace,traini.inTime,traini.outTime,traini.price);printf(n);i+; printf(continue(Y/N)(N to end)?); getchar(); scanf(%c,&ch);while(ch!=N);printf(n);fclose(fp1);void SearchToPlace()FILE *fp2;char num20;char ch;int i=0;fp2=fopen(.train.rec,r+); if(!fp2)printf(File can not be openedn);exit(1); dorewind(fp2);printf(输入你要查询的终点.n);scanf(%s,num);while(!feof(fp2)fread(&traini,sizeof(struct TRAIN),1,fp2);if(strcmp(num,traini.toPlace)=0)printf(%-4s%-12s%-8s%-10s%-10s%-8s%.2lf,traini.trainNum,traini.date,traini.fromPlace,traini.toPlace,traini.inTime,traini.outTime,traini.price);printf(n);i+; printf(continue(Y/N)(N to end)?); getchar(); scanf(%c,&ch);while(ch!=N);printf(n);fclose(fp2);void SearchFromPlace()FILE *fp3;char num20;char ch;int i=0;fp3=fopen(.train.rec,r+); if(!fp3)printf(File can not be openedn);exit(1); dorewind(fp3);printf(输入你要查询的起点.n);scanf(%s,num);while(!feof(fp3)fread(&traini,sizeof(struct TRAIN),1,fp3);if(strcmp(num,traini.fromPlace)=0) printf(%-4s%-12s%-8s%-10s%-10s%-8s%.2lf,traini.trainNum,traini.date,traini.fromPlace,traini.toPlace,traini.inTime,traini.outTime,traini.price); printf(n);i+; printf(continue(Y/N)(N to end)?); getchar(); scanf(%c,&ch);while(ch!=N);printf(n);fclose(fp3);void SearchToPlaceAndDate()FILE *fp4;char num20;char num120;char ch;int i=0;fp4=fopen(.train.rec,r+); if(!fp4)printf(File can not be openedn);exit(1); dorewind(fp4);printf(输入你要查询的终点与日期.n);scanf(%s,num);scanf(%s,num1);while(!feof(fp4)fread(&traini,sizeof(struct TRAIN),1,fp4);if(strcmp(num,traini.toPlace)=0)&(strcmp(num1,traini.date)=0)printf(%-4s%-12s%-8s%-10s%-10s%-8s%.2lf,traini.trainNum,traini.date,traini.fromPlace,traini.toPlace,traini.inTime,traini.outTime,traini.price); printf(n);i+; printf(continue(Y/N)(N to end)?); getchar(); scanf(%c,&ch);while(ch!=N);printf(n);fclose(fp4);void CountToPlace()FILE *fp5;char num20;char ch;int i=0;int j=0;fp5=fopen(.train.rec,r+); if(!fp5)printf(File can not be openedn);exit(1); dorewind(fp5);printf(输入你(要统计的车次数的)终点.n);scanf(%s,num); j=0;while(!feof(fp5)fread(&traini,sizeof(struct TRAIN),1,fp5);if(strcmp(num,traini.toPlace)=0) j+;i+;printf(当日终点%s的车次数:%d,num,j);printf(n); printf(continue(Y/N)(N to end)?); getchar();scanf(%c,&ch);while(ch!=N);fclose(fp5);void CountFromPlace()FILE *fp6;char num20;char ch;int i=0; int j=0;fp6=fopen(.train.rec,r+); if(!fp6)printf(File can not be openedn);exit(1); dorewind(fp6);printf(输入你(要统计的车次数的)起点.n);scanf(%s,num); j=0;while(!feof(fp6)fread(&traini,sizeof(struct TRAIN),1,fp6);if(strcmp(num,traini.fromPlace)=0) j+;i+;printf(当日起点%s的车次数:%d,num,j);printf(n); printf(continue(Y/N)(N to end)?); getchar();scanf(%c,&ch);while(ch!=N);fclose(fp6);void Star()int i;for(i=0;i20;i+)printf(*);printf(n);四、测试数据及其结果分析(如图)1.火车时刻信息录入2. 火车时刻信息查询。(1)按照车次查询(2) 按终点查询(3) 按起点查询(4)按终点和日期查询3.统计(1)按终点统计每日的车次数(2)按起点统计每日的车次数4.退出。五、调试过程中的问题编译过程中由于MicrosoftVisualStudioC+6.0编译器的原因。直接给结构体double赋值会出现问题。在金老师的指导和帮助下:程序改为如下:struct TRAIN char trainNum10; char date30;char fromPlace20;char toPlac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浅析《盗墓笔记》中铁三角人物形象的塑造本科毕业论文
- 毕业论文模板及表格填写规范
- 文科类毕业论文格式规范2
- 浅析民间传说的现代意义
- 学位论文写作中的十个问题共32
- 采购管理体系范文
- 蓝墨云教材在线编辑器的开发与研究-以计算机基础课程为例
- 论文研究计划怎么写
- 浅析建筑施工质量管理存在的问题及对策
- 分析中药饮片现状及其发展策略
- 2025至2030年中国企业资产管理(EAM)软件行业市场全景调研及投资前景研判报告
- 造价咨询劳务合同协议
- 2025师德师风建设专题培训大纲
- 儿童康复考试试题及答案
- 《自动识别技术》课件-项目四 低频卡技术
- 饮料生产卫生规范培训
- 供应商整改管理制度
- 大中型企业安全生产标准化管理体系要求变化解读
- 2025年泵站运行工职业技能比武竞赛参考试指导题库500题(含答案)
- 2025年装饰艺术考试试题及答案
- 改革开放与新时代知到智慧树章节测试课后答案2024年秋同济大学
评论
0/150
提交评论