航空客运订票系统

合集下载

飞机订票系统测试报告

飞机订票系统测试报告

飞机订票系统测试报告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.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. 根据需要选择座位要求、餐食要求等其他选项。

客舱网统一登录

客舱网统一登录

客舱网统一登录概述:随着数字化时代的到来,互联网技术在旅行和航空业务领域的应用日益普及。

航空公司为了提供更好的旅行体验和方便的管理操作,开始引入客舱网统一登录系统。

客舱网统一登录系统是一个集成多个航空公司服务的平台,旨在为乘客提供一站式的登录和管理解决方案。

通过客舱网统一登录系统,乘客可以方便地访问航空公司的各种服务,如查询航班信息、预订机票、选座、办理在线值机等操作。

特点:1. 统一登录:客舱网统一登录系统允许乘客使用一个账号和密码登录,即可访问多个航空公司的服务。

无需记住多个账号和密码,大大提高了用户体验。

2. 一站式服务:客舱网统一登录系统整合了多家航空公司的服务,通过一个平台即可满足乘客的各种需求。

无需跳转多个网站或应用程序,节省了时间和精力。

3. 个性化推荐:客舱网统一登录系统可以根据乘客的历史记录和偏好,提供个性化的服务和推荐。

通过分析乘客的行为数据,系统可以向乘客推荐适合的机票、酒店和旅行服务,提高了用户满意度。

4. 多平台适配:客舱网统一登录系统可以在多种终端上使用,包括电脑、手机和平板电脑。

无论乘客在哪个终端上登录,都能够方便地获取航空公司的服务。

实施步骤:1. 航空公司接入:航空公司需要与客舱网统一登录系统提供商进行合作,将自身的服务接入系统中。

这包括航班信息、机票预订、值机、选座等服务内容。

2. 用户注册:乘客需要在客舱网统一登录系统上注册一个账号,填写相关个人信息并设置账号密码。

注册完成后,乘客可以使用该账号登录系统。

3. 航班查询和预订:乘客登录后,可以查看不同航空公司的航班信息,包括航班时刻表、航班状态、航线等。

乘客可以根据需求选择适合自己的航班,并进行在线预订。

4. 办理在线值机:乘客可以通过客舱网统一登录系统办理在线值机手续。

乘客可以选择座位、打印登机牌等操作,提前完成值机,避免排队等待。

5. 各类服务管理:乘客可以在客舱网统一登录系统上管理自己的航空服务。

包括修改个人信息、查看历史订单、申请退票等功能。

旅客服务系统名词解释

旅客服务系统名词解释

旅客服务系统名词解释旅客服务系统,又称为旅客信息系统(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平台下运行航空订票系统,针对该项目中各个模块应实现的不同功能,生成测试用例文档,再手动进行测试。

电子行业南航电子客票系统

电子行业南航电子客票系统

电子行业南航电子客票系统1. 引言南航电子客票系统是南方航空公司为提高运营效率和服务质量而开发的一套系统。

该系统通过电子方式替代传统的纸质客票,实现了在线购票、订票、改签、退票等功能,方便了乘客的操作,并提升了航空公司的运营效率。

2. 功能概述南航电子客票系统主要包含以下功能模块: -在线购票:乘客可以通过系统在电脑或手机上进行在线购票,选择航班、座位等信息。

- 订票管理:系统能够对乘客的订票信息进行管理和处理,包括座位分配、票价计算等。

- 改签服务:乘客可以通过电子客票系统进行航班改签操作,选择合适的航班和时间。

- 退票服务:乘客在需要退票时,可以通过系统进行退票操作,系统会自动计算退票费用并进行退款。

- 查询服务:乘客可以随时查询自己的航班、座位、购票记录等信息。

3. 系统架构南航电子客票系统采用客户端-服务器架构,包含以下组件: - 客户端:乘客通过手机App或Web浏览器访问系统,进行购票、订票、改签等操作。

- 服务器:负责处理乘客的请求,并与航空公司内部系统进行交互,如航班查询、座位分配等。

- 数据库:存储乘客的个人信息、航班信息、购票记录等数据。

4. 系统流程以下为南航电子客票系统的基本流程: 1. 乘客通过手机App或Web浏览器访问系统,并输入账号和密码进行登录。

2. 登录成功后,乘客可以选择航班、座位等信息进行购票。

3. 系统根据乘客选择的航班和座位进行票价计算,并生成电子客票。

4. 乘客支付购票费用后,系统会将电子客票发送至乘客的手机或电子邮箱。

5. 乘客可以随时通过系统查询自己的购票记录、航班信息等。

6. 若乘客需要改签或退票,可以通过系统进行相应操作,并按照规定支付费用。

7. 改签或退票成功后,系统会自动更新相应的航班信息和乘客购票记录。

5. 技术实现南航电子客票系统采用以下技术实现: - 前端开发:采用HTML、CSS、JavaScript等技术实现用户界面和交互功能。

数据结构课程设计题目(最终版)-2012

数据结构课程设计题目(最终版)-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. 实习中遇到的问题及解决方法在实习过程中,我遇到了一些问题,如系统操作不熟悉、业务流程不清晰等。

针对这些问题,我通过请教同事、查阅资料、总结经验等方式,逐步掌握了系统的操作方法,明确了业务流程。

同时,我还积极参与培训,提高自己的业务素质。

三、实习收获与反思通过本次实习,我掌握了航空客运订票系统的业务流程、功能模块及操作方法,提高了自己的业务能力和实际操作技能。

同时,我深刻认识到航空客运订票系统在提高航空公司运营效率、降低运营成本、提升客户满意度方面的重要作用。

反思实习过程,我认为自己在系统操作速度、业务熟悉程度、沟通协调能力等方面仍有待提高。

航空订票管理系统 数据库课程设计

航空订票管理系统 数据库课程设计

1 需求分析为了实现航空公司以及旅游行业的现代化管理,进一步提高工作效率,方便旅客,需要开发一个机票预订系统。

本系统主要针对旅客订票业务需求的管理,因此“航空订票管理系统”的目标包括系统管理员以及需要订票的旅客。

主要涉及航班、飞机、机场信息,查票、订票信息,系统管理员信息,客户信息等多种数据信息.这个系统要求能够实现实时,高效,便捷等特点.1。

1 系统功能系统需要实现的具体功能如下:机票信息管理——主要实现机票基本信息的显示和查询,在该功能模块中,点击预定可以显示航空公司,飞机型号,起飞机场,降落机场,机舱类型,单程票价,往返票价以及起飞时间,降落时间等基本信息的显示功能,在订单中,实现了客户姓名、联系方式、证件号码等基本信息填写的功能;建议和投诉信息管理-—主要实现客户对机票价格以及业务服务的建议和评价;系统管理员管理——主要实现接收系统功能区的相应信息后,启动相应的功能模块,对系统进行登录管理,数据管理,订单管理等。

1。

2 功能模块根据“航空订票管理系统”功能的需求以及其特点,经过模块化的分析,得到如图1-1所示的系统功能模块结构图。

图1—1 系统功能模块图3.2 概念模型系统概念模型如下图所示:图2—6 航空机票预订系统概念模型图3 逻辑结构设计3。

1 关系模型将总体概念结构E-R图转化成关系模型,如下所示:客机(客机编号,客机名,座位数)旅客(旅客编号,姓名,身份证号,联系电话)航班(航班编号,起飞地,目的地,起飞时间,到达时间)机票(旅客姓名,航班号,座位号,票价,机票类型,当前预售状态)3。

2 物理模型将生成的概念模型通过PowerDesigner工具栏中的Generate Physical DataModel命令来转换成物理模型,生成结果如下图所示:图3—1 航空机票预订系统物理模型图5 数据库的实施和维护在数据库的物理结构设计完成后,利用数据定义语言和其他实用程序将数据库的逻辑设计和物理设计结果进行描述,然后进行调试。

航空客运系统程序清单 加报告

航空客运系统程序清单  加报告

课 程 设 计一、 题目分析从课程设计的题目要求可以知道,我们需要建立的是具有能对数据的插入, 删除 , 检索功能的软件。

由于乘客的数量较大且不固定,因此选择用链表来保存乘客的基本信息:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量等等,由于预约人数无法预计,队列也应以链表作存储结构。

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

系统主要实现的操作和功能是:查询航线、订票功能、退票功能。

要实现这些功能,首先要使程序能实现查找功能,在查找出到有效信息的前提之下,通过链表的赋值,更新信息和删除退票人信息,满足客户的要求。

二、设计过程(1)图1为程序总体流程图,首先直接调初始化函数,调用增加航班,查询航线,修改航线,删除航线,预定机票,退定机票,函数。

调用命令模式函数无实参,进行命令模式函数时,输入查找信息:终点站,如果决定订票,则输入5进行订票,如果不订票则输入8退出;输入7清屏。

如果以上操作输入有误,系统则输出提示:输入错误,请重新输入查询信息。

图1 程序总体流程图开始增加航线 Fligh tInser t()查询航线 Fligh tLoo kup()修改航线 Fligh tRew ork()删除航线 Fligh tDele te()订票 Fligt Buyti cket()退票 Fligh tCan celtic ket()清空系统 Fligh tclent ()退出系统结束12345678(2)图2为初始化函数流程图,主要是对链表中数据域置空,对链表初始化。

开始建立链表对链表头结点置空,使链表初始化建立新链表并赋给已定义链表返回图2 初始化函数流程图(3)图3为增加航线函数流程图,主要功能是把新航班信息写入新建的链表中,然后把新链表与储存航班的链表合并,得到新的航班信息,实现对新航线的增加。

开始建立新的链表用strcpy函数输新增航班信息建立新链表通过对新链表置空,使订票表头初始化返回图3增加航线函数流程图(4)图4为查询航班函数流程图,先输入查找信息,然后判断此查找信息是否存在,如果存在,则输出查找信息,如果不存在,则退出。

航空客运订票系统源代码

航空客运订票系统源代码

航空客运订票系统源代码#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. 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: ;}。

相关文档
最新文档