火车票管理系统课程设计报告
- 格式:docx
- 大小:23.62 KB
- 文档页数:17
车票管理系统课程设计报告车票管理系统课程设计报告车票管理系统一目的通过课程设计,加深对《C语言程序设计》和《数据结构》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用等;复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等),熟练掌握和巩固三种基本的数据结构(线性结构、树形结构、图形结构)的逻辑结构、存储结构以及相关运算和应用。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力二需求分析1、首先本演示程序要实现录入班次信息的功能,并且要用文件来保存这些信息,还可以不定时的增加班次数据。
2、需要浏览班次信息是可以一次性输出当前的班次状况,并且要从实际考虑,若当前系统时间已经超过了某班次的发车时间,则要显示“此班已发出”的提示信息。
3、此程序既为车票管理系统,就要实现查询路线、售票、退票等功能。
当使用查询路线功能时,要分两种情况:按班次号查询和按终点站查询。
若使用售票功能,则只有在查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,并且要自动跟新已售票人数。
退票要输入退票的班次,当本班车尚未出发时才能退票,也要自动更新已售票人次。
4、演示程序以用户和计算机的对话方式执行,即在计算机的屏幕上显示“提示信息”下,用户根据自己的意愿自行操作,每次测试完毕,新增加的班次信息要保存在data.txt文件中。
三概要设计1、本程序各个模块的功能及调用关系:(1)主程序模块main()函数:车票管理系统课程设计报告此主程序的主要目的是用来调用读取文件函数、功能菜单函数以及保存文件信息函数。
(2)文件读入与保存函数read()、save()以及功能菜单MainMenu()函数:这三个函数的主要目的是为了读取文件,保存文件和为用户创造一个功能菜单以便于用户的操作。
延边大学工学院C语言课程设计报告书题目:火车票务系统(A)班级:学号:姓名:指导教师:二○○九年七月一.系统功能的总体描述本系统要求实现火车票务基本信息的查询,订票、售票、退票、车次查询等。
功能要求实现:火车票的基本信息:符合条件的车次名称、开时、到时、历时、里程、票价(硬座、软座、硬卧(上、中、下)软卧(上、中、下))车次类型、站名的查询显示,统计,添加(新加车次)、更改(售出票后需修改所剩票数)和删除(已发车次信息)等。
二、系统基本功能本系统可实现火车票务信息的管理和查询等功能。
它的基本功能是建立火车票信息链表,存储火车票的基本信息,实现对已有车次票务的查询、预订、售票、退票等业务的保存、修改等。
软件输出输入形式:软件提示信息丰富、容易理解,重点是依据火车票务的特点有明显的即时性和快速性。
测试数据要求:本系统的测试数据当输入想要到达的目的地信息时输出符合的车次、到站时间、开车时间以及终到站时间,车次名称、开时、到时、历时、车次类型、站名必须用字符串数据;里程、车票剩余情况、票价情况必须用整型数据。
对车票的基本信息进行查找时按目的地、时间和车次三种查找方式查找。
测试数据要有即事性、快速性。
三、系统具体分析(一)所需的功能1 输入功能:录入目的地信息2 输出功能:查看所查信息3 查询功能:查询符合车次及相关信息4修改功能:更新系统信息5 删除功能:对已发车辆信息删除6 票务功能:负责售票和退票业务7安全功能:负责管理员密码审核、修改等安全(二)系统功能模块划分(三)各模块的功能描述——主菜单模块功能————子菜单模块功能描述——(四)函数调用过程四、系统核心算法1、ccchanxun函数——通过车次查询列车信息输入:要查询车次输出:相关信息Step1:输入要查询的列车号char[6](在中国列车号有数字和字母组成,最长为5个字符,如:k8371因此为节省内存只需定义6字符长度的数组) Step2:用c与链表中的列车号(*p).lchao相比较判断strcmp((*p).lchao,c)是否等于零,否则进行step3,是则进行step4Step3:令p=p->next,判断p是否指向空节点NULL,若是则转到step2,否则进行step5Step4:显示相关信息(车次名称、开时、到时、历时、票价、车次类型等)Step5:显示未能找到所寻车次ccchanxun函数N-S流程图2、mddcharxun函数——通过目的地查询最终能到达目的地的全部车次,以及全部相关信息输入:要查询目的地输出:相关信息Step1:输入要查询的目的地char[20]Step2:用c与链表中的终到站(*p).zhongdaozhan相比较判断strcmp((*p).zhongdaozhan,m)是否等于零,否则进行step3,是则进行step4Step3:令p=p->next,判断p是否指向空节点NULL,若是则转到step2,否则进行step5Step4:显示相关信息(全部车次名称、开时、到时、历时、票价、车次类型等)Step5:显示未能找到所寻目的地。
题 目: 学生成绩管理系统院 系: 信息科技学院专 业: 计算机科学与技术姓 名: 何荣荣学 号: 1751200204指导教师: 王小琼日 期: 2018年6月28日桂林电子科技大学信息科技学院前 言课程设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。
通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。
C语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自1972年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是人们学习程序设计的首选语言,用它训练和提高编程技术,以及开发应用程序等。
我们通过《C语言程序设计》这门课程的学习,已经能编写解决小问题的程序,对程序的开发也有了初步的认识,还掌握了C 语言的基本语法,这一过程确确实实令我们感到欣喜,有点计算机可以完成自我任务的成就感。
但是,对于程序设计而言,学习C 的步伐不应该停留于此。
我们最终的目的应该是掌握开发大型综合程序的方法,即遵循软件工程的开发步骤和结构化程序设计思想,用C 语言开发出解决复杂问题的大型综合程序。
可是对于多数学生来说,学习了C语言后,除了应付各种考试之外,别无它用,对Turbo C语言丰富的函数知之甚少,加上DOS环境所限,因而对C语言兴趣不大,也感到C语言比较难以掌握。
本实训就是为了让学生在学完C语言后进一步了解C语言的知识,掌握C语言在软件开发方面的使用方法,希望通过此次实训,不仅能提高学生学习C语言的兴趣,更为今后学习其它专业知识及开发程序打下坚实的基础。
本指导书中有些内容借鉴了互联网上相关程序的设计思想,在此对相关者表示衷心的感谢。
由于时间、经验及水平的原因,不当、不足之处,请大家提出宝贵意见。
湖南工业大学课程设计(实训)资料学院计算机学院2018-2019 学年第 1 学期课程名称面向过程程序设计(C语言)课程设计指导教师xxx 学生姓名xxx 专业班级计算机类xxx 学号xxx题目车票管理系统起止日期2019 年12 月23 日~2019 年 1 月 2 日目录清单课程设计(实训)任务书学院:计算机学院学生姓名:xxx 专业班级:xxx课程名称:面向过程程序设计(C语言)课程设计设计题目:车票管理系统完成期限:自2018 年12 月23 日至2019 年 1 月 2 日共1周指导教师(签字):年月日系(教研室)主任(签字):年月日课程设计(实训)报告课程名称:面向过程程序设计(C语言)课程设计题目:车票管理系统起止日期:2018 年12 月23 日至2019 年1 月2 日学院计算机学院学生姓名xxx班级计算机类xxx学号xxx成绩指导教师(签字)2019 年1 月目录1 课题简介 (5)1.1系统简介 (5)1.2开发环境及开发工具 (5)2 问题分析 (6)2.1需求分析 (6)2.2问题分析 (7)2.3系统中涉及到的相关算法 (8)3 系统设计 (10)3.1系统功能设计 (10)3.2系统的功能分析 (12)4 系统的实现 (13)4.1系统主函数设计 (13)4.2录入和增加班次模块 (14)4.3查询和浏览模块 (18)4.4售退票模块 (23)5 系统测试 (27)5.1软件测试 (27)5.2系统有效性 (27)6 设计总结 (27)参考文献 (28)1 课题简介1.1系统简介通过这次系统开发的经历,通过查询各种书籍以及网上视频去学会怎样灵活地去运用C语言设计编写一些小功能函数,并且结合课上所学的的知识,将呆板的文字知识变成实际的动手能力,通过编写课程设计,去体会逻辑思维和设计算法能力的重要性,并且要知道编写代码应该思路清晰,格式整齐,简单易懂为主。
我也需要去发现所学知识中的漏洞,并且及时翻找资料完善不足以提高自身水平、完善自身。
1课程设计报告(C语言程序设计)题目二级学院车票信息管理系统的设计与实现数学与统计专班业级信息与计算科学112010102学生姓名郭双红学号11201010209指导教师陈媛时间2013061921 需求分析1.1 课程设计题目要求设计并实现一个车票销售管理系统,系统实现以下功能。
(1)系统以菜单方式工作:要求界面清晰,友好,美观,易用。
(2)车次信息导入功能:要求可从磁盘文件导入车次信息。
(3)查询功能:可按班车号、起点站或终点站查找班车信息,并将查询结果输出。
(4)售票功能:只有当某班车已定票人数小于额定载量,且当前系统时间小于发车时间才能售票。
售票显示收费信息;售票后更新已定票人数,并实现信息存盘。
(5)退票功能:输入退票的班次,当本班车未发出时才能退票。
退票后自动更新已定票人数,并实现信息存盘。
(6)信息浏览功能:能输出所有班车的信息;要求输出格式清晰、美观。
(7)信息修改:要求能修改某一指定班次的信息,并在修改后将信息存盘。
1.2 系统功能需求(1)系统以菜单方式工作:要求界面清晰,友好,美观,易用。
(2)车次信息导入功能:要求可从磁盘文件导入车次信息。
(3)查询功能:可按班车号、起点站或终点站查找班车信息,并将查询结果输出。
(4)售票功能:只有当某班车已定票人数小于额定载量,且当前系统时间小于发车时间才能售票。
售票显示收费信息;售票后更新已定票人数,并实现信息存盘。
(5)退票功能:输入退票的班次,当本班车未发出时才能退票。
退票后自动更新已定票人数,并实现信息存盘。
(6)信息浏览功能:能输出所有班车的信息;要求输出格式清晰、美观。
(7)信息修改:要求能修改某一指定班次的信息,并在修改后将信息存盘。
2 系统设计2.1 功能模块图本系统的功能模块图如图2-1所示。
3图 2-1 系统功能模块图2.2 数据定义本系统的数据可采用结构数组来处理。
可必要的设置全局变量。
因此本系统的主要数 据定义如下:struct Train_Ticket {char cn[15]; //车量班次 char lp[15]; //left place 起点 char ap[15]; //arrive place 终点 char lt[15]; //left time 发车时间 char rt[15]; //running time 行车时间 float price; // 票价int rl;//Rated load 额定载量车 票 管 理 系 统进入班次浏览进入班次查询售 票退 票修改版此信息查 询 菜 单进入起点站查询进入终点站查询进入班次查询int bn; //booking number已定票人数}T[N];int n=0,i=0;//全局变量2.3 关键技术分析⑴在程序开始运行时,应调用自定义的INPUT()函数,将所有需要的数据导入到结构数组中,然后保存。
数据库课程设计报告 -------火车售票管理信息系统软件学院软件工程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)系统数据处理:数据查询,根据关键字过滤,查看当前车次信息,车票信息,用户信息以及处理历史。
设计名称:VC++课程设计题目:火车票管理系统学生姓名:黄壹戴开翼王飞梅专业:计算机科学与技术班别:计科本081学号:0804402132 0804402119 0804402108 指导老师:黄东日期:2010 年 6 月 2 日黄壹、戴开翼、王飞梅课程设计报告目录第一章概述 (2)1.1课程设计题目 (2)1.2设计目的 (2)1.3设计内容 (2)1.4系统测试要求 (3)第二章需求分析 (3)2.1需求分析的任务 (3)2.2需求分析的过程 (3)2.3数据字典与流程图 (3)2.4系统框架 (4)第三章概念结构设计 (6)3.1概念结构设计的方法与步骤 (6)3.1.1概念结构设计的方法 (7)3.1.3概念结构设计的步骤 (7)3.2数据抽象与局部视图设计 (7)3.3视图的集成 (8)第四章数据库逻辑设计 (9)4.1数据库的结构设计 (9)第五章软件功能设计 (10)5.1软件模块划分 (10)5.2软件功能结构图 (11)课程设计报告第六章界面设计 (11)第一章概述1.1课程设计题目开发一个火车票定票系统主要实现以下功能:1、用户基本信息的管理。
2、用户购票的基本信息。
3、购票以后的分发管理。
4、能实现退票功能。
5、能进行信息的统计和查询6、操作员管理1.2设计目的应用本学期对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。
实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
1.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"); }。
程序设计报告( 2014 / 2015 学年第一学期)题目:火车票管理系统专业通信工程学生姓名班级学号指导教师指导单位计算机学院计算机软件教学中心日期火车票务管理系统一、课题内容和要求(一)课题内容该系统要求实现一个简单、实用的火车票管理程序,主要功能包括火车票数据的录入、查找、删除、显示、售票、退票等。
所有火车票数据都要利用文件系统保存,以备系统下次运行时使用。
通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。
(二)课题要求(1)火车票数据由多条记录组成,其信息包括:车次,发车时间,起点站,终点站,行车时间,额定载量,已售票人数等。
(2)数据保存形式:所有火车票数据要以文本或二进制文件保存。
(3)需要实现的功能1)新增火车票数据记录。
2)查找火车票数据(可按车次,发车时间、起点站、终点站等查找)。
3)删除火车票数据记录(先查找,再删除。
若查找出多条记录,则进一步提示用户选择记录的车次,再删除)。
4)对火车票排序(可按车次、发车时间、起点站、终点站等排序。
)。
5)显示当前所有火车票信息列表。
6)售票(先查找,当确定车次后,根据售票张数对该车次的已售票人数进行修改)。
7)退票(售票的逆处理,过程与售票类似)。
8)保存火车票数据到文件中。
9)从文件中读入火车票数据。
(4)界面功能要求:1)采用友好的字符界面,实现一个功能控制菜单。
2)每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次操作。
需求分析一、功能分析图二、录入班次信息:依次输入班次、起点站和终点站等信息同时保存在文件中,并可以随时增加新的班次信息。
三、浏览班次信息:输出保存在文件中的全部班次信息,并区分当前的车次是否已发出,如发出则标记“此车已发出”。
四、按班次号查询路线:以输入的班次号为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”五、按起点站查询路线:输入的起点站为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”六、按终点站查询路线:输入的终点站为依据进行查找,找到匹配项则输出该项完整的班次信息;未找到则显示“未找到该车次信息!”七、排列发车时间表:按照发车时间从早到晚的顺序逐条显示车次信息。
八、售票功能:依次输入“售票数目”和“班次号”可出售未发出的班次的车票。
九、退票功能:依次输入“退票数目”和“班次号”可退距发车时间大于半小时的班次的车票。
三、概要设计(1)类:#include<>#include<>#include<>#include <>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);}}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);(0,ios::beg);o;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;}(0,ios::end);o;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;}(0,ios::end);//文件指针指向文件尾for(i=0;i<num;i++)((char*)&t[i],sizeof(Ticket)); }void Ticket::xiugai(fstream&f){char n[10];Ticket t;cout<<"请输入你要修改的班次:"<<endl;cin>>n;(0,ios::beg);bool fd=false;while(!()&&!fd){((char*)&t,sizeof(Ticket));if(fd=(n)){cout<<"请依次输入"<<endl<<"发车时间(时)、发车时间(分)、起点站、终点站、行车时间、额定票数和余票数量 "<<endl;cin>>;cin>>;cin>>;cin>>;cin>>;cin>>;cin>>;cin>>;}}(0,ios::end);//文件指针指向文件尾((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;("d:\\",ios::in|ios::out|ios::binary);//创建并打开二进制文件switch(x){case 1:(file);break;case 2:(file);break;case 3:(file);break;case 4:(file);break;case 5:(file);break;case 6:(file);break;case 7:(file);break;case 8:(file);break;case 9:(file);break;case 10:(file);break;case 0:break;}cout<<"操作已完成,请继续!"<<endl;();//关闭二进制文件}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 40 操作已完成,请继续!5、根据终点站查询路线输入: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)售票的班次如已发出,则显示“该车次已发出!”如无余票则提示“票已售完”。