火车票管理系统课程设计报告.docx
- 格式:docx
- 大小:34.63 KB
- 文档页数:34
车票管理系统课程设计报告车票管理系统课程设计报告车票管理系统一目的通过课程设计,加深对《C语言程序设计》和《数据结构》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用等;复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等),熟练掌握和巩固三种基本的数据结构(线性结构、树形结构、图形结构)的逻辑结构、存储结构以及相关运算和应用。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力二需求分析1、首先本演示程序要实现录入班次信息的功能,并且要用文件来保存这些信息,还可以不定时的增加班次数据。
2、需要浏览班次信息是可以一次性输出当前的班次状况,并且要从实际考虑,若当前系统时间已经超过了某班次的发车时间,则要显示“此班已发出”的提示信息。
3、此程序既为车票管理系统,就要实现查询路线、售票、退票等功能。
当使用查询路线功能时,要分两种情况:按班次号查询和按终点站查询。
若使用售票功能,则只有在查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,并且要自动跟新已售票人数。
退票要输入退票的班次,当本班车尚未出发时才能退票,也要自动更新已售票人次。
4、演示程序以用户和计算机的对话方式执行,即在计算机的屏幕上显示“提示信息”下,用户根据自己的意愿自行操作,每次测试完毕,新增加的班次信息要保存在data.txt文件中。
三概要设计1、本程序各个模块的功能及调用关系:(1)主程序模块main()函数:车票管理系统课程设计报告此主程序的主要目的是用来调用读取文件函数、功能菜单函数以及保存文件信息函数。
(2)文件读入与保存函数read()、save()以及功能菜单MainMenu()函数:这三个函数的主要目的是为了读取文件,保存文件和为用户创造一个功能菜单以便于用户的操作。
课程设计报告《车票管理系统》目录一、课程设计题目 (1)二、程序运行流程图 (2)三、程序设计的想法和具体思路 (3)四、参考文献 (3)附件一:设计进度 (4)附件二:源代码 (4)一、课程设计题目C++题目二十三:车票管理系统(限最多2人完成)一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。
如班次发车时间起点站终点站行车时间额定载量已定票人数1 8:00 郫县广汉2 45 302 6:30 郫县成都0.5 40 403 7:00 郫县成都0.5 40 204 10:00 郫县成都0.5 40 2…(一)功能要求:用C/C++设计一系统,能提供下列服务:(1)录入班次信息(信息用文件保存),可不定时地增加班次数据(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。
(3)查询路线:可按班次号查询,可按终点站查询(4)售票和退票功能A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数(二)其它要求:(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档二、程序运行流程图三、运行结果 1:2:四、参考文献李春葆,曾平,刘斌,《C++语言程序设计题典》,北京,清华大学出版社,2003年五、总结通过两周多的编程,我们对已学的专业知识有了比较深刻的认识,同时在查找资料或和其他同学交流的过程中,发现了一些问题,所以在设计的时候,遇到了很多困难。
在对所学的有限知识的理解和掌握下,在查找资料以及大家共同努力学习和讨论后终于把课题做完。
二○一三~二○一四学年第二学期车票管理系统实验报告物理与电子工程学院课程名称:数据结构班级:学号:姓名:二○一四年六月(1)题目:车票管理系统(2)系统功能模块结构图(3)各模块的功能1.信息输入模块即录入班次信息:完成班次信息的输入功能,输入信息包括班次、发车时间、起点站、终点站、行车时间、额定载量、已定票人数等;2.信息浏览模块即浏览班次信息:完成已录入信息的显示;3.信息查询模块即查询班次信息:完成班次信息的查询,查询时对应有按班次查询和按终点站查询两种方式;4.售票和退票模块:完成车票的购买和退订的功能;5.菜单选择模块即主菜单:完成用户命令的接收,此模块也是车票管理系统的入口,用户所要进行的各种操作均需在此模块中进行选择并进而调用其他模块实现相应的功能。
(4)数据结构设计及用法说明头文件,一个名TICKET的结构体进行定义:typedef struct ticket //用typedef定义结构体为TICKET{int num; //班次char starttime[10]; //发车时间char begin[21]; //起始站char end[21]; //终点站float lasttime; //行车时间int CarryNumber; //额定载量int SellNumber; //已定票人数struct ticket *next; //结点的指针域}TICKET,*Ticket; //结构体类型指针然后对各调用函数进行定义:void InsertTicket() //录入班次void FileRead() //班次信息文件读入void Keep() //保存数据void ScanTicket() //浏览信息void ScanTicket() //浏览信息void SearchbyNum() //按班次查询班次void SearchbyEnd() //按终点站查询班次void Buyticket() //预定车票void ReturnTicket() //退订车票int GetHour(char *s) //获取班次小时int GetMinute(char *s) //获取班次分钟void exit() //退出该系统最后定义main()函数,利用函数调用,实现程序的各种功能。
程序设计报告( 2014 / 2015 学年第一学期)题目:火车票管理系统专业通信工程学生姓名班级学号指导教师指导单位计算机学院计算机软件教学中心日期火车票务管理系统一、课题内容和要求(一)课题内容该系统要求实现一个简单、实用的火车票管理程序,主要功能包括火车票数据的录入、查找、删除、显示、售票、退票等。
所有火车票数据都要利用文件系统保存,以备系统下次运行时使用。
通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。
(二)课题要求(1)火车票数据由多条记录组成,其信息包括:车次,发车时间,起点站,终点站,行车时间,额定载量,已售票人数等。
(2)数据保存形式:所有火车票数据要以文本或二进制文件保存。
(3)需要实现的功能1)新增火车票数据记录。
2)查找火车票数据(可按车次,发车时间、起点站、终点站等查找)。
3)删除火车票数据记录(先查找,再删除。
若查找出多条记录,则进一步提示用户选择记录的车次,再删除)。
4)对火车票排序(可按车次、发车时间、起点站、终点站等排序。
)。
5)显示当前所有火车票信息列表。
6)售票(先查找,当确定车次后,根据售票张数对该车次的已售票人数进行修改)。
7)退票(售票的逆处理,过程与售票类似)。
8)保存火车票数据到文件中。
9)从文件中读入火车票数据。
(4)界面功能要求:1)采用友好的字符界面,实现一个功能控制菜单。
2)每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次操作。
需求分析一、功能分析图二、录入班次信息:依次输入班次、起点站和终点站等信息同时保存在文件中,并可以随时增加新的班次信息。
三、浏览班次信息:输出保存在文件中的全部班次信息,并区分当前的车次是否已发出,如发出则标记“此车已发出”。
四、按班次号查询路线:以输入的班次号为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”五、按起点站查询路线:输入的起点站为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”六、按终点站查询路线:输入的终点站为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”七、排列发车时间表:按照发车时间从早到晚的顺序逐条显示车次信息。
火车订票系统课程设计一、课程目标知识目标:1. 让学生掌握火车订票系统的基本原理和功能模块;2. 帮助学生了解数据库在火车订票系统中的应用;3. 引导学生理解火车票的查询、预订、支付等业务流程。
技能目标:1. 培养学生运用所学知识设计简单的火车订票系统功能模块;2. 提高学生分析问题、解决问题的能力;3. 培养学生团队协作和沟通表达的能力。
情感态度价值观目标:1. 激发学生对计算机科学与技术学科的兴趣和热情;2. 培养学生关注社会热点问题,关注信息技术在生活中的应用;3. 引导学生树立正确的价值观,认识到科技改变生活的重要性。
课程性质:本课程为信息技术与学科整合的实践性课程,结合实际生活中的火车订票系统,让学生在实践中掌握计算机科学与技术的基本知识和技能。
学生特点:六年级学生对计算机有一定的基础,具备一定的操作能力和逻辑思维能力,对新鲜事物充满好奇心。
教学要求:注重理论知识与实践操作相结合,以学生为主体,教师为主导,鼓励学生积极参与讨论和实践活动,提高学生的动手能力和创新能力。
通过本课程的学习,使学生能够将所学知识应用于实际问题的解决中。
二、教学内容1. 火车订票系统概述:介绍火车订票系统的基本概念、发展历程和在我国的应用现状。
相关教材章节:第三章 计算机网络应用2. 火车订票系统功能模块:分析火车订票系统的功能模块,包括用户注册、登录、查询、预订、支付、改签、退票等。
相关教材章节:第四章 数据库应用3. 数据库在火车订票系统中的应用:讲解数据库的基本概念,以及如何在火车订票系统中设计数据库表、实现数据存储和查询。
相关教材章节:第五章 数据库设计4. 火车票查询与预订:详细介绍火车票查询与预订的业务流程,包括车次查询、余票查询、预订车票等。
相关教材章节:第六章 互联网编程5. 火车订票系统设计与实现:引导学生运用所学知识,设计并实现一个简单的火车订票系统。
相关教材章节:第七章 网络编程实践教学进度安排:第一课时:火车订票系统概述第二课时:火车订票系统功能模块第三课时:数据库在火车订票系统中的应用第四课时:火车票查询与预订第五课时:火车订票系统设计与实现教学内容确保科学性和系统性,注重理论与实践相结合,使学生在掌握基本知识的基础上,能够运用所学技能解决实际问题。
山西大学商务学院《软件工程课程设计》报告题目: 火车站售票管理系统的设计与实现班级:10软件G2班组长:景巧鑫一、火车站售票管理系统二、小组成员及任务分配情况1. 开发目的和意义 ........ 1.1研究背景............ 1.2开发目的和意义.… 1.3完成情况 ............ 2. 开发技术及方法 ........ 2.1开发环境和开发工具 2.2技术及方法 .......... 2.2.1 B/S 模式 ........ 2.2.2 .NET ........... 2.2.3 ........ 3. 系统分析 .............. 3.1可行性分析 .......... 3.1.1 3.1.2 3.1.3 经济可行性技术可行性 操作可行性 3.2需求分析..... 3.2.1 功能需求 3.2.2数据需求 3.2.3性能需求 4. 系统设计 ....... 4.1总体设计..... 4.2详细设计..... 4.2.1过程设计 4.3数据库设计.. 4.3.1 4.3.2 4.3.3 4.3.4 用户表 ........ 车次详细信息表 订票纪录表 —— 退票纪录表 ……5.系统实现 .......5.1系统登录界面.2..3..3 ..3 ..3 ..3 ..4 ..5 ..5 ..5 ..5 ..5 ..5 ..5 ..8 ..9 10 10 10 10 16 16 17 17信息学院《软件工程课程设计》报告-II -5.2系统管理员登录界面 5.3票务管理员登录界面 5.4乘客登录界面........ 6. 系统测试 .............. 6.1测试方法 ............ 6.2测试过程 ............ 6.3测试结果 ............ 7. 总结 ................... 7.1小结 ................ 7.2实践感想 ............ 参考文献 ................ 附录 附录 附录 附录 1 2 3 4 可行性分析文档 需求分析文档 详细设计文档 系统测试文档19 20 21 22 22 22 22 24 24 24 26 27 30 33 391.开发目的和意义1.1研究背景用信息化推动工业化,用信息技术改造传统产业,这是我国迫切要完成的一项战略性任务。
数据库课程设计报告 -------火车售票管理信息系统软件学院软件工程2013级x班姓名: xx学号:2013xxxxxxxx目录一、系统开发平台 (1)四、需求分析 (2)4.1 用户需求说明 (2)4.1.1 数据需求 (2)4.1.2 事务需求 (3)4.2 系统需求说明 (4)五、数据库逻辑设计 (4)5.1 ER图 (4)5.2 数据字典 (5)5.3 关系表 (7)六、数据库物理设计 (7)6.1 索引 (7)6.2 视图本节可选 (8)6.3 安全机制 (8)七、应用程序设计 (8)7.1 功能模块 (8)7.2 界面设计 (15)7.3 事务设计 (15)八、测试和运行 (16)九、总结 (16)一、系统开发平台题目:对火车站的售票进行管理。
主要功能:车次管理(车次、起止地点、到达时间、开车时间)、每一车次的车票管理(车厢号、座位号)、售票、退票、查询、异常处理。
开发工具:eclipse数据库:mysql操作系统:windows8.1二、数据库规划2.1 任务陈述:做一个火车票售票管理系统:对火车站的售票进行管理。
主要功能:车次管理(车次、起止地点、到达时间、开车时间)、每一车次的车票管理(车厢号、座位号)、售票、退票、查询、异常处理。
2.2 任务目标完成一个火车票售票管理系统,要实现管理员对车票的增添以及删改功能,同时需要实现用户对车票的查询购买,以及出现调整之后的退票服务。
三、系统定义3.1 系统边界管理员:可以对车票以及车次进行删改操作。
用户:可以买票,但是不可以对火车票进行添加操作3.2 用户视图3.2.1 管理员视图(1)列车管理:包括列车的录入、查询、修改和删除。
(2)用户管理:包括系统使用用户的添加、查询、修改、删除等。
在线支付用户身份信息用户注册车次设置管理员车次信息录入用户信息管理票务系统车站实际情况(3)系统数据处理:数据查询,根据关键字过滤,查看当前车次信息,车票信息,用户信息以及处理历史。
沈阳工程学院课程设计设计题目:火车票管理系统系别信息工程系班级网络本101学生姓名刘雨娇金兆宁姚宇夏林学号02 13 19 24指导教师孙宪丽、杨弘平职称副教授、副教授起止日期:2012年12月3日起——至2012年12月7日止沈阳工程学院课程设计任务书课程设计题目:火车票管理系统系别信息工程系班级网络本101 学生姓名刘雨娇金兆宁姚宇夏林学号02 13 19 24指导教师孙宪丽、杨弘平职称副教授、副教授课程设计进行地点:实训F任务下达时间:2012 年12 月 3 日起止日期:2012年12月3日起—至2012年12月7日止教研室主任年月日批准1.设计的原始资料及依据查阅有关数据库设计、Java语言程序设计以及案例分析等资料,进一步熟悉面向对象程序设计基本理论以及基本思想。
本设计要求按照软件工程、数据库设计思想及设计步骤设计一个实用程序,并采用Java开发该系统。
通过本设计可以加深对面向对象程序设计基本思想的理解,加强学生研发、调试程序的能力,培养学生分析、解决问题的能力,提高学生的科技写作能力。
2.设计的主要内容及要求(1)写出系统的需求分析。
(2)写出系统的数据库设计过程,包括概念结构设计、逻辑结构设计、物理结构设计。
(数据库应用程序管理系统类设计详细写,其它类设计可以略)(3)写出系统设计思路—工作原理、功能规划。
(4)详细设计—数据分析、算法思路、类设计、功能实现(包括程序流程图、主要代码及注释)、界面等。
(5)运行调试与分析讨论--给出运行屏幕截图,分析运行结果,有何改进等。
3.对设计说明书撰写内容、格式、字数的要求(1)学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
(2)装订格式:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、结论、致谢、参考文献。
课程设计报告课程设计题目: Linux下的火车系统专业:软件工程班级:姓名:学号:指导教师:20 16年 7月 1日(一)实验题目Linux下的火车售票系统(二)实验时间,地点2016.6.27到2016.6.30,软件楼506(三)实验目的在linux下做一个火车售票系统(四)实验要求要求采用多线程编程,实现车票信息的查询,录入,更新,车次的修改;实现用户注册登录,订票查询、火车票预订、退票申请以及后台方面的列车车次信息发布更新、车票生成、提供取票服务。
(五)实现思路该算法用c语言编写,再在linux下用vi建立文档,gcc后生成可行文件后,./运行。
C语言实现思路为1.把ticket,user,定义为结构,其中ticket中有四个数据。
User1和user2一开始都是为空2.定义开始地点四个,终点4个3. 定义数组c1.c2,daaress.uname1,pass1.uname1,uname24.写个选择页面,共有5个页面。
5. 如果用户选择1购票,下面for循环控制路线。
如果用户选择2注册,把输入的数据存入数组如果用户选择3查询,建立for循环如果用户选择4购票,用if判断语句判断用户输入的是否在数组里如果用户选择5购票.用exit退出流程图:实现过程:定义结构,再加while if等循环实现代码#include <stdio.h>Struct ticket /*定义火车票为结构体 */ {char* starName;char* endName;int number;};struct user /*定义用户为结构体*/{char* userName;char* passWord;};struct ticket tickets[4] ;/* 火车票里有4个对象 */ struct user user1={NULL,NULL};/* 用户初始为空*/ struct user user2={NULL,NULL} ;int lq_index();/*定义数组*/void gotolq_Index();void main(){int i =0 ;char* starNames[4]={"南昌","深圳","广州","九江"};/*4个起点*/char* endNames[4]={"深圳","南昌","九江","广州"};/*4个终点*/for(i=0;i<4;i++){tickets[i].starName=starNames[i];tickets[i].endName=endNames[i];tickets[i].number=rand()%21+30; }/*for(i=0;i<4;i++){printf("%s-%snumber:%d\n",tickets[i].starName,tickets[i].endName,tickets[i]. number);}*/printf("\t**********欢迎使用火车票系统**********\n");/*输出主页面*/while(1==1){if(lq_index()==5)break;}}int lq_index(){int i=0,j=0;char yn;char c1[20];/*2个数组*/char c2[20] ;charaddress[20],uname1[20],pass1[20],uname2[20],pass2[20];printf("\n [1] 购票 [2] 注册 \n" );printf(" [3] 查询 [4] 登录 \n" );printf(" [5] 退出 \n" );printf("请输入编号");scanf("%d",&i);if(i==1) {printf("输入目的地和出发地:");scanf("%s %s",c1,c2); /*接受用户输入的数据*/j=0;for(i=0;i<4;i++){j++;if(strcmp(tickets[i].starName,c1)==0&&strcmp(tickets[i].endN ame,c2)==0)/*判断是否有票*/{if(tickets[i].number>0){printf("您的选择的线路%s-%s 还剩%d张票是否确定购买(y/n) : ",c1,c2,tickets[i].number);scanf(" %c",&yn);if(yn=='y'||yn=='Y'){if(erName!=NULL){tickets[i].number -- ;printf("恭喜您购票成功! ");}else{printf("登录后才能购票! ");}/*如果没登录显示用户登录*/gotolq_Index();/*选择路线*/}else if(yn=='n'||yn=='N'){gotolq_Index();}else{printf("输入有误!\n");i--;j--;continue;}return 1;}else{printf("抱歉您的选择的线路%s-%s 已无票出售!",c1,c2);/*如果无票就提示*/gotolq_Index();return 1;}}else if(j==4)/*路线不存在提示*/{printf("您的选择的线路%s-%s 系统中不存在!",c1,c2);gotolq_Index();return 1;}}}else if(i==2){printf("输入账号:");/*注册账号*/ scanf("%s",uname1) ;erName=uname1;printf("输入密码: ");scanf("%s",pass1);user1.passWord=pass1;printf("恭喜%s用户注册成功!",erName);gotolq_Index();}else if(i==3){printf("输入要查询的地点:"); /*查询车票*/scanf("%s",address);printf("始发站\t终点站\t票数\n");i=0;for(i=0;i<4;i++){if(strcmp(tickets[i].starName,address)==0){printf(" %s\t %s\t %d\n",tickets[i].starName,tickets[i].endN ame,tickets[i].number);}else{j++;}if(j==4){printf("未找到相应数据!\n");}}gotolq_Index();return 1;}else if(i==4){printf("输入账号:");/*用户登录与已经注册的判断*/scanf("%s",uname2) ;erName=uname2;printf("输入密码: ");scanf("%s",pass2);user2.passWord=pass2;if(erName!=NULL){if(strcmp(erName,erName)==0&&strcmp(user1.pa ssWord,user2.passWord)==0){printf("欢迎%s用户使用本系统!",erName);}else{erName=NULL;user2.passWord=NULL;printf("输入账号或者密码不一致!");}}else{printf("请先注册用户!");/*不一致提示注册*/ }gotolq_Index();}else if(i==5){printf("欢迎再次使用本系统!");return 5 ;}return 1 ;}void gotolq_Index(){printf("任意键返回首页!");/返回*/printf("\n**************************************\n"); }。
火车票订票系统 课程设计学 院 计算机工程学院 班 级 12级软件技术1班 学 号 2012304040120 课程名称 VC++项目开发 学生姓名 王彬彬 指导教师 余琨2014年 6月2日JINGCHU UNIVERSITY OF TECHNOLOGY目录第一章概述-----------------------------------------------------------11.1课程设计题目---------------------------------------------------11.2设计目的-------------------------------------------------------11.3设计内容-------------------------------------------------------1 第二章可行性研究报告-------------------------------------------------22.1引言-----------------------------------------------------------22.2背景-----------------------------------------------------------22.3要求和目的-----------------------------------------------------22.3.1 基本要求-------------------------------------------------22.3.2 开发目标-------------------------------------------------32.4流程图---------------------------------------------------------3 第三章需求分析-------------------------------------------------------53.1引言-----------------------------------------------------------53.2订票流程设计---------------------------------------------------53.2.1 订票流程描述---------------------------------------------53.2.2 系统用例图-----------------------------------------------63.2.3 订票用例图-----------------------------------------------63.3数据库相关信息-------------------------------------------------73.4其他需求分析---------------------------------------------------7 第四章详细设计-------------------------------------------------------84.1软件模块的划分-------------------------------------------------84.1.1 用户注册模块---------------------------------------------94.1.2 登陆模块------------------------------------------------104.1.3 查询模块------------------------------------------------114.1.4 购票模块------------------------------------------------124.1.5 换票模块------------------------------------------------134.1.6 退票模块------------------------------------------------15 4.2 数据库的结构设计---------------------------------------------16第五章运行结果截图---------------------------------------------------18 总结------------------------------------------------------------------22 致谢------------------------------------------------------------------22 参考文献--------------------------------------------------------------23第一章概述1.1课程设计题目1、建立一个火车票网上订票系统实现相关的查询、订票、换票、退票等相关功能。
设计题目:火车订票管理系统班级:姓名:学号:2015年1月4日1.课程设计目的和要求火车订票管理系统的主要功能包括:1. 火车线路查询功能,乘客输入终点站名称或输入车次,输出相应的火车线路信息。
2. 订票功能。
乘客输入车次和订票数,先查询该车次的余票数,若余票数大于等于订票数,则为乘客办理订票手续,要求乘客输入姓名、身份证号码,计算出总票价,产生一个新结点,将该结点添加到对应车次的链表中,然后修改该车次的余票数。
若余票数小于订票数,则输出提示信息“余票数不足,订票失败!”3. 退票功能。
乘客输入车次和身份证号码,在该车次对应的链表中查找该乘客,若找到,询问乘客退票数量,若退票数小订票数,则只需修改结点的订票数;若退票数等于订票数,则将该乘客对应的结点删除,然后修改该车次的余票数;若没找到,则应提示“未找到相应信息”,要求乘客重新输入车次和身份证号码,再进行查找,如果仍未找到,则输出提示信息“输入信息错误,退票失败!”4. 其他查询功能。
(1) 输入车次,输出该车次的全部订票信息。
(2) 输入车次,输出该车次的订票数和余票数。
(3) 输入终点站名称,输出相关火车线路的信息。
(4) 输入日期(年.月.日),输出发车时间为该天的火车线路的信息。
(5) 输出余票数为0的火车线路的信息。
管理员入口输入系统信息火车订票管理系其他查询2.系统总体设计2.1系统功能模块图乘客入口 火车线路查询查询票数为零的火车线路信息查询发车时间为某天的火车线路信息查询终点站为某地的火车线路信息查询某车次的订票数和余票数查询某车次的全部订票信息2.2数据结构设计假设有5条火车线路(起点均为济南),每条线路所涉及的信息有:终点站、 车次、发车时间(年•月•日.时.分)、票价、余票数(假设火车总票数为 300)。
乘客订票信息包括:乘客姓名、乘客身份证号码、订票数,总票价。
本系统要求用结构体数组和链表实现,将火车线路信息存放在结构体数组 中,每条线路对应一个链表,乘客订票就是在链表中插入结点, 乘客退票就是在 链表中删除结点。
程序设计报告( 2014 / 2015 学年第一学期)题目:火车票管理系统专业通信工程学生姓名班级学号指导教师指导单位计算机学院计算机软件教学中心日期火车票务管理系统一、课题内容和要求(一)课题内容该系统要求实现一个简单、实用的火车票管理程序,主要功能包括火车票数据的录入、查找、删除、显示、售票、退票等。
所有火车票数据都要利用文件系统保存,以备系统下次运行时使用。
通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。
(二)课题要求(1)火车票数据由多条记录组成,其信息包括:车次,发车时间,起点站,终点站,行车时间,额定载量,已售票人数等。
(2)数据保存形式:所有火车票数据要以文本或二进制文件保存。
(3)需要实现的功能1)新增火车票数据记录。
2)查找火车票数据(可按车次,发车时间、起点站、终点站等查找)。
3)删除火车票数据记录(先查找,再删除。
若查找出多条记录,则进一步提示用户选择记录的车次,再删除)。
4)对火车票排序(可按车次、发车时间、起点站、终点站等排序。
)。
5)显示当前所有火车票信息列表。
6)售票(先查找,当确定车次后,根据售票张数对该车次的已售票人数进行修改)。
7)退票(售票的逆处理,过程与售票类似)。
8)保存火车票数据到文件中。
9)从文件中读入火车票数据。
(4)界面功能要求:1)采用友好的字符界面,实现一个功能控制菜单。
2)每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次操作。
需求分析一、功能分析图二、录入班次信息:依次输入班次、起点站和终点站等信息同时保存在文件中,并可以随时增加新的班次信息。
三、浏览班次信息:输出保存在文件中的全部班次信息,并区分当前的车次是否已发出,如发出则标记“此车已发出”。
四、按班次号查询路线:以输入的班次号为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”五、按起点站查询路线:输入的起点站为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”六、按终点站查询路线:输入的终点站为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”七、排列发车时间表:按照发车时间从早到晚的顺序逐条显示车次信息。
数据库原理及应用课程设计报告题目:火车票售票系统所在学院:信息工程学院班级:学号:姓名:指导教师:2013年1月3日目录一、概述 -------------------------------------- 3二、需求分析 ---------------------------------- 3三、概念设计 ---------------------------------- 5四、逻辑设计 ---------------------------------- 7五、系统实现 ---------------------------------- 9六、小结 ------------------------------------- 14一、概述数据库技术是20世纪60年代末在文件系统基础上发展起来的数据管理新技术,它解决了过去对数据管理和组织中存在的数据冗余和独立性问题,实现了数据的共享性、完整性、安全性、有效性目标。
数据库技术的发展和广泛使用,为人类社会进入信息化社会奠定了坚实的基础。
随着社会和经济不断的发展,数据和信息也随之快速增长起来,为有效地组织和管理庞大的数据和信息,严密科学合理的数据管理技术也就成为迫切的技术问题之一。
现在人们更多的使用火车作为出行交通工具,因此车票票务市场也在快速发展。
人们希望车票销售手段也能相应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的车票表现出极大的关注。
随着社会的不断进步,国内外铁路运输事业的飞速发展,各国铁路运营部门对票务管理的要求也在不断的提高,本系统就是针对这种日益增长的需求而进行开发的。
随着旅游业的逐渐的成熟发达,铁路客运量大幅度的提高,国内旅游专线的增加,这些都对铁路的售票管理系统提出了更高的要求,所以要不断的完善更新铁路售票系统,提高铁路售票系统的工作效率。
铁路运输系统中,售票系统是很重要的一个环节,要想提高整个铁路运营部门的工作效率,就要先提高售票系统的工作效率和安全性,故而研发此系统,此系统能够为售票工作提供方便快捷的售票服务,广大的客户可以得到更好的票务服务。
火车订票系统课程设计华科学院《数据库课程设计》报告(2012/2013学年第一学期)学生姓名:学生班级:学生学号:指导教师:年月日《火车订票系统》的设计与实现第一章系统概述1.1系统开发背景随着我国铁路交通的不断发展简单的窗口售票模式已经不能满足方便人们出行的目的。
采用先进的网络技术开发出方便快捷的网上订票系统是现代客运业务发展的必然需求。
本次设计的火车票网上订票系统通过访问主页可以实现个人信息注册、车次车票价格查询、在线订票退票等基本功能为用户提供方便快捷的订票服务。
1.2系统开发目的与意义应用本学期对大型数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。
实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
1.3系统开发环境1.硬件环境:win7、Inter(R)core(TM)i5-2430 CPUA@2.40Ghz 2.40Ghz、内存4.00GB2.软件环境:Microsoft SQL第二章需求分析2.1 需求分析的任务调查学生火车票预定系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和操作要求进行详细分析,形成需求分析说明书。
最重要的是调查、收集信息、分析购票人信息和火车票预定流程。
处理要求、数据的安全性与完整性要求。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户端的界面要简单明了,易于操作,服务器端程序利于维护。
2.2 需求分析的过程火车站为方便学生返程,需要开发一个学生火车票预定系统。
这个预定火车票系统的学生信息,包括姓名、性别、身份证号码、起始时间、目的地,输入火车票预定系统的客户端程序,系统通过查询铁路系统内的车次数据服务器后,为学生安排车次,印出取票通知。
管理信息系统课程设计姓名:学号:************-4-6火车票网上销售管理信息系统分析与设计引言:现在的互联网处在快速发展并逐渐成熟的阶段,互联网对人们的生活也带来越来越深入影响,人们对互联网由过去的“被动式”逐渐变为“介入式”。
互联网用户不仅可以浏览信息,还可以创造信息。
发展到现在,更多的用户被吸引到网上购买消费,实现“钱财交换”。
网上销售火车票就是这样随着网络的发展和互联网用户的需求应运而生的。
火车票网上购买点由铁路局专门构建的网站运营,此网站由专门的技术人员构建并进行改进,网站主要功能是实现了销售和查询。
网站基于销售管理信息系统而建立。
一、现行系统概述火车票网上销售管理信息系统从2011 年开始投入运营,至今没有出现过太大的故障,并且系统根据用户的需求进行了及时和必要的更新。
用户可以在国家铁道部专门运营的网站了解到最新的管理及销售信息,用户可以利用这个系统进行购票、余票查询、旅客列车时刻表查询、旅客列车正晚点查询、票价查询等等,这些功能使用方便简单,便于理解。
在系统运营的过程中,系统还进行了必要的改进,现在可以同时承载更多的用户操作。
在系统运营期间也出现了一些问题,主要的问题就是系统在用户流量大的情况下反应较慢,怎么样解决这个问题,以便更好的服务用户,是技术人员及管理人员应该着手思考的。
二、系统分析(一)需求分析众所周知,中国是一个运输大国,特别是在人口的运输方面。
中国现在建立了四通八达的铁路网,2010 年我国铁路总里程超过了9 万公里,预计到2020 年我国铁路营业里程将达到10 万公里。
建立如此庞大的铁路网路主要就是由于人口的流动十分巨大,如此大的流动的人口数量给铁路部门带来了巨大的压力,一方面是铁路设别方面的压力,一方面是工作人员销售车票的压力。
每每到火车票销售网点就会发现,购买车票的乘客都是排了长长的队伍,很多乘客虽然花了很长时间排队但是依然买不到车票,而且销售车票工作人员的工作强度也是很大的。
课程设计报告2011~2012学年第二学期课程C++课程设计课程设计名称车票管理系统学生姓名刘吉喆学号1104121008专业班级1210指导教师2013年9月17日星期二一、系统的需求分析:需求分析是一项重要的工作,也是最困难的工作。
它指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。
可以说,“需求分析”就是确定要计算机“做什么”。
车票管理系统是典型的管理信息系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
车票管理系统可以实现对车票的科学化、规范化、查询车票情况、定票信息、以及路线信息等。
车票管理系统是根据某车站对这票管理的实际情况进行编写的,主要目的是为了方便车站对车票的实际情况进行集中的查询与管理工作,以提高整个车站的工作。
经过电脑及生活的调查研究,根据车辆的运行状态和车站的管理模式,车票管理系统需要管理的东西主要有:车辆的班次,车辆的线路,售票和退票等等。
车辆是一个对外服务的内容,为了乘客的乘车要求,所以系统需要实现售票信息的录入、修改和删除功能。
乘客对剩余车票需要进行选择,系统必须实现相应的查询和输出功能,使乘客择优而乘。
本次课程设计需要实现的是——车票管理系统的链表实现。
主要实现的功能包括:车票信息的录入、修改、删除、剩余车票信息的查询、输出。
车票信息可写入文件,也可从文件中读取。
车票信息涉及的数据有班次号、发车时间、起点站、终点站、行车时间、额定载量、已定票人数等。
按照需求分析所得,车票管理系统有以下几个功能模块:(1)录入班次信息(信息用文件保存),可不定时地增加班次数据(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。
(3)查询路线:可按班次号查询 ,可按终点站查询(4)售票和退票功能A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。
程序设计报告( 2014 / 2015 学年第一学期)题目:火车票管理系统专业通信工程学生姓名班级学号指导教师指导单位计算机学院计算机软件教学中心日期火车票务管理系统一、课题内容和要求(一)课题内容该系统要求实现一个简单、实用的火车票管理程序,主要功能包括火车票数据的录入、查找、删除、显示、售票、退票等。
所有火车票数据都要利用文件系统保存,以备系统下次运行时使用。
通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。
(二)课题要求(1)火车票数据由多条记录组成,其信息包括:车次,发车时间,起点站,终点站,行车时间,额定载量,已售票人数等。
(2)数据保存形式:所有火车票数据要以文本或二进制文件保存。
(3)需要实现的功能1)新增火车票数据记录。
2)查找火车票数据(可按车次,发车时间、起点站、终点站等查找)。
3)删除火车票数据记录(先查找,再删除。
若查找出多条记录,则进一步提示用户选择记录的车次,再删除)。
4)对火车票排序(可按车次、发车时间、起点站、终点站等排序。
)。
5)显示当前所有火车票信息列表。
6)售票(先查找,当确定车次后,根据售票张数对该车次的已售票人数进行修改)。
7)退票(售票的逆处理,过程与售票类似)。
8)保存火车票数据到文件中。
9)从文件中读入火车票数据。
(4)界面功能要求:1)采用友好的字符界面,实现一个功能控制菜单。
2)每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次操作。
需求分析一、功能分析图二、录入班次信息:依次输入班次、起点站和终点站等信息同时保存在文件中,并可以随时增加新的班次信息。
三、浏览班次信息:输出保存在文件中的全部班次信息,并区分当前的车次是否已发出,如发出则标记“此车已发出”。
四、按班次号查询路线:以输入的班次号为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”五、按起点站查询路线:输入的起点站为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”六、按终点站查询路线:输入的终点站为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”七、排列发车时间表:按照发车时间从早到晚的顺序逐条显示车次信息。
八、售票功能:依次输入“售票数目”和“班次号”可出售未发出的班次的车票。
九、退票功能:依次输入“退票数目”和“班次号”可退距发车时间大于半小时的班次的车票。
三、概要设计(1)类:#include<iostream.h>#include<fstream.h>#include<string.h>#include <time.h>class Ticket{char no[20];char name_b[20];char name_e[20];int hour;int minute;int tra_time;int eding;int yupiao;public:void shoupiao(fstream&f);void tuipiao(fstream&f);void searchbynumber(fstream&f);void searchbybeginplace(fstream&f);void searchbyendplace(fstream&f);void luru(fstream&f);void liulan(fstream&f);void paixu(fstream&f);friend ostream&operator<<(ostream&out,const Ticket&t);//定义重载输出运算符的友元函数bool findno(char n[])//用于判断输入的字符串是否与查找区域中的某个字符串一致{if(strcmp(no,n)==0)return true;elsereturn false;}bool findname_b(char n[]) {if(strcmp(name_b,n)==0)return true;elsereturn false;}bool findname_e(char n[]){if(strcmp(name_e,n)==0)return true;elsereturn false;}};(2)主要函数流程图:1、录入班次信息函数:用户根据提示信息逐项输入班次信息各项数据, 利用read()函数把要录入的信息写入文件。
如图1图1 图2 2、浏览班次信息显示所有的班次信息,并标记已发出的车次, 如图23、按班次号查询路线根据用户输入的班次号查找匹配项的班次信息。
4、按起点站查询路线根据用户输入的起点站查找匹配项的班次信息。
5、按终点站查询路线根据用户输入的终点站查找匹配项的班次信息。
6、排列发车时间表利用冒泡法按照发车时间的升序排列车次信息 7、售票用户输入指定的班次和售票数目进行售票 如图3 8、退票用户输入指定的班次和售票数目进行售票, 如图4#include<iostream.h>#include<fstream.h>#include<string.h>#include <time.h>class Ticket{char no[20];char name_b[20];char name_e[20];int hour;int minute;int tra_time;int eding;int yupiao;public:void shoupiao(fstream&f);void tuipiao(fstream&f);void searchbynumber(fstream&f);void searchbybeginplace(fstream&f);void searchbyendplace(fstream&f);void luru(fstream&f);void zengjia(fstream&f);void xiugai(fstream&f);void liulan(fstream&f);void paixu(fstream&f);friend ostream&operator<<(ostream&out,constTicket&t);//定义重载输出运算符的友元函数bool findno(char n[])//用于判断输入的字符串是否与查找区域中的某个字符串一致{if(strcmp(no,n)==0)return true;elsereturn false;}bool findname_b(char n[]){if(strcmp(name_b,n)==0)return true;elsereturn false;}bool findname_e(char n[]){if(strcmp(name_e,n)==0)return true;elsereturn false;}};ostream&operator<<(ostream&out,const Ticket&t)//打印车次表格{if(t.minute>=10){out<<t.no<<" "<<t.hour<<" : "<<t.minute<<""<<_b<<" "<<_e<<" "<<t.tra_time<<" "<<t.eding<<" "<<t.yupiao<<endl;}else{ out<<t.no<<" "<<t.hour<<" :"<<"0"<<t.minute<<" "<<_b<<" "<<_e<<" "<<t.tra_time<<" "<<t.eding<<" "<<t.yupiao<<endl;}return out;}void Ticket::liulan(fstream&f){int i=0;struct tm *local;long t;time(&t);local = localtime(&t);cout<<"车次"<<" "<<"发车时间"<<" "<<"起点站"<<" "<<"终点站"<<" "<<"行车时间"<<" "<<"额定载量"<<" "<<"余票数量"<<endl;f.seekg(0,ios::end);int b=f.tellg();f.seekg(0,ios::beg);int a=f.tellg();int c=(b-a)/sizeof(Ticket);//获得文件内包含的班次信息总数Ticket*T=new Ticket[c];while(!f.eof())f.read((char*)&T[i++],sizeof(Ticket));for(int j=0;j<c;j++){if((local->tm_hour>T[j].hour)||(T[j].hour==local->t m_hour)&&(local->tm_min >T[j].minute)){cout<<T[j]<<" "<<"此车已发出!"<<endl;}else{cout<<T[j]<<endl;}}}void Ticket::shoupiao(fstream&f){const int NUM=sizeof(Ticket);int n;long t;char m[20];Ticket T;struct tm *local;cout<<"请输入售票的数目:"<<endl;cin>>n;cout<<"请输入售票的班次:"<<endl;cin>>m;time(&t);local = localtime(&t);f.seekg(0,ios::beg);//从文件头开始bool fd=false;while(!f.eof()&&!fd){f.read((char*)&T,NUM);if(fd=T.findno(m))//判断是否找到匹配班次{if(T.yupiao)//判断余票数量是否大于零{if((local->tm_hour<T.hour)||(T.hour==local->tm_hour )&&(local->tm_min <T.minute)){T.yupiao-=n;f.seekg(-1*NUM,ios::cur);//从当前位置向前移动(-1*sizeof(Ticket))个字节f.write((char*)&T,NUM);cout<<"已售出"<<n<<"张该车次的车票!"<<endl;}elsecout<<"该车次已发出!"<<endl;}elsecout<<"票已售完!"<<endl;}}if(!fd)cout<<"未找到该车次信息!"<<endl;}void Ticket::tuipiao(fstream&f){const int NUM=sizeof(Ticket);int n;long t;char m[20];Ticket T;struct tm *local;cout<<"请输入退票的数目:"<<endl;cin>>n;cout<<"请输入退票的班次:"<<endl;cin>>m;time(&t);local = localtime(&t);f.seekg(0,ios::beg);//把文件指针移到文件头bool fd=false;while(!f.eof()&&!fd)//未找到匹配的车次号以及未搜索完所有数据前继续循环{f.read((char*)&T,NUM);if(fd=T.findno(m)){if((T.hour)*60+T.minute-(local->tm_hour)*60-(local->tm_min)>30){T.yupiao+=n;f.seekg(-1*NUM,ios::cur);//从当前位置向前移动(-1*sizeof(Ticket))个字节f.write((char*)&T,NUM);//更新退票后的班次信息cout<<"已退"<<n<<"张该车次的车票!"<<endl;}elsecout<<"退票失败!"<<endl;}}if(!fd)cout<<"未找到该车次信息!"<<endl;}void Ticket::paixu(fstream&f){int i=0;f.seekg(0,ios::end);int b=f.tellg();f.seekg(0,ios::beg);//把文件指针移到文件头int a=f.tellg();int num=(b-a)/sizeof(Ticket);//得到文件内班次信息总数numTicket*t=new Ticket[num+1];Ticket*T=new Ticket[num+1];for(i=0;i<num;i++){f.read((char*)&t[i],sizeof(Ticket));}for(i=0;i<num-1;i++){if(((t+i)->hour>(t+i+1)->hour)||(((t+i)->hour==(t+i +1)->hour)&&((t+i)->minute>(t+i+1)->minute))){strcpy(T->no,(t+i)->no);strcpy(T->name_b,(t+i)->name_b);strcpy(T->name_e,(t+i)->name_e);T->hour=(t+i)->hour;T->minute=(t+i)->minute;T->tra_time=(t+i)->tra_time;T->eding=(t+i)->eding;T->yupiao=(t+i)->yupiao;strcpy((t+i)->no,(t+i+1)->no);strcpy((t+i)->name_b,(t+i+1)->name_b);strcpy((t+i)->name_e,(t+i+1)->name_e);(t+i)->minute=(t+i+1)->minute;(t+i)->tra_time=(t+i+1)->tra_time;(t+i)->eding=(t+i+1)->eding;(t+i)->yupiao=(t+i+1)->yupiao;strcpy((t+i+1)->no,T->no);strcpy((t+i+1)->name_b,T->name_b);strcpy((t+i+1)->name_e,T->name_e);(t+i+1)->minute=T->minute;(t+i+1)->tra_time=T->tra_time;(t+i+1)->eding=T->eding;(t+i+1)->yupiao=T->yupiao;}//利用冒泡法将发车时间相对早的班次信息往文件头移}cout<<" 发车时间表: "<<endl;for(i=0;i<num;i++)cout<<t[i]<<endl;fstream fil;fil.open("d:\\sort.dat",ios::in|ios::out|ios::binar y);//创建并打开二进制文件"sort.dat"for(i=0;i<num;i++)fil.write((char*)&t[i],sizeof(Ticket));fil.close();}void Ticket::searchbynumber(fstream&f){char n[10];Ticket t;cout<<"请输入你要查找的班次号:"<<endl;cin>>n;f.seekg(0,ios::beg);bool fd=false;while(!f.eof()&&!fd){f.read((char*)&t,sizeof(Ticket));if(fd=t.findno(n)){cout<<"车次"<<" "<<"发车时间"<<" "<<"起点站"<<" "<<"终点站"<<" "<<"行车时间"<<" "<<"额定载量"<<" "<<"余票数量"<<endl;cout<<t;}}if(!fd)cout<<"未找到该车次信息!该车次不存在或已发出!"<<endl;}void Ticket::searchbybeginplace(fstream&f){char n[10];Ticket t;cout<<"请输入你要查找的班次的起点站:"<<endl;cin>>n;f.seekg(0,ios::beg);bool fd=false;while(!f.eof()&&!fd){f.read((char*)&t,sizeof(Ticket));if(fd=t.findname_b(n)){cout<<"车次"<<" "<<"发车时间"<<" "<<"起点站"<<" "<<"终点站"<<" "<<"行车时间"<<" "<<"额定载量"<<" "<<"余票数量"<<endl;cout<<t;}}if(!fd)cout<<"未找到该车次信息!该车次不存在或已发出!"<<endl;}void Ticket::searchbyendplace(fstream&f)char n[10];Ticket t;cout<<"请输入你要查找的班次的终点站:"<<endl;cin>>n;f.seekg(0,ios::beg);bool fd=false;while(!f.eof()&&!fd){f.read((char*)&t,sizeof(Ticket));if(fd=t.findname_e(n)){cout<<"车次"<<" "<<"发车时间"<<" "<<"起点站"<<" "<<"终点站"<<" "<<"行车时间"<<" "<<"额定载量"<<" "<<"余票数量"<<endl;cout<<t;}}if(!fd)cout<<"未找到该车次信息!该车次不存在或已发出!"<<endl;void Ticket::luru(fstream&f){int num;int i;cout<<"请输入你要录入的班次信息数量:"<<endl;cin>>num;Ticket*t=new Ticket[num];cout<<"请依次输入"<<endl<<"车次、发车时间(时)、发车时间(分)、起点站、终点站、行车时间、额定票数和余票数量 "<<endl;for(i=0;i<num;i++){cin>>t[i].no;cin>>t[i].hour;cin>>t[i].minute;cin>>t[i].name_b;cin>>t[i].name_e;cin>>t[i].tra_time;cin>>t[i].eding;cin>>t[i].yupiao;}f.seekg(0,ios::end);//文件指针指向文件尾for(i=0;i<num;i++)f.write((char*)&t[i],sizeof(Ticket));}void Ticket::zengjia(fstream&f){int num;int i;cout<<"请输入你要增加的班次信息数量:"<<endl;cin>>num;Ticket*t=new Ticket[num];cout<<"请依次输入"<<endl<<"车次、发车时间(时)、发车时间(分)、起点站、终点站、行车时间、额定票数和余票数量 "<<endl;for(i=0;i<num;i++){cin>>t[i].no;cin>>t[i].hour;cin>>t[i].minute;cin>>t[i].name_b;cin>>t[i].name_e;cin>>t[i].tra_time;cin>>t[i].eding;cin>>t[i].yupiao;}f.seekg(0,ios::end);//文件指针指向文件尾for(i=0;i<num;i++)f.write((char*)&t[i],sizeof(Ticket));}void Ticket::xiugai(fstream&f){char n[10];Ticket t;cout<<"请输入你要修改的班次:"<<endl;cin>>n;f.seekg(0,ios::beg);bool fd=false;while(!f.eof()&&!fd){f.read((char*)&t,sizeof(Ticket));if(fd=t.findno(n)){cout<<"请依次输入"<<endl<<"发车时间(时)、发车时间(分)、起点站、终点站、行车时间、额定票数和余票数量 "<<endl;cin>>t.no;cin>>t.hour;cin>>t.minute;cin>>_b;cin>>_e;cin>>t.tra_time;cin>>t.eding;cin>>t.yupiao;}}f.seekg(0,ios::end);//文件指针指向文件尾f.write((char*)&t,sizeof(Ticket));}void menu()//菜单函数{cout<<"******************************菜单********************************"<<endl;cout<<" 1:录入车次信息"<<endl;cout<<" 2:浏览车次信息"<<endl;cout<<" 3:根据车次号查询路线"<<endl;cout<<" 4:根据起点站查询路线"<<endl;cout<<" 5:根据终点站查询路线"<<endl;cout<<" 6:排列发车时间表"<<endl;cout<<" 7:售票"<<endl;cout<<" 8:退票"<<endl;cout<<" 9:增加车次"<<endl;cout<<" 10:修改车次"<<endl;cout<<" 0:退出菜单"<<endl;cout<<"请选择您需要操作的选项:"<<endl;}void main(){int x;Ticket T;fstream file;cout<<"*********************欢迎您使用票务管理系统!**********************"<<endl;menu();while(x){cin>>x;file.open("d:\\schedule.dat",ios::in|ios::out|ios:: binary);//创建并打开二进制文件schedule.datswitch(x){case 1:T.luru(file);break;case 2:T.liulan(file);break;case 3:T.searchbynumber(file);break;case 4:T.searchbybeginplace(file);break;case 5:T.searchbyendplace(file);break;case 6:T.paixu(file);break;case 7:T.shoupiao(file);break;case 8:T.tuipiao(file);break;case 9:T.zengjia(file);break;case 10:T.xiugai(file);break;case 0:break;}cout<<"操作已完成,请继续!"<<endl;file.close();//关闭二进制文件schedule.dat}cout<<"************************欢迎您下次使用!****************************"<<endl;}五、测试数据及其结果分析1、录入班次信息输入:1输出:请输入你要录入的班次信息数量:输入:4输出:请依次输入车次、起点站、终点站、发车时间(时)、发车时间(分)、行车时间、额定票数和余票数量输入:G111 南京扬州 8 0 20 100 30G222 南京北京 10 30 21 120 35G333 南京上海 11 0 22 140 50G444 南京广州 9 30 22 160 40输出:操作已完成,请继续!2、浏览班次信息输入:2输出:G111 南京扬州 8 0 20 100 30G222 南京北京 10 30 21 120 35G333 南京上海 11 0 22 140 50G444 南京广州 9 30 22 160 40操作已完成,请继续!3、根据车次号查询路线输入:3输出:请输入你要查找的班次号:输入:G111输出:G111 南京扬州 8 0 20 100 30 操作已完成,请继续!4、根据起点站查询路线输入:4输出:请输入你要查找的班次的起点站:输入:南京输出:G111 南京扬州 8 0 20 100 30G222 南京北京 10 30 21 120 35G333 南京上海 11 0 22 140 50G444 南京广州 9 30 22 160 405、根据终点站查询路线输入:5输出:请输入你要查找的班次的终点站:输入:上海输出:G333 南京上海 11 0 22 140 50 操作已完成,请继续!6、排列发车时间表输入:6输出:G111 南京扬州 8 0 20 100 30G444 南京广州 9 30 22 160 40G222 南京北京 10 30 21 120 35G333 南京上海 11 0 22 140 50操作已完成,请继续!7、售票输入:7输出:请输入售票的数目:输入:1输出:请输入售票的班次:输入:G333输出:已售出1张该车次的车票!8、退票输入:8输出:请输入退票的数目:输入:1输出:请输入退票的班次:输入:G444输出:已退1张该车次的车票!操作已完成,请继续!9、退出菜单输入:0输出:************************欢迎您下次使用!****************************结果分析:(1)按照车次号、起点站或终点站查询班次时,如输入的车次信息不在数据库里或该车次已发出,则显示“未找到该车次信息!该车次不存在或已发出!”(2)售票的班次如已发出,则显示“该车次已发出!”如无余票则提示“票已售完”。