航空订票系统 数据结构程序设计实验报告3
- 格式:pdf
- 大小:182.18 KB
- 文档页数:16
#include <stdlib.h>#include <string.h>#include <conio.h> /*通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作*/#include <iomanip.h>#include <iostream.h>#define MAXSIZE 5 /*定义航线数量,可修改*/typedef struct wat_ros /*单链队列存储等候替补的客户信息*/{char name[10]; /*姓名*/int req_amt; /*订票量*/struct wat_ros *next;}qnode,*qptr;typedef struct pqueue /*等候替补的客户名单*/{qptr front; /*等候替补客户名单域的队头指针*/qptr rear; /*等候替补客户名单域的队尾指针*/}linkqueue;typedef struct ord_ros /*乘员名单*/{char name[10]; /*客户姓名*/int ord_amt; /*订票量*/int grade; /*舱位等级*/struct ord_ros *next;}linklist;struct airline{char ter_name[10]; /*抵达城市*/char air_num[10]; /*航班号*/char time[10]; /*飞机时间*/char pri[7]; /*票价*/int tkt_amt; /*乘员定额*/int tkt_sur; /*余票量*/linklist *order; /*乘员名单域,指向乘员名单链表的头指针*/linkqueue wait; /*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/}lineinfo;struct airline *start;void display(struct airline *info) /*打印每条航线的基本信息*/{cout<<info->ter_name<<setw(5)<<info->air_num<<"\t"<<setw(5)<<info->time<<"\t"<<s etw(5)<<info->pri<<"\t"<<setw(5)<<info->tkt_amt<<"\t"<<setw(5)<<info->tkt_sur<<e ndl;}void list() /*打印全部航线信息*/{struct airline *info;int i=0;info=start;cout<<"终点站名"<<" "<<"航班号"<<" "<<"飞行时间"<<" "<<"票价"<<" "<<"乘员定额"<<" "<<"余票量"<<endl;while(i<MAXSIZE){display(info); /*调用display函数来输出*/info++;i++;}cout<<endl;}void search() /*根据客户提出的终点站名输出航线信息*/{struct airline *info,*find();char name[10]; /*要抵达的城市名称*/int i=0;info=start;cout<<"请输入要抵达城市的名称:";cin>>name;while(i<MAXSIZE){if(!strcmp(name,info->ter_name)) //有该站名strcmp则返回,if(!0)即break,字符串比较函数搜索{break;}info++;i++;}if(i>=MAXSIZE) /*没有匹配的航线*/{cout<<"对不起,没有这条航线!"<<endl;}{cout<<"终点站名"<<" "<<"航班号"<<" "<<"飞行时间"<<" "<<"票价"<<" "<<"乘员定额"<<" "<<"余票量"<<endl;display(info); /*调用display函数输出航线信息*/}}struct airline *find() /*根据系统提出的航班号查询并以指针形式返回*/{struct airline *info;char number[10]; /*查询的航班号*/int i=0;info=start;cout<<"请输入航班号:";cin>>number;while(i<MAXSIZE){if(!strcmp(number,info->air_num)) /*有匹配航班*/{return info;}info++;i++;} /*无匹配航班*/cout<<"对不起,没有这条航线!"<<endl;return NULL;}void prtlink() /*打印订票乘员名单域的客户名单信息*/{linklist *p;struct airline *info;info=find();p=info->order;if(p!=NULL) /*按顺序输出客户信息链表*/{cout<<"客户姓名订票数额舱位等级"<<endl;while(p){cout<<p->name<<"\t"<<setw(7)<<p->ord_amt<<"\t"<<setw(8)<<p->grade<<endl;p=p->next;}else /*没有人订这个航班*/cout<<"该航线没有客户信息!"<<endl;}linklist *insertlink(linklist *head,int amount,char name[],int grade) /*增加订票乘员名单域的客户信息*/{linklist *p1,*new1;p1=head;new1=new linklist();if(!new1) /*存储空间不足*/{cout<<"\nOut of memory!!"<<endl;return NULL;}strcpy(new1->name,name);new1->ord_amt=amount;new1->grade=grade;new1->next=NULL;if(head==NULL) /*若原订票客户信息为空*/{head=new1;new1->next=NULL;}else{head=new1;}new1->next=p1;return head;}linkqueue appendqueue(linkqueue q,char name[],int amount) /*增加排队等候的客户名单域*/{qptr new1;new1=new qnode();strcpy(new1->name,name);new1->req_amt=amount;new1->next=NULL;if(q.front==NULL) /*若原排队等候客户名单域为空*/{q.front=new1;}else{q.rear->next=new1;}q.rear=new1;return q;}void order() /*办理订票业务*/{struct airline *info;int amount,grade; /*订票数量,舱位等级*/char name[10]; /*要订的航班号*/info=start;if(!(info=find())) /*根据客户提供的航班号进行查询,如为空,退出该模块*/ {return;}cout<<"请输入您需要的票数:";cin>>amount;if(amount>info->tkt_amt) /*若客户订票额超过乘员定票总额,退出*/ {cout<<"对不起,您输入票数已经超过乘员定额!"<<endl;return;}if(amount<=info->tkt_sur) /*若客户订票额末超过余票量,订票成功并等记信息*/{int i;cout<<"请输入您的姓名:";cin>>name;cout<<"请输入您需要的舱位等级(1,2或):";cin>>grade;info->order=insertlink(info->order,amount,name,grade); /*在订票乘员名单域中添加客户信息*/for(i=0;i<amount;i++) /*依次输出该订票客户的座位号*/{//printf("%s的座位号是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1); cout<<name<<"的座位号是:"<<info->tkt_amt-info->tkt_sur+i+1<<endl;}info->tkt_sur-=amount; /*该航线的余票量应减掉该客户的订票量*/ cout<<"祝您乘坐愉快!";}else /*若满员或余票额少于订票额,询问客户是否需要进行排队等候*/{char r;cout<<"没有这么多票了,您需要排队等候吗?(Y/N)"<<endl;r=getch();cout<<r;if(r=='Y'||r=='y'){cout<<"\n请输入您的姓名:"<<endl;cin>>name;info->wait=appendqueue(info->wait,name,amount); /*在排队等候乘员名单域中添加客户信息*/cout<<"\n注册排队成功!"<<endl;}else{cout<<"\n欢迎您再次订购!"<<endl;}}}void return_tkt() //退票模块{struct airline *info;qnode *t,*back,*f,*r;int grade;linklist *p1,*p2,*head;char cusname[10];if(!(info=find())) //调用查询函数,根据客户提供的航线进行搜索{return;}head=info->order;p1=head;cout<<"请输入你的姓名:"<<endl;cin>>cusname;while(p1!=NULL) //根据客户提供的姓名到订票客户名单域进行查询{if(!strcmp(cusname,p1->name)){break;p2=p1;p1=p1->next;}if(p1==NULL) //若未找到,退出本模块{cout<<"对不起,您没有订过票!"<<endl;return;}else //若信息查询成功,删除订票客户名单域中的信息{if(p1==head){head=p1->next;}else{p2->next=p1->next;}info->tkt_sur+=p1->ord_amt;grade=p1->grade;cout<<"退票成功!"<<p1->name<<endl;delete p1;}info->order=head; //重新将航线名单域指向订票单链表的头指针f=(info->wait).front; //f指向排队等候名单队列的头结点r=(info->wait).rear; //r指向排队等候名单队列的尾结点t=f; //t为当前满点条件的排队候补名单域while(t){if(info->tkt_sur>=info->wait.front->req_amt) //若满足条件者为头结点{int i;info->wait.front=t->next;cout<<"订票成功!"<<t->name<<endl;for(i=0;i<t->req_amt;i++) //输出座位号{cout<<"的座位号是:"<<t->name<<info->tkt_sur-i<<endl;}info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade);//插入到订票客户名单链表中delete t;break;back=t;t=t->next;if((info->tkt_sur)>=(t->req_amt)&&t!=NULL)//若满足条件者不为头结点{int i;back->next=t->next;cout<<"订票成功!"<<t->name<<endl;for(i=0;i<t->req_amt;i++) // 输出座位号{//printf("<%s>'s seat number is:%d\n",t->name,(info->tkt_sur)-i); cout<<"seat number is:"<<t->name<<info->tkt_sur-i<<endl;}info->tkt_sur-=t->req_amt;info->order=insertlink(info->order,t->req_amt,t->name,grade);//插入到订票客户名单链表中delete t;break;}if(f==r){break;}}}int menu_select() /*菜单界面*/{int c;char s[20];cout<<"订票系统"<<endl;cout<<"******************************"<<endl;cout<<"1.查看航线信息"<<endl;cout<<"2.查看已订票客户信息"<<endl;cout<<"3.查询航线"<<endl;cout<<"4.办理订票业务"<<endl;cout<<"5.办理退票业务"<<endl;cout<<"6.退出系统"<<endl;cout<<"******************************"<<endl;do{cout<<"请选择(1-6):"<<endl;cin>>s;c=atoi(s); // 将字符串转换成一个整数并返回结果,需要导入头文件#include <stdlib.h>}while(c<1||c>6);return c;}void main(){struct airline air[MAXSIZE]= /*初始化航线信息*/{{"Beijing","1","1200","860",30,30},{"Shanghai","2","1000","770",20,20},{"Nanjing","3","1330","960",10,10},{"London","4","1700","760",50,50},{"dalian","5","1400","550",40,40}};start=air;for(;;) /*无限循环(除非用户选择.退出)*/ {//system("cls"); /*清空屏幕*/switch(menu_select()){case 1:list(); /*打印全部航线信息*/break;case 2:prtlink(); /*浏览已订票客户信息*/break;case 3:search(); /*查询航线*/break;case 4:order(); /*订票*/break;case 5:return_tkt(); /*退票*/break;case 6:cout<<"感谢您的使用,再见!"<<endl; /*退出系统*/exit(0); /*正常退出程序*/}cout<<"任意键继续..."<<endl;getch(); /*任意键继续*/}}。
数据结构课程设计实验报告设计题目__________________________________________________________________ 设计者__________________________________________________________________ 指导老师__________________________________________________________________ 班级___________________________________________________________________ 学号____________________________________________________________________一、设计要求任务通过此系统可以实现如下功能:1.录入航班信息:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据定)2.查询航班:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓);3.订票:(订票情况可以存在一个数据文件中,结构自己设定);4.退票:可退票,退票后修改相关数据文件;5.修改航班信息6.退出程序客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;二、设计概要主界面选择操作项目1.录入航班信息通过单链表这种数据结构,设置了剩余票数,航班号,出发地点,到达地点,起飞日期,出发时间,到达时间,票价。
2.订票输入旅客的姓名,证件号,航班号,和订票张数。
程序中自动查询输入要定的航班号,如果没有则叫其重新输入,有则执行:票数足够则订票成功,票数不充足叫其选择其它航班。
此也采用单链表的数据结构。
数据结构课程设计报告1.航空订票系统1.需求分析试设计一个航空订票系统,基本要求如下:每条航班所涉及的信息有:航班号,航班机型,起飞机场,降落机场,日期(星期几),起飞时间,降落时间,飞行时长,价格,乘员定额,余票量,订定票的客户名单(包括姓名,订票量,舱位等级(头等舱、公务舱、经济仓)以及等候替补的客户名单(包括姓名、所需数量)。
采用链式存储结构。
系统能实现的操作和功能如下:(1)航班信息管理。
(2)查询航线,按以下几种方式查询:①按航班号查询;②按起点站查询;③按终点站查询;④按日期查询;每种查询方式中,查询后输出如下信息:航班号,航班机型,起飞机场,降落机场,日期(星期几),起飞时间,降落时间,飞行时长,价格,余票量。
(3)承办订票业务:根据客户提出的要求(航班号,订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少于订票额,则需重新询问客户要求。
若需要,可登记排队候补。
(4)承办退票业务:根据客户提出的情况(日期,航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。
2.设计2.1 设计思想(1)数据结构设计typedefstruct keHu//客¨户信息{char nameofKeHu[20];//客户名字int numofPiao;//客¨户需要票的数量int type;//仓位等级1:头等Ì舱2:公务舱3:经济舱struct keHu* next;/下个客户};typedefstruct hangBan{int numofHangBan;//航班号char typeofHB[20];//航班机型¨char startFly[20];//起飞¦机场char endFly[20];//降¦落机场char DataofHB[20];//日期格式为(20120312星期¨一)char startTime[20];//起飞¦时间char endTime[20];//到达时À间float flyTime;//飞行时长float prise;//价格int largeNum;//成员定额int leaveNum;//余票数量keHu *custemer;//乘客信息名单keHu *orderofKeHu;//替补客户};typedefstruct Node{hangBan *exam;//航班信?息¡éint numofN;//航班数量struct Node *next;};(2)算法设计总体设计:在Fly.h文件中设计舱位的信息处理以及订票退票和对舱位信息的管理方面的功能然后在main,h中设计用户界面功能部分。
数据结构课程设计实验报告设计题目__________________________________________________________________ 设计者__________________________________________________________________ 指导老师__________________________________________________________________ 班级___________________________________________________________________ 学号____________________________________________________________________一、设计要求任务通过此系统可以实现如下功能:1.录入航班信息:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据定)2.查询航班:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓);3.订票:(订票情况可以存在一个数据文件中,结构自己设定);4.退票:可退票,退票后修改相关数据文件;5.修改航班信息6.退出程序客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;二、设计概要主界面选择操作项目1.录入航班信息通过单链表这种数据结构,设置了剩余票数,航班号,出发地点,到达地点,起飞日期,出发时间,到达时间,票价。
2.订票输入旅客的姓名,证件号,航班号,和订票张数。
程序中自动查询输入要定的航班号,如果没有则叫其重新输入,有则执行:票数足够则订票成功,票数不充足叫其选择其它航班。
此也采用单链表的数据结构。
机票预订系统实验报告姓名:潘凯学号:19专业:通信工程一、目的用面向对象分析、设计方法来分析机票系统。
二、主要内容及问题需求分析:为方便旅客,某航空公司拟开发一个机票预订系统。
旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。
功能需求该系统主要分为五大功能:系统管理、新增、修改、查询和系统维护。
机票预定系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。
三、使用环境操作系统:Windows XP建模工具:StarUML、Microsoft Visio四、设计内容1-1、用例模型图用例模型图说明:机票预订系统主要使用的对象是旅行社管理员。
管理员根据顾客填写的目的地和时间信息,将其输入系统,系统根据相关信息进行处理,则系统其中的一个功能即用例就是接收顾客信息。
顾客需要用取票单去航空公司取票,系统由管理员输入的信息来识别,则系统的另一个功能即用例就是预定管理员输入信息符合的票。
1-2、类图类图说明:为此系统定义了4个类,分别是顾客类,管理员类,航空公司类,机票类。
各个类对应的属性和操作方法在图中已表示出,目前应该还是有很多不完善的地方,在后期再加以修改。
1-3、对象图对象图说明:对象图是根据设置的类图而设置的。
一个对象就是类的一个具体实例,本例中设置了一个custom的取票操作,详细信息在图中已经设置,根据顾客的相关信息和操作,系统会调用相应的类的对象来处理,在本例中不一定会全部都涉及。
1-4、顺序图顺序图说明:顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。
机票预订系统报告班级:医药软件工程13姓名:曹立学号:1305541102目录(1)需求分析1.系统概述2.系统运行环境3.功能需求描述(2)总体及总体设计1.开发与设计的总体思想2.系统模块结构图及设计3.系统流程描述4.界面设计5.数据库设计(3)设计总结1引言1.1 编写的目的需求分析说明书提供用户与开发人员对开发软件的共同理解,使用户与开发单位就该系统的功能定义、环境需求达成共识,是今后各阶段设计工作的基础和依据,也是本阶段评审和测试阶段确认与验收的依据。
本需求分析的读者对象包括客户、业务人员需求分析人员、测试人员、用户文档编写人和项目管理人员。
1.2 背景人们在网上预订机票越来越普遍,能提供网上预订服务的网站也越来越多,如:携程旅行网等,但这些网站提供的服务并非实时的,而是在人工干预的基础上完成的。
为了提升企业效益,特开发此网上预订机票系统。
1.3定义SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)SQL: 一种用于访问查询数据库的语言事务流:数据进入模块后可能有多种路径进行处理一需求分析1.系统概述《网上机票预订系统》运行于Internet环境,提供远程机票预订功能,包括远程航班信息查询,机票预订与确认等;使用《网上机票预订系统》可使机票订购过程简单化、电子化、数字化,节省常规过程所不必要的资源浪费。
该软件要实现方便用户提前预定机票,提前知晓航班信息的功能,为了减少用户到机场现场买票导致的未能买到较为合适机票所浪费时间的现象。
航空公司为给旅客乘机提供方便,需要开发一个机票预定系统。
各个旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码(护照号码)、旅行时间、旅行始发地和目的地,航班舱位要求等)输入到系统中,系统为旅客安排航班。
当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统核对无误即打印出机票给旅客。
(完整word版)飞机订票系统实验报告实验题目:订票系统实验目的:1.了解并掌握数据结构的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
实验要求:●任务:通过此系统可以实现如下功能:●录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)●查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;●订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;●退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
●修改航班信息:当航班信息改变可以修改航班数据文件实验主要步骤:航班端(一)输入航班信息,add()增加航班信息,并保存到save().(二)修改信息,在xiugai()函数里,输入要修改的航班号,选择修改的内容,如修改时间,地点并保存。
客户端(一)输入起始站和终点站,在两者都符合的条件下在search ()函数里查找,并输出航班信息。
(二)订票:用search(),判断是否有符合的航班,有则输出并进行订票,还有输入客户信息。
(三)退票:调用search(),用它的返回值判断是否有符合的航班,有则输入,并删除客户信息。
1)在主函数里先了调用chushihua(),确定有hangban.dat 文件,并让客户或航班端选择相应的模块。
2)定义订票业务函数,在这个函数中首先调用了search 函数查找需要订票的航班,用search函数的返回值判断是否有该航班。
实验序号及实验名称实验三软件项目的详细设计一、实验题目:飞机订票管理系统二、任务概述(1)软件项目整体描述:航空公司为方便旅客,需开发一个机票预定系统。
为便于旅客由旅行社代替航空公司负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。
旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要单明了,易于操作,服务器程序利于维护。
(2)运行环境要求:系统将由两部分程序组成,安装在各旅行社客户机上的客户程序及航空公司内的数据服务器程序。
根据调研得知所有旅行社的计算机配置均在Pentium 4级别以上,客户程序应能够在Pentium 4级别以上, Win XP环境下运行。
(3) 条件与限制:软件开发人员在开发的工程中,使用java进行系统开发,使用SQL Sever2005版本数据库。
(4)需求概述:航班查询所需数据:终点站名称(文本数据)。
订票管理所需数据:航班号、订票数额、日期、客户名称、省份证号码、性别退票管理所需数据:日期、航班号。
改签管理所需数据:日期、航班号、起飞时间。
三、逻辑结构设计(1)数据库表①destine(订票人信息表)在此数据表中存放的是订票人的其他信息,如:所乘坐的航班号、所乘坐的机舱等级等信息。
订票人的信息表要与航班信息表有所关联。
在该信息表中包含以下字段:destine_id(订票人身份证号码)、flight_no(航班号)、destine_count(订票数量)、destine_date(定票日期)、destine_status(订票状态)、destine _id (订票人身份证号码)、destine_phone(订票人联系电话)、destine_address(订票人地址)、destine_sex(订票人性别)、destine_age(订票人年龄)等字段。
数据结构大作业-航空公司订票系统一、需求分析航空公司订票系统是一个需要进行高效管理和数据存储的系统。
在这个系统中,我们需要实现以下功能:1.用户登录和注册:用户可以注册并登录到系统中进行机票订购和查询。
2.机票查询:用户可以查询所有的航班信息,包括机票的价格、日期、起点和终点等信息。
3.机票购买:用户可以根据自己的需求,在航班信息中选择合适的机票,并进行购买。
4.支付功能:用户可以在系统中完成支付,并获得机票的二维码。
为了实现上述的功能,我们将采取以下的数据结构来设计和实现航空公司订票系统。
二、数据结构设计1. 航班信息表我们需要在系统中存储所有航班的信息,包括航班编号、起飞时间、起点、终点、票价等属性,因此我们可以使用以下数据结构来进行存储和管理航班信息。
typedef struct {char id[MAX_ID_LENGTH]; // 航班编号char departure[MAX_LOCATION_LENGTH]; // 起点char destination[MAX_LOCATION_LENGTH]; // 终点char date[MAX_DATE_LENGTH]; // 起飞日期char time[MAX_TIME_LENGTH]; // 起飞时间int price; // 票价} Flight;使用以上数据类型存储航班信息,我们可以建立一个包含所有航班的线性表来存储和管理所有的航班信息。
2. 用户信息表我们需要在系统中存储所有用户的信息,包括用户的账号、密码、姓名、身份证号码等属性,因此我们可以使用以下数据结构来进行存储和管理用户信息。
typedef struct {char username[MAX_USERNAME_LENGTH]; // 用户名char password[MAX_PASSWORD_LENGTH]; // 密码char name[MAX_NAME_LENGTH]; // 姓名char id[MAX_ID_LENGTH]; // 身份证号码} User;使用以上数据类型存储用户信息,我们可以建立一个包含所有用户的线性表来存储和管理所有的用户信息。
实验题目:订票系统实验目的:1.了解并掌握数据结构的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
实验要求:●任务:通过此系统可以实现如下功能:●录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)●查询:⏹可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);⏹可以输入起飞抵达城市,查询飞机航班情况;●订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;●退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
●修改航班信息:当航班信息改变可以修改航班数据文件实验主要步骤:航班端(一) 输入航班信息,add()增加航班信息,并保存到save().(二) 修改信息,在xiugai()函数里,输入要修改的航班号,选择修改的内容,如修改时间,地点并保存。
客户端(一) 输入起始站和终点站,在两者都符合的条件下在search ()函数里查找,并输出航班信息。
(二) 订票:用search(),判断是否有符合的航班,有则输出并进行订票,还有输入客户信息。
(三) 退票:调用search(),用它的返回值判断是否有符合的航班,有则输入,并删除客户信息。
1) 在主函数里先了调用chushihua(),确定有hangban.dat 文件,并让客户或航班端选择相应的模块。
2) 定义订票业务函数,在这个函数中首先调用了search 函数查找需要订票的航班,用search 函数的返回值判断是否有该航班。
运用if 语句实现订票时的多种情况:订票数输入不正确、飞机票数不足等情况。
机票预订系统实验报告机票预订系统实验报告一、引言随着航空业的发展和人们对旅行需求的增加,机票预订系统在现代社会中扮演着重要的角色。
机票预订系统的设计和实施对于提高航空公司的效率、减少人力资源的浪费以及提升用户体验都具有重要意义。
本文将对机票预订系统进行实验,并对其功能和性能进行评估和分析。
二、系统概述机票预订系统是一个在线平台,旨在为用户提供方便快捷的机票预订服务。
该系统通过与各大航空公司的数据库进行连接,实时获取航班信息和机票价格,并提供给用户进行选择和预订。
同时,系统还提供了用户信息管理、订单管理和支付等功能,以确保用户能够方便地完成整个预订流程。
三、功能评估1. 用户注册与登录功能机票预订系统首先需要用户进行注册和登录,以保证用户的身份和信息的安全性。
通过实验测试,我们发现该系统的用户注册和登录功能操作简单,且反应迅速,用户可以通过输入用户名和密码进行登录,也可以通过手机号码和验证码进行快速登录。
系统还提供了密码找回功能,用户可以通过注册时提供的邮箱或手机号码进行密码重置。
2. 航班查询和预订功能机票预订系统的核心功能是航班查询和预订。
用户可以通过输入出发地、目的地和出行日期等信息进行航班查询,系统会根据用户的需求提供相应的航班列表。
用户可以根据航班时间、价格和舱位等因素进行选择,并进行预订。
通过实验测试,我们发现该系统的航班查询和预订功能操作简单,搜索结果准确,用户能够方便快捷地找到适合自己的航班并完成预订。
3. 用户信息管理功能机票预订系统还提供了用户信息管理功能,用户可以在系统中完善个人信息,包括姓名、证件号码、联系方式等。
系统还支持用户上传头像和修改密码等操作。
通过实验测试,我们发现该系统的用户信息管理功能操作简单,用户可以方便地修改个人信息,系统也能够及时更新用户的信息。
4. 订单管理和支付功能机票预订系统还提供了订单管理和支付功能。
用户可以在系统中查看自己的订单信息,包括航班信息、乘客信息和支付状态等。
一、实训背景随着社会经济的不断发展,航空业在我国经济中的地位日益重要。
为了提高航空公司的服务质量和效率,满足旅客的出行需求,开发一套功能完善的机票预订系统具有重要意义。
本实训旨在通过实际操作,掌握机票预订系统的设计、开发与测试过程,提高学生的实践能力和团队协作能力。
二、实训目的1. 熟悉机票预订系统的基本功能和业务流程;2. 掌握机票预订系统的设计与开发方法;3. 提高数据库操作、前端界面设计和后端程序开发能力;4. 培养团队协作和沟通能力。
三、实训内容1. 系统需求分析(1)系统功能需求机票预订系统应具备以下功能:1)航班信息查询:旅客可以根据出发地、目的地、日期、舱位等信息查询航班信息;2)机票预订:旅客可以在线预订机票,系统自动为旅客分配座位;3)订单管理:航空公司可以查看、修改、删除旅客订单;4)退票、改签:旅客可以对已预订的机票进行退票、改签操作;5)支付管理:旅客可以通过在线支付、线下支付等方式支付机票费用;6)统计分析:航空公司可以查看各航班的销售情况、旅客消费情况等。
(2)系统性能需求1)响应时间:系统响应时间应小于3秒;2)并发用户数:系统应支持至少1000个并发用户;3)数据存储:系统应支持至少100万条数据存储。
2. 系统设计(1)系统架构设计机票预订系统采用B/S架构,分为前端和后端两部分。
前端负责展示航班信息、机票预订界面等,后端负责处理业务逻辑、数据库操作等。
(2)数据库设计机票预订系统涉及以下实体:1)航班信息表(Flight):存储航班号、出发地、目的地、起飞时间、降落时间、舱位类型等信息;2)旅客信息表(Passenger):存储旅客姓名、性别、身份证号、联系方式等信息;3)订单信息表(Order):存储订单号、航班号、旅客姓名、身份证号、舱位类型、支付方式、订单状态等信息;4)座位信息表(Seat):存储航班号、座位号、舱位类型、是否预订等信息。
3. 系统实现(1)前端界面设计前端界面采用HTML、CSS、JavaScript等技术实现。
第1篇一、实验背景与目的随着航空业的快速发展,机票预订系统的需求日益增长。
为了提高预订效率、优化用户体验,本实验旨在设计并实现一个功能完善、操作便捷的机票预订系统。
通过本次实验,我们希望掌握需求分析、系统设计、编码实现以及测试等软件工程的基本流程,并提高对机票预订系统结构和功能的理解。
二、实验内容与要求1. 需求分析(1)系统功能需求:- 用户注册与登录:用户可以通过注册账号进行登录,方便后续预订和查询。
- 搜索航班:用户可以根据出发地、目的地、出发时间等条件搜索航班。
- 航班详情:展示航班的具体信息,包括航班号、机型、起飞时间、降落时间等。
- 预订机票:用户可以选择座位、填写个人信息并完成支付。
- 查询订单:用户可以查看自己的预订记录,包括订单状态、航班信息等。
- 取消订单:用户可以取消已预订的机票。
- 评价与投诉:用户可以对航班和服务进行评价或投诉。
(2)性能需求:- 系统响应时间:用户操作后的响应时间应控制在2秒以内。
- 系统并发用户数:支持同时在线1000个用户。
- 数据存储容量:至少存储100万条航班数据。
2. 系统设计(1)总体结构设计:- 用户层:负责用户界面交互,包括注册、登录、搜索、预订、查询、取消、评价等。
- 业务逻辑层:负责处理业务逻辑,如航班查询、订单管理、支付等。
- 数据访问层:负责数据持久化,如数据库操作、数据缓存等。
- 数据库层:存储航班信息、用户信息、订单信息等。
(2)详细设计:- 用户层:采用MVC(Model-View-Controller)模式,分离数据模型、视图和控制器。
- 业务逻辑层:采用分层设计,包括服务层、业务处理层和接口层。
- 数据访问层:采用ORM(Object-Relational Mapping)技术,实现数据持久化。
- 数据库层:采用MySQL数据库,设计合理的表结构和索引。
3. 实现与测试(1)编码实现:- 采用Java语言和Spring Boot框架进行开发,利用HTML、CSS、JavaScript等技术实现用户界面。
一绪论11.1 课题背景及现状 (1)1.2 开发工具介绍 (1)二需求分析 (2)(一)航空售票系统的数据需求(二)数据字典(三) 主要数据流图三概要设计 (6)四逻辑设计 (7)五详细设计 (7)(一)基本查询语句(二) 程序流图中某些加工实现采用IPO图的方式描述(三)数据库的逻辑结构设计六测试结果 (12)七小结 (17)参考文献 (18)附录(主要源代码) (19)一绪论1.1 课题背景及现状随着旅游业的逐渐的成熟发达,航空客运量大幅度的提高,国内国际的旅游航班的增加,这些都对航空的信息管理系统提出了更高的要求,所以要不断的完善更新航空售票系统,提高航空售票系统的工作效率。
航空公司为方便旅客,需开发一个订票系统。
系统的操作者是有登录密码和用户名的售票员。
系统要实现的基本功能是航班的调整,售票,订票,取票,退票,乘客信息的管理,乘客购票的统计;而系统在以后扩展时还可以实现的功能有:对机组工作人员的管理,预定机票的送票情况管理等。
此系统的开发由我们分模块完成,而我所负责的模块是实现系统的航班调整,售票,订票,退票,取票,航班查询功能。
举一个旅客订票的例子:预定机票的旅客信息,包括姓名、性别、地址、证件号、目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。
旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
航空售票系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点1.2 开发工具介绍本次课程设计应用的开发工具主要是用java语言和SQL Server 2005 。
一.实验目的1.掌握使用VC++上机调试队列的基本方法;2.掌握队列的基本操作:初始化,出队列,入队列等运算在顺序和链式存储结构上的实现。
3.了解队列的抽象数据类型定义4.熟练掌握链队列的定义,熟练掌握链队列表的基本算法及时间性能二.实验内容航班订票系统航空客运订票业务包括:查询航线,客票预订,办理退票等。
设计一个航空客运订票系统。
三.实验步骤(可选)typedef struct pas{CString nam;int bok;int lev;}pas;typedef struct wai{CString nam;int ned;}wai;typedef struct lpa{pas man;struct lpa *next;}lpa,*ppa;typedef struct qnode{//排队候队列wai ren;struct qnode* next;}qnode,*ptrq;typedef struct flyinfo{CString des;CString fli;CString air;CString day;int tol;int lef;ppa chk;ptrq pwa;int flg;}flyinfo;typedef struct{ptrq front;ptrq rear;}linkq;void initq(linkq &q){q.front=q.rear=new qnode;q.front->next=NULL;}void rudui(linkq &q,wai man) {ptrq p;p=new qnode;p->ren.nam=man.nam;p->ren.ned=man.ned;p->next=NULL;q.rear->next=p;q.rear=p;}void chudui(linkq &q,wai &man) {if(q.front==q.rear)return;ptrq p;p=q.front->next;man.nam=p->ren.nam;man.ned=p->ren.ned;q.front->next=p->next;if(p==q.rear)q.front=q.rear;delete p;}/*typedef struct {flyinfo *bas;int len;}slist;void initlist(slist& l){l.bas=(flyinfo*)malloc(sizeof(flyinfo)*10); l.len=0;}*/void initchk(ppa &lis){lis=new lpa;lis->next=NULL;}void addpas(ppa &lis,pas miz){ppa pl=new lpa;ppa p=lis;while(p!=NULL)p=p->next;pl->man=miz;p=pl;pl->next=NULL;}void dele(ppa &lis,pas miz) {ppa p,q;p=q=lis;for(;q!=NULL;){if(q->man.nam==miz.nam){p->next=q->next;delete p;break;}p=q;q=q->next;}}flyinfo fly[10];linkq q[10];//paiduippa lis[10];//订票客户链表int fg=0;int fnum=0;BOOL CMyDlg::OnInitDialog(){CDialog::OnInitDialog();//initlist(fly);initchk(lis[0]);initq(q[0]);initchk(lis[1]);initq(q[1]);fly[1].des="上海";fly[1].air="CV902";fly[1].day="星期二";fly[1].fli="XXDDD";fly[1].tol=300;fly[1].lef=5;fly[0].des="南京";fly[0].air="CV902";fly[0].day="星期三";fly[0].fli="XXODD";fly[0].tol=300;fly[0].lef=5;wai p1,p2;p1.nam="jack";p1.ned=10;p2.nam="rose";p2.ned=30;rudui(q[0],p1);rudui(q[0],p2);rudui(q[1],p1);rudui(q[1],p2);pas pa1,pa2;pa1.bok=2;pa1.lev=1;pa1.nam="leke";pa2.bok=2;pa2.lev=1;pa2.nam="bake";addpas(lis[0],pa1);addpas(lis[1],pa2);//m_des=fly[0].des;// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}void CMyDlg::OnBUTTONdingpiao(){fg=0;//biaozhi dingpiaoCAboutDlg dlg;dlg.DoModal();}void CMyDlg::OnBUTTONnext(){if(fnum<=0){fnum++;m_air=fly[fnum].air;m_des=fly[fnum].des;m_flight=fly[fnum].fli;m_total=fly[fnum].tol;m_left=fly[fnum].lef;m_day=fly[fnum].day; UpdateData(false);}elseMessageBox("last!");}void CMyDlg::OnBUTTONup() {if(fnum>0){fnum--;m_air=fly[fnum].air;m_des=fly[fnum].des;m_flight=fly[fnum].fli;m_total=fly[fnum].tol;m_left=fly[fnum].lef;m_day=fly[fnum].day; UpdateData(false);}elseMessageBox("first!");}void CAboutDlg::OnOK() {UpdateData();pas pa;pa.lev=m_levl;pa.bok=m_number;pa.nam=m_name;if(fg==0){addpas(lis[fnum],pa); MessageBox("订票成功!"); }elseif(fg==1){dele(lis[fnum],pa); MessageBox("退票成功!"); }else{wai pd;pd.nam=m_name;pd.ned=m_number;rudui(q[fnum],pd);MessageBox("登记成功!");}CDialog::OnOK();}void CMyDlg::OnButtonout() {fg=1;CAboutDlg dlg;dlg.DoModal();}void CMyDlg::OnBUTTONwait() {fg=2;CAboutDlg dlg;dlg.DoModal();}五.实验中出现的问题、解决方法和心得体会1.通过本次实验,基本上了解了链队列的存储结构及其算法的实现,了解了链队列的特点以及链队列抽象出的数据类型的定义,基本上掌握了链队列基本算法如何实现,包括如何实现建立,查找,插入,删除,合并,销毁,数据排序等操作。