- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言航空订票系统
这是一篇用C语言编写的航空订票系统的论文。该系统使用的是十字链表结构,包含有订票,退票,录入航班信息,查询航班余票,查询个人订票信息这些功能。
内含详细论文格式及程序源代码(源代码附有详细注释)
XXXXXXXXXX
项目名称:航空信息管理系统
学生姓名:XXXXXX
学 号:XXXXXXXXX
班 级:XXXXXX
指导教师:XXX
2012年12月25日
目录
1.系统需求分析 1
2.数据结构设计及用法说明 2
3.详细设计和编码 4
3.1订票模块 4
3.2退票模块 6
3.3录入模块 8
3.4查询模块 9
4.实验结果 10
4.1主菜单界面 10
4.2查询功能模块 10
4.3订票功能模块 11
4.4退票功能模块 12
4.5录入航班信息模块 12
5.体会 13
参考文献 14
附录:源程序清单 15
1.系统需求分析
本次课程设计要求使用C语言编写一个航空客运订票系统程序,根据所有内容都可以只在内存中运行可得知该模拟的航空客运订票系统不需要用文件保存相关输入,运行过程中的数据。同时该航空客运订票系统要求模拟实际航空订票系统,具有查询航线,客票预订,办理退票,录入航班信息等基本功能。查询航线功能根据实际分析应该具有通过用户输入的要查询终点站名输出该终点站的终点站,航班号,飞机号,飞行日期,剩余票量的功能。订票功能应当设计能够根据用户输入的姓名和终点站,查询该终点站的余票并提示剩余票数,之后让用户输入需要订购的票数并执行相关操作。退票功能可设计成要求用户输入姓名和航班号来查找该用户的的订票信息并打印,再询问是否退票。录入功能是必要的,用来录入航班节点信息。
2.数据结构设计及用法说明
根据该航空信息管理系统的功能要求,应当设计菜单模块,查询模块,订票模块,退票模块,录入信息模块等几个基本模块,main函数里调用菜单模块打印选项菜单,然后用switch case 接收用户选择,并依此跳转到相应模块执行。同时,为达到能够执行一个模块后继续返回主菜单执行而不是直接退出的目的设计将菜单模块及相应子功能模块放入for死循环里,当输入5则直接退出程序。
按该系统的功能分析得出存放在系统中各项数据不需要使用排序功能,因而使用链表保存数据比用顺序表和数组要便捷并且占用内存少,所以定义linklist类型,内部有data,next指针2个数据。其中定义一个flight类型的结构体用来存放实际数据:
typedef struct
{
char flightname[MAX];//终点站名
int flightid;//航班号
int date;//飞行日期
int max;//乘员定额
int left;//余票量
int wait;//排队中的票数
}flight;//存储 航班信息 中 实际数据 的结构体。
flight结构体中left存放航班剩余票数,wait存放当前航班候处于候补状态的人缺票的总数。
同时建另一条linklist_2类型保存订票人员的相关信息,包括用户姓名,用户已定票数,用户缺少票数,指向下一个节点的next指针等数据:
typedef struct lnode_2
{
char name[MAX];//用户姓名
int num;//当前用户定的的票数
int need;//当前用户缺少的票数
lnode_2 *next;//指向下一个节点的指针
}linklist_2;//存储 用户信息 的链表。
其中need代表当前用户缺少的票数,这些票数之和存放在航班候补票数中。
上述2个结构体类型构成linklist类型:
typedef struct lnode_1
{
flight *data;//航班信息实际数据
lnode_1 *next;//指向下一个节点的指针
}linklist;//存储航班信息的链表。
其中data用来存放实际数据,里面包含终点站名,航班号,飞行日期,乘员定额,余票量,处于排队中的票数等等信息,next是指向下一个结点的指针。
而根据系统功能实际分析发现实际算法中经常需要查询航班下对应的有哪些人员定了该航班票,因而将人员信息链表链接到航班信息链表中更为方便,在航班连表的data实际数据里放一个人员信息链表的头指针:linklist_2 *top2;,当有新人员订票则新建一个人员节点,将节点连接到这个头指针下面,这样的链表结构更方便保存和查询系统中各项数据。最后在程序开头创建链表头结点并分配
您可能关注的文档
最近下载
- 中国农村居民人均收入及消费支出分析毕业论文.docx
- DBJ/T45-066-2018(J11629-2018)广西岩土工程勘察规.pdf
- 2024年春上海开放大学马克思主义基本原理计分作业1-8答案.pdf
- 国家开放大学《电子商务网站规划与设计》大作业参考答案.docx
- 基于Node和VUE3.0的景区旅游APP系统设计与实现.docx VIP
- (正式版)D-L∕T 806-2013 火力发电厂循环水用阻垢缓蚀剂.docx VIP
- 双光镜片屈光度检测修改完20201013.ppt
- 23G523-1_型钢混凝土组合结构构造 图集.docx
- 锅炉给水泵检修方案.doc
- 第16课 国家出路的探索与列强侵略的加剧说课课件 高中历史统编版(2019)必修中外历史纲要上册.pptx
文档评论(0)