航空客运订票系统

合集下载

飞机订票系统测试报告

飞机订票系统测试报告

飞机订票系统测试报告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. 熟悉航空购票系统的基本原理和功能;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)系统能实现的操作和功能如下:①查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;②承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。

若需要,可登记排队候补;③承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。

[测试数据]由读者指定。

[实现提示]两个客户名单可分别由线性表和队列实现。

为查找方便,已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。

由于预约人数无法预计,队列也应以链表作存储结构。

整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。

每条航线是这张表上的一个记录,包含上述八个域、其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。

[选做内容]当客户订票要求不能满足时,系统可向客户提供到达同一目的地的其它航线情况。

读者还可充分发挥自己的想象力,增加你的系统的功能和其它服务项目。

航空订票系统代码

航空订票系统代码

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 建模设计 航 空 订 票 系 统

UML 建模设计航空订票系统姓名:卫飞班级:1528学号:201515614375一、背景1.1背景概述随着知识经济的到来,人类已经逐步进入信息化社会,信息增长的速度越来越快,人们希望利用先进的管理理论方法手段来得到并处理越来越多的信息,以提高工作效率和管理水平。

由于信息资源对人们生活的重要性,不断提高信息的收集,传输,加以利用等活动,日益成为人们社会生活的重要组成部分。

网上机票预订管理系统的产生和发展正好满足人们的这种需求1.2 主要组成及功能1、新用户注册,新用户可以注册,注册时输入用户名可以查询用户可不可用,可用就可以注册,注册时可以判断用户输入的密码和验证密码是否相同,相同才给以注册,如果满意可以点注册,注册成功后用户可以选择不用在回到登陆界面,可以直接陆到用户主界面,以后就可以用这个用户登录了,如果不满意,点取消,所有信息清空,重新输入。

2、验证登陆名密码,正确进入主菜单,根据登录时所选的登录方式(客户、管理员)的不同分别对用户设定不同的访问权限(如果是输入的客户用户名和密码正确,选择以客户方式登陆则主界面里面的管理员界面不能用,如果输入的是管理员的相应用户密码正确,以管理员的方式登陆则管理员界面可用)不正确则清空登录框,最多可以输入三次,三次不正确系统会自动关闭3.我的航班界面。

你可以点击你想查询的有关机票的信息的按钮(舱位信息查询,客机信息查询,航线查询,客户类型信息查询)获得相关信息的表,根据表的内容,你可以在下面的下拉框中选择你要定的票信息,点确定后在下面会显示你的机票的相关内容,如果满意可以点击订票,把相关信息添加到机票数据库表中,如果不满意,可以点重置,所有信息清空,再重新选择。

4.退票功能。

用户可以根据用户信息表中的我的机票信息查询,找出机票号,在输入到机票号查询里,点击查询获得你的机票信息以及价格显示,点击退票则在数据库机票信息表中删除本条信息二、使用Rose绘制图分别有:用例图、类图、包图、顺序图、协作图、状态图、活动图、组件图、部署图情景:机票预订系统是某航空公司推出的一款网上选票系统。

订票系统文档

订票系统文档

订票系统介绍订票系统是一种用于预订机票、火车票、电影票等各种票务的系统。

随着互联网和移动互联网的快速发展,订票系统已经成为现代人生活中不可或缺的一部分。

本文将介绍订票系统的功能以及使用方法。

功能1.用户注册和登录:订票系统提供用户注册和登录功能,用户可以通过自己的账号和密码进行登录,从而方便地进行票务预订。

2.票务查询:订票系统提供了全面的票务查询功能,用户可以根据目的地、时间、票价等条件对票务进行筛选,并查看相关的票务信息。

2.订票:一旦用户找到心仪的票务,可以通过订票系统直接进行订票。

用户需要选择座位、支付方式等相关信息,并填写必要的个人信息,完成订票过程。

3.订单管理:订票系统会保留用户的订票记录,用户可以通过订单管理功能查看自己的订单,了解订单的状态、支付情况等信息。

4.支付:订票系统支持多种支付方式,用户可以选择适合自己的支付方式进行付款,完成订票流程。

5.退票:用户可以在一定的时间范围内进行退票申请,订票系统会根据退票政策进行处理,并将相应的款项退还给用户。

6.售后服务:订票系统提供售后服务,用户可以通过系统客服渠道与客服人员联系,解决遇到的问题或提出意见和建议。

使用方法以下是使用订票系统的基本步骤:1.用户注册:用户需要点击系统的注册按钮,填写相关信息(如用户名、密码、手机号码等),完成注册过程。

也可以选择第三方账号快速注册。

2.用户登录:注册成功后,用户可以使用注册时填写的用户名和密码进行登录,进入订票系统的主界面。

3.票务查询:用户可以在主界面的搜索框中输入相关的查询条件(如目的地、时间、票价等),然后点击搜索按钮进行查询。

系统会根据用户的查询条件返回相应的票务信息。

4.订票:在查询结果中找到心仪的票务后,用户可以点击选择座位并填写必要的个人信息(如姓名、身份证号码等),然后选择支付方式付款。

5.订单管理:用户可以在系统的订单管理页面查看自己的订单,了解订单的状态和支付情况。

中国民航订座系统操作手册

中国民航订座系统操作手册

中国民航订座系统操作手册中国民航的发展在近年来取得了长足的进步,航空业也逐渐成为人们出行的重要选择。

作为航空公司的重要一环,民航订座系统的操作十分关键。

在这里,我将为大家介绍一份中国民航订座系统的操作手册,希望能够帮助大家更好地了解和使用这一系统。

首先,在使用民航订座系统之前,我们需要了解一些基本的操作步骤。

首先,打开民航官方网站或者相关应用程序,找到订座系统入口。

其次,选择出发地和目的地城市,输入出行日期和航班时间。

接着,系统将显示符合条件的航班列表,根据自己的需求选择合适的航班。

最后,填写乘客信息并支付机票费用,完成预订。

在选择航班时,我们需要注意一些细节。

首先,要根据个人出行需求选择合适的舱位类型,如经济舱、商务舱或头等舱。

其次,要注意航班的起降时间和中转时间,确保在出行计划中留有充足的时间。

此外,还需要关注航班的准点率和航空公司的服务质量,选择信誉良好的航空公司。

在填写乘客信息时,我们需要确保信息的准确性和完整性。

首先,要填写与乘机人身份证件一致的姓名和证件号码,以确保乘机顺利。

其次,要填写联系人信息,以便紧急情况下能够及时联系到乘客。

最后,要选择座位偏好和餐食需求,提前告知航空公司,以便他们为您提供更好的服务。

在支付机票费用时,我们需要注意保护个人信息和选择安全支付方式。

首先,要选择正规渠道支付,避免使用不明来源的支付平台。

其次,要确保支付页面的安全性,避免泄露个人银行账号和密码。

最后,要保存好支付凭证和订单信息,以备日后查询和退改签。

总的来说,中国民航订座系统的操作并不复杂,只要掌握好基本步骤和注意事项,就能够轻松完成订票。

希望这份操作手册能够帮助大家更好地使用民航订座系统,享受舒适便捷的出行体验。

祝大家旅途愉快!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这是我上网搜的一个材料,大家看一下,我们这次课程设计用java语言来实现,大家仔细看一下项目需求分析,基本要实现的功能如下,大家自己也在网上下些资料,共享一下,人多力量大,好好研究研究项目,下周会聚集大家讨论一下,定下每个人要完成的任务,大家一定要仔细研究,到时候有什么要添加修改的都提出来,做到让项目完美。

航空客运定票系统应该为客户提供三个基本的功能:查询航线、客票预定和办理退票。

(一)查询航线:能够根据客户提出终点站名输出相关的信息,包括航班号、飞机号、飞行日期、载员定额、余票量、已定票的客户名单(包括该客户的姓名、定票量、舱位等级)以及等候替补的客户名单(包括姓名和所需票量)、最近一天航班的日期和余票额;由于航空公司的航班保持基本不变,所以应该采用顺序存储结构将各条航线的基本情况登陆在一张线性表上,按照终点站名有序排列。

(二)客票预定:根据客户提出的要求(航班号和定票数额)查询该航班的余票情况。

如余票能够满足客户的要求则为客户办理定票手续并输出相应的座位号;若该航班已经满员或余票额少于客户的定票额,则需重新询问客户需求。

若需要可登记排队候补并留下客户的联系方式,不需要则退出。

在客票预定这一环节里将出现两个客户名单:已定票客户名单和需定票客户名单。

两客户名单可分别由线性表和队列实现。

为查找方便,已定票客户的线性表应按姓名有序,同时为了插入和删除方便,,应以链表作为存储结构。

由于无法知道预约的人数,队列也应该以链表作为存储结构。

(三)办理退票:根据客户提供的情况(日期航班),为客户办理退票手续,同时在系统中删除该客户的基本信息。

然后查询该航班是否有人排队替补,首先访问排在第一的客户,若退票额能够满足他的要求,则为他办理定票手续,否则依次询问其他排队候补的客户。

从问题的提出可以看到,我们需要的只是能实现对数据的插入,删除,检索这样一个软件。

由于乘客的数量较大并且不固定,因此选择用链表来保存乘客的基本信息:包括乘客的姓名,身份证号,搭乘班机的航班号,以及预定的座位号(假设座位预先订号)。

为了将这些信息保存起来以备下次程序运行时调用,将必需的信息写入文件中,在程序的初始化时读入。

综合一下来看,我们需要做的是建立一个可以插入和删除节点的链表,并能检索这个链表,在必要的时候将链表的内容保存到文件中。

任何一家航空公司都想尽可能的为客户提供优质的服务。

设计这样一个面向顾客的航空订票系统,最重要的就是设计的功能人性化,这就要求:采用先进的设计理念与开发工具,用技术全面提升服务,保证系统功能的强大与完整;具有高可靠性和强大有效的容错能力是系统设计的重要前提,不能影响平台的运行。

在系统设计过程中应充分考虑系统的可扩展性,使系统可满足不断优化、不断升级和新业务整合切入的需求。

1、航空客运订票系统【问题描述】航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。

试设计一个航空客运订票系统,以便上述业务可以借助计算机来实现。

【需求分析】系统能实现的操作和功能如下:(1)查询航线:根据旅客提出的终点站名输出如下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;(2)承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。

若需要,可登记排队候补;(3)承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘客定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。

下面这个C编写代码我之所以没删,是想让大家看看各部分功能在C中是怎样实现的,比如说订票的多种情况,不同情况,不同的提示等,这都是可以借鉴的。

用顺序表的查找和链队列实现#include <stdio.h>#include <string.h>#include <conio.h>#include <ctype.h>#include <stdlib.h>#include <malloc.h>#include <math.h>//overflow#define ok 1typedef struct Yidingkehu{//单链表char name[15];//已订票的客户姓名int dingpiaoshu;//已订票数量struct Yidingkehu *next1;//}Yidingkehu,*Link;typedef struct Weidingkehu{//单链队char name[15];//预订票的客户姓名int yudingpiao;// 要订票数量struct Weidingkehu *next2;//下一个链队结点指针}Weidingkehu,*Qptr;typedef struct {Qptr front;//单链队头结点Qptr rear;//单链队尾结点}linkQueue;typedef struct Hangxian{//创建一个含有六个信息的结构体char hangbanhao[15];//航班号-char feijihao[15];//飞机号int feixingriqi;//起飞时间int chenkerenshu;//座位数int yupiao;//余票char zhongdianzhai[15];//降落城市struct Hangxian *next;//指向下一个链结点的指针struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针struct Weidingkehu *yudingqueue;}Hangxian,*Linklist;struct Hangxian *L=NULL;//struct Yidingkehu *H;//为已订票客户链队来申请空间linkQueue Q;//linkQueue类型的来申请空间Linklist InitLinklist();//01int InsertLinklist(Linklist &head1);//02void hbhchaxun();//通过航班号查询void mddchaxun();//通过目的地查询void lurugongneng();//初始化录入功能void chaxungongnen();//查询功能void dingpiaogongnen();//订票功能void tuipiaogongnen();//退票功能void main(){H=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));Q.front=Q.rear=(Qptr)malloc(sizeof(Weidingkehu));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+++++++++++++++++++++++++++++\n");printf("\t请选择:");scanf("%d",&n);printf("\n");switch(n){case 1: lurugongneng();//录入功能break;case 2: chaxungongnen();//查询功能break;case 3: dingpiaogongnen();//订票功能break;case 4:tuipiaogongnen();//退票功能break;default :exit(0);//退出}}while(n==1||n==2||n==3||n==4);}void lurugongneng()//初始化的单链表*********************************************************录入功能{int j=1,m;do{if(!InsertLinklist((Linklist) L)) //向其中加入航班信息{printf("内存已满\n"); exit(OVERFLOW);}//向链表中加一结点printf("\t是否要输入下一个航线记录?\n");printf("\t是请输入1\n");printf("\t否请输入2\n\t");scanf("%d",&m); //在这里依靠人来决定是否输入下一条航线记}while(m==1);}Linklist InitLinklist(){//01L=(Linklist)malloc(sizeof(Hangxian));if(!L) exit(OVERFLOW);L->next=NULL;//建立一个带有头结点的单链表return (L);}int InsertLinklist(Linklist &L)//02向航线链表添加新的结点{Linklist p;//int m,n;p=(Linklist)malloc(sizeof(Hangxian));//为一个新的结点分配空间if(!p) exit(OVERFLOW);printf("\t请依次输入下面几项内容:\n\n");//这里的输入采用一个个单独输入,避免了乱赋值的现象printf("航班号\n");gets(p->hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车gets(p->hangbanhao);printf("飞机号\n");gets(p->feijihao);printf("终点站\n");gets(p->zhongdianzhai);printf("飞行日期\n");scanf("%d",&p->feixingriqi);printf("乘客总数\n");scanf("%d",&p->chenkerenshu);printf("余票数\n");scanf("%d",&p->yupiao);p->yiding=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));//为它申请空间p->yudingqueue=Q.front=Q.rear=(Qptr)malloc(sizeof(Weidingkehu));//为它申请空间p->next=L->next;//L->next=p;//这二句是链表中的头插法插入一个结点return (ok);}voidchaxungongnen()//*************************************************************** ***查询功能{int n;printf("\t 查找航线信息\n");printf("\t+++++++++++++++++++++++++++++\n");printf("\t==>1. 通过目的地查询==\n");printf("\t==>2. 通过航班号查询==\n");printf("\t+++++++++++++++++++++++++++++\n");printf("\t请选择:");scanf("%d",&n);printf("\n");//格式化switch(n){case 1:mddchaxun();break;case 2:hbhchaxun();break;default :break;}}void mddchaxun()//通过目的地查询{char c[15];int m;Linklist p=L;printf("\t请输入要查询的目的地:");gets(c);gets(c);//原因同上do{p=p->next;if(p){m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0;if(m==0){printf("\t航班信息:\n");printf("\t航班号:%s\n",p->hangbanhao);printf("\t飞机号:%s\n",p->feijihao);printf("\t飞行时间:周%d\n",p->feixingriqi);printf("\t余票量:%d\n",p->yupiao);}}else{//如果不匹配的话就做printf("\t对不起没有你要找的目的地:\n\n"); m=0;}}while(m!=0);}void hbhchaxun()//通过目的地查询{char c[15];int m;Linklist p=L;printf("\t请输入要查询的航班号:");gets(c); gets(c);printf("\n");do{p=p->next;if(p){m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p->的作用是一样的if(m==0){printf("\t航班信息:\n");printf("\t航班号:%s\n",p->hangbanhao);printf("\t飞机号:%s\n",p->feijihao);printf("\t飞行时间:周%d\n",p->feixingriqi);printf("\t余票量:%d\n\n",p->yupiao);}}else{//如果不匹配的话就做printf("\t对不起没有你要找的航班号:\n"); m=0;}}while(m!=0);}voiddingpiaogongnen()//************************************************************** *订票功能{Linklist p=L;//Linklist类型的L来指向链表头Yidingkehu *h=H,*h1;//Yidingkehu 定义客户的结点,方便插入与删除linkQueue q=Q;//linkQueue类型的来,方便插入与删除char c[15];int m=1,piao,ydpiao=0,yd=0,n;//gets(c);printf("请输入终点站名:"); gets(c); printf("\n");p=L->next;if(p) {do{//查找一下,是否有这个航班if(!p){printf("对不起,没有你要找的航班:\n\n");goto loop1;}m=strcmpi(p->zhongdianzhai,c);if(m==0){printf("航班信息:\n");printf("航班号:%s\n",p->hangbanhao);printf("飞机号:%s\n",p->feijihao);printf("飞行时间:周%d\n",p->feixingriqi);printf("余票量:%d\n",p->yupiao);}else p=p->next;}while(m!=0);if(m==0){do{printf("\n请输入你要订的票数:"); scanf("%d",&piao);if(piao<=p->yupiao){h=p->yiding;if(h){h1=h;h=h->next1;h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));printf("请输入你的名字:");gets(h->name);gets(h->name);h->dingpiaoshu=piao;h->next1=h1->next1;h1->next1=h;p->yupiao=p->yupiao-piao;printf("订票成功:\n"); m=2;}}else{ printf("余票量:%d\n",p->yupiao);printf("对不起,余票%d 张不足,不能完成订票\n\n",p->yupiao);printf(" 是否要重新订票?\n");printf("需要请输入1 否则请按2 预订请输入3 : ");scanf("%d",&m);printf("\n");if(m==3) goto loop3;}}while(m==1);}}else if(!p) {loop3: struct Weidingkehu *q3;printf("对不起,该航班的票已售完\n");q.front=p->yudingqueue;if(q.front==q.rear) printf("没有人预订票,是否要预订?\n");else if(q.front!=q.rear) printf("已有人预订票,是否要预订?\n");printf("预订请输入1 否则输入2 : ");scanf("%d",&n);printf("\n");if(n==1){q3=(Qptr)malloc(sizeof(Weidingkehu));printf("请输入你的姓名"); gets(q3->name); gets(q3->name);//q3不能指向nameprintf("请输入订票数"); scanf("%d",&q3->yudingpiao);q3->next2=NULL;q.rear->next2=q3;q.rear=q3;printf(" 你已经预订了!\n");}}loop1:;}voidtuipiaogongnen()//***************************************************************退票功能{Linklist p=L;Yidingkehu *h=H,*h1,*h2;linkQueue q=Q;char c[15],name1[15];int m=1,piao,n;//gets(c);printf("请输入航班号:"); gets(c);p=L;//->next;if(p){do{ //使用do while来查找是否有此航班if(!p){//如果是到了表尾且没有匹配,goto至再输入航班号printf("\n对不起,没有你要找的航班:\n");goto loop1;}m=strcmpi(p->hangbanhao,c);//如果匹配的话,m=0if(m==0){printf("\t航班信息:\n");printf("航班号:%s\n",p->hangbanhao);printf("飞机号:%s\n",p->feijihao);printf("飞行时间:周%d\n",p->feixingriqi);printf("余票量:%d\n",p->yupiao);}else p=p->next;}while(m!=0);if(m==0){//如果找到了,就来给他退票do{h=p->yiding;if(h){printf("请输入你的姓名:");gets(name1);//gets(name1);printf("请输入你订的票数:");scanf("%d",&piao);printf("\n");h1=h;h=h->next1;if(strcmpi(h->name,name1)==0&&h->dingpiaoshu==piao)//如果名字和订的票数相等,则就给他取消订票{p->yupiao+=h->dingpiaoshu;h2=h;h1->next1=h->next1;free(h2);printf("你取消订票成功:\n\n");struct Weidingkehu *q3;q.front=p->yudingqueue;if(q.front==q.rear) {printf("没有人预订票:\n"); goto loop1;}if((p->yupiao)>=(q.front->next2->yudingpiao)){h2=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));strcpy(h2->name,q.front->next2->name);h2->dingpiaoshu=q.front->next2->yudingpiao;n=p->yupiao-q.front->next2->yudingpiao;p->yupiao=n;q3=Q.front->next2;//q.front->next2=q3->next2;//这二语句来删除结点if(q.rear==q3) q.rear=q.front;free(q3);//释放空间printf("链队中删除成功\n");h2->next1=h->next1;h->next1=h2;//为之插入进已订票客户链表中printf("为预订的客户订票成功\n");}else printf("余票数不够,不能为预订客户订票!\n");}else{ //如果没有找到,即系统中没有该人的信息,提示是否来重新查找printf("对不起,该航班没有人订票或者是你没有订该航班的票\n");printf("是否要重新查找并取消订票?\n");printf("需要请输入1 否则请按2 ");scanf("%d",&m);printf("\n");}}}while(m==1);}}loop1: ;}。

相关文档
最新文档