车票管理系统实验报告(电子)
- 格式:doc
- 大小:677.00 KB
- 文档页数:18
火车票管理系统课程设计报告精编W O R D版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】程序设计报告( 2014 / 2015 学年第一学期)题目:火车票管理系统专业通信工程学生姓名班级学号指导教师指导单位计算机学院计算机软件教学中心日期火车票务管理系统一、课题内容和要求(一)课题内容该系统要求实现一个简单、实用的火车票管理程序,主要功能包括火车票数据的录入、查找、删除、显示、售票、退票等。
所有火车票数据都要利用文件系统保存,以备系统下次运行时使用。
通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法思想的应用。
(二)课题要求(1)火车票数据由多条记录组成,其信息包括:车次,发车时间,起点站,终点站,行车时间,额定载量,已售票人数等。
(2)数据保存形式:所有火车票数据要以文本或二进制文件保存。
(3)需要实现的功能1)新增火车票数据记录。
2)查找火车票数据(可按车次,发车时间、起点站、终点站等查找)。
3)删除火车票数据记录(先查找,再删除。
若查找出多条记录,则进一步提示用户选择记录的车次,再删除)。
4)对火车票排序(可按车次、发车时间、起点站、终点站等排序。
)。
5)显示当前所有火车票信息列表。
6)售票(先查找,当确定车次后,根据售票张数对该车次的已售票人数进行修改)。
7)退票(售票的逆处理,过程与售票类似)。
8)保存火车票数据到文件中。
9)从文件中读入火车票数据。
(4)界面功能要求:1)采用友好的字符界面,实现一个功能控制菜单。
2)每次操作都从该菜单选择,利用循环结构使得一次运行程序可进行多次操作。
需求分析一、功能分析图二、录入班次信息:依次输入班次、起点站和终点站等信息同时保存在文件中,并可以随时增加新的班次信息。
三、浏览班次信息:输出保存在文件中的全部班次信息,并区分当前的车次是否已发出,如发出则标记“此车已发出”。
火车票系统程序设计报告1. 引言本报告旨在介绍一个火车票系统的程序设计,该系统旨在提供用户购买火车票、查询车次信息等功能。
通过该系统,用户可以方便地预订、查询以及管理火车票信息,提高购票交通效率。
2. 功能需求火车票系统的主要功能需求如下:1. 用户注册和登录:用户可以通过注册账号和密码进行登录,以使用系统的各项功能。
2. 车次查询:用户可以根据出发地、目的地、时间等条件查询所有符合要求的车次信息。
3. 车票预订:用户可以预订特定车次的车票,并提供相应的座位选择。
4. 车票退订:用户可以取消已预订的车票。
5. 车票管理:管理员可查看所有车次信息及相应座位的预订情况,并进行车次和座位管理。
3. 系统设计3.1 数据库设计为了支持所需的功能,我们需要设计一个数据库来存储用户、车次和车票信息。
数据库的设计如下:- 用户表(User):存储用户的账号、密码、邮箱等信息。
- 车次表(Train):存储车次的出发地、目的地、时间、座位数量等信息。
- 车票表(Ticket):存储用户预订的车票信息,包括车次、座位等。
3.2 系统架构火车票系统的主要架构如下:- 用户界面:提供用户注册、登录、车次查询、车票预订和退订等功能的界面。
- 功能模块:实现用户管理、车次管理、车票管理等功能的模块。
- 数据库模块:实现与数据库的连接和数据存取的功能模块。
3.3 系统流程以下是火车票系统的主要流程:1. 用户注册:用户通过输入注册信息和密码进行账号注册。
2. 用户登录:用户输入账号和密码进行登录。
3. 车次查询:用户选择出发地、目的地、时间等条件进行车次查询。
4. 车票预订:用户选择特定车次和座位,并确认预订。
5. 车票退订:用户选择已预订的车票进行退订。
6. 管理员功能:管理员可以查看车次信息和座位情况,并进行相应管理操作。
4. 技术实现4.1 前端技术前端部分可以使用HTML、CSS和JavaScript来实现用户界面的设计和交互操作,使用AJAX技术与后端进行数据交互。
车辆管理系统实验报告篇一:车辆信息管理系统实验报告新课程设计报告格式面向对象程序设计I课程设计报告题目:车辆信息管理系统学院:计算机科学与工程学院专业:软件工程专业班级:学号:姓名:指导老师:设计日期:1. 题目及程序(系统)功能设计说明课程设计题目:车辆信息管理系统程序(系统)的基本功能:车辆信息管理系统由两个子系统构成:一是:对轿车信息的管理;二是:对车辆信息的管理功能。
主要是增删改功能2. 程序涉及的知识点1.类、内联函数、类的继承与派生、虚函数、抽象类的知识. Class car //轿车类基类:class Emcar //汽车类派生类:class Pascar:public Emcar //客车类class Limou:public Emcar //轿车类class Truck:public Emcar //卡车类class Train:public Emcar //火车实现车辆管理class Company //公司类2.实现对文件的操作,stream的子类ifstream,ofstream以及其中的相关函数:open,close,good调用的头文件有#include,#include #include,#include,#include #include掌握getline()逐行读取功能以及ios::in,ios::out,ios::app,对于文件的格式的实现。
了解system 函数对于命令行指令的调用,cls指令实现清屏及color指令改变控制台的前景色和背景。
还应用了左对齐setiosflags,设置域宽setw等函数。
3.链表这种数据结构相关增删改查基本功能实现相关知识。
3.功能设计或算法设计车辆信息管理系统由两个子系统构成,它的主要功能如下:.轿车信息管理系统1. 添加车辆信息主要添加的车辆信息包括5各方面,分别是:桥车的车牌号(编号不唯一),车辆名字,车辆的价格,车辆的生产日期,车辆的生产地等。
软件工程课程设计报告专业班级:信息与计算科学0901班项目名称:铁路售票管理系统项目组长:成员:2012.1.5铁路售票管理系统软件系统测试报告铁路售票管理系统软件系统测试报告 (3)1引言 (3)1.1 编写目的 (3)1.2背景 (3)1.3定义 (3)1.4参考资料 (4)2系统需求概述 (4)2.1业务目标 (4)2.2运行环境 (4)2.3功能需求 (5)2.4非功能性需求 (6)3测试计划 (6)3.1测试方案 (6)3.1.1 测试方法 (6)3.1.2 测试的功能范围 (7)3.1.3 测试的性能范围 (8)3.2测试进度表及测试人员计划 (8)4 单元测试报告 (9)4.1 RailwayManagement类 (9)4.1.1 描述 (9)4.1.2 测试方法 (9)4.1.3测试用例 (9)4.1.4测试结果分析 (21)5 集成测试报告 (21)5.1集成测试描述 (21)5.2集成方法设计 (21)5.3测试内容 (21)5.4测试结果分析 (22)6 系统测试报告 (22)6.1 系统测试描述 (22)6.2 功能测试 (22)6.3 安全性测试 (23)6.4 性能测试 (23)7 测试结论 (24)面向对象需求分析方法:OOA组长:张银分工情况:杨超1050310218 子系统1 :列车及车票信息查询子系统路帅1050310204 子系统2 :登录系统及信息管理子系统张银1050310214 子系统3 :车票的销售与退票子系统周春波1050310211 子系统4 :列车及车票管理子系统铁路售票管理系统软件系统测试报告1引言1.1 编写目的本测试报告为实验室铁路售票系统的测试报告,目的在于总结测试阶段的测试以及分析测试结果,描述系统是否符合需求。
预期参考人员包括用户、测试人员、开发人员、项目管理者、和其他质量管理人员。
1.2背景a.待开发的软件系统的名称:铁路售票管理系统本软件产品是一项独立的软件,而且全部内容自含。
火车票订购系统需求分析1.1 系统任务概述这里将该系统的应用是学生在线订购火车票系统,主要涉及对列车信息的管理、学生信息的管理和学生订票信息的管理:对列车信息的管理:对列车信息的添加、修改、删除和查询等对学生信息的管理:对学生信息的添加、修改、删除、查询等对订票信息的管理:对订票信息的管理,如:何人,何时订了何票等。
此外,对于每个使用该系统的人,都要实现用户名和密码登陆,只有合法的用户才能使用该系统。
1.2 功能需求1.2.1 学生的管理每个通过资格审查的人都注册,并拥有自己的用户名和密码,成为注册用户,以后凭此登陆系统;不能通过审查的人员则不予办理。
每个注册用户都拥有一个账号,此账号里包含该用户的所有个人信息,每次的订票活动都凭借此账号进行,直到该账号被注销或删除为止。
因此,对学生的管理包含对学生相关信息的添加、修改、删除及检索功能。
1.2.2 列车信息管理列车信息的管理中很大一部分就是对车次信息的管理,主要涉及以下功能:新列车车次入库:对次新的列车车次信息,都将其详细信息加以记录,方可对外订购和查询列车信息的检索:要想从上千条列车信息记录中找到需要的车次,必须提供列车车次的快速检索和查询功能。
信息的修改:列车的基本信息(如车次号、车次时间、单价等)是不需提供修改功能的,但其它一些信息(是否打折、席别、票价、张数等)需要有修改功能。
列车信息的删除:对过时的列车信息要能够从系统信息中删除。
1.2.3 订票信息管理这是火车订票系统的核心功能之一,由系统管理员实现,主要涉及订票的车次的基本信息、学生的部分信息,订购日期及归订购张数等。
订票时:审查学生是否有订票权;检查列车信息信息是否可以被订购;两者都满足后才能办理订票手续。
取票时:获取学生信息和列车车次信息,判断订票时间是否超期,若超期则不予订购,只有在学生交了订金后才算成功订票。
对订票的历史记录要提供一定的查询功能,且由于不可能永远保存所有记录,还需要提供相应的删除记录的功能。
火车票订票系统测试报告评审日期: 2015年4 月 20日目录第1章导言 (3)1.1目的 (3)1.2范围 (3)1.3缩写说明 (3)1.4术语定义 (3)1.5引用标准 (4)1.6参考资料 (4)第2章测试设计 (4)2.1测试范围 (4)2.2测试覆盖设计 (4)第3章测试用例 (5)3.1系统前台操作测试 (5)3.1.1测试登陆 (5)3.1.2 测试订票 (6)3.1.3测试退票 (8)3.1.4测试修改个人信息 (9)3.2系统后台管理测试 (10)3.2.1测试管理员登陆 (10)3.2.2测试添加车次 (12)3.2.3测试删除车次 (13)3.2.4测试删除车次 (14)第1章导言1.1目的该文档的目的是描述火车票订票系统项目的系统测试设计,其主要内容包括:(1)测试总体设计(2)测试用例设计本文档的预期的读者是:(1)项目管理人员(2)测试人员1.2范围该文档为火车票订票系统的系统测试设计,其中包括功能测试和性能测试的用例描述以及性能测试的测试脚本,为测试人员进行功能测试和性能测试提供标准和依据,以及详尽的测试步骤和方法。
1.3缩写说明无1.4术语定义(1)功能性测试按照系统需求定义中的功能定义部分对系统实行的系统级别的测试。
(2)非功能性测试按照系统需求定义中的非功能定义部分(如系统的性能指标,安全性能指标等)对系统实行的系统级别的测试。
(3)测试用例测试人员设计出来的用来测试软件某个功能的一种情形。
1.5 引用标准[1] 《企业文档格式标准》[2] 《软件测试设计报告格式标准》1.6 参考资料[1] 《火车站售票客户端需求说明》[2] 古乐,史九林.软件测试技术概论[M].北京:清华大学出版社,2005.[3] Paul C.Jorgensen.软件测试:第二版[M].机械工业出版社,2007第2章测试设计由于本次测试主要是针对需求进行的系统测试,包括功能测试和性能测试的技术,功能测试是执行指定的工作流程,性能测试是将功能测试过程中的单独用户改为2人同时执行以验证系统的性能。
摘要:随着时代的不断进步,人们出行次数增加,那么一个火车站怎样才能快捷高效的为乘客们服务变成了一个很重要的问题。
伴随着电脑的普及,运用电脑进行数据的保存与管理已经成为一件再寻常不过的事情,因此建立一个火车票查询预订系统将会是一个很好的解决方法。
一个火车票查询预订系统的设计可以使工作人员实现电脑管理,减轻工作量,并且可以节约人力和物力,从而使得火车票管理更加的便捷和高效。
一个火车票查询预订系统应该有火车票的查询,添加或删除,管理员的管理等功能。
关键字:火车票查询;火车票预订;管理员管理;便捷;高效目录1 课题综述 (1)1.1 课题来源 (1)1.2 程序所实现的功能 (1)软硬件运行环境及开发工具 (1)2 系统分析 (1)2.1 主要模块功能 (1)功能模块图 (1)3 系统设计 (1)3.1 数据库设计 (1)3.2 火车票信息处理对话框的设计 (1)3.3 火车票销售对话框的设计................................................................ 错误!未定义书签。
4 代码编写 (4)4.1 命令按钮的过程代码添加方法........................................................ 错误!未定义书签。
4.2 具体代码 (1)5 程序调试 (3)5.1 上机过程中出现的问题和解决方案 (1)5.2 程序的扩展方案 (1)6 程序运行界面 (1)1 课题综述1.1 课题来源本次软件实习将用C#制作一个火车票查询预订系统,具有一般系统的数据处理功能,如数据录入、增加、修改、删除等。
1.2 程序所实现的功能本系统通过C# Winforms技术完成的功能如下:〔1〕可以实现火车票信息的增加、删除。
〔2〕可以实现火车票的基本信息的浏览。
〔3〕可以实现火车票的预订及预订信息的删除、修改〔4〕管理员登录密码的修改本次软件设计的运行环境:Windows XP操作系统,Microsoft Visual Studio 2005以上编译环境。
(建筑工程管理)软件工程实验火车票自动售票系统分析报告火车票自动售票系统实验报告学院:电子与信息工程学院专业:软件工程班级:2010级本(1)班姓名:刘亿、崔佳、曾玉婷、刘硕、张丽君指导教师:彭蕾起讫时间:2012.02——2012.06(初学者实验报告)目录1可行性研究报告引言51.1编写目的51.1.2背景61.1.3定义61.1.4参考资料61.2可行性研究的前提81.2.2要求81.2.2目标91.2.3条件、假定和限制101.2.4进行可行性研究的方法101.2.5评价尺度101.3对现有系统的分析101.3.1数据流程和处理流程101.3.2工作负荷121.3.3费用开支121.3.4人员131.3.5设备131.3.6局限性131.4所建议的系统141.4.1对所建议系统的说明151.4.2数据流程和处理流程161.4.3改进之处171.4.4影响171.4.5局限181.4.6技术条件方面的可行性18 1.5可选择的其他系统方案181.5.1可选择的系统方案1181.5.2可选择的系统方案219 1.6投资及收益分析191.6.1支出191.6.2收益201.6.3收益/投资比201.6.4投资回收周期211.6.5敏感性分析211.7社会条件方面的可行性211.8结论212项目开发计划引言222.1.1编写目的222.1.2项目背景222.1.3定义232.1.4参考资料232.2项目概述232.2.1工作内容242.2.2主要参加人员242.2.3产品及成果242.2.3.1程序242.2.3.2文件252.2.3.3服务252.2.3.4非移交产品252.2.4验收标准252.2.5完成项目的最迟期限262.2.6本计划的审批者与批准者262.3实施总计划262.3.1工作任务的分析262.3.2接口人员262.3.3进度272.3.4预算272.3.5关键问题282.4支持条件282.4.1计算机系统支持282.4.2需要用户承担的工作282.4.3需由外单位提供的条件282.5.专题计划要点293软件需求说明书引言293.1编写目的293.2范围293.2.1名称293.2.2任务目标303.2.3任务描述303.3参考资料303.4项目概述313.4.1项目来源313.4.2运行环境313.4.3产品功能313.4.4用户特点323.5具体要求323.5.1功能需求323.5.2功能组成333.6数据库343.6.1数据关系343.6.2数据定义353.8其他要求363.8.1可使用性363.8.2保密性363.8.3可维护性373.8.4控制373.8.5双方签字374数据要求说明书引言374.1编写目的374.1.1背景384.1.2定义384.1.3参考资料394.2数据的逻辑描述394.2.1静态数据394.2.2动态输入数据444.2.3动态输出数据444.2.3.2内部生成数据524.2.3.3数据约定534.3.数据的采集534.3.1要求和范围534.3.2输入的承担着544.3.3影响555概要设计引言(崔佳)555.1.1编写目的555.1.2背景555.1.4参考资料565.2.1运行环境575.2.2基本设计概念和处理流程575.2.3结构585.2.4功能需求与程序关系605.2.5人工处理过程605.2.6尚未处理的过程605.3接口设计605.3.1用户接口605.3.2外部接口615.4运行设计615.4.1运行模块组合615.4.2运行控制625.4.3运行时间625.5系统数据结构设计635.5.1逻辑结构设计要点635.5.2物理结构设计要点635.6系统出错处理设计655.6.1出错信息655.6.2补救措施655.6.3统维护设计666详细设计说明书引言666.1.编写目的676.1.1项目背景676.1.2定义686.1.3参考资料696.2程序系统的组织结构706.3.程序1(结构符)设计说明716.3.1登录模块716.3.2查询模块756.3.3确认、购票模块797测试计划引言837.1编写目的837.1.1背景837.1.2术语定义847.1.3参考资料847.2测试需求857.3测试约束857.4相关参考文档857.4.1测试参考文档857.4.2测试提交文档857.5测试类型和策略867.5.1测试项目计划867.5.2功能测试867.5.3性能测试867.5.4负载测试877.5.5可靠性测试877.5.6数据和数据库完整性测试887.5.7接口测试887.5.8集成测试897.6测试项目说明897.6.1测试用例897.6.2测试结果937.7评价977.7.1软件能力977.7.2缺陷和限制977.7.3测试结果971可行性研究报告引言1.1编写目的可行性研究的目的为明确将要设计的软件是否有开发价值,以最小的代价在最短的时间内确定问题是否可解。
火车票自动售票系统实验报告学院:电子与信息工程学院专业:软件工程班级: 2010级本(1)班姓名:刘亿、崔佳、曾玉婷、刘硕、张丽君指导教师:彭蕾起讫时间: 2012.02——2012.06(初学者实验报告)目录1可行性研究报告引言 (5)1.1编写目的 (5)1.1.2背景 (6)1.1.3定义 (6)1.1.4参考资料 (6)1.2可行性研究的前提 (8)1.2.2要求 (8)1.2.2目标 (9)1.2.3条件、假定和限制 (9)1.2.4进行可行性研究的方法 (9)1.2.5评价尺度 (9)1.3对现有系统的分析 (10)1.3.1数据流程和处理流程 (10)1.3.2工作负荷 (12)1.3.3费用开支 (12)1.3.4人员 (12)1.3.5设备 (13)1.3.6局限性 (13)1.4所建议的系统 (13)1.4.1对所建议系统的说明 (15)1.4.2数据流程和处理流程 (15)1.4.3改进之处 (17)1.4.4影响 (17)1.4.5局限 (18)1.4.6技术条件方面的可行性 (18)1.5可选择的其他系统方案 (18)1.5.1可选择的系统方案1 (18)1.5.2可选择的系统方案2 (19)1.6投资及收益分析 (19)1.6.1支出 (19)1.6.2收益 (20)1.6.3收益/投资比 (20)1.6.4投资回收周期 (20)1.6.5敏感性分析 (21)1.7社会条件方面的可行性 (21)1.8结论 (21)2项目开发计划引言 (21)2.1.1 编写目的 (21)2.1.2项目背景 (22)2.1.3 定义 (22)2.1.4参考资料 (23)2.2项目概述 (23)2.2.1 工作内容 (23)2.2.2 主要参加人员 (24)2.2.3 产品及成果 (24)2.2.3.1 程序 (24)2.2.3.2 文件 (24)2.2.3.3 服务 (24)2.2.3.4 非移交产品 (24)2.2.4验收标准 (25)2.2.5 完成项目的最迟期限 (25)2.2.6 本计划的审批者与批准者 (25)2.3实施总计划 (25)2.3.1 工作任务的分析 (25)2.3.2 接口人员 (25)2.3.3 进度 (25)2.3.4 预算 (26)2.3.5 关键问题 (26)2.4支持条件 (27)2.4.1计算机系统支持 (27)2.4.2 需要用户承担的工作 (27)2.4.3 需由外单位提供的条件 (27)2.5. 专题计划要点 (28)3软件需求说明书引言 (28)3.1编写目的 (28)3.2范围 (28)3.2.1 名称 (28)3.2.2 任务目标 (28)3.2.3 任务描述 (29)3.3参考资料 (29)3.4项目概述 (30)3.4.1项目来源 (30)3.4.2运行环境 (30)3.4.3产品功能 (30)3.4.4用户特点 (31)3.5具体要求 (31)3.5.1功能需求 (31)3.5.2 功能组成 (31)3.6数据库 (33)3.6.1 数据关系 (33)3.6.2 数据定义 (34)3.8其他要求 (35)3.8.1可使用性 (35)3.8.2保密性 (35)3.8.3可维护性 (36)3.8.5双方签字 (36)4数据要求说明书引言 (36)4.1编写目的 (36)4.1.1背景 (37)4.1.2定义 (37)4.1.3参考资料 (38)4.2数据的逻辑描述 (38)4.2.1静态数据 (38)4.2.2动态输入数据 (43)4.2.3动态输出数据 (43)4.2.3.2内部生成数据 (50)4.2.3.3数据约定 (52)4.3.数据的采集 (52)4.3.1要求和范围 (52)4.3.2输入的承担着 (53)4.3.3影响 (53)5概要设计引言(崔佳) (54)5.1.1编写目的 (54)5.1.2 背景 (54)5.1.4参考资料 (55)5.2.1运行环境 (55)5.2.2基本设计概念和处理流程 (56)5.2.3结构 (57)5.2.4功能需求与程序关系 (59)5.2.5人工处理过程 (59)5.2.6尚未处理的过程 (59)5.3 接口设计 (59)5.3.1用户接口 (59)5.3.2外部接口 (60)5.4 运行设计 (60)5.4.1运行模块组合 (60)5.4.2运行控制 (61)5.4.3运行时间 (61)5.5 系统数据结构设计 (62)5.5.1逻辑结构设计要点 (62)5.5.2物理结构设计要点 (62)5.6 系统出错处理设计 (64)5.6.1出错信息 (64)5.6.2补救措施 (64)5.6.3统维护设计 (65)6详细设计说明书引言 (66)6.1. 编写目的 (66)6.1.1 项目背景 (66)6.1.3参考资料 (67)6.2程序系统的组织结构 (67)6.3. 程序1(结构符)设计说明 (69)6.3.1登录模块 (69)6.3.2查询模块 (73)6.3.3 确认、购票模块 (77)7测试计划引言 (81)7.1编写目的 (82)7.1.1背景 (82)7.1.2术语定义 (82)7.1.3参考资料 (83)7.2测试需求 (83)7.3测试约束 (84)7.4相关参考文档 (84)7.4.1测试参考文档 (84)7.4.2测试提交文档 (84)7.5测试类型和策略 (84)7.5.1测试项目计划 (84)7.5.2功能测试 (85)7.5.3性能测试 (85)7.5.4负载测试 (86)7.5.5可靠性测试 (86)7.5.6数据和数据库完整性测试 (86)7.5.7接口测试 (87)7.5.8集成测试 (87)7.6测试项目说明 (88)7.6.1测试用例 (88)7.6.2测试结果 (92)7.7评价 (96)7.7.1软件能力 (96)7.7.2缺陷和限制 (96)7.7.3测试结果 (96)1可行性研究报告引言1.1编写目的可行性研究的目的为明确将要设计的软件是否有开发价值,以最小的代价在最短的时间内确定问题是否可解。
一实验目的进一步加深、巩固所学专业课程(《C语言程序设计》)的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。
掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。
二课程设计的内容对车票信息(包括班次、发车时间、行车时间、起点站终点站、额定人数及已订票人数)进行管理,包括车票的信息录入、浏览、查询、修改、删除、订票、退出.将车票信息进行录入,信息内容包含:(1)车票的班次(2)起点站到终点站(3)发车时间(4)行车时间(5)额定人数(6)已订票人数。
要求用C语言编写一个简单的车票管理系统,可进行录入、查询、修改和浏览等功能。
学习相关开发工具和应用软件的开发流程,熟悉系统建设过程。
三课程设计的要求与数据题目三:实现车票管理系统任务:自学C语言中有关链表及外部文件的内容,设计出车票管理系统。
要求如下所述:一车站每天有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 …根据以上情况设计出相应的车票管理系统,具体功能如下:* 录入功能录入班次信息(信息用文件保存),可不定时地增加班次数据* 浏览功能浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。
* 查询功能查询路线:可按班次号查询,可按终点站查询。
* 售票功能当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数。
* 退票功能退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数。
四课程设计应完成的工作(1)编写算法;(2)算法测试,并有具体的测试结果和结果分析;(3)撰写课程设计报告。
二○一三 ~二○一四学年第 二 学期 车票管理系统 实验报告
物理与电子工程学院 课程名称: 数据结构 班 级: 学 号: 姓 名:
二○一四 年 六 月 (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()函数,利用函数调用,实现程序的各种功能。将其放在系统文件ticket.txt中。
(5)画出各函数流程图
(6)实验结果(包括输入数据和输出结果) 0).主菜单 1).录入界面 2).浏览界面 3).查询界面 1.按班次查询 2.按终点站查询 4).订票界面 5).退票界面
6).退出系统 Ticket文件截图: (7)体会 经过两周的数据结构设计训练,让我们独立完成一个小系统,让我学到很多东西: (1)巩固和加深了对链表,指针的理解,提高综合运用所学知识的能力。 (2)培养了我独立思考,深入研究,分析问题、解决问题的能力;通过实践解决实际问题,并学会了很多实用的函数。 (3)在编辑程序代码的时候,这是一个至关重要、复杂而且需要反复修改的环节,在此环节中我发现存在很多问题,需不断改进。如何实现各函数功能,达到预期效果也将是一项繁复的工作。 (4)代码的调试在Visual C++6.0环境下输入代码并进行调试和正确运行。在调试过程中会遇到很多需要精化的地方,需要十足的耐心与细心,不断改进完善程序。 (5)最后,程序可以正确运行之后,在不影响程序功能的情况下,运用各种辅助性符号,使界面更加美观漂亮,操作更人性化.增强程序的新意与可行性。 而其中我发现system("cls")命令特别好用,因为之前在不知道system("cls")有清屏的功能时,在运行程序时,重复操作一些功能的时候,每次进行一项操作,运行窗口里的内容会一直保留着,感觉很杂乱,知道可以使用system("cls");这一语句可以解决这个问题,里面的内容很多,很繁琐,让人有点眼花缭乱,就是说全部的操作都显示在屏幕中。但是,在用了system("cls")命令之后,程序显得更加清楚,更加简洁美观,就是在执行完一个功能之后就把内容都清理掉,然后再返回主菜单或返回其它功能的界面,是操作者更好的操作。 不过,程序中还存在一些问题,当要求用户输入数字选择,若输入字符型数据或其他非整型数据时,还是存在系统不能运行的问题。但是,因为写程序时是要求用户输入数字的时候是必须用整型的,所以只要用户按要求输入正确的数据,程序是能正确运行的。 通过这次训练,使我更加熟悉的掌握了C语言的运用。帮助我熟悉了更多C语言的功能,提高了我的动手能力,学到了许多解决实际问题的宝贵经验。另外,在这次课程设计中我也遇到许多问题和麻烦,得到了老师的帮助和指导,才能够使得这次课程设计顺利的进行下去,另外,在程序调试过程中,也得到很多同学的帮助,给我及时指出错误,提出许多宝贵意见。
(8)参考文献 一:C程序设计(第四版) 谭浩强 著 清华大学出版社 二:数据结构(C语言版) 严蔚敏 著 人民邮电出版社 三:C语言项目案例分析 明日科技 著 清华大学出版社 (9)附录: 源程序: #include //宏定义函数 #include //标准库文件 #include //时间库函数 #include //串操作及内存操作函数 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; //结构体类型指针 TICKET *head; //班次头结点 TICKET *rear; //班次尾结点 /*****************************录入班次信息************************************/ void InsertTicket() //录入班次 { FILE *fp; //定义文件型指针变量 system("cls"); //清屏 fp=fopen("ticket.txt","r+"); //fopen打开文件,读写 TICKET *T; T=(TICKET *)malloc(sizeof(TICKET)); //开辟内存空间 printf("请输入班次信息(输入完成后请按回车键)\n"); scanf("%d",&T->num); printf("请输入发车时间\n"); scanf("%s",&T->starttime); printf("请输入起点站\n"); scanf("%s",&T->begin); printf("请输入终点站\n"); scanf("%s",&T->end); printf("请输入行车时间\n"); scanf("%f",&T->lasttime); printf("请输入额定载量\n"); scanf("%d",&T->CarryNumber); printf("请输入已定票人数\n"); scanf("%d",&T->SellNumber); rear->next=T; //在TICKET单链表中依次插入下一结点 rear=T; T->next=NULL; //指针域置空 rear->next=NULL; //班次尾结点的指针域置空 fclose(fp); //文件关闭 printf("信息已保存!\n"); } /*******************************文件读入***************************************/ void FileRead() //班次信息文件读入 { FILE *fp; //定义文件型指针变量 system("cls"); //清屏 if((fp=fopen("ticket.txt","r+"))==0) //如果文件内容为空 { printf("\n打开文件错误!\n"); exit(0); } while(!feof(fp)) //读取文件并判断是否抵达文件尾 { TICKET *T; T=(TICKET *)malloc(sizeof(TICKET));//开辟内存空间
fscanf(fp,"%d%s%s%s%f%d%d\n",&T->num,&T->starttime,&T->begin,&T->end,&T->lasttime,&T->CarryNumber,&T->SellNumber);//根据指定格式从指定文件读取信息 rear->next=T; //在TICKET单链表中依次插入下一结点 rear=T; rear->next=NULL; //班次尾结点的指针域置空 } fclose(fp); //文件关闭 } /*******************************文件数据保存********************************/ void Keep() //保存数据 { FILE *fp; //定义文件型指针变量 if((fp=fopen("ticket.txt", "r+"))==0) //如果文件内容为空 { printf("\n打开文件错误!\n"); exit(0);