




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生实习报告学生实习报告 课程名称 数据结构与数据处理应用训练 题目名称 航空客运售票服务系统 学生学院 计算机与计算科学学院 2014 年 2 月 27 日 航空客运售票服务系统航空客运售票服务系统 摘要摘要 21 世纪是一个高速 快捷的年代 快速办公成为目前的趋势 为此设计开发 了这个 机场售票管理系统 本系统基于 C 平台设计开发 主要用于解决机场售 退票 预约等待 查询已订票客户信息等问题 在整个系统中采用队列 线性链表 数组等存储 方法 把已经成功订票的用户信息储存在链表中 把预约等待的客户储存在队列中 把整 个航班信息存储在主表中 链表和队列都相应的整合于主表 通过函数调用来实现上述功 能 关键词关键词 数组 队列 链表 1 内容与要求 问题描述 航空客运订票的业务活动包括 查询航线 机票预订和办理退票等 试设计一个航空 客运订票系统 以使上述业务可以借助计算机来完成 具体要求 设民航售票处的计算机系统可以为客户提供下列各项服务 1 查询航线 根据旅客提出的终点站名输出下列信息 航班号 飞机号 星期几飞行 最近一天航班的日期和余票额 2 承办订票业务 根据客户提出的要求 日期 航班号 订票数额 查询该航班票额 情况 若尚有余额 则为客户办理订票手续 输出座位号 若已满员或余票额少于订票额 则需要重新询问客户要求 若需要 可预约登记排队等候 3 承办退票业务 根据客户提供的情况 日期 航班 退票数额 为客户办理退票 手续 然后查询该航班是否有人预约登记 首先询问排在第一的客户 若所退票数能满足 他的要求 则为他办理订票手续 否则依次询问其他排队预约的客户 实现提示 每条航线应包含的信息有 终点站名 航班号 飞机号 飞行日期 星期几 乘员定 额 余票额 已订票的客户名单 包括姓名 订票额 座位号 和预约登记的客户名单 包括日期 姓名 所需票额 这最后两项显然是一个线性表和一个队列 为查找方便 已订票客户的线性表应按客户姓名有序 并且 为插入和删除方便 应以链表作存储结构 由于预约人数无法预料 队列也应以链表作存储结构 整个系统需汇总各条航线的情况登 录在一张线性表上 由于航线基本不变 可采用顺序存储结构 并按航班有序或按终点站 名有序 每条航线是这张表上的一个记录 包含上述八个域 其中乘员名单域为指向乘员 名单链表的头指针 预约登记客户名单域为分别指向队头和队尾的指针 测试数据 自己设计 但报告上要求写出多批数据测试结果 选做内容 当客户订票要求不能满足时 系统可向客户提供到达同一目的地的其它航线情况 大家还 可以充分发挥自己的想象力 增加你的系统的功能和其它服务项目 2 总体设计 本系统的总体设计分为航线插入 售票退票功能 预约等待功能 查询航线功能 浏览 航线客户功能等 具体为以下流程图 本系统基于 C 平台设计开发 主要用于解决机场售 退票 预约等待 查询已订票客 户信息等问题 在整个系统中采用队列 线性链表 数组等存储方法 把已经成功订票的 用户信息储存在链表中 把预约等待的客户储存在队列中 把整个航班信息存储在主表中 链表和队列都相应的整合于主表 通过函数调用来实现上述功能 3 详细设计 通过使用结构体 使得航线信息 订票信息以及等待信息聚集在一张表上 以下是各结 构体和主要函数 订票成功结构 typedef struct char name 20 char end 20 char hangbanhao 20 char feijihao 20 char date 20 int dingpiaoe int piaojia success 订票成功 用户登录 功能选择菜 单 机票查询机票预定机票退订浏览预定情况航线插入 预约等待结构 typedef struct char name 20 char end 20 char date 20 int dingpiaoe wait 预约等待 主表结构 定义预约成功结构为链表结构 方便插入与删除 定义预约等待为队列 方 便操作 typedef struct char end 10 终点站 char hangbanhao 20 航班号 char feijihao 20 飞机号 char date 20 日期 星期几 int dingpiaoe 订票额 int yupiao 余票 char piaojia 20 票价 LNode success 已订票成功 Queue wait 为订票成功 预约等待 ElemType const int Maxsize 100 typedef ElemType mainlist Maxsize mainlist T 以下为主要函数 End 20 表示终点站名 n 表示航线数 此处不超过 12 T 表示存储航线信息的主表 date 20 表示订票时间 周几 dingpiaoe 表示订票数量 tuipiaoe 表示退票数量 hangbanhao 20 表示航班号 feijihao 20 表示飞机号 name 20 表示客户姓名 查询航线 void chaxun char end 20 int n mainlist T 订票 void dingpiao char end 20 char date 20 int dingpiaoe int n mainlist T 退票 void tuipiao char end 20 char hangbanhao 20 char feijihao 20 char date 20 int tuipiaoe char name 20 int n mainlist T 浏览已订票信息 void liulan int n 初始化链表 void InitList LNode int hangbanhao int feijihao int date int piaojia typedef duru ElemType typedef struct char name 20 char end 20 char hangbanhao 20 char feijihao 20 char date 20 int dingpiaoe int piaojia success 订票成功 typedef struct char name 20 char end 20 char date 20 int dingpiaoe wait 预约等待 include Queue h include LinkList h typedef struct char end 10 终点站 char hangbanhao 20 航班号 char feijihao 20 飞机号 char date 20 日期 星期几 int dingpiaoe 订票额 int yupiao 余票 char piaojia 20 票价 LNode success 已订票成功 Queue wait 为订票成功 预约等待 ElemType const int Maxsize 100 typedef ElemType mainlist Maxsize mainlist T 主表 include hanshu h void main printf 请输入密码 学号 int n m dingpiaoe yupiao 50 tuipiaoe k i char hangbanhao 20 feijihao 20 date 20 piaojia 20 char end 20 name 20 cin m while 1 if m 31201146 cunchu T printf 欢迎使用航空客运售票服务系统 n printf 请选择相关服务项目 n printf 1 插入航线 n printf 2 查询航线 n printf 3 订票业务 n printf 4 退票业务 n printf 5 浏览售票 n printf 0 退出 n printf n printf 注意 选择服务项目时只能选择数字 否则程序将会退出 n int j cin j if j 1 cout k cout 请依次输入航线信息 终点站名 航班号 飞机号 日期 票价 endl for i 0 i T i end cin T i hangbanhao cin T i feijihao cin T i date cin T i piaojia T i yupiao 50 T i dingpiaoe 50 InitQueue T i wait InitList T i success n n k else if j 2 printf 请输入要查询的终点 cin end chaxun end n T else if j 3 cout 请依次输入终点站名 日期 定票额 end cin date cin dingpiaoe dingpiao end date dingpiaoe n T else if j 4 cout 请依次输入终点站 航班号 飞机号 日期 退票额 姓名 end cin hangbanhao cin feijihao cin date cin tuipiaoe cin name tuipiao end hangbanhao feijihao date tuipiaoe name n T else if j 5 liulan n else if j 0 exit 1 else printf 输入错误 请重新输入 n else cout 密码错误 退出程序 n exit 0 Hanshu h void chaxun char end 20 int n mainlist T int i 0 j 0 n 12 for i 0 i n i if strcmp T i end end 0 if j 0 cout 终点 t 航班号 t 飞机号 t 日期 t 票价 endl cout T i end t T i hangbanhao t T i feijihao t T i date t T i piaojia endl j 1 else if j 1 cout 没有该航线 endl break void dingpiao char end 20 char date 20 int dingpiaoe int n mainlist T int i j 0 z 0 n 12 success item1 wait item2 char p 20 for i 0 i dingpiaoe cout item1 name strcpy item2 name item1 name printf 定票成功 n T i yupiao T i yupiao dingpiaoe InsertList T i success item1 0 else printf 定票数量大于余票 请选择是否排队预定 n cout YES NO p if strcmp p YES 0 cout 请输入姓名 item2 name EnQueue T i wait item2 cout 已进入等待序列 endl else return if z 0 cout 没有该航线 endl void tuipiao char end 20 char hangbanhao 20 char feijihao 20 char date 20 int tuipiaoe char name 20 int n mainlist T int i count z 0 n 12 Queue temp wait item2 success item1 LNode h InitQueue temp for i 0 idata name z 1 if tuipiaoe h data dingpiaoe cout 您要退的票大于您订的票 退票不成功 请重新选择 data dingpiaoe tuipiaoe printf 退票成功 您还有 d 张票 n count h data dingpiaoe count if countT i yupiao EnQueue temp OutQueue T i wait else item1 dingpiaoe item2 dingpiaoe strcpy item1 name item2 name InsertList T i success item1 0 OutQueue T i wait T i yupiao item2 dingpiaoe cout 客户 item1 name 已成功订票 next if z 0 cout 您没有该航班的票 endl void liulan int n n 12 char date 20 hangbanhao 20 cout date hangbanhao printf 姓名 t 预定额 n for int t 0 tnext 保存下一个结点 free cp cp np 使下一个结点成为当前结点 H NULL 置单链表为空 int LengthList LNode H LNode p H 用来遍历链表结点 int i 0 用来统计结点个数 while p NULL i p p next return i bool EmptyList LNode H return H NULL success GetList LNode H int pos LNode p H 用来遍历链表结点 int i 0 用来统计已查找的结点个数 if pos 1 cerr pos is out range next if p NULL return p data else pos 值大于表长 cerr pos is out range data name item name 0 return true else p p next return false void TraverseList LNode H LNode p H while p NULL cout data name t data dingpiaoe next cout endl bool InsertList LNode if pos 1 cout 参数不合法 data name break else ap cp cp cp next else if pos 1 在表尾插入情况 while cp NULL ap cp cp cp next else 按指定位置插入情况 int i 0 while cp NULL i if i pos break else ap cp cp cp next if cp NULL if ap NULL 插入到表头 newptr next H H newptr else 插入到 ap 和 cp 结点之间 newptr next cp ap next newptr return true bool DeleteList LNode if H NULL cerr 空表 不能删除 endl return false if pos 1 cout 参数不合法 data name break else ap cp cp cp next if cp NULL cout 没有相应结点可删除 next NULL ap cp cp cp next else 删除指定位置结点情况 int i 0 while cp NULL i if i pos break else ap cp cp cp next if cp NULL cout 参数不合法 data if ap NULL H H next 删除表头结点 else ap next cp next 删除非表头结点 即 cp 所指的结点 free cp return true Queue h struct Queue wait queue int MaxSize 队列最大存储数 int front 头指针
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子玻璃制品钢化工安全规范考核试卷及答案
- 钟表设计师知识考核试卷及答案
- 制氢工职业道德与行为规范考核试卷及答案
- 螺旋桨钳工产品服务标准掌握考核试卷及答案
- 工程热处理工数字化平台运维考核试卷及答案
- 2025标准借用合同格式
- 2025某汽车有限公司员工劳动合同书
- 人才盘点人事考试试题
- 主播招聘协议6篇
- 机械设计基础(机械原理与机械零件)考试题
- 财税服务公司费用报销问题研究
- 安全生产例会会议记录以及会议内容
- 眼视光技术介绍
- 危险品运输资格(装卸管理人员)考试2025年题库及答案
- DB64T 2146-2025 工矿企业全员安全生产责任制建设指南
- 电子设备调试工基础技能培训手册
- 间歇充气加压用于静脉血栓栓塞症预防的中国专家共识解读
- 巨量千川-内容创意(初级) 营销师认证考试题及答案
- 氧气吸入操作并发症及防治
- 展会礼仪培训课程
- 仪表工安全培训
评论
0/150
提交评论