




免费预览已结束,剩余15页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 1 学 号 数据结构课程设计 设计说明书 飞机订票系统 起止日期 2011 年 12 月 12 日 至 2011 年 12 月 16 日 学生姓名 班级 成绩 指导教师 签字 电子与信息工程系电子与信息工程系 2011 年年 12 月月 16 日日 1 2 天津城市建设学院 课程设计任务书 2011 2012 学年第学年第 1 学期学期 电子与信息工程 系 软件工程 专业 班级 课程设计名称 数据结构课程设计 设计题目 飞机订票系统 完成期限 自 2011 年 12 月 12 日至 2011 年 12 月 16 日共 1 周 设计依据 要求及主要内容 可另加附页 一 设计目的 熟悉各种数据结构和运算 会使用数据结构的基本操作解决一些实际问题 二 设计要求 1 重视课程设计环节 用严谨 科学和踏实的工作态度对待课程设计的每一项任务 2 按照课程设计的题目要求 独立地完成各项任务 严禁抄袭 凡发现抄袭 抄袭者与被抄袭 者皆以零分计入本课程设计成绩 凡发现实验报告或源程序雷同 涉及的全部人员皆以零分计入本课 程设计成绩 3 学生在接受设计任务后 首先要按设计任务书的要求编写设计进程表 4 认真编写课程设计报告 三 设计内容 订票系统 1 问题描述 1 录入 可以录入航班情况 数据可以存储在一个数据文件中 数据结构 具体数据自定 2 查询 可以查询某个航线的情况 可以输入起飞抵达城市 查询飞机航班情况 3 订票 订票情况可以存在一个数据文件中 结构自己设定 可以订票 如果该航班已经无票 可以提供相关可选择航班 4 退票 可退票 退票后修改相关数据文件 客户资料有姓名 证件号 订票数量及航班情况 订单要有编号 5 修改航班信息 当航班信息改变可以修改航班数据文件 2 基本要求 根据以上功能说明 设计航班信息 订票信息的存储结构 设计程序完成功能 1 3 目录 一 需求分析一 需求分析 4 二 问题求解二 问题求解 4 三 总体设计三 总体设计 4 1 程序设计组成框图 5 2 程序设计流程图 6 四 详细设计四 详细设计 7 1 根据飞机订票系统的可设要求 要实现以下功能 5 2 具体的方法及函数调用的思想 6 定义要存储的变量 6 3 方法的实现 6 五 调试与测试五 调试与测试 9 1 录入信息时 9 2 订票时 9 3 退票时 10 六 关键源程序清单和执行结果六 关键源程序清单和执行结果 10 1 源程序 10 2 执行结果 17 七 参考文献七 参考文献 21 1 4 一 需求分析 本课程设计的名称是飞机订票系统 本系统主要是描述了顾客在订飞机票时的一些具体情况 包 括录入航班 乘客情况 查询是否还有该顾客要乘坐的飞机以及剩余的票 之后是确定乘客订票管理 然后当乘客有突发情况发生时会伴随着退票的发生 这就是产生订票系统产生的原因 二 问题求解 当我们遇到飞机订票这件事情的时候 我们通常发生的地点是飞机场 首先 我们应该到售票大 厅去购买飞机票 因此 我根据我学过的 C 中学过的结构体 struct 它相当于其他高级语言中的高 级记录 因此定义了一个 airline 结构体来存储变量 struct airline air num 班次号 short begin hour 起飞时间小时 short begin minute 起飞时间分钟 char begin name 10 起始站点 char end name 10 终点站名 float fly time 飞行时间 int total 乘员总定额 int total already 已订票人数 bool exist 航班状态 int fare 飞机票价 定义了 struct airline b N N 规定不能大于 50 来实现存储 1120天津广州2145130true1000 2630北京成都0 5140140true2000 3220广州南京2 5120120true2500 4150天津长沙2120120true3000 首先就要查询是否有该路线的票 如果有的话则进行购买 即要通过把信息录入 input 方法来实 现 则要录入航班号 air num 起飞时间 begin hour begin minute 飞行时间 fly time 起始站 begin name 终点站 end name 等 在查找 find 方法中 首先定义一个计数器 k 1 然后读入文件信息 输入要查询的终点站名称 end 用 strcmp 是用来比较 end name 和 end 字符串的大小 它的返回值是 int 类型 如果有此终点 站 则调用 output i 方法 打印出符合条件的航班信息 然后把 i 的值付给计数器 k 如果 k 1 则显示不存在此航班 在浏览 check 方法中 显示已有的航班班次 调用 output 方法来显示信息 紧着着要调用 time 来判断航班是否发出并输出 可能还有一种情况需要考虑 当飞机起飞了 则既不能订票也不能退票了 这是通过时间的比较 来实现的 再次运用了电脑上的事件系统 include 系统窗口时间 建立方法 string time short begin hour short begin minute 来调用系统时间函数和输入的时间作比较 判断此时的 时间和电脑现在系统的大小来比较 如果输入的时间的小时数大于电脑系统里面的小时数或者输入的 小时数和电脑系统的小时数相等 班次号 short begin hour 起飞时间小时 short begin minute 起飞时间分钟 char begin name 10 起始站点 char end name 10 终点站名 float fly time 飞行时间 int total 乘员总定额 int total already 已订票人数 bool exist 航班状态 int fare 飞机票价 定义一个结构体来存储四个航班信息 里的变量依次表示为 航班号 起飞时间 小时 起飞时间 分钟 起始站点 终点站名 飞行时间 成员定额 已订票人数 航班状态 1 12 0 天津 广州 2 145 130 true 1000 2 6 30 北京 成都 0 5 140 140 true 2000 3 22 0 广州 南京 2 5 140 120 true 2500 1 8 4 15 0 天津 长沙 2 140 120 true 3000 1120天津广州2145130true1000 2630北京成都0 5140140true2000 3220广州南京2 5120120true2500 4150天津长沙2120120true3000 3 方法的实现 1 save 保存航班信息 因为可设要求把数据存储在文件中 所以必须编写此保存方法 因此用到 fstream 头文件名 fstream 是 iostream 类的派生 用来支持对磁盘文件的输入输出 信息保存在 airpline txt 文件 中 2 read 读取航班信息 read 方法是用来读取 airpline txt 文件中航班数据的 ios in 以输入方式打开文件 3 input 录入 input 方法的功能就是录入航班号 i 起飞时间 小时 begin hour 起飞时间 分钟 begin minute 起始地点名称 begin name 种植地点名称 end name 飞行时间 fly time 总载客量 total 已订票人数 total already 飞机票价 fare 航班状态 exist 变量 int i 4 因为事先已经录入 4 个编号为 1 4 的航班号 因此当输入 1 4 的航班号时会提醒 此航班号已存在 因而在控制台输入的航班号必须大于 4 而小于 50 变量 int j 0 则 j 1 表示录入第 j 1 个航班班次的信息 4 find 查询 按终点站来查询 根据已有的飞机信息来依据终点信息来查询航班 首先要调用读取机票信息函数 读取要查询的 机票信息 既 read 方法 并且在方法中有一个计数器 k 当 k 1 时输出无此航班的飞机 反之根 据终点站名字来查询航班信息 5 string time short begin hour char begin minute 调用系统时间 当输入起飞时间与该电脑里的时间作比较 当电脑现在的时间比输入起飞时间大的话 则说明飞 机已经起飞 通过线面的语句来实现 begin hour sys wHour begin hour sys wHour 办理退票函数 思路类似于订票 首先要数如要退票的航班号 并且在这之后读入系统中的航班信息 当输入航 班编号后如无此航班号 则失败 反之先判断次航班是否已经起飞 if b i begin hour sys wHour b i begin hour sys wHour const int N 50 struct airline int air num 班次号 short begin hour 起飞时间小时 short begin minute 起飞时间分钟 char begin name 10 起始站点 char end name 10 终点站名 float fly time 飞行时间 int total 乘员总定额 int total already 已订票人数 bool exist 航班状态 int fare 飞机票价 struct airline b N 航班号 起飞时间 小时 起飞时间 分钟 起始站点 终点站名 飞行时间 成员定额 已订票人数 航班状态 1 12 0 天津 广州 2 145 130 true 1000 2 6 30 北京 成都 0 5 140 140 true 2000 3 22 0 广州 南京 2 5 140 120 true 2500 1 10 4 15 0 天津 长沙 2 140 120 true 3000 声明全局变量 int n 0 航班数量 函数声明 void input 录入 void find 查询 按终点站来查询 string time short begin hour char begin minute 调用系统时间 void order 办理订票函数 void refund 办理退票函数 void input 录入班次信息函数 if n 0 cout 请输入录入班次的数量 n for int i 4 j 0 i n 4 j n i j cout 正在录入第 j 1 个班次的信息 n cout n cout b i air num if b i air num 50 b i air num 1 cout 输入编号错误 endl break for int j 0 j i j if b i air num b j air num continue else cout 录入失败 此编号的班次已经存在 i cout 请输入班次的起飞时间 endl b i begin hour cout b i begin minute cout b i begin name 1 11 cout b i end name if strcmp b i end name b i begin name 0 cout 输入错误 起始地点和终到地点不应该相同 endl break cout b i fly time cout b i total cout b i total already cout b i fare b i exist true cout 已成功录入 n string time short begin hour short begin minute 调用系统时间函数 SYSTEMTIME sys 系统时间 sys GetLocalTime 获得本地电脑时间 string str if begin hour sys wHour begin hour sys wHour else str 未发出 return str void output int i cout n cout 班次号 起飞时间 起始站 终点站 飞行时间 固定载客量 已订票人数 飞机票价 飞 机状态 endl cout b i air num b i begin hour b i begin minute b i begin name b i end name b i fly time 1 12 b i total b i total already b i fare b i exist void find 查询班次信息函数 int k 1 计数器 char end 10 cout end for int i 0 i n 4 i if strcmp b i end name end 0 strcmp 是用来比较大小的 它是 C 中头文 件 字符串函数 中定义的一个用于对两组字符串进行比较的 函数 它的返回值是 int 类型 output i k i if k 1 cout 不存在至此的航班 endl void check 浏览班次函数 cout 已有的航班班次为 n 4 endl for int i 0 i n 4 i output i cout time b i begin hour b i begin minute endl 显示是否发出航班 1 13 void order 订票函数 int num1 num2 k 1 char ch cout 请输入要购买机票的班次编号 num1 for int i 0 i n 4 i if b i air num num1 k i cout 存在此班次 if b i total b i total already cout 对不起 此班次的机票已售完 else cout 仍有机票 b i total b i total already 张 endl cout num2 if b i total b i total already num2 cout 对不起 您所要购买的机票数已超过剩余票数 无法办理 endl break else cout 确定要购买 y n ch if ch y ch Y SYSTEMTIME sys GetLocalTime if b i begin hour sys wHour b i begin hour sys wHour cout 订票成功 祝您旅途愉快 endl 1 14 else cout 此航班已经发出 无法办理订票 endl else return if k 1 cout 不存在编号为 num1 的班次 endl void refund 退票函数 int num1 num2 k 1 char ch cout 请输入要退机票的班次编号 num1 for int i 0 i n 4 i if b i air num num1 k i cout 存在此班次 SYSTEMTIME sys GetLocalTime if b i b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化工农药安全培训总结课件
- 有债务分期还款协议范文5篇
- 别里科夫课件
- 化工三废处理课件
- 兴发安全培训课件
- 兴化消防安全培训费用课件
- 初中家长安全培训知识课件
- 化学教师安全培训课件
- 内蒙消防安全知识培训课件
- 创新安全培训的意义
- 电商直播行业合规性风险管控与流程优化报告
- 第08讲+建议信(复习课件)(全国适用)2026年高考英语一轮复习讲练测
- 政务大模型安全治理框架
- 生态视角下陕南乡村人居环境适老化设计初步研究
- “研一教”双驱:名师工作室促进区域青年教师专业发展的实践探索
- 手卫生及消毒隔离基本知识
- 2025四川能投合江电力有限公司员工招聘11人笔试备考题库及答案解析
- 江苏省徐州市2025年中考英语真题(含答案)
- 包钢招聘考试试题及答案
- 生物安全实验室管理体系文件
- 2025年小学部分国防教育知识竞赛答案
评论
0/150
提交评论