基于C++的火车票管理系统C++课程设计

合集下载

火车售票系统c课程设计

火车售票系统c课程设计

火车售票系统c 课程设计一、课程目标知识目标:1. 学生能理解火车售票系统的基本原理和功能需求,掌握系统设计的基本流程。

2. 学生能运用所学编程语言(如C语言)实现售票系统的功能模块,如用户界面、票务查询、购票、支付等。

3. 学生了解数据库原理,能运用数据库技术进行票务数据存储和管理。

技能目标:1. 学生掌握系统分析与设计的方法,能运用结构化分析方法进行问题求解。

2. 学生掌握C语言编程技巧,能编写规范、高效的代码实现系统功能。

3. 学生具备团队协作能力,能在小组合作中发挥个人特长,共同完成项目任务。

情感态度价值观目标:1. 学生通过课程学习,培养对计算机科学的兴趣和热情,提高信息素养。

2. 学生在项目实践中,学会分析问题、解决问题,增强自信心和自主学习能力。

3. 学生树立正确的价值观,认识到科技对社会发展的作用,关注社会热点问题。

课程性质:本课程为信息技术课程,旨在通过火车售票系统项目设计,培养学生编程能力、团队协作能力和问题解决能力。

学生特点:学生具备一定的C语言基础,对编程有一定兴趣,喜欢动手实践,但个别学生可能缺乏团队协作经验。

教学要求:注重理论与实践相结合,以项目为导向,引导学生主动探究,培养其编程技能和实际操作能力。

同时,关注学生情感态度的培养,使其在学习过程中形成积极的价值观。

通过分解课程目标为具体的学习成果,便于教学设计和评估,确保课程目标的达成。

二、教学内容1. 火车售票系统概述:介绍火车售票系统的基本原理、功能模块及系统架构,关联课本第三章内容。

- 系统需求分析- 功能模块划分- 系统架构设计2. C语言编程基础:回顾C语言基础知识,为后续编程实践打下基础,关联课本第二章内容。

- 数据类型与运算符- 控制结构(分支、循环)- 函数与数组3. 数据库原理与应用:介绍数据库基本概念,学会运用数据库进行票务数据管理,关联课本第五章内容。

- 数据库基本概念- 数据表设计与创建- SQL语句操作4. 系统功能实现:根据需求分析,利用C语言和数据库技术实现火车售票系统功能,关联课本第六章内容。

c语言课程设计车票管理系统

c语言课程设计车票管理系统

c语言课程设计车票管理系统一、教学目标本课程的教学目标是使学生掌握C语言编程的基本技能,能够运用C语言设计简单的车票管理系统。

具体目标如下:1.知识目标:–掌握C语言的基本语法和数据结构;–理解车票管理系统的业务逻辑和需求;–了解软件开发的基本流程。

2.技能目标:–能够使用C语言编写程序,实现车票管理系统的基本功能;–能够进行程序调试和优化,提高程序的性能和可维护性;–能够运用面向对象编程思想,设计合理的软件架构。

3.情感态度价值观目标:–培养学生的编程兴趣,增强自信心;–培养学生团队合作精神和自主学习能力;–培养学生对软件行业的热爱和对编程事业的敬业精神。

二、教学内容本课程的教学内容主要包括C语言基础知识、车票管理系统的需求分析、系统设计、编码实现和测试等。

具体安排如下:1.C语言基础知识:–数据类型、变量和常量;–运算符和表达式;–控制语句;–函数和数组。

2.车票管理系统的需求分析:–理解车票管理系统的业务流程;–分析系统需求,确定功能模块。

3.系统设计:–设计系统的数据结构和算法;–设计系统的界面和交互逻辑。

4.编码实现:–使用C语言编写程序,实现车票管理系统的基本功能;–进行程序调试和优化。

5.测试与总结:–对程序进行测试,确保功能正确;–总结学习过程,提高编程能力。

三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:通过讲解C语言的基本语法和车票管理系统的业务逻辑,使学生掌握相关知识。

2.案例分析法:分析实际案例,使学生更好地理解车票管理系统的需求和设计。

3.实验法:让学生动手编写程序,培养实际操作能力和编程技能。

四、教学资源本课程所需的教学资源包括:1.教材:《C程序设计语言》或《C语言入门教程》;2.参考书:《C语言编程思想》或《C语言实例教程》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络环境等。

以上教学资源将有助于实现本课程的教学目标,提高学生的编程能力,为学生的职业发展奠定基础。

C语言课程设计报告书-火车票务管理系统

C语言课程设计报告书-火车票务管理系统

延边大学工学院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:显示未能找到所寻目的地。

火车票管理系统——C语言程序设计实训报告

火车票管理系统——C语言程序设计实训报告

题 目: 学生成绩管理系统院 系: 信息科技学院专 业: 计算机科学与技术姓 名: 何荣荣学 号: 1751200204指导教师: 王小琼日 期: 2018年6月28日桂林电子科技大学信息科技学院前 言课程设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。

通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。

C语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自1972年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是人们学习程序设计的首选语言,用它训练和提高编程技术,以及开发应用程序等。

我们通过《C语言程序设计》这门课程的学习,已经能编写解决小问题的程序,对程序的开发也有了初步的认识,还掌握了C 语言的基本语法,这一过程确确实实令我们感到欣喜,有点计算机可以完成自我任务的成就感。

但是,对于程序设计而言,学习C 的步伐不应该停留于此。

我们最终的目的应该是掌握开发大型综合程序的方法,即遵循软件工程的开发步骤和结构化程序设计思想,用C 语言开发出解决复杂问题的大型综合程序。

可是对于多数学生来说,学习了C语言后,除了应付各种考试之外,别无它用,对Turbo C语言丰富的函数知之甚少,加上DOS环境所限,因而对C语言兴趣不大,也感到C语言比较难以掌握。

本实训就是为了让学生在学完C语言后进一步了解C语言的知识,掌握C语言在软件开发方面的使用方法,希望通过此次实训,不仅能提高学生学习C语言的兴趣,更为今后学习其它专业知识及开发程序打下坚实的基础。

本指导书中有些内容借鉴了互联网上相关程序的设计思想,在此对相关者表示衷心的感谢。

由于时间、经验及水平的原因,不当、不足之处,请大家提出宝贵意见。

C程序设计 火车票管理系统

C程序设计 火车票管理系统

课程设计任务书课设题目:火车售票系统系别班级学生姓名学号指导教师职称课程设计进行地点:实训F座任务下达时间: 年月日起止日期:年月日起至年月日止教研室主任: 年12月24日批准一、课程设计的原始资料及依据在现代社会,火车以其安全,舒适以及其服务的周到使愈来愈多的人选择了火车为长距离出行的交通工具,这就使火车公司以及车站的工作量愈来愈大,若仍然使用文件或者人工来管理公司、车站、火车、列班、路线、客户以及售票的信息,那无疑在效率上会大打折扣。

21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。

利用计算机来储存和管理公司、车站、火车、列班、车线、客户以及售票的信息成为了首选,在这种情况下,火车订票系统就显得非常重要了。

两个客户名单可分别由线性表和队列实现。

为查找方便,已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。

由于预约人数无法预计,队列也应以链表作存储结构。

整个系统需汇总各条路线的情况登录在一张线性表上,由于路线基本不变,可采用顺序存储结构,并按车次有序或按终点站名有序。

每条路线是这张表上的一个记录,包含上述8个域,其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。

队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。

用队列来进行客户信息的存储。

编辑用户使用菜单,内容包括:输入列班信息,保存列班信息,读取列班信息,查找列班信息,删除列班信息,订票信息,退票信息以及修改信息。

二、课程设计主要内容及要求1. 列车基本信息管理:输入所有列班信息。

每条路线所涉及的信息有:终点站名、车次号、车厢号、开车周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、座位等级1,2或3)以及等候替补的客户名单(包括姓名、所需的票量)。

2.列车基本信息查询:按车次号查找,按抵达站查找,按路线查找三种查找方式进行查找。

c语言课程设计车票管理系统

c语言课程设计车票管理系统

c语言课程设计车票管理系统车票管理系统是一个用于管理车票信息的软件系统。

它可以记录并管理车票的购买、退票、查询等操作,实现对车票信息的全面管理和统计。

本文将从需求分析、系统设计和实现三个方面来介绍车票管理系统的开发过程。

一、需求分析车票管理系统主要面向客户和管理员两类用户。

客户可以通过系统购买车票、查询车票信息,管理员可以管理车票信息、处理退票等操作。

1. 用户管理车票管理系统需要实现用户的注册和登录功能,以保证用户购票时的身份认证和信息安全。

2. 车次管理系统需要记录车次的信息,包括车次编号、起始站点、终点站点、发车时间、到达时间、票价等。

管理员可以对车次信息进行增删改查操作。

3. 车票管理系统需要记录车票的信息,包括车票编号、车次编号、座位号、购票人、购票时间等。

客户可以通过系统购买车票,管理员可以对车票信息进行增删改查操作。

4. 车票查询客户可以根据起始站点、终点站点和发车时间等条件来查询车票信息,以便选择合适的车次和座位。

5. 车票购买客户可以选择合适的车次和座位进行购票,系统需要实时更新车票信息,避免重复售票或超售情况的发生。

6. 车票退票客户可以通过系统进行退票操作,系统需要实时更新车票信息,并进行相应的退款处理。

二、系统设计基于需求分析的结果,我们可以设计出如下的系统架构:1. 用户管理模块包括用户注册、登录、信息修改等功能。

2. 车次管理模块包括车次信息的增删改查功能。

3. 车票管理模块包括车票信息的增删改查功能。

4. 车票查询模块根据用户输入的条件查询车票信息并展示给用户。

5. 车票购买模块根据用户选择的车次和座位进行购票,并更新车票信息。

6. 车票退票模块根据用户选择的车票进行退票,并更新车票信息和退款处理。

三、系统实现车票管理系统的实现主要依赖于数据库和编程语言。

我们可以选择使用MySQL作为数据库,使用C语言进行系统的开发。

1. 数据库设计根据需求分析的结果,我们可以设计出如下的数据库表结构:- 用户表:包括用户ID、用户名、密码等字段。

车票管理系统c语言课程设计

车票管理系统c语言课程设计

车票管理系统 c语言课程设计一、教学目标本节课的教学目标是使学生掌握车票管理系统的设计与实现,通过学习,学生应能理解C语言在实际应用中的编程方法,熟练运用C语言实现一个简单的车票管理系统。

具体来说,知识目标包括理解车票管理系统的业务流程,掌握C语言的基本数据类型和控制结构;技能目标包括能够使用C语言编写程序,实现车票管理系统的基本功能;情感态度价值观目标包括培养学生的团队协作意识,提高学生解决实际问题的能力。

二、教学内容本节课的教学内容主要包括车票管理系统的业务流程分析、C语言基本数据类型和控制结构的学习,以及车票管理系统程序的编写和调试。

首先,学生需要了解车票管理系统的业务流程,包括车票的购买、退票、改签等操作;其次,学生需要学习C语言的基本数据类型和控制结构,如整数、浮点数、字符、条件语句、循环语句等;最后,学生需要运用所学知识,编写车票管理系统程序,并进行调试。

三、教学方法为了达到本节课的教学目标,将采用讲授法、案例分析法和实验法等多种教学方法。

首先,通过讲授法向学生传授车票管理系统的业务流程和C语言的基本知识;其次,通过案例分析法,分析车票管理系统的实际应用,使学生更好地理解所学知识;最后,通过实验法,让学生动手编写和调试车票管理系统程序,提高学生的实际操作能力。

四、教学资源本节课的教学资源包括教材、参考书、多媒体资料和实验设备。

教材和参考书将提供车票管理系统的设计原理和C语言编程方法的理论知识;多媒体资料将展示车票管理系统的实际应用场景,帮助学生更好地理解所学知识;实验设备将支持学生进行车票管理系统程序的编写和调试,提高学生的实际操作能力。

五、教学评估本节课的教学评估将采用多元化的评估方式,包括平时表现、作业和考试等,以全面客观地评价学生的学习成果。

平时表现将占课程总评的30%,主要评估学生在课堂上的参与程度和表现;作业将占课程总评的30%,主要评估学生对车票管理系统设计和C语言编程的掌握情况;考试将占课程总评的40%,主要评估学生对车票管理系统设计和C语言编程的综合运用能力。

c车票管理系统课课程设计

c车票管理系统课课程设计

c 车票管理系统课课程设计一、教学目标本课程的学习目标旨在让学生掌握车票管理系统的基本概念、原理和实际应用,培养学生具备一定的编程能力和问题解决能力。

具体目标如下:1.知识目标:(1)了解车票管理系统的基本原理和架构;(2)掌握车票管理系统的主要模块及其功能;(3)熟悉车票管理系统的编程语言和开发环境。

2.技能目标:(1)能够使用编程语言实现车票管理系统的各个模块;(2)具备调试和优化车票管理系统的的能力;(3)学会运用车票管理系统解决实际问题。

3.情感态度价值观目标:(1)培养学生对编程和计算机科学的兴趣;(2)培养学生团队合作、创新思维和持续学习的精神;(3)培养学生遵守编程规范和职业道德的意识。

二、教学内容本课程的教学内容主要包括以下几个部分:1.车票管理系统的基本原理和架构;2.车票管理系统的主要模块及其功能;3.车票管理系统的编程语言和开发环境;4.车票管理系统的实际应用案例分析。

教学大纲安排如下:第1-2课时:介绍车票管理系统的基本原理和架构;第3-4课时:讲解车票管理系统的主要模块及其功能;第5-6课时:学习车票管理系统的编程语言和开发环境;第7-8课时:分析车票管理系统的实际应用案例。

三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:讲解车票管理系统的基本原理、主要模块和编程语言;2.案例分析法:分析车票管理系统的实际应用案例,让学生深入了解课程内容;3.实验法:让学生动手实践,调试和优化车票管理系统;4.讨论法:鼓励学生提问、发表见解,培养团队合作和创新思维。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的车票管理系统教材;2.参考书:提供相关的编程语言和开发环境的参考书籍;3.多媒体资料:制作精美的课件、教学视频等;4.实验设备:为学生提供充足的计算机设备,以便进行实验和实践。

五、教学评估为了全面、客观地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:考察学生在课堂上的参与程度、提问和回答问题的积极性等;2.作业:布置适量的作业,检查学生对知识的掌握和应用能力;3.考试:安排期中考试和期末考试,测试学生的知识水平和问题解决能力;4.项目实践:让学生参与车票管理系统的实际项目,评估其动手能力和创新能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息科学与技术学院《程序设计基础》课程设计报告题目名称:车票管理系统专业班级:电子信息工程10级2班学生姓名:王彪樊江涛学生学号:********** **********指导教师:**完成日期:2011-01 目录1 课程设计综述————————————————— 4 1.1 课程设计的目的——————————————— 4 1.2 课程设计的题目——————————————— 41.3 题目要求—————————————————— 42 概要设计——————————————————— 43 详细设计——————————————————— 5 3.1 流程图——————————————————— 53.2 源程序——————————————————64 测试——————————————————— 145 课程设计总结—————————————————161.课程设计综述1.1 课程设计的目的让我们更加深入的了解C++的,使我们一学期学习到的东西得到实践. 1.2 课程设计的题目火车票管理系统1.3 题目要求用c++设计一个系统,能提供下列服务:(1)录入班次信息(信息用文件保存),可不定时地增加班次数据(2)浏览班次信息,可显示出所有班次当前状态(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。

(3)查询路线:可按班次号查询 ,可按终点站查询(4)售票和退票功能A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数2 方案选择1)算法设计说明由主函数进入,弹出主菜单界面,通过Switch语句选择需要的功能,可以选择班次录入,浏览班次信息,查询班次信息,购票和退票以及退出系统,以完成不同的操作.其中查询班次信息中还可以由班次查询或者终点站查询.整个系统的文件载入用一个文件载入函数承当.3 详细设计3.1 流程图3.2 源程序#include <iostream>#include <fstream>#include <string>#include<time.h>using namespace std;void welcome(); //欢迎子函数void choose(); //选择子函数void banciluru(); //班次录入子函数void liulanbancixinxi(); //浏览班次信息子函数void shoupiao(); //售票子函数void tuipiao(); //退票子函数void quit(); //退出子函数void chaxun(); //查询子函数int loading(); //文件载入子函数const int MAX=20; //使数组最大值可调const int N=50;struct time //时间结构体,为了与系统时间做比较.{int hour;int minutes;};struct ticket //车票结构体,包含车次,时间结构体,起点,终点,行车时间,额定载客量,已订票人数{int Number;struct time Setout;char Qidian[MAX];char Zhongdian[MAX];float Lasttime;int Fixnumber;int Fixednumber;}car[N];//主函数int main(){welcome();return 0;}//欢迎子函数void welcome(){cout<<"________________________________________________________"<<endl; cout<<"| 欢* 迎* 使* 用* 火* 车* 票* 管* 理* 系* 统|"<<endl; cout<<"| |"<<endl; cout<<"| 本管理系统有以下功能: |"<<endl; cout<<"| |"<<endl; cout<<"| 1 班次录入|"<<endl; cout<<"| 2 浏览班次信息|"<<endl; cout<<"| 3 查询火车信息|"<<endl; cout<<"| 4 购买火车票|"<<endl; cout<<"| 5 退订火车票|"<<endl; cout<<"| 6 退出系统|"<<endl; cout<<"|______________________________________________________|"<<endl; cout<<"请输入所要执行功能前的数字: "<<endl;choose();}//选择子函数void choose(){string i;cin>>i;if(i=="1")banciluru();if(i=="2")liulanbancixinxi();if(i=="3")chaxun();if(i=="4")shoupiao();if(i=="5")tuipiao();if(i=="6")quit();else{cout<<"输入有误!请在数字1-5之间重新您的输入选择!"<<endl;choose();}}//班次录入子函数void banciluru(){string t="1";ofstream outfile;outfile.open("班次信息.txt",ios::app);for(int i=0;t=="1";i++){cout<<"请输入需要添加的火车班次:"<<endl;cin>>car[i].Number;cout<<"请输入此班次发车时间(格式:先输入小时,回车,再输入分钟):"<<endl;cin>>car[i].Setout.hour;cin>>car[i].Setout.minutes;cout<<"请输入出发站:"<<endl;cin>>car[i].Qidian;cout<<"请输入终点站:"<<endl;cin>>car[i].Zhongdian;cout<<"请输入行车时间:"<<endl;cin>>car[i].Lasttime;cout<<"请输入额定载客量:"<<endl;cin>>car[i].Fixnumber;cout<<"请输入已订票人数:"<<endl;cin>>car[i].Fixednumber;outfile<<car[i].Number<<" "<<car[i].Setout.hour<<" "<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl;cout<<"是否继续录入?(是请输1,否请输任意键返回主菜单)"<<endl;cin>>t;if(t!="1"){welcome();}}outfile.close();cout<<"输入回车键返回"<<endl;getchar();getchar();welcome();}//浏览班次子函数void liulanbancixinxi(){int c;c=loading();cout<<"班次"<<" "<<"发车时间"<<" "<<"起点站"<<" "<<"终点站"<<" "<<"行车时间"<<" "<<"额定载客量"<<" "<<"已订票人数"<<endl;for(int i=0;i<c;i++){cout<<car[i].Number<<" "<<car[i].Setout.hour<<":"<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl;time_t tval;struct tm *now;tval = time(NULL);now = localtime(&tval);if((now->tm_hour==car[i].Setout.hour&&now->tm_min>car[i].Setout.minutes)||(now->tm_hour> car[i].Setout.hour))cout<<"此车已发出"<<endl;}cout<<"输入回车键返回"<<endl;getchar();getchar();welcome();}//车次查询子函数void Numbersearch();void Finalsearch();void chaxun(){string t;cout<<"1.按班次查询"<<endl;cout<<"2.按终点站查询"<<endl;cout<<"请输入您想选择的查询方法前的数字:"<<endl;cin>>t;if(t=="1")Numbersearch();if(t=="2")Finalsearch();if(t!="1"||t!="2"){cout<<"输入有误,请重新输入"<<endl;chaxun();}}//班次查询子函数void Numbersearch(){loading();int SearchNumber;cout<<"请输入您需要查找的班次号:"<<endl;cin>>SearchNumber;cout<<"班次"<<" "<<"发车时间"<<" "<<"起点站"<<" "<<"终点站"<<" "<<"行车时间"<<" "<<"额定载客量"<<" "<<"已订票人数"<<endl;cout<<car[SearchNumber-1].Number<<""<<car[SearchNumber-1].Setout.hour<<":"<<car[SearchNumber-1].Setout.minutes<<""<<car[SearchNumber-1].Qidian<<" "<<car[SearchNumber-1].Zhongdian<<" "<<car[SearchNumber-1].Lasttime<<" "<<car[SearchNumber-1].Fixnumber<<" "<<car[SearchNumber-1].Fixednumber<<endl;cout<<"输入回车键返回"<<endl;getchar();getchar();welcome();}//终点站查询子函数void Finalsearch(){int R;R=loading();int i;char Address[MAX];cout<<"请输入终点站名称:"<<endl;cin>>Address;cout<<"班次"<<" "<<"发车时间"<<" "<<"起点站"<<" "<<"终点站"<<" "<<"行车时间"<<" "<<"额定载客量"<<" "<<"已订票人数"<<endl;for(i=0;i<R;i++){if((strcmp(Address,car[i].Zhongdian))==0)cout<<car[i].Number<<""<<car[i].Setout.hour<<":"<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl;}cout<<"输入回车键返回"<<endl;getchar();getchar();welcome();}//购买火车票子函数void shoupiao(){int R;R=loading();int i;cout<<"请输入要订购的车票的班次:"<<endl;cin>>i;if(i<=0||i>R){cout<<"对不起,今天没有这趟车,请明天再来,谢谢使用!"<<endl;cout<<"输入回车键返回"<<endl;getchar();getchar();welcome();}time_t tval;struct tm *now;tval = time(NULL);now = localtime(&tval);if((now->tm_hour==car[i-1].Setout.hour&&now->tm_min<car[i-1].Setout.minutes)||(now->tm_h our<car[i-1].Setout.hour)){if(car[i-1].Fixednumber<car[i-1].Fixnumber){(car[i-1].Fixednumber)++;ofstream outfile;outfile.open("班次信息.txt",ios::out);for(i=0;i<R;i++){outfile<<car[i].Number<<" "<<car[i].Setout.hour<<" "<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl;}outfile.close();cout<<"你的订票成功,请按时上车,谢谢使用!"<<endl;}else cout<<"对不起,今天的这趟车的票已卖完,请明天再来,谢谢合作"<<endl;}else cout<<"对不起,今天的这趟车已发出,请明天再来,谢谢合作"<<endl;cout<<"输入回车键返回"<<endl;getchar();getchar();welcome();}//退订火车票子函数void tuipiao(){int R;R=loading();int i;cout<<"请输入要退购的车票的班次:"<<endl;cin>>i;if(i<=0||i>R){cout<<"对不起,今天没有这趟车,无法完成退票.谢谢使用!"<<endl;cout<<"输入回车键返回"<<endl;getchar();getchar();welcome();}time_t tval;struct tm *now;tval = time(NULL);now = localtime(&tval);if((now->tm_hour==car[i-1].Setout.hour&&now->tm_min<car[i-1].Setout.minutes)||(now->tm_h our<car[i-1].Setout.hour)){if(car[i-1].Fixednumber>=1){car[i-1].Fixednumber-=1;ofstream outfile;outfile.open("班次信息.txt",ios::out);for(i=0;i<R;i++){outfile<<car[i].Number<<" "<<car[i].Setout.hour<<" "<<car[i].Setout.minutes<<" "<<car[i].Qidian<<" "<<car[i].Zhongdian<<" "<<car[i].Lasttime<<" "<<car[i].Fixnumber<<" "<<car[i].Fixednumber<<endl;}outfile.close();cout<<"退订车票成功,谢谢使用!"<<endl;}else cout<<"对不起,今天的这趟车的票尚未卖出,无法完成退票!"<<endl;}else cout<<"对不起,今天的这趟车已发出,无法完成退票!"<<endl;cout<<"输入回车键返回"<<endl;getchar();getchar();welcome();}//退出子函数void quit(){cout<<"*********************谢谢使用本系统,欢迎下次继续使用***********************"<<endl;}//文件载入子函数int loading(){int i;ifstream infile;infile.open("班次信息.txt",ios::in);if(!infile){cout<<"请查看原文件是否存在!"<<endl;cout<<"按任意键返回";getchar();getchar();welcome();}for(i=0;!infile.eof();i++){infile>>car[i].Number>>car[i].Setout.hour>>car[i].Setout.minutes>>car[i].Qidian>>car[i].Zhongd ian>>car[i].Lasttime>>car[i].Fixnumber>>car[i].Fixednumber;}return i-1;}4 测试主菜单:班次录入:浏览班次信息:查询火车信息:测试中发现订购和退订车票后,虽然已订购车票数实际上有增减,但不能存入到文件中及时保存.后来通过以文件覆盖的方法重新录入一次文件得以解决.测试中还发现若时间是整点的话,分钟的0只能是一个0,因为分钟定义的格式是int.,但若果改成char格式之后和系统时间比较的函数将不成立.所以这个程序仍然存在这样的一个问题.5 课程设计总结通过这次的课程设计,我发现我还有好多的不足之处,还有好多知识不能很好的运用,而且题目中的一个要求没有正常的完成.我觉得我们应该花更多的时间去查找资料,因为仅凭自己已学的知识是无法完成这些内容的.这次课程设计我用了9个子函数去完成,分开完成各个函数并验证其正确性,这样的方法让我能够顺利完成整个系统.不足之处还有好多,我应该在以后的学习中更加努力完善.6参考书目:[1]谭浩强,《C++程序设计》,北京,清华大学出版社,2006年.。

相关文档
最新文档