VC++航空订票系统数据库设计
目录
一 绪论 1
二 需求分析 1
三 概要设计 2
四 详细设计 4
五 调试分析 19
辣 测试结果 20
七 用户使用说明 29
小结 29
参考文献 30
一 绪论
作为软件学院学习计算机专业的我们,在大一学年以及大二的第二学年里,学习并了解了诸如像Visual Basic语言、Java语言等一些计算机语言。但是,学习这些语言仅仅是了解了这些语言的语法及语言特性等关于这些语言本身的一些知识。在编程思想方面,并未进行过深入的训练。
而在本学期,我们开设了《数据结构》一课。我们知道,自计算机诞生以来,其发展的飞速已远远超出人们对它的预料,计算机的应用范围扩展之迅猛也是超出人们想象的。计算机的应用已不再局限于科学计算,而更多地用于控制、管理及数据处理等非数值计算的处理工作。与此相应,计算机加工处理的对象由纯粹的数值发展到字符、表格和图像等各种具有一定结构的数据,这就给程序设计带来一些新的问题。如何编写出一个“好”的程序是计算机工作者越来越关注的问题。而我们本学期所学的《数据结构》正是研究这非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
因此,本课程的设立使我们从本质上学习了计算机语言,更能让我们将生活中的一些实际问题,通过建立数学模型、设计算法、写出程序、得出结果等一系列解决问题的方法来解决。
为了检验自己对《数据结构》该课程的掌握程度,因此依靠本次课程设计对此有个大概的了解。对于课程设计中出现的问题及错误,还请老师及广大同学批评、指正。谢谢!
二 需求分析
本次课程设计利用C++语言来编写,其运行平台为Visual C++。
(一) 问题描述:
航空客运订票业务活动包括:查询航线、客票预定和办理退票等。设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。
(二) 基本要求:
1. 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);
2. 作为示意系统,全部数据可以只放在内存中;
3. 查询能实现的操作和功能如下:
(1) 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;
(2) 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票少于订票额,则需重新询问客户要求。若需要,可登记排队候补;
(3) 承办退票业务:根据客户的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队,首先询问排在第一的客户,若所退票数满足他的要求,则为他办理订票手续,否则一次询问其他排队候补的客户。
(三) 数据测试:
可参照本次课设报告的“测试结果”一节(P)中使用到的数据进行测试
三 概要设计
本次数据结构课程设计所制作的航空客运订票系统主要运用了链式存储结构来实现。我们知道线性表以及队列的存储结构主要用到了链式结构存储,因而此系统也应考虑使用这两种存储方式。
在航班信息方面,要对航班进行添加、删除、查询等操作。由于链表的优势就在于便于进行添加、删除和查找,因此有关航班信息方面的部分可以由链表来实现。但是为了更便于添加和删除,因此为链表设置了首、尾指针。
而对于订票、退票来说,其中要讲一个先来后到的道理。基于这一点的要求,队列的存储方式再合适不过了,其“先进先出”(FIFO)的特点恰恰可以满足订票、退票的要求。
在结构定义方面,本系统定义了四个结构,分别用来储存航班信息、乘客信息、替补乘客信息以及结点信息。而在航班信息定义中,分别将乘客信息、替补乘客信息引入其中,以供储存乘客信息和替补乘客信息。
根据本系统中的功能以及所定义的数据结构,特编写如下函数:
1. FlightInsert() //添加航班信息
2. FlightSearch() //查询航班信息
3. FlightRework() //修改航班信息
4. FlightDelete() //删除航班信息
5. FlightBuyticket() //订票
6. FlightCancelticket()//退票
7. Buyticket(PFlight q,int Ticket_Amount)//利用队列买票
8. Buyreplace(PFlight q,int Ticket_Amount,int n)//利用队列进行替补买票
9. MainMenu() //主菜单
10. Main() //主函数
各个函数间的关系如下:837