课程设计航空客运订票系统.doc





《课程设计航空客运订票系统.doc》由会员分享,可在线阅读,更多相关《课程设计航空客运订票系统.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 数据结构课程设计报告 课程名称_数据结构题目名称 航空客运订票系统 学生学院 计算机学院专业班级 11级软件1班 2012年 6月 29日一需求分析设计一个航空客运订票系统基本要求:1.每条航线所涉及的信息有:终点站名、航班号、飞机好、飞行周日、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、仓位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);2.作为示意系统 ,全部数据可以只放在内存中;3.系统能实现的操作和功能如下:(1)查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机好、星期几飞行,最近一天航班的日期和与票额;(2)承办订票业务:根据客户提出的要求(航班号
2、,订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员活余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补;(3)承办退票业务:根据客户提供的情况(日期、航班)。为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则一次询问其他排队候补的客户。二 概要设计 用链队储存客户信息,用线性表储存航线函数声明void fromAirlineNum();/通过航班号查询void fromEndCity();/通过目的地查询void fromDay();/通过时间查询void Initial
3、ize();/初始化录入功能void airLineCheck();/查询功能void customerBooking();/订票功能void cancelFuntion();/退票功能void customerInformation();/用户信息查询三详细设计 #include #include #include #include #define ok 1 typedef struct Booking/单链表char name15;/已订票的客户姓名int ticket;/已订票数量struct Booking *next1;Booking,*Link;typedef struct yet
4、Booking/单链队char name15;/预订票的客户姓名 int moreticket;/ 要订票数量struct yetBooking *next2;/下一个链队结点指针yetBooking,*Qptr;typedef struct Qptr front;/单链队头结点Qptr rear;/单链队尾结点linkQueue; typedef struct airLine/创建一个航线的结构体char fightNum15;/航班号-char planeNum15;/飞机号int fightTime;/起飞时间 int level;/舱位等级 int moreTicket;/余票char
5、 endCity15;/降落城市int totalTicket;/票数总额struct airLine *next;/指向下一个链结点的指针 struct Booking *bookingedList;/定义一个指向已订票客户的头结点指针 struct yetBooking *bookdingQueue;linkQueue Q;airLine,*Linklist;struct airLine *L=NULL;/定义全局量struct Booking *H;/为已订票客户链队来申请空间/linkQueue Q;/linkQueue类型的来申请空间Linklist InitLinklist();/
6、声明int InsertLinklist(Linklist &head1);/声明void fromAirlineNum();/通过航班号查询void fromEndCity();/通过目的地查询void fromDay();/通过时间查询void Initialize();/初始化录入功能void airLineCheck();/查询功能void customerBooking();/订票功能void cancelFuntion();/退票功能void customerInformation();/用户信息查询void main()H=(struct Booking*)malloc(size
7、of(Booking); /Q.front=Q.rear=(Qptr)malloc(sizeof(yetBooking);InitLinklist();int n;do /打印主界面printf(t 欢迎使用航空客运订票系统n); printf(t+n); printf(t=1. 录入航班功能 =n); printf(t=2. 航班查询功能 =n); printf(t=3. 订票功能 =n); printf(t=4. 退票功能 =n); printf(t=5. 用户信息查询 =n);printf(t=6. 退出 =n); printf(t+n); printf(t请选择:); scanf(%d
8、,&n);printf(n);switch(n)case 1: Initialize();/录入功能 break;case 2: airLineCheck();/查询功能 break;case 3: customerBooking();/订票功能break;case 4: cancelFuntion();/退票功能 break;case 5: customerInformation();break;default :exit(0);/退出while(n=1|n=2|n=3|n=4|n=5);void Initialize()/航班录入功能int j=1,m;doif(!InsertLinkli
9、st(Linklist) L) /向其中加入航班信息 printf(内存已满n); exit(OVERFLOW);/向链表中加一结点printf(t是否要输入下一个航线记录?n); printf(t是请输入1n); printf(t否请输入2nt); scanf(%d,&m); /在这里依靠人来决定是否输入下一条航线记while(m=1);Linklist InitLinklist()L=(Linklist)malloc(sizeof(airLine);if(!L) exit(OVERFLOW);L-next=NULL;/建立一个带有头结点的单链表return (L);int InsertLi
10、nklist(Linklist &L)/向航线链表添加新的结点 Linklist p;p=(Linklist)malloc(sizeof(airLine);/为一个新的结点分配空间if(!p) exit(OVERFLOW);printf(t请依次输入下面几项内容:nn);/这里的输入采用一个个单独输入,避免了乱赋值的现象 printf(航班号n); scanf(%s,p-fightNum);printf(飞机号n);scanf(%s,p-planeNum);printf(终点站n);scanf(%s,p-endCity); printf(飞行日期(星期)n); scanf(%d,&p-figh
11、tTime); printf(舱位等级n); scanf(%d,&p-level); printf(票数总额n); scanf(%d,&p-totalTicket);p-moreTicket=p-totalTicket; p-bookingedList=(Booking*)malloc(sizeof(Booking);/为它申请空间p-bookdingQueue=p-Q.front=p-Q.rear=(Qptr)malloc(sizeof(yetBooking);/为它申请空间 p-next=L-next; L-next=p;/这二句是链表中的插入一个结点p-Q.front-next2=NUL
12、L;return ok;void airLineCheck()/查询功能int n;printf(t 查 找 航 线 信 息 n); printf(t+n); printf(t=1. 通过目的地查询 =n); printf(t=2. 通过航班号查询 =n);printf(t=3. 通过日期查询 =n); printf(t+n); printf(t请选择:n); scanf(%d,&n);switch(n)case 1:fromEndCity();break;case 2:fromAirlineNum(); break;case 3:fromDay();break;default :break;
13、void fromEndCity()/通过目的地查询 char c15;Linklist p=L;int m=1; printf(t请输入要查询的目的地:n);scanf(%s,c);do p=p-next;if(p)if(strcmpi(*p).endCity,c)=0) printf(t航班号:%sn,p-fightNum); printf(t飞机号:%sn,p-planeNum); printf(t飞行时间:周%dn,p-fightTime); printf(t票数总额%dn,p-totalTicket); printf(t余票量:%dnnn,p-moreTicket); m=0;els
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 航空 客运 订票 系统

限制150内