已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
车票管理系统详细说明: 1程序功能: L/ L) j2 P R P8 ?1 N1 U一车站每天有n个发车班次,每个班次都有一班次号(1、2、3、n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如:+ 7 U$ p7 P) w: v. P班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数+ x8 L! b9 4 x. D# A1 8:00 重庆 昆明 10 45 30# aO+ U3 v$ |: I- v, 0 2 B k2 6:30 重庆 成都 4 40 406 L$ X, r% W9 E! t3 7:00 重庆 成都 4 40 20+ N/ D1 A) s6 E) x7 % V) h7 H- L4 10:00 重庆 成都 4 40 2/ J1 V6 R5 |6 1 V3 G$ w5 B V$ N) w% A* j* x现要求设计一个管理系统,能完成如下功能:& L: i9 c/ 8 Y/ r7 v(1)录入班次信息(信息用文件保存),可不定时地增加班次数据;6 G, t; E$ n. Y( A ( b: C: K(2)浏览班次信息,可显示出所有班次当前状况(如果当前系统时间超过了某班次的发车时间,则显示此班已发出的提示信息);. j+ f: K/ j7 p( n; h9 P(3)查询路线:可按班次号查询 ,也可按终点站查询;* Ff& h+ l8 v# v( g% d; y2 s$ |(4)售票和退票功能。, D. o2 r% x) M! 8 I M* v:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数;; J; ?( y! V4 C:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。1 J4 g# G7 j e6 l 2设计思想. e* n/ Y e此系统可参照学生成绩管理系统的部份设计方法而设计。$ C. J6 Y6 S! _4 l+ D4 x0 C 车票管理系统车票管理系统一车站每天有n个发车班次,每个班次都有一班次号(1、2、3n),固定的发车时间,固定的路线(起始站、终点站), 大致的行车时间,固定的额定载客量。如 班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数 1 8:00 郫县 广汉 2 45 30 2 6:30 郫县 成都 0.5 40 40 3 7:00 郫县 成都 0.5 40 20 4 10:00 郫县 成都 0.5 40 2 (一)功能要求:用c/c+设计一系统,能提供下列服务: (1)录入班次信息(信息用文件保存),可不定时地增加班次数据 (2)浏览班次信息,可显示出所有班次当前状态(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。 (3)查询路线:可按班次号查询 ,可按终点站查询 (4)售票和退票功能 A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数 B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数 (二)其它要求: (1) 只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读 (2) 至少采用文本菜单界面(如果能采用图形菜单界面更好) (3) 学生可自动增加新功能模块 */ #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 DeparturePointMAX; char TerminalPointMAX; float LastTime; int FixNumber; int FixedNumber; carN; 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); /退出该系统 /*/ int main(void) RecordNumber=ShowMessage(); if(1) do mainmenu(); while(FLAG=FALSE); return 0; void mainmenu(void) system(color 1f); system(mode con: cols=140 lines=130); char functionNumber; printf( 车票管理系统nn); printf( 制作:hmm182007n); printf( 日期:2007/11/25/19:57n); printf(=n); printf( 1.录入班次信息tn); printf( 2.浏览班次信息tn); printf( 3.查询行车路线tn); printf( 4.售票与退票系统tn); printf( 5.退出该系统tn); printf(=n); printf(请选择你所需要的功能:); scanf(%c,&functionNumber); switch(functionNumber) case 1: InsertMessage(); printf(n按任意键回主菜单.n); getchar(); getchar(); break; case 2: 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 filenameMAXFILENAME; int i; printf(请输入文件名或者文件路径名:); scanf(%s,filename); if(fp=fopen(filename,r)=NULL) printf(文件%s不可读,请确认文件%s存在或者文件路径正确.nn,filename,filename); mainmenu(); for(i=RecordNumber;!feof(fp)&!ferror(fp);i+) fscanf(fp,%d%d%d,&cari.SerialNumber,&cari.SetOut.hour,&cari.SetOut.minutes); fscanf(fp,%s%s%f%d%d,&cari.DeparturePoint,&cari.TerminalPoint,&cari.LastTime,&cari.FixNumber,&cari.FixedNumber); int count=i; printf(班次t发车时间t起点t终点t行车时间(小时)t额定载量t已定票人数n); for(i=0;icount;i+) printf(%dt%d:%dtt,cari.SerialNumber,cari.SetOut.hour,cari.SetOut.minutes); printf(%st%stt%.1ft %dtt%dn,cari.DeparturePoint,cari.TerminalPoint,cari.LastTime,cari.FixNumber,cari.FixedNumber); fclose(fp); int ShowMessage(void) int i; FILE *fp; if(fp=fopen(add.txt,r)=NULL) printf(读取数据失败,请检查文件add.txt是否存在.n); exit(-1); for(i=0;!feof(fp)&!ferror(fp);i+) fscanf(fp,%d%d%d,&cari.SerialNumber,&cari.SetOut.hour,&cari.SetOut.minutes); fscanf(fp,%s%s%f%d%d,&cari.DeparturePoint,&cari.TerminalPoint,&cari.LastTime,&cari.FixNumber,&cari.FixedNumber); int count=i; printf(班次t发车时间t起点t终点t行车时间(小时)t额定载量t已定票人数n); for(i=0;icount;i+) printf(%dt%d:%dtt,cari.SerialNumber,cari.SetOut.hour,cari.SetOut.minutes); printf(%st%stt%.1ft %dtt%dn,cari.DeparturePoint,cari.TerminalPoint,cari.LastTime,cari.FixNumber,cari.FixedNumber); return count; void SearchMenu(void) system(color 1f); system(mode con: cols=140 lines=130); char functionNumber; printf( 查询子菜单n); printf(=n); printf( 1.按班次号查询tn); printf( 2.按终点站查询tn); printf( 3.返回主菜单tn); 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(%dt%d:%dtt,carSearchNumber-1.SerialNumber,carSearchNumber-1.SetOut.hour,carSearchNumber-1.SetOut.minutes); printf(%st%stt%.1ft %dtt%dn,carSearchNumber-1.DeparturePoint,carSearchNumber-1.TerminalPoint,carSearchNumber-1.LastTime,carSearchNumber-1.FixNumber,carSearchNumber-1.FixedNumber); void SearchByAddress(void) int i; char AddressMAX; printf(请输入终点站的名称:); scanf(%s,&Address); printf(班次t发车时间t起点t终点t行车时间(小时)t额定载量t已定票人数n); for(i=0;iRecordNumber;i+) /对比终点站记录,找到并输出 if(strcmp(Address,cari.TerminalPoint)=0) printf(%dt%d:%dtt,cari.SerialNumber,cari.SetOut.hour,cari.SetOut.minutes); printf(%st%stt%.1ft %dtt%dn,cari.DeparturePoint,cari.TerminalPoint,cari.LastTime,cari.FixNumber,cari.FixedNumber); void TicketManagement(void) char functionNumber; system(color 1f); system(mode con: cols=140 lines=130); printf( 订票与退票菜单n); printf(=n); printf( 1.订票tn); printf( 2.退票tn); printf( 3.返回主菜单.n); printf(=n); printf(选择你需要的功能:); scanf(%*c%c,&functionNumber); 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(iRecordNumber) printf(对不起,今天没有这趟车,请明天再来,谢谢使用!n); printf(按任意键回主菜单.n); getchar();/getchar(); TicketManagement(); time_t tval; struct tm *now; tval = time(NULL); now = localtime(&tval); if(now-tm_hour=cari.SetOut.hour&now-tm_mintm_hourcari.SetOut.hour) if(cari.FixedNumbercari.FixNumber) cari.FixedNumber+; printf(你的订票成功,请按时上车,谢谢使用!n); else printf(对不起,今天的这趟车的票已卖完,请明天再来,谢谢合作!n); else printf(对不起,今天的这趟车已发出,请明天再来,谢谢合作!n); printf(班次t发车时间t起点t终点t行车时间(小时)t额定载量t已定票人数n); printf(%dt%d:%dtt,cari-1.SerialNumber,cari-1.SetOut.hour,cari-1.SetOut.minutes); printf(%st%stt%.1ft %dtt%dn,cari-1.DeparturePoint,cari-1.TerminalPoint,cari-1.LastTime,cari-1.FixNumber,cari-1.FixedNumber); /printf(按任意键回主菜单.n); /getchar(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中七年级地理教学设计:南亚热带季风气候与农业差异的区域认知构建
- 高一英语Unit 2 Using language听力板块教学设计-聚焦观点表达的听说整合课
- 初中七年级科学“物质的特性”章末复习教学设计
- 三年级安全教育《低级玩笑不要开》教学设计
- 初中七年级英语上册词汇Day10语境化教学设计
- 第六节 几种重要的盐教学设计-九年级科学
- 小学四年级道德与法治教学设计:网络新世界的理性探索与素养养成
- 高中语文选择性必修下册古诗词诵读《拟行路难(其四)》教学设计
- 绿色供应链创新之路:XX联盟2025年趋势观察报告
- 2027届安徽省淮南市第一中学创新班高三物理第一学期期中调研试题含解析
- 中医彭涛课件
- 《代谢性疾病》课件
- 面瘫的中西医护理讲课
- 部编版九年级语文上册教科书(课本全册)课后习题参考答案
- 《团队协作与沟通技巧》课件
- 粮食买卖合同范本
- 眼镜片材料的选择-眼镜片材料
- 《户外运动安全知识》课件
- 煤矿安全生产标准化管理体系全套管理资料汇编含全部要素
- DZ∕T 0206-2020 矿产地质勘查规范 高岭土、叶蜡石、耐火粘土(正式版)
- 可靠性习题及答案汇编
评论
0/150
提交评论