内蒙古科技大学课程设计说明书
件,以及公有的数据成员函数void Manage()用来管理航班信息,void Scan()用来浏览航班信息,int Search(int invoke = 0)完成查询功能,void BookRefund()用来订票和退票。 两个类之间是组合的关系,其中Flight类是Traffic_system类的子类。
3.3 程序结构说明,即程序各个部分之间如何协调来完成任务
程序的结构图如下: 重 新 创 建 信 保存文件 读取文件 删除全部 修改信息 删除信插入信更新航班信订票 和 退票 查询航班信浏览航班信主函数 息 息 如上图,程序中各功能模块所需的数据都直接取自文件,这样保证了各模块的独立性和数据的安全性。并且只有相应的模块进行写的操作,并且数据的写入不必依赖其他模块,这样使用户可以仅使用其中某一项功能,而不必进行多余的操作。
5
内蒙古科技大学课程设计说明书
3.4 全局变量,重要形式参数、局部变量等等,它们的命名及用途解释
(1) 整个程序中未使用全局变量。 (2) 重要形参
A) 提取运算符重载函数istream& operator>>(istream& in, Flight& cp)中使用了形参in和cp,形参in为引用“ istream&”,与该函数的返回值相同,故可以将该函数的返回值传给该形参,实现“>>”操作符的连续使用。形参cp为引用“Flight&”,实现了对Flight类对象的输入重载。
B) 插入运算符重载函数ostream& operator<<(ostream& out, Flight& cp)中使用了形参out和cp,其作用与上面类似。
C) 函数bool Flight::If_match(char (*p)[18], char ta)中使用了形参p 和ta,形参p为指向字符数组的指针,它用来指向一个大小为18的字符数组;形参ta为字符型,其作用是使该函数区分航班号和站点名两种比较。
D) 函数int Traffic_system::Search(int invoke = 0)中使用了形参invoke,该形参为int型并设置默认参数0,其作用为区分调用者,以便输出相应的提示信息。
6
内蒙古科技大学课程设计说明书
第四章 算法描述
4.1 解题算法的设计思路介绍
首先根据问题描述抽象出一个航班类,封装了航班的数据信息和方法。数据里主要有航班的航班号、起飞时间、站点等信息,方法主要是对该类中数据的值的输入、输出对本班次机票的管理,对时间、站名等的核对,另外为了方便对文件的输出和读取,还以友元的形式重载了提取和插入运算符。
由于有航班有多组,为了方便管理各个对象,所以有定义了一个Traffic_system类,将Flight类的对象作为Traffic_system类的数据成员。Traffic_system类中还定义了两个私有的成员函数完成对文件的读写。共有的成员函数主要是Manage(),void Scan(), Search(int invoke = 0)和BookRefund(),用来完成系统的几大功能。
4.2 画出程序流程图
文件“航空售票管理系统v-1.0.cpp”中 主函数流程图——main()
7
内蒙古科技大学课程设计说明书
开始 输出菜单 输入tab Y tab=1 管理 break; N Y tab=2 浏览 break; N Y tab=3 查询 break; N Y tab=4 订票和退票 break; N Y tab=5 清屏 break; N tab=0 Y 结束
文件“class/Traffic_system.cpp”中
8