航空客运订票系统
飞机订票系统测试报告
飞机订票系统测试报告1. 引言本文档旨在介绍飞机订票系统的测试过程和结果。
飞机订票系统是一款用于用户预订航班机票的在线平台。
通过测试,我们旨在确保系统的功能正常、性能稳定,并且用户能够顺利完成预订流程。
2. 测试环境为了对系统进行全面的测试,我们搭建了以下测试环境:•操作系统:Windows 10•浏览器:Google Chrome,Mozilla Firefox•设备:台式电脑,笔记本电脑,手机(Android,iOS)•网络环境:LAN,WLAN,4G网络3. 测试目标我们的测试目标主要包括以下几个方面:•功能测试:确保系统的各项功能正常运作,包括用户注册、登录、查询航班信息、预订机票等。
•兼容性测试:在不同的操作系统、浏览器和设备上测试系统的兼容性,确保用户可以在不同的环境中正常使用系统。
•性能测试:通过模拟多用户同时访问、查询航班和预订机票,测试系统的性能稳定性和响应速度。
•安全性测试:检查系统的安全性,防止潜在的数据泄露和非法访问。
4. 测试步骤为了对系统进行全面的测试,我们按照以下步骤进行测试:4.1 用户注册和登录功能测试1.打开系统主页,点击注册按钮进入注册页面。
2.输入有效的用户名、密码和邮箱地址,点击注册按钮完成注册。
3.使用注册的用户名和密码,尝试登录系统。
4.验证登录是否成功,检查是否能够正常浏览个人信息页面。
4.2 航班查询功能测试1.登录系统后,点击航班查询按钮进入查询页面。
2.输入有效的出发地、目的地和日期,点击查询按钮进行航班搜索。
3.检查系统是否能够正确地显示符合条件的航班信息。
4.选择一条航班信息,尝试获取详细信息。
4.3 机票预订功能测试1.在航班查询结果页面,选择一条符合条件的航班信息。
2.输入乘客信息和联系方式,点击预订按钮进行机票预订。
3.检查系统是否成功生成订单,并显示预订成功的提示信息。
4.登录用户的邮箱,确认是否收到预订成功的邮件通知。
4.4 兼容性测试在不同的操作系统、浏览器和设备上测试系统的兼容性,包括:•操作系统:Windows,macOS,Linux•浏览器:Google Chrome,Mozilla Firefox,Safari•设备:台式电脑,笔记本电脑,手机(Android,iOS)4.5 性能测试1.使用性能测试工具,模拟多用户同时访问系统。
航空订票系统测试
航空机票预订系统软件编码和测试说明书1引言1.1编写目的作为软件工程过称的一个阶段,编码是对设计的进一步具体化,因此,程序的质量主要取决于软件设计的质量,但所选用的程序设计语言的特点和编码风格也将对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。
但在开发如此复杂的航空订票系统软件的过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺,因此,系统一定会存在差错。
测试的目的就是在软件投入生产运行之前,尽可能多的发现并改正软件中的错误。
编码阶段可参考概要设计和详细设计说明书,软件测试以及软件维护阶段也可参考编码和详细设计说明书,以便于了解在概要设计及详细设计的过程中所完成的各模块设计结构,或在测试阶段找出各模块的设计思路和流程。
该文档的读者为用户代表、软件分析人员、开发管理人员和测试人员。
1.2背景①名称:机票预订系统②委托方:某某航空公司③开发方:某某团队④组成:编码模块分组,服务器,编码人员,测试人员⑤本系统与其他系统的关系如下:1.3定义黑盒测试:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
白盒测试:白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
数据结构课程设计---航空订票系统
数据结构课程设计---航空订票系统数据结构课程设计航空订票系统一、设计目的:编写一个航空订票系统,可以在系统中录入并修改各个航班的具体情况,帮助乘客准确的查询个航班的最新信息(包括航班号、航班的起始时间和地点。
票价)和各个项目业务的及时办理(包括订票、退票等)。
二、任务:航空客运定票的业务活动包括:查询航线、客票预定和办理退票等。
试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。
三、功能要求:1) 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)2) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;3) 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;4) 退票:可退票,退票后修改相关数据文件;5) 客户资料:有姓名,证件号,订票数量及航班情况,订单要有编号;6) 修改航班信息:当航班信息改变可以修改航班数据文件。
四、设计程序:#include<stdio.h>#include<string.h>#include<stdlib.h>#define N 100//最大容量typedef struct Flight//航班信息{char FlightNumber[6];//航班号char SPlace[10];//起始地char DPlace[10];//目的地char Stime[5];//起飞时间char Etime[5];//降落时间int price;//票价int RemnantSeat;//剩余座位数}Flight;typedef struct Order//订单信息{int OrderNumber;//订单编号char PName[10];//乘客姓名char ID[20];//身份证号char FlightNumber[6];//航班号int num;//订票数量}Order;Flight fl[N];Order od[N];int i,j;//两个常用角标变量int lenf=0;//航班数int leno=0;//订单数char ch;//获取用户选择的变量char filenamef[]="flight.txt";//航班文件名char filenameo[]="order.txt";//订单文件名void save()//保存信息{FILE *fp;if((fp=fopen(filenamef,"w"))!=NULL)//打开文件保存航班信息{for(i=0;i<lenf;i++)//写入文件{fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%d\t%d\n",fl[i].FlightNumber,fl[i].S Place,fl[i].DPlace,fl[i].Stime,fl[i].Etime,fl[i].price,fl[i].Remnant Seat);}fclose(fp);//关闭文件}if((fp=fopen(filenameo,"w"))!=NULL)//打开文件保存订单信息{for(i=0;i<leno;i++)//写入文件{fprintf(fp,"%d\t%s\t%s\t%s\t%d\n",od[i].OrderNumber,od[i].PName,od[i ].ID,od[i].FlightNumber,od[i].num);}fclose(fp);//关闭文件}}void load()//读取信息{FILE *fp;if((fp=fopen(filenamef,"r"))!=NULL)//打开文件读取航班信息{i=0;while(!feof(fp))//读取文件{fscanf(fp,"%s%s%s%s%s%d%d",&fl[i].FlightNumber,&fl[i].SPlace,&fl[i]. DPlace,&fl[i].Stime,&fl[i].Etime,&fl[i].price,&fl[i].RemnantSeat);if(!feof(fp))i++;}lenf=i;//航班数量fclose(fp);//关闭文件}if((fp=fopen(filenameo,"r"))!=NULL)//打开文件读订单信息{i=0;while(!feof(fp))//读取文件{fscanf(fp,"%d%s%s%s%d",&od[i].OrderNumber,&od[i].PName,&od[i].ID,&od [i].FlightNumber,&od[i].num);if(!feof(fp))i++;}leno=i;//订单数量fclose(fp);//关闭文件}}int check(char s[])//检查是否重复{int g=0;for(;g<lenf;g++)if(strcmp(fl[g].FlightNumber,s)==0 && g!=i)//对比是否相同相同就说明重复了return g;//表示重复了return -1;//遍历了整个数组都没发现重复的表示没有重复}void input()//录入信息{system("cls");//清屏for(i=lenf;i<N;i++){printf("请输入航班号:");gets(fl[i].FlightNumber);while(check(fl[i].FlightNumber)!=-1)//检查是否重复{printf("航班号重复,请重新输入:");gets(fl[i].FlightNumber);}printf("请输入下列信息:\n");printf("出发地:");gets(fl[i].SPlace);printf("目的地:");gets(fl[i].DPlace);printf("起飞时间:");gets(fl[i].Stime);printf("降落时间:");gets(fl[i].Etime);printf("票价:");scanf("%d",&fl[i].price);printf("剩余座位数:");scanf("%d",&fl[i].RemnantSeat);getchar();//消除回车lenf++;//航班数加1printf("航班信息录入完成! 是否继续录入下一列航班信息?(y/n):");while(1){ch=getchar();getchar();//消除上一步产生的回车符if(ch=='y' || ch=='Y' || ch=='n' || ch=='N')break;elseprintf("请重新输入:");}if(ch=='n' || ch=='N')break;}save();//保存}void modify()//修改信息{char s[20];system("cls");//清屏printf("请输入要修改的航班号:");gets(s);for(i=0;i<lenf;i++)//查询是否存在输入的信息if(strcmp(fl[i].FlightNumber,s)==0)break;//存在结束循环if(i==lenf){printf("没有您输入航班信息,请按回车返回");getchar();return;}printf("请输入新的航班号:");gets(fl[i].FlightNumber);while(check(fl[i].FlightNumber)==1)//检查是否重复 {printf("航班号重复,请重新输入:");gets(fl[i].FlightNumber);}printf("请更新下列信息:\n");printf("出发地:");gets(fl[i].SPlace);printf("目的地:");gets(fl[i].DPlace);printf("起飞时间:");gets(fl[i].Stime);printf("降落时间:");gets(fl[i].Etime);printf("票价:");scanf("%d",&fl[i].price);printf("剩余座位数:");scanf("%d",&fl[i].RemnantSeat);getchar();//消除回车save();//保存printf("修改成功!\n");system("pause");//任意键继续}void book() // 订票{system("cls");//清屏i=leno;printf("请输入您的姓名:");gets(od[i].PName);printf("请输入您的身份证号:");gets(od[i].ID);printf("请输入订票的航班号:");gets(od[i].FlightNumber);for(j=0;j<lenf;j++)if(strcmp(fl[j].FlightNumber,od[i].FlightNumber)==0 )//对比是否相同break;if(j==lenf)// 表示航班不存在{printf("航班号不存在!请按回车返回");getchar();return;}printf("请输入订票数量:");scanf("%d",&od[i].num);fl[j].RemnantSeat-=od[i].num;//新的剩余票数printf("请输入订单编号:");scanf("%d",&od[i].OrderNumber);getchar();//消除回车leno++;//订单数加1save();//保存到文件printf("定票成功。
航空购票系统实训报告
一、实训背景随着我国航空事业的快速发展,航空客运订票系统在航空公司的运营中发挥着越来越重要的作用。
为了更好地了解和掌握航空购票系统的设计、开发和运行,我们小组进行了为期一个月的航空购票系统实训。
二、实训目的1. 熟悉航空购票系统的基本原理和功能;2. 掌握航空购票系统的设计和开发方法;3. 提高团队合作能力和实践能力;4. 为今后的工作积累经验。
三、实训内容1. 系统需求分析在实训过程中,我们首先对航空购票系统进行了需求分析。
通过查阅相关资料和与航空公司的技术人员沟通,我们了解到航空购票系统主要包括以下功能:(1)航班信息查询:用户可以查询到航班号、起飞时间、到达时间、机型、票价等信息;(2)机票预订:用户可以选择航班、座位、票价等,进行机票预订;(3)订单管理:用户可以查看、修改、取消订单;(4)支付管理:用户可以选择在线支付或线下支付;(5)个人信息管理:用户可以查看、修改个人信息;(6)客服中心:用户可以咨询航班、订票等问题。
2. 系统设计根据需求分析,我们制定了以下系统设计:(1)系统架构:采用B/S架构,前端使用HTML、CSS、JavaScript等技术,后端使用Java语言和SSM框架(Spring、SpringMVC、MyBatis)进行开发;(2)数据库设计:使用MySQL数据库,存储航班信息、用户信息、订单信息等;(3)功能模块设计:将系统分为航班信息模块、机票预订模块、订单管理模块、支付管理模块、个人信息管理模块和客服中心模块。
3. 系统实现在系统实现过程中,我们遵循以下步骤:(1)前端开发:使用HTML、CSS、JavaScript等技术,完成航班信息查询、机票预订、订单管理、个人信息管理等功能模块的前端页面设计;(2)后端开发:使用Java语言和SSM框架,完成航班信息查询、机票预订、订单管理、支付管理、个人信息管理等功能模块的后端逻辑实现;(3)数据库设计:使用MySQL数据库,创建数据表,存储航班信息、用户信息、订单信息等;(4)系统集成:将前端页面和后端逻辑进行集成,实现整个系统的功能。
中国民航订座系统操作手册
中国民航订座系统操作手册一、引言中国民航发展迅速,为了提升服务效率和乘客体验,订座系统成为了必备工具。
本操作手册旨在指导用户熟悉和操作中国民航订座系统,确保订座流程顺畅、准确。
二、系统登录1. 使用合法的用户名和密码登录订座系统。
2. 在登录界面输入准确的用户名和密码,点击“登录”按钮进入系统。
三、基本功能1. 查询航班信息a. 选择日期和出发地、目的地,点击“查询”按钮。
b. 系统将显示符合条件的航班列表,包括航班号、起降时间、剩余座位数等信息。
c. 用户可以根据需要选择合适的航班进行订座。
2. 订座a. 在航班列表中选择目标航班,点击“订座”按钮。
b. 输入旅客姓名和联系方式等必要信息。
c. 确认无误后,点击“确认订座”按钮提交订座申请。
3. 修改、取消订座a. 进入订座管理界面,在“我的订座”中找到对应的订座信息。
b. 若需修改订座信息,点击“修改”按钮进行修改。
c. 若需取消订座,点击“取消”按钮完成取消操作。
4. 余票查询a. 进入余票查询页面,选择日期和出发地、目的地。
b. 系统将显示符合条件的航班列表以及剩余座位数。
5. 退票、改签a. 进入退票、改签管理界面,选择相应的订座信息。
b. 若需退票,点击“退票”并按照退票规定办理退票手续。
c. 若需改签,点击“改签”并按照改签规定进行改签操作。
四、常用技巧以下是一些常用的技巧,可提高订座效率和准确性:1. 根据航班号直接查询航班信息,快速订座。
2. 选择多个航班进行对比,以获得最适合的航班方案。
3. 提前查询余票情况,避开座位紧张的时间段。
4. 注意航班的起降时间,在订座时合理安排行程。
五、注意事项1. 用户在操作订座系统时,应提供真实、准确的信息,确保订座的有效性。
2. 根据不同航空公司的规定,订座可能需要提供附加信息或补充材料。
3. 遵守航空公司的规定和要求,以确保顺利出行。
六、结语通过本操作手册的指导,用户可以轻松使用中国民航订座系统,实现高效、便捷的订座服务。
航空客运订票系统
题目5 航空客运订票系统(难度系数:1.2)[问题描述]航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。
试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。
[基本要求](1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);(2)作为示意系统,全部数据可以只放在内存中;(3)系统能实现的操作和功能如下:①查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;②承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。
若需要,可登记排队候补;③承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。
[测试数据]由读者指定。
[实现提示]两个客户名单可分别由线性表和队列实现。
为查找方便,已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。
由于预约人数无法预计,队列也应以链表作存储结构。
整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。
每条航线是这张表上的一个记录,包含上述八个域、其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。
[选做内容]当客户订票要求不能满足时,系统可向客户提供到达同一目的地的其它航线情况。
读者还可充分发挥自己的想象力,增加你的系统的功能和其它服务项目。
航班订票系统可行性分析
航班订票系统可行性分析引言随着航空业的快速发展,航空公司面临着越来越多的订票需求。
传统的人工订票方式不仅效率低下,而且存在很多问题,例如订票过程繁琐、容易出现错误、实时查询困难等。
为了提高订票效率和顾客满意度,航空公司亟需开发一套高效、智能的航班订票系统。
本文将对航班订票系统的可行性进行分析,包括技术可行性、经济可行性和操作可行性。
技术可行性首先,航班订票系统需要具备强大的技术支持。
现代信息技术的发展使得构建一个高效的航班订票系统成为可能。
以下是技术可行性的分析:1. 必要的硬件设备航班订票系统需要运行在稳定的硬件环境中。
航空公司需要投入一定的资金购买服务器、计算机和网络设备等硬件设备,以保证系统的稳定性和安全性。
2. 强大的软件支持航班订票系统需要使用先进的软件工具和技术进行开发。
例如,可以采用面向对象的编程语言如Java或Python来编写系统的后端逻辑,采用先进的前端开发框架如React或Vue.js来设计用户界面。
此外,系统还需要使用数据库管理系统如MySQL或Oracle来存储和管理数据。
3. 数据安全和网络安全航班订票系统需要保证数据的安全性和网络的稳定性。
系统需要采取必要的措施保护用户的个人信息,例如使用SSL协议加密数据传输通道,限制对敏感数据的访问权限等。
同时,系统还需要具备防止黑客攻击和恶意行为的能力。
经济可行性进行经济可行性分析可以帮助航空公司评估开发航班订票系统所需的投资和预期收益。
以下是经济可行性的分析:1. 投资成本开发航班订票系统需要投入人力、物力和财力等资源。
航空公司需要支付软件开发人员的工资,购买硬件设备、服务器租用费用和网络运营费用等。
这些投资成本需要在系统投入使用之前进行预估和筹措。
2. 维护成本航班订票系统的开发只是一个开始,系统还需要进行后续的维护和更新。
维护成本包括人力成本、服务器运维费用和软件升级等。
航空公司需要评估每年的维护成本,以确保航班订票系统的长期可行性。
航空订票系统代码
Airline.h#pragma once#include<string>using std::string;#include<iostream>using std::istream;using std::ostream;#include<string>using std::endl;using std::cout;using std::cin;#include"DataStructure.h"#include"Passenger.h"class AirLine;ostream &operator<<(ostream &output ,const AirLine& line);class AirLine{friend void InitAirLine(AirLine *line);friend ostream &operator<<(ostream &output,const AirLine& line); public:AirLine(void);~AirLine(void);string GetEndPoint();int GetSeatNum(int);int GetSeatRemain(int);void SetSeatRemain(int num,int whickWeek);string GetFlightNum(void);void InsertPassenger(Passenger& temp);bool IsFly(int whichWeek) const;void InsertAwait(Passenger& temp);bool DeletePassenger(Passenger&);int IfAwaitBook(int tiNum, int whichWeek);private:string endPoint;string flightNum;string airNum;bool week[8];int seatNum[8];int seatRemain[8];MyList<Passenger> pList;MyQueue<Passenger> pQueue;};Airline.cpp#include"AirLine.h"AirLine::AirLine(void){for(int i=0;i<8;i++)week[i]=false;}AirLine::~AirLine(void){}string AirLine::GetEndPoint(){return endPoint;}ostream &operator<<(ostream &output,const AirLine &line){output<<"终点站: "<<line.endPoint<<"\n\n"<<"航班号: "<<line.flightNum<<"\n\n"<<"飞机号: "<<line.airNum<<"\n\n"<<"剩余票数:\n";for(int i=1;i<8;i++)if(line.IsFly(i))output<<"周"<<i<<" "<<line.seatRemain[i]<<endl;string weekName[8]={" ","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sund ay"};output<<"飞行日:";for(int i=1;i<8;i++)if(line.week[i])output<<weekName[i]<<"\t";cout<<endl;return output;}int AirLine::GetSeatNum(int whichWeek){return seatNum[whichWeek];}int AirLine::GetSeatRemain(int whichWeek){return seatRemain[whichWeek];}void AirLine::SetSeatRemain(int num,int whichWeek) {seatRemain[whichWeek]-=num;}string AirLine::GetFlightNum(void){return flightNum;}void AirLine::InsertPassenger(Passenger& temp) {pList.InsertNode(temp);}bool AirLine::IsFly(int whichWeek) const{return week[whichWeek];}void AirLine::InsertAwait(Passenger& temp){pQueue.EnQueue(temp);}bool AirLine::DeletePassenger(Passenger& temp) {seatRemain[temp.GetWeek()]+=temp.GetTickets();return pList.DeleteNode(temp);}int AirLine::IfAwaitBook(int tiNum, int whichWeek) {if(pQueue.Empty())return 0;Passenger node,tnode;MyQueue<Passenger> tempQueue;while(!pQueue.Empty()){pQueue.DnQueue(node);if(node.GetTickets()<tiNum&&node.GetWeek()==whichWeek) break;tempQueue.EnQueue(node);}while(!tempQueue.Empty()){tempQueue.DnQueue(tnode);pQueue.EnQueue(tnode);}if(node.GetTickets()<tiNum&&node.GetWeek()==whichWeek) return node.GetTickets();elsereturn 0;}Passenger.h#pragma once#include<string>using std::string;enum TicketGrade{AA,BB,CC};class Passenger{public:~Passenger(void);Passenger(const string &passengerName=" ",int tick=0,int g=1,int w=1);bool operator==(Passenger & d);int GetTickets();int GetWeek();private:string name;int tickets;TicketGrade grade;int flightWeek;};Passenger.cpp#include"Passenger.h"Passenger::~Passenger(void){}Passenger::Passenger(const string &passengerName,int tick,int g,int w) {name=passengerName;tickets=tick;switch(g){case 1:grade=AA;break;case 2:grade=BB;break;case 3:grade=CC;break;default:break;}flightWeek=w;}bool Passenger::operator==(Passenger & d){if(d.tickets!=tickets)return false;if(!=name)return false;if(d.flightWeek!=flightWeek)return false;if(d.grade!=grade)return false;return true;//TODO: insert return statement here }int Passenger::GetTickets(){return tickets;}int Passenger::GetWeek(){return flightWeek;}DataStructure.h#include<cstdlib>//LQNode classtemplate<typename T>class MyList;template<typename T>class MyQueue;template<typename T>class LQNode{friend class MyList<T>;friend class MyQueue<T>;public:LQNode();LQNode(T);~LQNode();private:T data;LQNode<T> *next;};template<typename T> LQNode<T>::LQNode(){//data=T(0);next=NULL;}template<typename T> LQNode<T>::LQNode(T node) {data=node;next=NULL;}template<typename T> LQNode<T>::~LQNode(){}//MyList classtemplate<typename LT> class MyList{public:MyList();~MyList();void InsertNode(LT &);bool DeleteNode(LT &);private:LQNode<LT> *head;};template<typename LT> MyList<LT>::MyList(){head=new LQNode<LT>;head->next=NULL;}template<typename LT>MyList<LT>::~MyList(){}template<typename LT>void MyList<LT>::InsertNode(LT &temp){LQNode<LT> *node=new LQNode<LT>(temp);node->next=head->next;head->next=node;}template<typename LT>bool MyList<LT>::DeleteNode(LT &temp){LQNode<LT> *p,*q;p=head->next;q=head;while(p!=NULL){if(p->data==temp){q->next=p->next;free(p);return true;}q=p;p=p->next;}return false;}//MyQueue classtemplate<typename QT>class MyQueuepublic:MyQueue();~MyQueue();void EnQueue(QT &);void DnQueue(QT &);bool Empty();private:LQNode<QT> *front;LQNode<QT> *rear;};template<typename QT>MyQueue<QT>::MyQueue(){front=rear=new LQNode<QT>;}template<typename QT>MyQueue<QT>::~MyQueue(){}template<typename QT>void MyQueue<QT>::EnQueue(QT &temp){LQNode<QT> *node=new LQNode<QT>(temp);rear->next=node;node->next=NULL;rear=rear->next;}template<typename QT>void MyQueue<QT>::DnQueue(QT &temp){if(Empty())cout<<"对空"<<endl;elsetemp=front->next->data;return;}template<typename QT>bool MyQueue<QT>::Empty()return front->next==NULL;}Main.cpp#include"AirLine.h"#include<iostream>using std::cout;using std::cin;using std::endl;#include<iomanip>using std::setw;using std::setfill;void InitAirLine(AirLine *line);void InquireAirLine(AirLine* line);void BookTicket(AirLine *line);void ReturnTicket(AirLine *line);void IfAwait(AirLine &line,int tiNum,int whichWeek);void TransactBookTicket(AirLine &line,int tiNum,int whichWeek);void IfBookTicket(AirLine *line,string fiNum,int tiNum,int whichWeek); bool IsQuit();const int size=7;const int maxSeatNum=120;int main(){AirLine line[size];int select;InitAirLine(line);bool flag=false;while(!flag){cout<<"-------------------------------------------------------------------"<<endl;cout<<" 航空客运订票系统"<<endl;cout<<" 1 查询航线"<<endl<<" 2 订票业务"<<endl<<" 3 退票业务"<<endl;cout<<"-------------------------------------------------------------------"<<endl;cin>>select;while(cin.fail()||select<1||select>3){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>select;}switch(select){case 1:InquireAirLine(line);break;case 2:BookTicket(line);break;case 3:ReturnTicket(line);break;default:cout<<"error";break;}system("pause");flag=IsQuit();system("cls");}return 0;}bool IsQuit(){char change;cout<<"是否退出该系统Y/y是N/n否"<<endl;while(true){cin>>change;switch(change){case'Y':case'y':return true;break;case'n':case'N':return false;break;default:cout<<"输入错误,重新输入"<<endl;break;}}return true;}void InquireAirLine(AirLine *line){string inquirePoint;cout<<"输入终点名:"<<endl;cin>>inquirePoint;for(int i=0;i<size;i++)if(line[i].GetEndPoint()==inquirePoint){cout<<line[i];return;}cout<<"对不起,没有到达该地的航班"<<endl; }void BookTicket(AirLine *line){int tiNum;int whichWeek;string fiNum;cout<<"输入航班号:"<<endl;cin>>fiNum;for(int i=0;i<size;i++)if(line[i].GetFlightNum()==fiNum){cout<<line[i];cout<<"输入订票额:"<<endl;cin>>tiNum;while(cin.fail()){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>tiNum;}if(tiNum>maxSeatNum){cout<<"对不起,本公司暂时没有这么大的客机,请分开订票"<<endl;return;}cout<<"输入订票时间:"<<endl;cout<<"1星期一、星期二..."<<endl;cin>>whichWeek;while(cin.fail()||whichWeek>8||whichWeek<1||!line[i].IsFly(whichW eek)){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>whichWeek;}if(tiNum>line[i].GetSeatRemain(whichWeek))IfAwait(line[i],tiNum,whichWeek);elseTransactBookTicket(line[i],tiNum,whichWeek);return;}cout<<"对不起,没有到达该地的航班"<<endl;}void ReturnTicket(AirLine *line){cout<<"为您办理退票业务:"<<endl;string fiNum;int whichWeek;int tiNum;int i;string name;cout<<"输入名字"<<endl;cin>>name;cout<<"输入航班号:"<<endl;cin>>fiNum;for(i=0;i<size;i++)if(line[i].GetFlightNum()==fiNum)break;if(i==size){cout<<"无此航班,请核对后输入"<<endl;return;}cout<<"输入订票时间:"<<endl;cout<<"1星期一、星期二..."<<endl;cin>>whichWeek;while(cin.fail()||whichWeek>8||whichWeek<1||!line[i].IsFly(whichW eek)){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>whichWeek;}cout<<"输入订票额:"<<endl;cin>>tiNum;while(cin.fail()){cout<<"输入错误,重新输入"<<endl;cin.clear();cin.ignore();cin>>tiNum;}Passenger temp(name,tiNum,1,whichWeek);if(line[i].DeletePassenger(temp)==true){cout<<"办理退票完毕,谢谢合作"<<endl;IfBookTicket(line,fiNum,tiNum,whichWeek);}elsecout<<"您没有订票或输入信息错误,请核实后办理"<<endl; }void IfAwait(AirLine &line,int tiNum,int whichWeek){cout<<"空座不够,是否排队候补?Y/y是N/n否"<<endl;char change;bool flags=true;while(flags){cin>>change;switch(change){case'Y':case'y':{flags=false;Passenger temp(" ",tiNum,1,whichWeek);line.InsertAwait(temp);cout<<"已为您登记排队候补,请耐心等候"<<endl;}break;case'n':case'N':flags=false;cout<<"谢谢合作,再见。
UML 建模设计 航 空 订 票 系 统
UML 建模设计航空订票系统姓名:卫飞班级:1528学号:201515614375一、背景1.1背景概述随着知识经济的到来,人类已经逐步进入信息化社会,信息增长的速度越来越快,人们希望利用先进的管理理论方法手段来得到并处理越来越多的信息,以提高工作效率和管理水平。
由于信息资源对人们生活的重要性,不断提高信息的收集,传输,加以利用等活动,日益成为人们社会生活的重要组成部分。
网上机票预订管理系统的产生和发展正好满足人们的这种需求1.2 主要组成及功能1、新用户注册,新用户可以注册,注册时输入用户名可以查询用户可不可用,可用就可以注册,注册时可以判断用户输入的密码和验证密码是否相同,相同才给以注册,如果满意可以点注册,注册成功后用户可以选择不用在回到登陆界面,可以直接陆到用户主界面,以后就可以用这个用户登录了,如果不满意,点取消,所有信息清空,重新输入。
2、验证登陆名密码,正确进入主菜单,根据登录时所选的登录方式(客户、管理员)的不同分别对用户设定不同的访问权限(如果是输入的客户用户名和密码正确,选择以客户方式登陆则主界面里面的管理员界面不能用,如果输入的是管理员的相应用户密码正确,以管理员的方式登陆则管理员界面可用)不正确则清空登录框,最多可以输入三次,三次不正确系统会自动关闭3.我的航班界面。
你可以点击你想查询的有关机票的信息的按钮(舱位信息查询,客机信息查询,航线查询,客户类型信息查询)获得相关信息的表,根据表的内容,你可以在下面的下拉框中选择你要定的票信息,点确定后在下面会显示你的机票的相关内容,如果满意可以点击订票,把相关信息添加到机票数据库表中,如果不满意,可以点重置,所有信息清空,再重新选择。
4.退票功能。
用户可以根据用户信息表中的我的机票信息查询,找出机票号,在输入到机票号查询里,点击查询获得你的机票信息以及价格显示,点击退票则在数据库机票信息表中删除本条信息二、使用Rose绘制图分别有:用例图、类图、包图、顺序图、协作图、状态图、活动图、组件图、部署图情景:机票预订系统是某航空公司推出的一款网上选票系统。
航空客运——2.2订座系统概述
3、世界各大CRS名称及标识
• 地区
CRS名称
标识
• 美国
SABRE
1W
• 美国
WORLDSPAN
1P
• 美国
GETS
1X
• 欧洲
AMADEUS
1A
• 欧美
GALILEO
1G
• 东南亚
AMACUS
1B
• 日本
INFINI
1F
• 日本
AXESS
1J
• 中国
中国CRS
1E
• 韩国
2020年10月27日 10时7分
TOPAS
1T
22
• (4)CRS系统与ICS之间的联接 • (5)CRS系统与国外系统之间的联接按数据传输
方式分类
2020年10月27日
10
10时7分
(1)CRS系统模式
CRS销售代 理
ICS航空公 司
其它航空 公司的ICS
出租车 旅馆等 旅行0月27日
11
10时7分
(2)目前存在三种连接
2.2 订座系统概述
2020年10月27日10时7分
1
2.2 订座系统概述
• 一、计算机在民航订座系统中的应用 • 二、计算机订座系统概述 • 三、CRS系统网络的主要特征 • 四、CRS系统提供的服务 • 五、航空公司ICS系统与CRS系统
2020年10月27日
2
10时7分
2.2 订座系统概述
• ① 与国内各航空公司的连接 • ② 与国外航空公司的直接连接
– 美西北航空公司,新加坡航空公司,全日本航空公司,日本 航空公司,港龙航空公司,,国泰航空公司,长荣航空公司, 中华航空公司,远东航空公司,复兴航空公司,哈萨克斯坦 航空公司, 万能捷运公司,大韩航空公司CX JL AN BR SQ KA KE NH
订票系统文档
订票系统介绍订票系统是一种用于预订机票、火车票、电影票等各种票务的系统。
随着互联网和移动互联网的快速发展,订票系统已经成为现代人生活中不可或缺的一部分。
本文将介绍订票系统的功能以及使用方法。
功能1.用户注册和登录:订票系统提供用户注册和登录功能,用户可以通过自己的账号和密码进行登录,从而方便地进行票务预订。
2.票务查询:订票系统提供了全面的票务查询功能,用户可以根据目的地、时间、票价等条件对票务进行筛选,并查看相关的票务信息。
2.订票:一旦用户找到心仪的票务,可以通过订票系统直接进行订票。
用户需要选择座位、支付方式等相关信息,并填写必要的个人信息,完成订票过程。
3.订单管理:订票系统会保留用户的订票记录,用户可以通过订单管理功能查看自己的订单,了解订单的状态、支付情况等信息。
4.支付:订票系统支持多种支付方式,用户可以选择适合自己的支付方式进行付款,完成订票流程。
5.退票:用户可以在一定的时间范围内进行退票申请,订票系统会根据退票政策进行处理,并将相应的款项退还给用户。
6.售后服务:订票系统提供售后服务,用户可以通过系统客服渠道与客服人员联系,解决遇到的问题或提出意见和建议。
使用方法以下是使用订票系统的基本步骤:1.用户注册:用户需要点击系统的注册按钮,填写相关信息(如用户名、密码、手机号码等),完成注册过程。
也可以选择第三方账号快速注册。
2.用户登录:注册成功后,用户可以使用注册时填写的用户名和密码进行登录,进入订票系统的主界面。
3.票务查询:用户可以在主界面的搜索框中输入相关的查询条件(如目的地、时间、票价等),然后点击搜索按钮进行查询。
系统会根据用户的查询条件返回相应的票务信息。
4.订票:在查询结果中找到心仪的票务后,用户可以点击选择座位并填写必要的个人信息(如姓名、身份证号码等),然后选择支付方式付款。
5.订单管理:用户可以在系统的订单管理页面查看自己的订单,了解订单的状态和支付情况。
中国民航订座系统操作手册
中国民航订座系统操作手册中国民航的发展在近年来取得了长足的进步,航空业也逐渐成为人们出行的重要选择。
作为航空公司的重要一环,民航订座系统的操作十分关键。
在这里,我将为大家介绍一份中国民航订座系统的操作手册,希望能够帮助大家更好地了解和使用这一系统。
首先,在使用民航订座系统之前,我们需要了解一些基本的操作步骤。
首先,打开民航官方网站或者相关应用程序,找到订座系统入口。
其次,选择出发地和目的地城市,输入出行日期和航班时间。
接着,系统将显示符合条件的航班列表,根据自己的需求选择合适的航班。
最后,填写乘客信息并支付机票费用,完成预订。
在选择航班时,我们需要注意一些细节。
首先,要根据个人出行需求选择合适的舱位类型,如经济舱、商务舱或头等舱。
其次,要注意航班的起降时间和中转时间,确保在出行计划中留有充足的时间。
此外,还需要关注航班的准点率和航空公司的服务质量,选择信誉良好的航空公司。
在填写乘客信息时,我们需要确保信息的准确性和完整性。
首先,要填写与乘机人身份证件一致的姓名和证件号码,以确保乘机顺利。
其次,要填写联系人信息,以便紧急情况下能够及时联系到乘客。
最后,要选择座位偏好和餐食需求,提前告知航空公司,以便他们为您提供更好的服务。
在支付机票费用时,我们需要注意保护个人信息和选择安全支付方式。
首先,要选择正规渠道支付,避免使用不明来源的支付平台。
其次,要确保支付页面的安全性,避免泄露个人银行账号和密码。
最后,要保存好支付凭证和订单信息,以备日后查询和退改签。
总的来说,中国民航订座系统的操作并不复杂,只要掌握好基本步骤和注意事项,就能够轻松完成订票。
希望这份操作手册能够帮助大家更好地使用民航订座系统,享受舒适便捷的出行体验。
祝大家旅途愉快!。
机票订票系统需求规格说明书
机票订票系统需求规格说明书机票订票系统需求规格说明书1.引言1.1 目的本文档旨在描述机票订票系统的需求规格,以确保系统开发人员和客户对系统功能和性能的期望一致。
1.2 背景随着航空业的快速发展和人们出行需求的增加,机票订票系统成为了一个必不可少的工具。
该系统可以方便快捷地为客户提供机票预订服务,提高航空公司的运营效率。
2.总体描述2.1 产品功能机票订票系统应具备以下主要功能:- 用户注册和登录:用户可以通过注册账号并登录系统来使用订票功能。
- 机票查询和预订:用户可以根据出发地、目的地、日期等信息查询航班,并选择合适的航班进行预订。
- 订单管理:用户可以查看和管理自己的订单,包括取消订单、改签等操作。
- 支付功能:用户可以选择合适的支付方式进行支付。
- 退款功能:用户可以申请退款,并根据航空公司的规定进行退款流程。
- 系统管理:管理员可以管理用户信息、航班信息、机票价格等。
2.2 用户特点机票订票系统的用户群体主要包括以下几类:- 普通用户:希望通过系统快速、方便地查询和预订机票。
- 航空公司:希望通过系统管理航班、机票价格等信息,并提供客服支持。
- 管理员:负责系统的日常管理和维护。
2.3 运行环境机票订票系统将在以下环境中运行:- 操作系统:支持Windows、Mac、Linux等主流操作系统。
- 浏览器:支持主流浏览器,如Chrome、Firefox、Safari等。
- 硬件要求:支持常见的个人电脑、笔记本电脑等设备。
3.详细需求描述3.1 用户注册和登录3.1.1 用户注册用户可以通过提供必要的个人信息进行注册,包括姓名、手机号码、邮箱等。
3.1.2 用户登录用户可以使用注册时的手机号码和密码进行登录,以便使用系统的各项功能。
3.2 机票查询和预订3.2.1 机票查询用户可以根据出发地、目的地、日期等信息进行机票查询,并获取符合条件的航班列表。
3.2.2 航班选择用户可以从航班列表中选择合适的航班进行预订,包括选择座位、舱位等。
中国民航订座系统操作手册
中国民航订座系统操作手册中国民航订座系统操作手册目录1. 引言2. 登录与注册2.1. 注册新账户2.2. 登录现有账户3. 航班查询与预订3.1. 单程和往返航班查询3.2. 舱位选择和预订3.3. 旅行日期选择3.4. 乘客信息输入3.5. 订单确认和支付4. 机票管理4.1. 航班变更和退票4.2. 行李规定查询5. 其他功能5.1. 会员服务5.2. 报销凭证生成5.3. 旅客保险购买6. 常见问题解答7. 结束语1. 引言欢迎使用中国民航订座系统操作手册。
本手册将详细介绍如何利用该系统进行航班查询、预订和机票管理等操作,以及其他功能的使用方法和常见问题解答。
请按照手册的指引一步一步操作,以便顺利完成所需任务。
2. 登录与注册2.1. 注册新账户a. 打开中国民航订座系统网站,点击注册按钮。
b. 输入个人信息,包括姓名、手机号码、电子邮箱等,并创建密码。
c. 验证码校验后,点击确认提交注册申请。
d. 系统将发送确认邮件至注册时提供的邮箱,点击确认邮件中的链接完成注册。
2.2. 登录现有账户a. 打开中国民航订座系统网站,点击登录按钮。
b. 输入注册时使用的手机号码或邮箱,以及密码。
c. 点击登录按钮完成登录。
3. 航班查询与预订3.1. 单程和往返航班查询a. 在主页的航班查询栏中选择单程或往返。
b. 输入出发地和目的地城市名或三字码,并选择出发日期。
c. 点击查询按钮,系统将列出符合条件的航班信息。
3.2. 舱位选择和预订a. 在航班列表中选择合适的航班。
b. 在舱位列表中选择希望预订的舱位类型和价格。
c. 点击预订按钮,进入乘客信息输入页面。
3.3. 旅行日期选择a. 在航班查询结果页面中,点击日期选择器。
b. 选择合适的出发日期。
c. 点击查询按钮,系统将显示该日期的航班信息。
3.4. 乘客信息输入a. 根据系统提示,输入乘客的姓名、证件号码、性别等基本信息。
b. 根据需要选择座位要求、餐食要求等其他选项。
旅客服务系统名词解释
旅客服务系统名词解释旅客服务系统,又称为旅客信息系统(Passenger Service System,缩写为PSS),是指航空公司或铁路公司等运输公司用于管理旅客信息和提供旅客服务的计算机系统。
该系统集成了多个模块和功能,包括预订、登机、行李跟踪、票务退改签、乘客信息管理等。
以下是一些与旅客服务系统相关的名词解释:1. 预订系统(Reservation System):旅客可以通过此系统预订机票或车票,并进行座位选择、支付等操作。
2. 登机系统(Check-In System):用于检查旅客的登机信息和办理登机手续,提供电子登机牌和行李标签等。
3. 行李跟踪系统(Baggage Tracking System):负责追踪旅客托运的行李的位置,确保行李的准确运送和及时返还。
4. 退改签系统(Ticketing System):允许旅客退改机票或车票,并处理相关费用和手续。
5. 出票系统(Ticket Issuance System):用于生成和打印机票或车票,包括行程单、电子票等。
6. 乘客信息管理系统(Passenger Information Management System):存储和管理旅客的个人信息、机票历史记录、优惠券等数据,以便进行个性化服务和相应的市场活动。
7. 舱位管理系统(Inventory Management System):控制和管理各航班或列车的座位分配和价格调整,以实现舱位的最大利用和优化收益。
8. 售后服务系统(After-sales Service System):解决旅客在旅途中遇到的问题和投诉,提供客户服务和售后支持。
旅客服务系统的目标是提高旅客满意度,增强运输公司的竞争力,实现高效、便捷和安全的旅行体验。
航空订票系统(软件测试报告)
航空订票系统(软件测试报告)-CAL-FENGHAI.-(YICAI)-Company One1航空订票系统测试计划说明书目录1引言 (4)1.1编写目的 (4)1.2测试计划概述 (4)1.3被测试系统概述 (4)1.4测试计划制定依据 (5)1.5预期读者 (5)2任务概述 (5)2.1目标 (5)2.2运行环境 (5)2.3需求概述 (5)3测试范围 (6)3.1测试用例 (7)3.2测试特性与软件需求的对应关系 (9)3.3被测试特性 (10)4术语定义 (10)4.1软件错误与缺陷定义 (10)4.2其他术语的定义 (11)5测试目标与策略 (11)5.1测试目标 (11)5.2测试方法 (11)5.3测试工具 (11)5.4测试地点 (11)6测试状态转换标准和再启动要求 (11)7测试通过准则 (12)8应提供的测试文档 (12)9测试资源需求 (12)9.1硬件需求 (12)9.2软件需求 (12)9.3网络需求 (12)9.4人员需求 (13)9.5其他需求 (13)10人员、职责及培训要求 (13)10.1人员组成 (13)10.2人员分工与职责 (13)10.3培训要求 (13)11测试进度 (13)12风险和应急 (14)12.1影响计划的潜在因素 (14)12.2应急措施 (14)13测试的局限性 (15)14计划的批准 (15)15参考文档 (15)附录Ⅰ软件错误与缺陷的定义 (16)附录Ⅱ测试状态转换标准和再启动要求 (17)附录Ⅲ测试通过准则 (19)附录Ⅳ人员分工与职责 (20)1引言1.1编写目的为保证《飞机订票系统》的测试工作有序进行,保证《飞机订票系统》正确实现需求规格说明书中的功能定义,特制本计划供软件测试相关人员执行。
1.2测试计划概述计划名称:航空订票系统测试计划文档编号:ticket/2009-06-11测试部门:软件测试部计划作者:金振方赵豪王山计划审核:在windows平台下运行航空订票系统,针对该项目中各个模块应实现的不同功能,生成测试用例文档,再手动进行测试。
数据结构课程设计题目(最终版)-2012
数据结构课程设计题目1、医务室模拟。
问题描述:假设只有一位医生,在一段时间内随机地来几位病人;假设病人到达的时间间隔为0~14分钟之间的某个随机值,每个病人所需处理时间为1~9分钟之间的某个随机值。
试用队列结构进行模拟。
实现要求:要求输出医生的总等待时间和病人的平均等待时间。
程序设计思路:计算机模拟事件处理时,程序按模拟环境中的事件出现顺序逐一处理,在本程序中体现为医生逐个为到达病人看病。
当一个病人就诊完毕而下一位还未到达时,时间立即推进为下一位病人服务,中间时间为医生空闲时间。
当一个病人还未结束之前,另有一位病人到达,则这些病人应依次排队,等候就诊。
2、招聘模拟问题描述:某集团公司为发展生产向社会公开招聘m个工种的工作人员,每个工种各有不同的编号(0,1,2,…,m-1)和计划招聘人数,参加招聘的人数有n个(编号为0,1,2,。
,n-1)。
每位应聘者可以申报两个工种,并参加公司组织的考试。
公司将按应聘者的成绩,从高到低的顺序排队录取。
公司的录取原则是:从高分到低分依次对每位应聘者按其第一志愿录取;当不能按第一志愿录取时,便将他的成绩扣去5分后,重新排队,并按其志愿考虑录取。
程序为每个工种保留一个录取者的有序队列。
录取处理循环直至招聘额满,或已对全部应聘者都做了录用处理。
实现要求:要求程序输出每个工种录用者的信息(编号、成绩),以及落选者的信息(编号、成绩)。
3、组织机构问题问题描述:以青岛理工大学为例,实现对我校组织结构的管理。
要求把我校的组织结构以树型结构存储,实现要求:(1)树中每个结点保存部门名称;(2)假定处级部门(含院系)在树中第二层,科级部门在第三层(即最后一层),软件应该能计算出处级部门有几个,有哪几个?(3)软件可以查询某部门下面的具体编制?4、最少换车次数问题问题描述:设某城市有n个车站,并有m条公交线路连接这些车站。
设这些公交车站都是单向的,这n个车站被顺序编号为0~n-1。
航空客运订票系统实习报告
实习报告一、实习背景及目的随着我国经济的快速发展,人民生活水平的不断提高,航空运输需求日益增长。
为了提高航空客运订票效率,降低运营成本,提升客户满意度,航空公司及相关部门积极引入先进的信息化技术,开发航空客运订票系统。
本次实习旨在了解航空客运订票系统的业务流程、掌握系统功能及操作方法,提高自身业务能力和实际操作技能。
二、实习内容与过程1. 实习前的准备工作在实习开始前,我认真学习了航空客运订票系统的相关理论知识,了解了航空客运订票系统的起源、发展及其在现代航空运输行业中的重要作用。
同时,我还熟悉了系统的操作界面、功能模块以及基本操作流程。
2. 实习过程中的主要工作(1)航线查询:根据旅客提出的终点站名,输出航班号、飞机号、星期几飞行,最近一天航班的日期和余票额等信息。
(2)订票业务:根据客户提出的要求(航班号、订票数额),查询该航班票额情况。
若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。
若需要,可登记排队候补。
(3)退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续。
然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。
3. 实习中遇到的问题及解决方法在实习过程中,我遇到了一些问题,如系统操作不熟悉、业务流程不清晰等。
针对这些问题,我通过请教同事、查阅资料、总结经验等方式,逐步掌握了系统的操作方法,明确了业务流程。
同时,我还积极参与培训,提高自己的业务素质。
三、实习收获与反思通过本次实习,我掌握了航空客运订票系统的业务流程、功能模块及操作方法,提高了自己的业务能力和实际操作技能。
同时,我深刻认识到航空客运订票系统在提高航空公司运营效率、降低运营成本、提升客户满意度方面的重要作用。
反思实习过程,我认为自己在系统操作速度、业务熟悉程度、沟通协调能力等方面仍有待提高。
航空客运订票系统源代码
航空客运订票系统源代码#include <windows.h>//dos控制命令头文件#include <iostream>//输入输出头文件#include <iomanip>//控制格式头文件#include <conio.h>//getchar()用到#include <string>//字符串函数using namespace std;//标准命名空间#define OK 1//函数结果状态码#define ERROR 0//函数结果状态码#define TRUE 1//函数结果状态码#define FALSE 0//函数结果状态码typedef int status;//函数结果状态码static int cusnum=1;//顾客数(全局变量)static int airnum=1;//航线数(全局变量)//顾客结构体struct customer{char name[9];// 顾客名char line_num[8];// 航班号int piaonum;// 座位号struct customer *next;// 下一个结点};typedef customer *Linkcustomer;//候补顾客结构体typedef struct houbuNode{//候补顾客结构体char name[9];//姓名char end_place[10];//终点站int pnum;//票数struct houbuNode *next;//指针域}* houbucustomer;struct LinkQueue{houbucustomer front,rear;//队头队尾指针};//航线结构体struct airline{char line_num[8];// 航班号char plane_num[8];// 飞机号char end_place[20];// 目的的char fly_data[20];// 飞行周日int total;// 座位总数int left;// 剩余座位Linkcustomer custom;// 订票顾客指针LinkQueue houbucus;// 候补顾客指针struct airline *next;// 下一个结点};typedef airline *Linkairline;//初始化航线链表void init_airline(Linkairline &l){l=new airline[sizeof(airline)];//产生头结点,并始l指向此头结点if(!l){//存储分配失败exit(0);//退出}l->next=NULL;//头结点的指针域为空}//初始化顾客链表(同初始化航线链表)void init_customer(Linkcustomer &l){l=new customer[sizeof(customer)];if(!l){exit(0);}l->next=NULL;}//初始化候补顾客队列链表(同初始化航线链表)void init_houbucustomer(LinkQueue &Q){Q.front=Q.rear=new houbuNode[sizeof(houbuNode)];//if(!Q.front){exit(0);}Q.front->next=NULL;}//判断airline链表是否为空status airLineEmpty(Linkairline L){if(L->next)//非空return FALSE;elsereturn TRUE;}// airline链表插入操作status insert_airline(Linkairline L,int i,char *line_num,char *plane_num,char *end_place, char *fly_data,int total,int left,Linkcustomer custom,LinkQueue houbucus){int j=0;//计数器Linkairline s,p=L;//p指向头结点while(p&&j<i-1)//寻找第i-1个结点{j++;p=p->next;}if(!p||j>i-1)//i小于1或大于表长return ERROR;//插入失败s=new airline[sizeof(airline)];//生成新结点strcpy(s->line_num , line_num);//给新结点赋值strcpy(s->plane_num , plane_num);strcpy(s->end_place , end_place);strcpy(s->fly_data , fly_data);s->total =total;s->left =left;s->custom=custom;s->houbucus=houbucus;s->next=p->next;//新结点指向原第i个结点p->next=s;//原第i-1个结点指向新结点return OK;//插入成功}// customer链表插入操作(同airline链表插入操作)status insert_customer(Linkcustomer L,int i,char *name,char *line_num,int piaonum){ int j=0;Linkcustomer s,p=L;while(p&&j<i-1){j++;p=p->next;}if(!p||j>i-1)return ERROR;s=new customer[sizeof(customer)];strcpy(s->name , name);strcpy(s->line_num , line_num);s->piaonum=piaonum;s->next=p->next;p->next=s;return OK;}// houbucustomer入队操作void insert_houbucustomer(LinkQueue &Q,char *name,char *end_place,int pnum){ houbucustomer p;p=new houbuNode[sizeof(houbuNode)];strcpy(p->name , name);strcpy(p->end_place , end_place);p->pnum=pnum;p->next=NULL;Q.rear->next=p;Q.rear=p;}// houbucustomer出队操作status del_houbucustomer(LinkQueue &Q,houbuNode &hbnode){houbucustomer p;p=Q.front->next;strcpy(,p->name);strcpy(hbnode.end_place,p->end_place);hbnode.pnum=p->pnum;Q.front->next=p->next;if(Q.rear==p)Q.rear=Q.front;delete p;return OK;}//houbucustomer输出操作void print_houbucustomer(LinkQueue Q){houbucustomer p=Q.front->next;cout<<"候补顾客为:"<<endl;cout<<"姓名终点站票数"<<endl;while(p){cout<<p->name<<" "<<p->end_place<<" "<<p->pnum;p=p->next;}cout<<endl;}// 打印航线信息status print_airline(Linkairline l){cout<<endl<<"航班号飞机号目的地飞行周日总票数余票数订票客户替补客户"<<endl;Linkairline p=l->next ;for(;p!=NULL;p=p->next ){cout<<setiosflags(ios::left)<<setw(9);cout<<p->line_num<<setw(10)<<p->plane_num<<setw(9)<<p->end_place<<setw(12)<<p->fly_data<<setw(10)<<p->total<<setw(8)<<p->left<<setw(12)<<&(p->houbucus)<<setw(10)<<&(p->custom)<<endl;}return OK;}// 打印航线信息(print_airline重载)status print_airline(Linkairline l,string name,int N){string info;bool flag=true;Linkairline p=l->next;for(;p!=NULL;p=p->next ){if(N==1)info=p->end_place;elseinfo=p->line_num;if(info==name){flag=false;cout<<endl<<"航班号飞机号目的地飞行周日总票数余票数订票客户替补客户"<<endl;cout<<setiosflags(ios::left)<<setw(9);//输出格式控制cout<<p->line_num<<setw(10)<<p->plane_num<<setw(9)<<p->end_place<<setw(12)<<p->fly_data<<setw(10)<<p->total<<setw(8)<<p->left<<setw(12)<<&(p->custom)<<setw(10)<<&(p->houbucus)<<endl;break;}}if(flag){if(N==1)cout<<"对不起,没有终点站为"<<name<<"的航班"<<endl;elsecout<<"对不起,没有航班号为"<<name<<"的航班"<<endl;}return OK;}// 打印顾客信息status print_customer(Linkcustomer l){Linkcustomer p=l->next ;for(;p!=NULL;p=p->next ){cout<<setiosflags(ios::left);//输出格式控制cout<<setw(10)<<p->name<<setw(12)<<p->line_num<<p->piaonum<<endl;}return OK;}//航班信息录入status addmoreairline(Linkairline l,Linkcustomer custom,LinkQueue houbucus){char line_num1[8],plane_num1[8],fly_data1[8],end_place1[8];int total1=100,left1=80;cout<<"请输入以下信息:"<<endl<<endl;cout<<"航班号:";cin>>line_num1;cout<<"飞机号:";cin>>plane_num1;cout<<"目的地:";cin>>end_place1;cout<<"飞行周日:";cin>>fly_data1;cout<<"总票数:";cin>>total1;cout<<"余票数:";cin>>left1;insert_airline(l,airnum,line_num1,plane_num1,end_place1,fly_data1,total1,left1,custom,ho ubucus);airnum++;cout<<"添加成功!"<<endl;print_airline(l);return OK;}// 修改airline链表中的数据status modefy_airline(Linkairline l,char *line_num){Linkairline p=l->next;for(;p!=NULL;p=p->next ){if(strcmp(line_num,p->line_num )==0){p->left++;return OK;}}cout<<"没有这个航班,无法完成修改任务!"<<endl;return ERROR;}//订票status book(Linkairline l,char *end_place,Linkcustomer c,char *name,int num,LinkQueue houbu){Linkairline p=l->next;//p指向第一个结点Linkcustomer q=c->next;//q指向第一个结点for(;p!=NULL;p=p->next)//查找{if(strcmp(end_place,p->end_place )==0){if(p->left-num >=0)//剩余票数大于订票数{cout<<"订票成功!"<<endl;insert_customer(c,cusnum,name,p->line_num,num);//向顾客链表插入记录p->left-=num;//订票成功,剩余票数减少cusnum++;//顾客数加一return OK;}else//剩余票数小于订票数{char pd;cout<<"对不起,余票不足!"<<endl;cout<<"是否需要排队候补(Y/N):";cin>>pd;if(pd=='Y'||pd=='y')//需要排队候补{insert_houbucustomer(houbu,name,end_place,num);//向候补队列插入记录cout<<"候补登记成功!"<<endl;print_houbucustomer(houbu);}else{}}return 0;}}cout<<"对不起,没有终点站为"<<end_place<<"的航班!"<<endl;return ERROR;}//退票status delete_cus(Linkcustomer h,Linkairline l,char *name,LinkQueue houbu){Linkcustomer p=h->next,pr=h;//p指向顾客链表首结点char line_num[8];houbuNode hbnode;while(p!=NULL)//循环查找退票顾客{if(strcmp(name,p->name )==0){strcpy(line_num,p->line_num );for(int i=0;i<p->piaonum;i++)//更改该航线的剩余票数modefy_airline(l,line_num);pr->next =p->next ;cout<<"顾客"<<p->name<<"退票成功!"<<endl;cusnum--;//顾客数减一if(houbu.front->next==NULL){}else{del_houbucustomer(houbu,hbnode);//候补顾客出队if(l->next->left>=hbnode.pnum)//剩余票数多于排在第一位的客户订的票数{//为排在第一位的客户办理订票业务book(l,hbnode.end_place,h,,hbnode.pnum,houbu);cout<<"候补顾客"<<<<"订票成功!"<<endl;}else//剩余票数少于排在第一位的客户订的票数{cout<<"票数仍然不足!";}}return OK;}pr=pr->next ;p=pr->next ;}cout<<"无此顾客,无法退票!"<<endl;//未查到顾客信息return ERROR;}//打开进度条,程序信息简介void open(){cout<<"\n\n\n\n 课程设计\n";cout<<"\n ╔-------------------------------╗";cout<<"\n ││";cout<<"\n │名称: 航空订票系统│";cout<<"\n ││";cout<<"\n │作者: 乐升平│";cout<<"\n ││";cout<<"\n │学号: 6 │";cout<<"\n ││";cout<<"\n │班级:12计科(2)班│";cout<<"\n ││";cout<<"\n │工具: VC++6.0 C++语言│";cout<<"\n ││";cout<<"\n ╚-------------------------------╝\n";system("pause");system("cls");cout<<"\n\n\n\n\n\n ****************欢迎使用航空订票系统**************\n\n\n";const int M=25;int k;cout<<"\n 〓程序加载中>>>> ";for (k=1;k<=M;k++){cout<<"■";Sleep(100);}system("cls");cout<<endl<<"【载入完成】\a"<<endl<<endl;cout<<" 前言"<<endl<<endl;cout<<" 欢迎使用『航空订票系统』,本程序实现了以下功能:\n\n";cout<<" ①录入功能:可以录入航班情况\n\n";cout<<" ②查询功能:根据客户提供的终点站名或航班号进行查询。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
航空客运订票系统 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】课程设计报告课程名称数据结构课题名称航空客运订票系统专业通信工程班级学号姓名指导教师2013 年 6 月 29 日湖南工程学院课程设计任务书课程名称数据结构课题航空客运订票系统专业班级学生姓名学号指导老师张鏖烽田娟秀李杰君审批任务书下达日期 2013 年 6 月 23 日任务完成日期 2013 年 6 月 29 日目录1.需求分析 (1)2.概要设计 (1)定义“航线”类型 (2)主函数 (2)调用关系 (3)3.详细设计 (3)航线与客户的存储结构 (3)各个系统模块 (3)算法设计 (4)主函数功能 (6)整个系统的流程图 (7)存储结构设计 (7)4.调试分析 (7)5.用户使用说明 (8)6.测试结果 (10)7.心得体会 (12)8.附录 (13)课题名称航空客运订票系统1.需求分析航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。
试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。
【基本要求】(1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);(2)系统能实现的操作和功能如下:①录入:可以录入航班情况,全部数据可以只放在内存中,最好存储在文件中;②查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;③承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。
若需要,可登记排队候补;④承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。
初始化航班信息如下:通过输入0~5这六个数字选择相应的操作,如:查询航班,订票,退票等操作;2.概要设计两个客户名单可分别由线性表和队列实现。
为查找方便,已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。
由于预约人数无法预计,队列也应以链表作存储结构。
整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。
每条航线是这张表上的一个记录,包含上述8个域、其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。
注:由于“航线”可只用一条单链表记录,故采用全局变量,减少参数的传递。
定义“航线”类型ADT Lairline{数据对象:D={ai|ai∈航线链表集,i=1,2,3……,n,n>=0}数据关系:R1={<ai-1,ai>| ai-1,ai∈D,i=1,2,3……,n }基本操作:Lairline search_line() 照航班查找Lairline search_line(){char a[10];airline *p;p=L->next;P("Please input the number of line:"); S("%s",a);for(;p;p=p->next)if(!strcmp(a,p->line_num )) break;return p;}注:通过建立节点p实现链表的遍历,利用for循环挨个查找,直到找到为止,再返回找到的这个节点,实现传递。
2.订票系统void book(){ int i; int flag=0;airline *p;customer *cst, *c;P("Please choose the way of viewing:\n"); 始化航线void InitLine() 班查询void search(){int i; int flag=0;airline *p;P("Please input the way of viewing the flight:\n");P("The number of the flight------------>1\n");照Array飞机型号查找{char a[10];airline *p;p=L->next;P("Please input the number of plane:");S("%s",a);for(;p;p=p->next)if(!strcmp(a,p->plane_num)) break;return p;}Lairline search_date()照日期查询航班{int a;airline *p;p=L->next;P("Please input the date of plane:");S("%d",&a); 航班终点查找航班{char a[20];airline *p; p=L->next;P("Please input the final address of the plane:");S("%s",a);for(;p;p=p->next)if(!strcmp(a,p->ter_address)) break;return p;}/******************主界面******************/void boundary(){P(" ***********欢迎您进入航空订票客服系统*********** \n ");P("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");P(" O(∩_∩)O 请选择您要进行的业务:\n");P("\t\t显示所有航线 ==>请输入1\n");P("\t\t查询航线信息 ==>请输入2\n");P("\t\t进入订票系统 ==>请输入3\n");P("\t\t进入退票系统 ==>请输入4\n");P("\t\t退出客服系统 ==>请输入0\n");P("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");P("\t\t清除屏幕信息 ==>请输入5\n");P("请按照以上的信息提示进行操作: \t");}/*********显示乘客信息*****************/void print_customer(airline *p){customer *c;if(p->booked){c=p->booked;P("已经购票的乘客的信息\n\t票数\t姓名\t\n");for(;c;c=c->next)P("%5d\t\t %s\n",c->num,c->name);P("\n\n");}else P("╮(╯_╰)╭暂时没有客户订票!\n\n");if(p->wait){c=p->wait;P("排队购票的乘客的信息\n\t票数\t姓名\t\n\n");for(;c;c=c->next)P("%5d\t\t %s\n",c->num,c->name);P("\n\n");}elseP("暂时没有客户排队订票\n\n");}/*********插入新航班(创建链表)*****************/void insert_line(){ airline *p,*q;int flag=1;for(;flag;){q=(Lairline)malloc(sizeof(airline));P("Please input the number of the plane: ");S("%s",q->line_num);for(p=L;p->next;p=p->next)if(strcmp(p->next->line_num,q->line_num)>=0) break;if(p->next&&strcmp(p->next->line_num,q->line_num)==0){P("航班已存在,请重新输入\n");continue; ,q->next->name,q->next->num);P("Do you want to book the tickets YES(1) NO(0)");S("%d",&flag);if(flag) //如果选择订票{ q0=q->next; q->next=q->next->next; //插入q0节点q0->next=p->booked; p->booked=q0;p->remain=p->remain-q0->num; //q0定完票后,余票进行修改P("SUCCESS O(∩_∩)O\n\n\n");}else q=q->next;//没有选择订票 }else q=q->next;//余票不足时} p->wait=h->next;}/***********************退票系统*****************************/void Refund(){int flag;char a[20];airline *p;customer *c,*c1;p=search_line(); //查找到对应的航班c=p->booked; //已经订票的客户为cif(!p){P("The airline is not exist\n\n");boundary(); //返回主界面return;}P("Please input your name:");S("%s",a);if(!p->booked->name) //如果未找到这个人的信息{P("Sorry!Your information isn't found!╮(╯_╰)╭\n");boundary(); //返回主界面return;}if(!strcmp(a,p->booked->name)) //{P("The information of returning tickets:\n"); //退票信息 P("Name:%s\t Final Address:%s\t Tickets:%d\t\n",p->booked->name,p->ter_address,p->booked->num);P("Do you want to return the tickets YES(1) NO(0)\n"); //是否退票S("%d",&flag);if(flag) //如果退票{p->booked=p->booked->next; //删除节点操作p->remain=p->remain+c->num; //余票数目增加free(c);P("SUCCESS! O(∩_∩)O \n\n\n\n\n"); //退票成功waited(p); //再次询问是否排队订票boundary(); //返回主菜单}}else{for(;c->next;c=c->next)if(!strcmp(a,c->next->name)) //查找这个订票人的信息break;if(!c->next) //没有找到这个人的信息{P("Sorry!Can't find your information!\n\n");boundary(); return;}else //找到了此人的订票信息{P("The information of returning tickets:\n");P("Name:%s\t Final Address:%s\t Tickets:%d\t\n",p->booked->name,p->ter_address,p->booked->num);P("Do you want to return the tickets YES(1)NO(0)\n"); //是否退票S("%d",&flag);if(flag) //确定退票{ c1=c->next;c->next=c->next->next; //删除节点p->remain=p->remain+c1->num; //余票数目增加free(c1);P("The operation is successful O(∩_∩)O\n\n");waited(p);boundary();}}}}/***************航班查询系统*****************************/void search(){int i; int flag=0;airline *p;P("Please input the way of viewing the flight:\n"); //请输入查询航班的方式P("The number of the flight------------>1\n"); //航班号P("The number of the plane------------->2\n"); //飞机号码P("The date of the flight-------------->3\n"); //航班日期P("The final address of the flight----->4\n"); //航班终点S("%d",&i); for(;!flag;)switch(i) //按照选择项进行操作{ case 1: p=search_line();flag=1;break;case 2: p=search_plane();flag=1;break;case 3: p=search_date();flag=1;break;case 4: p=search_address();flag-=1;break;default:P("Wrong,input again!\n");break;}if(p){P("终点站航班号飞机号飞行周日余票量\n");P("%-9s%9s%13s%10d%15d\n",p->ter_address,p->line_num,p->plane_num,p->date,p->remain);P("Booking the tickets(Sure,please input 1;Else input any number! )");S("%d",&i);if(i==1) book();Else P("\n\n\n\n");boundary();}Else P("The flight is not exist╮(╯_╰)╭\n\n\n"); } /********************显示所有航班信息***************************/void printline(){ int flag; airline *p; p=L->next;P("终点站航班号飞机号飞行周日余票量\n");for(;p;p=p->next){P("%-15s%7s%15s%8d%12d\n",p->ter_address,p->line_num,p->plane_num,p->date,p->remain);}P("\n\n\n\n\n");boundary(); }/*********************初始化航线信息****************************/void InitLine(){ airline *p,*q;L=(airline *)malloc(sizeof(airline)); L->booked=NULL;//初始化航线信息L->wait=NULL;L->next=NULL;strcpy(L->ter_address,"00000000");strcpy(L->line_num,"000");strcpy(L->plane_num,"0000000");L->date=L->remain=L->total=0;q=L;p=(airline *)malloc(sizeof(airline)); //航线一p->booked=NULL;p->wait=NULL;strcpy(p->ter_address,"jiangsu");strcpy(p->line_num,"003");strcpy(p->plane_num,"3333333");p->date=1;p->remain=120;p->total=120;p->next=q->next;q->next=p;p=(airline *)malloc(sizeof(airline)); //航线二p->booked=NULL;p->wait=NULL;strcpy(p->ter_address,"shanghai");strcpy(p->line_num,"002");strcpy(p->plane_num,"2222222");p->date=2;p->remain=120;p->total=120;p->next=q->next;q->next=p;p=(airline *)malloc(sizeof(airline)); //航线三p->booked=NULL;p->wait=NULL;strcpy(p->ter_address,"hunan");strcpy(p->line_num,"001");strcpy(p->plane_num,"1111111");p->date=3;p->remain=120;p->total=120;p->next=q->next;q->next=p;} void main(){ int flag=1; boundary(); InitLine();do{ switch(getchar()){case '1':printline();break;case '2':search();break;case '3':book();break;case '4':Refund();break;case '5':system("cls");boundary();break;case '0':flag=0;break;}}while(flag);}课程设计评分表课程名称:数据结构教师签名:日期:。