




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目九 根据乘客和管理人员的需求 飞机订票系统可以提供下列服务 1 浏览 查询航班信息 2 购票 退票 3 管理航班信息 管理人员权限 项目说明 预备知识 接到项目要求后 首先需要分析项目中提出的要求然后定义项目的功能 根据功能的划分再进行类与核心控制的设计 最后进行编码和测试 具体可分为以下步骤 1 分析系统中的各个实体之间的关系及其属性和行为 2 根据问题描述 设计系统的类层次 3 完成类层次中各个类的描述 包括属性和方法 4 完成类中各个成员函数的定义 5 编码完成系统的应用模块 6 功能调试 7 完成系统总结报告以及系统使用说明书 一 问题分析和功能定义 二 类设计及实现 三 核心控制设计 四 编码与测试 综合实践设计飞机订票系统 一 问题分析和功能定义 这个阶段的工作也叫作 需求分析 需要程序员和用户共同分析问题 从而确定整个软件系统要完成的功能 飞机订票系统的功能结构如图所示 一 更新航班信息模块 该模块用于更新对航班信息 仅向管理人员开放使用 需进行身份验证 其下分为五个子功能模块 信息库的重建 信息的插入 修改 删除和清空数据 二 订票和退票模块 订票时 首先按航班编号或站点查询该航班的基本信息 当剩余座位数大于0且当前系统时间小于起飞时间时才能售票 售票后系统自动更新剩余座位数 退票时 需输入退票的班次 只有该航班未发出时才能退票 退票后将自动更新剩余座位数 三 查询航班信息模块 可以实现按航班号和按站点的两种方式进行查询并将查询到的信息输出 四 浏览航班信息 该模块用于将文件中的航班信息按照要求的格式全部输出 如果当前系统时间超过了某航班的起飞时间 则显示 此次航班已发出 的提示信息 程序中各功能模块所需的数据都直接取自文件 而不是依赖其他模块 这样一来 保证了各模块的独立和数据的安全 二 类设计及实现 本阶段的工作是要给出所有对象的描述 并确定对象之间是如何交互的 本项目中定义了两个类 Flight类和Traffic system类 Flight类封装了航班的数据信息和方法 Traffic system类用于管理Flight类对象 一 Flight类 Flight类中的数据信息主要包括 航班的航班号 起飞时间 站点等信息 方法主要包括 本次航班信息的输入 输出 对本航班的订票 退票管理 对时间 站名的核对 另外 重载了提取和插入运算符以方便对文件的输出和读取 classFlight public charm fnum 10 航班号intm ftime 2 起飞时间charm fstar 18 起始站charm fdestination 18 终点站intm fprice 票价intm fseat 票数Flight m fnum 0 Flight类的具体信息如下所示 boolSetInfo 设置航班信息friendistream 二 Traffic system类 航班有多组 为了方便管理Flight类的各个对象 这里定义了一个Traffic system类 将Flight类的对象作为Traffic system类的数据成员 另外定义了一个数据成员用于记录航班数 该类中还定义了两个私有的成员函数完成对文件的读写 其他共有的成员函数如Manage voidScan Search 和BookRefund 用来完成系统的管理信息 浏览 查询和订票 退票功能 Traffic system类的具体信息如下所示 classTraffic system public Traffic system m sum 0 voidManage 管理航班信息voidScan 浏览intSearch intinvoke 0 查询功能voidBookRefund 订票和退票private voidRead file 读取文件voidSave file 保存文件intm sum 记录航班数vectorv array 航班类数组 三 核心控制设计 核心控制设计阶段主要完成程序的框架设计 这是实现软件系统体系的核心 在本项目中 程序的核心部分是数据存储结构的选择以及类中函数的设计 一 数据存储结构的选择 乘客的基本信息包括航班号 起始站 终点站 起飞时间 票价 余票量等 乘客的数量较大且不固定 因此我们使用动态增长的Flight类数组来保存这些信息 在必要的时候可将数组的内容保存到文件中 在本程序中我们使用的是vector数组 vector是C 标准程序库中的一个类 可视为会自动扩展容量的数组 使用vector时需在头文件中包含下面的代码 include 声明一个vector变量的方法如下 vectorv 其中 T是vector要存储的对象集合的类型 该vector的变量名称是v 访问vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成 在本程序中我们用到了它的函数push back 其作用是在vector最后添加一个元素 二 函数的设计与实现 本项目中函数的实现比较简单 这里不再赘述 读者可参照源码 这里只将程序中带参数的函数进行简单介绍 1 istream operator istream in Flight cp 提取运算符重载函数使用了形参in和cp 形参in为 istream 引用类型 与该函数的返回值相同 故可以将该函数的返回值传给该形参 实现 操作符的连续使用 形参cp为 Flight 引用类型 实现了对Flight类对象的输入重载 2 ostream operator ostream out Flight cp 插入运算符重载函数使用了形参out和cp 其作用与提取运算符重载函数类似 3 boolFlight If match char p 18 charta 该函数使用了形参p和ta 形参p为指向字符数组的指针 它用来指向一个大小为18的字符数组 形参ta为字符型 其作用是使该函数区分航班号和站点名两种比较 4 intTraffic system Search intinvoke 0 该函数使用了形参invoke 该形参为int型并设置默认参数为0 其作用为区分调用者 以便输出相应的提示信息 四 编码与测试 编码与测试的工作将在任务实施中进行 任务实施 设计飞机订票系统 步骤1在VisualC 中创建一个工作区 并在此工作区中创建一个ConsoleApplication即控制台应用程序类型的工程 在此工程中我们添加一个名为flight的头文件以及同名的一个源文件 其代码略 步骤2在步骤1创建的工程中添加一个名为Traffic system的头文件以及同名的一个源文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一棵开花的树1500字12篇
- 杭州宋城游记650字9篇
- 小王子读后感900字(9篇)
- 早期育儿知识培训方案课件
- 纪检业务知识培训目的课件
- 统编版语文四年级上册《语文园地八》课件
- 早期埃及课件
- 农村资源开发综合利用合同书
- 农村环保技术应用合作合同书
- 六年级观后感八佰观后感十五550字12篇
- 浪浪山携志奔赴新学期-2025年秋季开学第一课主题教育班会-2025-2026学年初中主题班会
- 管道吊装方案范本
- 黑龙江省五大连池市2025年上半年事业单位公开招聘试题含答案分析
- 拍摄与剪辑基础知识培训课件
- 小学英语课堂教学规范操作手册
- 人事经理工作汇报
- 2025年时事政治考试100题(附答案)
- 中小企业网络安全解决方案概述
- 官方兽医考试题及完整答案详解(名校卷)
- 水质分析 题库及答案
- 2025年小学英语教师业务理论考试试题及答案
评论
0/150
提交评论