ImageVerifierCode 换一换
格式:DOC , 页数:40 ,大小:202.50KB ,
资源ID:4560006      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4560006.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(车票管理系统.doc)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

车票管理系统.doc

1、 车票管理系统 40 2020年4月19日 文档仅供参考 一、课程设计的内容 车票管理系统 一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如 班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数 1 8:00 郫县 广汉 2 45 30 2 6:30 郫县 成都

2、 0.5 40 40 3 7:00 郫县 成都 0.5 40 20 4 10:00 郫县 成都 0.5 40 2 … (一)功能要求:用c/c++设计一系统,能提供下列服务: (1)录入班次信息(信息用文件保存),可不定时地增加班次数据 (2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。 (3)查询路线:可按班次

3、号查询 ,可按终点站查询 (4)售票和退票功能 A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数 B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数 二、课程设计的要求与数据 1、进一步掌握和利用C语言进行程设计的能力; 2、进一步理解和运用结构化程序设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用流程图或N-S图表示算法; 6、掌握书写程序设计开发文档的能力。 三、课程设计应完成的工作 1、编写完成相应题目的程序; 2、编写课程设计报告

4、课程设计报告的内容应包括以下6个部分: 1) 需求分析:包括设计题目、设计要求以及系统功能需求分析; 2) 总体设计:包括系统总体设计框架和系统功能模块图; 3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图; 4) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图); 5) 总结:课程设计完成了哪些功能,有没有什么扩展功能?还有哪些地方需要改进?课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容; 6) 附录:主要源程序代码,含必要

5、的注释。 3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解 决问题、运行程序和回答教师提出的问题。 目 录 第一章 目的与要求 5 第二章 总体设计 6 第三章 详细设计 9 3.1功能模块设计 9 3.2数据结构设计 11 第四章 调试分析 12 第五章 总 结 14 第六章 附录 15 参考文献 25 第一章 目的与要求

6、编写目的: 便于车站管理部门对汽车班次信息的统计和管理,提高车站部门的工作效率,能够更好的为市民服务,同时也便于旅客了解相关的信息,方便出行。 要求: 1.能够录入汽车班次信息,如班次号,发车时间,起点站,终点站,行车时间,额载量,已订票人数等。 2.能够浏览班次信息,显示信息总和(如果已发出站的要要显示“已经开出”)。 3.查询路线:可按班次号查询 ,可按终点站查询。 4.售票功能:当查询出已定票人数小于额定载量且当前系统时间小于发车时间才能售票,自动更新已售票人数。 5.退票功能:输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。

7、 第二章 总体设计 1)系统总体设计框架 车票管理系统 录入班次信息 浏览班次信息 查询路线 售票 退票 保存信息 退出系统 按班次查询 按终点站查询 2)主要功能流程图: 录入班次信息功能流程图: 按y继续录入班次 信息录入成功 输入错误 录入班次 输入发车时间 输入行车时间 输入起点站 输入额定载量 按任意键返回主

8、菜单 按Y继续查找,按任意键返回主菜单 按2终点站查询 按1按班次查询 进入查询界面 浏览班次功能流程图: 依据提示操作 进入售票界面 售票系统工作流程图: 售票成功 班次不存在 票已售完 车已发出 继续售票按Y,返回主菜单按任意键 第三章 详细设计 3.1功能模块设计 3.1.1售票函数 while(选择的是“Y”) {打印当前时间 打印“班次 发车时间 起点站 终点站 行车时间 额定载量 已定票

9、人数” for() { 输出班次信息 』 提示输入车的班次 } if(当查询出已定票人数小于额定载量且当前系统时间小于发车时间时) {提示售票成功! 订票人数加1; } IF(额定载量小于订票人数) { 提示票已售完!; } else if(输入的班次号小于零) {该车不存在!} else if(当前系统时间晚于发车时间) { 提示车已发出! } 提示继续售票按Y,按任意键返回主菜单! 输入一个字符; } } 3.1.2退票函数 while(输入的是Y的时候) { 提示输入要退票的车次; 输入一个字符; } if(输入的班

10、次号存在和系统时间比发车时间晚) {订票人数-1; 提示退票成功! } else if(输入的班次号小于零) 提示该班次不存在!; ) else if(要退票的那辆车的发车时间早过现在系统时间) { 提示车已发出不能退票!; 提示继续退票请按(Y),返回主菜单按任意键; 输入一个字符; } } 3.1.3菜单函数 { 打印“车票管理系统”; 打印“系统时间”; 打印“录入班次信息”; 打印“查询班次信息”; 打印“售票”; 打印“退票”; 打印“保存车次信;"; 打印“退出系统”; 打印“请选择(0--6)”; 打印“车票管理系统; 得到一个

11、字符; 返回值; } struct Buses{//定义汽车 int number; struct Times time; char start[30]; char end[30]; float time_cost; int carry_number; int booK_number; }; 数据结构2 3.2数据结构设计(可选) struct Times {int hour; int min; int sec; }; 数据结构1 程序中涉及的数据过多,本人决定采用两个结构体处理数据。其中时间为一个数据结构体(即结

12、构1),它又是汽车结构体(即结构2)的一个成员元素,这样处理数据容易些。 第四章 调试分析 本人在写代码的过程中觉得难控制的是那个班次数。因为本系统提供了个录入信息功能,能够不定时的增加班次,即这个班次数是不确定的。而这个班次数又影响到查询函数,退票函数,售票函数等,另外还影响到一些功能小函数,如比较时间函数等。经过上网查找资料,我发现有一个巧妙的方法能够解决这个问题,即设定一个静态局部变量(即代码中的H),这样每当班次号改变之后这个H的值就和它的班次号一样大,这样就能够解决之前提到的问题了。另外,这个系统要有一个保存文件功能,由于本人对文件保存处理不清楚,设计过程中一直搞不明白。最

13、后在网上查到了相关信息才能够弄出。 以下是该程序运行的部分结果: 主界面: 信息录入图和浏览时刻表: 查询售票图: 退票图: 保存信息图: 第五章 总 结 经历近几天的学习和锻炼,这个车票管理系统算是做出来了(不过我承认我是参考网上代码所得,我基本能看懂)。它基本有前面提到过的功能,即录入班次信息,浏览班次信息,售票和退票,保存文件。有一个扩展功能,即能够退出系统(代码中的sys_exit()函数)。 不过当前我发现它一个不足之出,就是不能对输入时间的格式起限制作用。如我能够输入26:30:00,它系统不会提示

14、说输入错误提示再输入一个正确的时间。还有,就是整个代码条理不够清晰,只是用到一个主函数和调用其它函数,可读性差!我认为最好是能分模块化处理,分文件处理,这样条理性强,可读性高,再者修改也容易。不过由于本人水平有限,不能这样处理。 经历这近几天的锻炼,我也比较满意自己的表现。在这过程中我查阅了很多书,学到了很多课堂上没有的东西。很多知识我之前不知道的现在大部分都知道了,不过理解不够深透,,导致在这近几天里碰了不少壁! 近几天我觉得编程既是一项费时费力但也是有趣的事。说它费时费力是因为它繁琐,而有趣是因为我很享受一段段的小程序编成功之后的喜悦,苦尽干来啊。我觉得编程是一件快乐的差事,我想我今后

15、会加把时间学习它,把它学好。 第六章 附录 程序代码: #include"stdio.h" #include"time.h" #include"windows.h" #include"string.h" #include"dos.h" #include"stdlib.h" #include"ctype.h" #define Max 50//最大贮赌量 #define null 0 static int H=0; struct Times {//定义时钟 int hour; int min; int sec; }; struct Buses{/

16、/定义汽车 int number; struct Times time; char start[30]; char end[30]; float time_cost; int carry_number; int booK_number; }; struct Buses bus[Max]; time_t now = time(0); tm *tnow =localtime(&now); void load();//载入车次信息 void lu(void);//声明录入函数 void chaxun(struct Buses bus[]);//声明查询路线函数 void

17、 save(struct Buses bus[]);//声明保存函数 int caidan();//声明菜单录数 void liulan(struct Buses bus[]);//声明浏览函数 void tuipiao(struct Buses bus[]);//退票 void shoupiao(struct Buses bus[]);//声明售票函数 void xitongtuichu();//声明退出函数 //工具函数 struct Buses copy(struct Buses b1,struct Buses b2);//赋值 void sort_time(struct

18、 Buses bus[]);//声明按时间发车的先后顺序排序 int compare_time(struct Times t1,struct Times t2);//时间比较函数 int compare_systime(struct Buses bus,tm *T);//比较发车时间与当前系统时间的函数 void print(struct Buses bus);//声明输入出函数 int number_search(struct Buses bus[],int num);//声明按班次查询函数 int end_search(struct Buses bus,char ends[]);

19、//声明按终点查询函数 void main(){//主函数 while(1){ system("cls"); switch(caidan()){ case 1: lu(); break; case 2: liulan(bus); break; case 3: chaxun(bus); break; case 4: shoupiao(bus); break; case 5: tuipiao(bus); break; case 6: save(bus); break; case 0: xitongtuichu(); break; } } } int compare_s

20、ystime(struct Buses bus,tm *T){//与系统时间的比较函数 if(bus.time.hour>=T->tm_hour){ return 1; if(bus.time.min>=T->tm_min){ return 1; if(bus.time.sec>T->tm_sec) return 1; else return 0; } return 0; } return 0; } struct Buses copy(struct Buses b1,struct Buses b2){ b1.booK_number=b2.booK_number;

21、b1.carry_number=b2.carry_number; strcpy(b1.end,b2.end); b1.number=b2.number; strcpy(b1.start,b2.start); b1.time.hour=b2.time.hour; b1.time.min=b2.time.min; b1.time.sec=b2.time.sec; b1.time_cost=b2.time_cost; return b1; } void liulan(struct Buses bus[]){//浏览车次 getchar(); system("cls");

22、 int i; printf("\n\t\t\t\t车辆时刻表\n"); printf("\t\t\t**************************\n"); printf("\t班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数"); printf("\n\t--------------------------------------------------------------\n"); sort_time(bus); for(i=0;i

23、\n"); printf("\t\t\t\t%d条记录!\n",H); printf("\t按任意键返回主菜单..."); getchar(); } int compare_time(struct Times t1,struct Times t2){//比较时间大小 if(t1.hour>t2.hour){ return 1; if(t1.min>=t2.min){ return 1; if(t1.sec>=t2.sec) return 1; else return 0; } retur

24、n 0; } return 0; } void sort_time(struct Buses bus[]){//按发车时间排序 int i,j,k; struct Buses b={0}; for(i=0;i

25、 int number_search(struct Buses bus[],int n){//按班次查询 int i; for(i=0;i

26、ime(bus,tnow)) printf("\t%-6d%-2d:%-2d:%-2d%6s%8s%8.1f%10d%10d(已发出)\n",bus.number,bus.time.hour, bus.time.min,bus.time.sec,bus.start,bus.end,bus.time_cost,bus.carry_number,bus.booK_number); else printf("\t%-6d%-2d:%-2d:%-2d%6s%8s%8.1f%10d%10d\n",bus.number,bus.time.hour, bus.time.min,bus.time.s

27、ec,bus.start,bus.end,bus.time_cost,bus.carry_number,bus.booK_number); } int caidan(){ int a; system("cls");//以下是菜单图案 printf("\n\n"); printf("\t\t 车票管理系统 \n"); printf("\t\t ***************** (%d年%d月%d日)\n", 1900+tnow->tm_year,tnow->tm_mon+1,tnow->tm_mday); printf("\t\t|----------------------

28、\n"); printf("\t\t| 菜单 |\n"); printf("\t\t|----------------------------------------------|\n"); printf("\t\t| (1) 录入班次信息 |\n"); printf("\t\t|----------------------------------------------|\n"); printf("\t\t| (2) 显示班次信息 |\n"); printf("\t\t|------------------------------

29、\n"); printf("\t\t| (3) 查询班次信息 |\n"); printf("\t\t|----------------------------------------------|\n"); printf("\t\t| (4) 售票 |\n"); printf("\t\t|----------------------------------------------|\n"); printf("\t\t| (5) 退票 |\n"); printf("\t\t|--------------------------------------

30、\n"); printf("\t\t| (6) 保存车次信息 |\n"); printf("\t\t|----------------------------------------------|\n"); printf("\t\t| (0) 退出系统 |\n"); printf("\t\t|----------------------------------------------|\n"); printf("\n\t\t请选择(0-6):"); scanf("%d",&a); return(a); } void save(struct Buses bus

31、[]){//保存函数体 getchar(); FILE *fp; int i; if((fp=fopen("Bus_system","wb"))==null){ printf("不能打开文件\n"); return; } for(i=0;i

32、'Y'; while(toupper(flag)=='Y'){ system("cls"); printf("\n\t\t车次信息录入\n请输入车的班次:"); scanf("%d",&bus[i].number); getchar(); while(number_search(bus,bus[i].number)>=0){ printf("你输入的班次已存在请重新输入!:"); scanf("%d",&bus[i].number); getchar(); } printf("请输入时间如:(20:30:00) :"); scanf("%d:%d:%d",&bus[i]

33、time.hour,&bus[i].time.min,&bus[i].time.sec); getchar(); printf("请输入车的起点站:"); scanf("%s",bus[i].start); getchar(); printf("请输入车的终点站:"); scanf("%s",bus[i].end); getchar(); printf("请输入行车时间:"); scanf("%f",&bus[i].time_cost); getchar(); printf("请输入车的额定载量:"); scanf("%d",&bus[i].carry_numbe

34、r); getchar(); bus[i].booK_number=0; H++; i++; printf("信息录入成功!\n"); printf("继续录入请按(Y),返回主菜单按任意键..."); flag=getchar(); } } void chaxun(struct Buses bus[]){//查询路线 int a,i=0; int m=0; char flag='Y'; while(toupper(flag)=='Y'){ char end[30]; system("cls"); printf("\n按班次查询请按 1\n终点站查询请按 2\

35、n请选择(1-2):"); scanf("%d",&a); while(a!=1&&a!=2){ printf("注意只能选择1或2!\n请重新输入:"); scanf("%d",&a); getchar(); } switch(a) { case 1:{ printf("请输入车次号:"); scanf("%d",&m); getchar(); i=number_search(bus,m); if(i>=0){ printf("\n\t\t\t\t车辆时刻表\n"); printf("\t\t\t**************************\n");

36、 printf("\t班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数"); printf("\n\t--------------------------------------------------------------\n"); print(bus[i]); printf("\t--------------------------------------------------------------\n"); } else printf("\n\t\t\t没有你要查找的记录!\n"); }break; case 2:{ printf("请输入车的终点站

37、"); scanf("%s",end); getchar(); while(i

38、]); i++;} break; } for(i;i

39、按任意键..."); flag=getchar(); } } void shoupiao(struct Buses bus[]){//售票函数 int i,n; char flag='Y'; while(toupper(flag)=='Y'){ system("cls"); printf("\n\t\t\t\t车辆时刻表\n"); printf("\t\t\t************************** 当前时间(%d:%d:%d)\n", tnow->tm_hour,tnow->tm_min,tnow->tm_sec); printf("\t班次 发车时间

40、 起点站 终点站 行车时间 额定载量 已定票人数"); printf("\n\t--------------------------------------------------------------\n"); for(int j=0;j

41、har(); if(n>=0&&bus[n].carry_number>bus[n].booK_number&&compare_systime(bus[n],tnow)){ printf("\n\t\t\t售票成功!\n"); bus[n].booK_number++; printf("\t班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数"); printf("\n\t--------------------------------------------------------------\n"); print(bus[n]); printf("\n\t-----

42、\n"); } if(bus[n].carry_number<=bus[n].booK_number) printf("\n\t\t\t该次车的票已售完!\n"); else if(n<0) printf("\n\t\t\t该次车不存在!\n"); else if(!compare_systime(bus[n],tnow)) printf("\n\t\t\t该次已发出!\n"); printf("\t\t继续售票请按(Y),返回主菜单按任意键..."); flag

43、getchar(); } } void tuipiao(struct Buses bus[]){//退票函数 int n,i; char flag='Y'; while(toupper(flag)=='Y'){ system("cls"); printf("\n\n请输入车次:"); scanf("%d",&n); getchar(); i=number_search(bus,n); if(i>=0&&compare_systime(bus[i],tnow)){ bus[i].booK_number--; printf("\n\t\t\t退票成功!\n"); }

44、 else if(i<0) printf("\n\t\t\t该车次不存在!\n"); else if(!compare_systime(bus[n],tnow)) printf("\n\t\t\t车已发出不能退票!\n"); printf("\t继续退票请按(Y),返回主菜单按任意键..."); flag=getchar(); } } void load()//载入车次信息 { FILE *fp; int i=0; while((fp=fopen("Bus_system","rb"))==NULL) //以rb形式打开文件 return; for(i;!feof(f

45、p);i++,H++) { if(fread(&bus[H],sizeof(struct Buses),1,fp)!=1){} if(feof(fp)) { fclose(fp); return; } } fclose(fp); } void xitongtuichu(){//退出函数 system("cls"); getchar(); char flag=null; printf("\n\n\t\t你确定要退出并保存信息吗?(Y/N)"); flag=getchar(); if(toupper(flag)=='Y') { save(bus); exi

46、t(0); } else if(toupper(flag)=='N') exit(0); else return; } 参考文献 1、 谭浩强编著, C程序设计 1991年7月 2、 裘宗燕 著,从问题到程序科学出版社,北京大学出版社,1999年4月。 3、 刘瑞挺主编,计算机二级教程,南开大学出版社,1996年10月。 4、 陈朔鹰等编著,C语言程序设计基础教程,兵器工业出版社,1994年9月 5、 姜仲秋等主编,C语言程序设计,南京大学出版社,1998年1月。 6、《C程序设计(第二版)》,谭浩强编,清华大学出版社,1999年12月。 7、《C语言程序设计题解与上机指导》,谭浩强编,清华大学出版社, 11月。 8、《Turbo C 2.0实用大全》,常玉龙等编写,北京航空航天大学出版社,1994年9月。 9、《C语言程序设计习题集(第二版)》,陈朔鹰 陈英主编,人民邮电出版社, 2月。 10、《C语言趣味程序百例精解》,陈朔鹰 陈英主编,北京理工大学出版社,1996年。 11、《C语言程序设计辅导与习题集》,田淑清等,中国铁道出版社, 1月。 12、《C语言编程常见问题解答》,[美]Paul S. R. Chishohm等著,张芳妮 吕波译,清华大学出版社,11996年12月。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服