航空客运订票系统课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
课程名称:数据结构与算法
题目名称:航空客运订票系统
2011 年 6 月10 日
目录
一、设计目的 (2)
二、问题描述 (3)
三、需求分析 (3)
四、概要设计 (4)
1、算法思路 (4)
2、工作分配 (4)
3、程序模块 (4)
五、详细设计 (7)
1.数据定义 (7)
1.1 已定票客户 (7)
1.2 未订票客户 (8)
1.3 航线定义 (8)
2.函数设计 (9)
2.1 录入航线信息 (9)
2.2查询航线信息 (10)
2.3订票功能 (11)
2.4退票功能 (17)
2.5主函数 (21)
六、测试数据 (23)
七、总结 (24)
航空客运订票系统
一、设计目的
我们之所以选择做航空订票系统这个课题,主要是因为当今时代的需求。随着科技与经济的发展,越来越多的人选择乘飞机,这跟我国的经济增长有很大关系,人们在追求快节奏的生活方式,所以做飞机无疑成了首选。而且随着网络的盛行,航空订票系统就显得尤为重要,我们开发这个系统主要是为了方便大家,让大家能够快速、清晰、准确地了解航班信息,而不至于像以前那样排队等候,从而避免耽搁乘客大量的等待时间。
二、问题描述
航空客运订票的业务活动包括:查询航线,预订客票,办理退票等。顾客只要在网上登陆了这个系统并输入相应的航班信息和飞行时间等信息,就可以了解当天的航班信息,方便乘客合理的安排自己的时间。顾客可以通过这个系统了解到当天将到地点的详细航班信息,包括:航班号、飞机号以及余票额等相关信息。
三、需求分析
(1)每条航线所涉及带的信息有:终点站名、航班号、飞机号、飞行日期、余票量、已定票客户名单(包括姓名、订票量、仓位等级1,2,或3)以及等候替补的客户名单(包括姓名、所需票量);
(2)作为示意系统,全部数据可以存放在内存中。
(3)系统能实现的操作功能如下:
①查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机
号、星期几飞行、余票额;
②承办订票业务:根据客户提出的要求(航班号、订票数额)查询该
航班的票额情况,若尚有余票,则为客户办理订票手
续,输出座位号;若已满员或余票额少于订票额,则
需重新询问客户要求。若需要,可登记排队候补;
③承办退票业务:根据客户提供的情况(姓名、航班),为客户办理退
票手续,然后查询该航班是否有人排队候补,首先询
问排在第一的客户,若所退票额能满足他的需求,则
为他办理订票手续,否则,依次询问其他排队候补客
户。
四、概要设计
1、算法思路
数据用数组存储以及结构体等通过设置关键字并用一定的数据结构对其进行一定的数据排序。输入航班信息,进行存储及按要求的查找。在这期间,我们需要书写四个基本函数:即录入函数、查找函数、订票函数及退票函数。用if 条件语句实现条件的选择,并对子函数进行相关的调用。按要求输出用户所需信息,实现简单而便捷的快速查询。
2、工作分配
3、程序模块
(1)登陆界面
图3-1
(2)程序的模块为
录入功能:原始数据的输入(通过文件输入航线的基本信息)。
查询功能:根据客户需要,查询相关航线。
订票功能:满足客户的订票任务。
退票功能:根据客户的不同情况,支持客户的退票请求。
退出功能:退出系统。
图3-2 输入1,通过文件进行航线原始数据的输入
图3-3输入2,通过输入终点站名查询航线信息
图3-4输入3,通过输入终点站名,进行订票图3-5输入4,通过输入退票客户信息进行退票
图3-6 输入5,退出订票系统五、详细设计
1.数据定义
1.1 已定票客户
struct yidingpiaokehu
{
char name[M];//顾客名
int ordernum;//订票量
int rank;//仓位等级struct yidingpiaokehu *next;// };
typedef struct yidingpiaokehu *linklist;
1.2 未订票客户
struct weidingpiaokehu
{
char name[M]; //姓名
int ordernum; //所需票量
struct weidingpiaokehu *next; //同一类型的指针
};
typedef struct weidingpiaokehu *pointer; //为订票客户的结构体
struct node
{
pointer front; //指向未订票客服的第一个客户
pointer rear; //指向未订票客户的最后一个客户
};
typedef struct node linkqueue; //指向未订票客户的指针结构体1.3 航线定义
struct lnode
{
char zhongdianzhan[M];//终点站名
char hangbanhao[M];//航班号
char feijihao[5];//飞机号
int day;//飞行时间
int capacity;//成员定额
int leftticket;//余票量
int seat[M];
linklist yd;//已定票客户的头指针
linkqueue wd;//为订票客户的头指针和尾指针
};
typedef struct lnode hangxian;
2. 函数设计
2.1 录入航线信息
void insertairline(hangxian l[],int n)
{
ifstream fin("航线3.txt");
for(int i=1;i<=n;i++)
{
fin>>l[i].zhongdianzhan;
fin>>l[i].hangbanhao;
fin>>l[i].feijihao;