优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

航空检票系统

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

航空检票系统
1  问题描述 
  航空检票的业务活动包括:查询航线、客票预订和办理退票等。试设计一个航空检票系统,以使上述业务可以借助计算机来完成。
1.1 每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已检票的客户名单(包括姓名、检票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量)
1.2 作为示意系统,全部数据可以只放在内存中
1.3 系统能实现的操作和功能如下:
1.3.1 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额
1.3.2 承办检票业务:根据客户提出的要求(航班号、检票数额)查询该航班票额情况,若尚有余票,则为客户办理检票手续,输出座位号;若已满员或余票额少于检票额,则需重新询问客户要求。若需要,可登记排队候补
1.3.3 承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理检票手续,否则依次询问其他排队候补的客户
2  概要设计
2.1 存储结构设计
typedef struct Al_Custom //已检票客户

[资料来源:http://THINK58.com]

{
 char name[15];//姓名
 int count;//检票量
 int level;//舱位等级
 Al_Custom *next;//下一节点指针
}Al_Custom,*Al_CustomLink; copyright think58 [资料来源:THINK58.com]

typedef struct Wait_Custom//等候替补的客户
{
 char name[15];//姓名
 int count;//所需票量
 Wait_Custom *next;//下一节点指针
}Wait_Custom; 本文来自think58 [资料来源:http://www.THINK58.com]

typedef struct Wait_Queue//等待队列
{
 Wait_Custom *front;//队列头指针
 Wait_Custom *rear;//尾指针
}Wait_Queue;

think58好,好think58

[资料来源:www.THINK58.com]

[资料来源:http://THINK58.com]

typedef struct Flight//航线
{
 char terminus[15];//终点站名
 char flight_no[10];//航班号
 char plane_no[10];//飞机号
 int week;//飞行周日
 int count;//乘客定额
 int rest;//余票量
 Al_CustomLink Al_link;//指向成员名单链表的头指针
 Wait_Queue wait_queue;//等待替补队列
}Flight;
2.2 主要算法设计
2.2.1 主程序模块:
void main()
{
   初始化;
   do{
     接受命令;
     处理命令;
     }while(命令!="退出");
}
2.2.2  查询航线模块——实现查询功能
void findFlight()
{
    提示输入要查询航线的终点站名;
    如果存在该航线,则输出该航线信息;
    否则提示不存在该航线;
}
2.2.3  承办检票业务模块——实现检票功能
void dingpiao()
{
    提示输入航班号和检票数;
    若不存在该航班号,则提示不存在该航线;
    否则{

think58 [来源:http://www.think58.com]


         如果有余票,则办理业务;
         否则提示没有足够的余票,询问是否候补;
         若是,则排队候补;
        }
}
2.2.4  承办退票业务模块——实现退票功能
void tuipiao()
{
     提示输入航班号和飞行周日;
     确认航班号和飞行周日都存在,并且客户有检票,
     则  {执行退票;
         为排队候补的客户办理检票业务;
         }
     否则{
          提示有误
  }
}
2.3  测试用例设计
2.3.1  航线3条:1001    hp001   shanghai  2   50
                    1002    hp002   beijing   5   50 [资料来源:www.THINK58.com]
                    1003    hp003   guangzhou 7   50
2.3.2  查询航线:shanghai
2.3.3  承办检票业务:航班号1001  数额30  姓名chengangjie 舱位等级2
2.3.4  承办检票业务:航班号1001  数额23  姓名zhenxi      舱位等级3
2.3.5  承办退票业务:姓名chengangjie 航班号1001 飞行周日2
2.3.6  查询航线:终点站名:shanghai
3  调试分析
3.1 本次的设计比较困难,需要实现较多的功能,所以在调试过程中不太顺利,主要是指针的修改。经过反复调试以后才得以解决。
3.2 本程序航线采用数组的存储结构,每条航线包含8个域,其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向对头和对尾的指针。
3.3 检票函数是在退票业务模块中使用
4  经验和体会
通过这次的程序设计,进一步理解了链表和队列结构的实现和应用。尤其需要注意的是:对于指针的修改要仔细,否则会发生意想不到的结果。
5  源程序清单和运行结果

本文来自think58 [资料来源:http://THINK58.com]


5.1 程序清单
#include<iostream.h>
#include<iomanip.h>
#include<string.h>
#include<stdio.h>
#include<conio.h>
#define FLIGHT_NUM 100//航线最大数量
[资料来源:http://www.THINK58.com]

typedef struct Al_Custom //已检票客户
{
 char name[15];//姓名
 int count;//检票量
 int level;//舱位等级
 Al_Custom *next;//下一节点指针
}Al_Custom,*Al_CustomLink;

[资料来源:http://think58.com]

typedef struct Wait_Custom//等候替补的客户
{
 char name[15];//姓名
 int count;//所需票量
 Wait_Custom *next;//下一节点指针
}Wait_Custom; think58好,好think58 [版权所有:http://think58.com]

typedef struct Wait_Queue//等待队列
{
 Wait_Custom *front;//队列头指针
 Wait_Custom *rear;//尾指针
}Wait_Queue; think58好,好think58 [资料来源:THINK58.com]

typedef struct Flight//航线
{
 char terminus[15];//终点站名
 char flight_no[10];//航班号
 char plane_no[10];//飞机号
 int week;//飞行周日
 int count;//乘客定额
 int rest;//余票量
 Al_CustomLink Al_link;//指向成员名单链表的头指针
 Wait_Queue wait_queue;//等待替补队列
}Flight; copyright think58 [资料来源:http://www.THINK58.com]

void Custom_init(Al_CustomLink &L)
{
 L=new Al_Custom;
 L->next=0;
}

think58 [资料来源:http://www.THINK58.com]

[资料来源:http://think58.com]

void Custom_insert(Al_CustomLink &L,Al_Custom& custom)
{
 Al_Custom *p=L,*newnode=new Al_Custom;
 memcpy((void*)newnode,&custom,sizeof(Al_Custom));
 newnode->next=p->next;
 p->next=newnode;
} think58好,好think58

[来源:http://think58.com]