数据结构航空客运订票系统实验报告

合集下载

C语言数据结构课程设计航空订票实验报告(含源代码)

C语言数据结构课程设计航空订票实验报告(含源代码)

数据结构课程设计实验报告设计题目__________________________________________________________________ 设计者__________________________________________________________________ 指导老师__________________________________________________________________ 班级___________________________________________________________________ 学号____________________________________________________________________一、设计要求任务通过此系统可以实现如下功能:1.录入航班信息:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据定)2.查询航班:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓);3.订票:(订票情况可以存在一个数据文件中,结构自己设定);4.退票:可退票,退票后修改相关数据文件;5.修改航班信息6.退出程序客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;二、设计概要主界面选择操作项目1.录入航班信息通过单链表这种数据结构,设置了剩余票数,航班号,出发地点,到达地点,起飞日期,出发时间,到达时间,票价。

2.订票输入旅客的姓名,证件号,航班号,和订票张数。

程序中自动查询输入要定的航班号,如果没有则叫其重新输入,有则执行:票数足够则订票成功,票数不充足叫其选择其它航班。

此也采用单链表的数据结构。

航空客运订票系统数据结构课程设计报告1

航空客运订票系统数据结构课程设计报告1

信息科学和工程学院课程设计报告课题:航空客运订票系统目录1.课程设计内容 (3)1.1、课程设计目的 (3)1.2、课程设计题目 (3)1.3、课程设计内容 (3)1.4、实现提示 (3)2.需求分析 (4)3.概要设计 (4)3.1、系统结构图 (5)3.2、算法设计 (5)3.3、存储结构设计 (5)4.详细设计 (6)4.1、数据类型定义 (7)4.2、函数定义 (8)4.3、函数流程图 (8)4.4、程序的设计思想 (12)5.调试分析 (12)5.1、程序测试 (12)5.2 、时间复杂度分析 (13)5.3 、算法的改进设想 (13)6.问题分析及课程设计的心得体会 (14)7.使用手册 (15)8. 源程序 (15)9 参考资料 (22)一、课程设计内容1.1 课程设计目的1.数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的使用系统。

2.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握使用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的使用。

3.学会将知识使用于实际的方法,提高分析和解决问题的能力,增加综合能力。

(1)熟练掌握链表存储结构及其建立过程和常用操作;(2)熟练掌握队列的建立过程和常用操作;(3)学会自己调试程序的方法并掌握一定的技巧。

1.2课程设计题目1、每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日(星期几)、乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名和所需数量)。

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

航空订票系统 数据结构程序设计实验报告3

航空订票系统 数据结构程序设计实验报告3

#define PRINT "%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //宏定义输出格式 struct air //定义结构体数组 { int num; //定义航班号 char start[20]; //航班起始站 char over[20]; //航班终点站 char time[10]; //飞行时间 int count; //机票数量 }s[N]; int i,m=0; //定义全局变量,记录下航班信息的数量 char ii[10]; //用来选择是否继续的变量 以上就是我的总体设计思路。 (3) 详细设计: 在本次的课程设计中我负责编制的是初始化、建立数据文 件、数据文件读取、数据文件保存、增加航班信息、订票、退票 业务函数的编写。以下是我的负责部分的详细设计内容: 1) 定义系统初始化函数 模块功能:设立一个初始化函数来得到航班信息。具体设计是第 一次运行程序时自动生成保存航班信息的文件,并输入初始航班信 息,待第二次开始就可以直接读取该文件获得已有的航班信息并可直 接使用。运用了access函数判断文件是否存在。该函数源代码为: 数据文件 是否存在 输入航班信息并建立新数据文件保存下来 从已有的数据文件读取已有的航班信息
/*定义数据结构*/ /*乘客信息*/ typedef struct { char number[10];/*编号*/ char id[20]; /*证件号*/ char name[10]; /*姓名*/ int count; /*订票数*/ char flightname[10];/*乘坐航班号*/ }GUEST; /*航班信息*/ typedef struct {char planenumber[10];/*航班号*/ char Take_off_city[20];/*起飞城市*/ char Arrived_in_city[20];/*抵达城市*/ char takeoff_time[20];/*起飞时间*/ char Landing_time[20];/*降落时间*/ int shipping; /*舱位数*/ char price[5]; /*票价*/ char discount[5]; /*折扣*/ GUEST guest[20]; int sit; }FLY; /*菜单函数,函数返回值为整数,代表所选的菜单项*/ menu_select() { int c; printf("按任意键返回主菜单\n");/*提示压任意键继续*/ getch(); /*读入任意字符*/ printf(" Welcome to\n\n"); printf(" Tickets Booking System\n\n"); printf(" ********************MENU****************\n\n");

航空客运订票系统实习报告

航空客运订票系统实习报告

课程设计课程名称数据结构题目名称____航空客运订票系统学生学院计算机学院专业班级 07级软件工程(1)班学号**********学生姓名伍健聪指导教师温雪莲2009 年 6 月20 日题目:航空客运订票系统一、需求分析1.本演示程序中,航线信息以一个结构体数组line表示,包括终点站名、航班号、飞机号、飞行周日、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级)以及等候替补的客户名单(包括姓名、所需要票量)。

2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中的规定的运算命令;相应的输入数据和操作结果显示在其后。

3.程序执行的操作和功能包括:(1)查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最后一天航班的日期和余票额;(2)承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于定票额,则需要重新询问客户要求。

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

4.测试数据程序设定了三组航线数据,终点站分别shanghai、chongqin、changsha。

另外程序提供了航线数据构建功能,可供航空公司工作人员添加或修改航线信息。

二、概要设计为实现上述程序功能,应以结构体数组表示航线结点。

1.结构体数组的数据类型定义为:struct 结构体名{成员表列}变量名表列;2.本程序包含三个模块:1)主程序模块:Void main(){初始化;进入用户菜单界面;do{接受命令;处理命令;}while (“命令”==“退出”);}2)功能单元模块――实现程序功能;3)结点结构的单元模块――定义结构体数组的结点结构。

航空购票系统实训报告

航空购票系统实训报告

一、实训背景随着我国航空事业的快速发展,航空客运订票系统在航空公司的运营中发挥着越来越重要的作用。

为了更好地了解和掌握航空购票系统的设计、开发和运行,我们小组进行了为期一个月的航空购票系统实训。

二、实训目的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)系统集成:将前端页面和后端逻辑进行集成,实现整个系统的功能。

数据结构 航空订票 课程报告

数据结构 航空订票 课程报告

课程设计报告课程名称:数据结构课程设计班级:04330102学号:2010043301042姓名:卢晗完成日期:2012年7月6日沈阳航空航天大学北方软件学院课程设计任务书专业名称:计算机科学与技术(软件工程)课程名称:c课程设计设计题目:航空订票系统起止时间:2012年6月26日至2012年7月6日问题描述假设航空订票的业务活动包括:查询航线、客票预订和办理退票等。

设计一个航空客运订票系统,上述业务可以借助计算机完成。

基本要求设民航售票处的计算机系统可以为客户提供下列各项服务:1、对航班进行编辑:具备增加、修改、删除航班信息(航班数据可以存储在一个数据文件中)。

2、查询航线:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;3、承办订票业务:根据客户提出的要求(日期、航班号、订票数额)查询该航班票额情况,若尚有余额,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需要重新询问客户要求。

4、承办退票业务:根据客户提供的情况(日期、航班、退票数额),为客户办理退票手续;5、用到的数据结构需要自己自行编写,不得使用系统给定的函数6、需要用到的数据结构:链表7、用户界面友好,操作方便,有相应提示测试数据任意输入一组航班信息,可以进行订票、查询、退票操作;高级要求模拟实际情况,要求可以处理用户重名问题、用户界面友好学生姓名:学号:指导教师:年月日航空订票系统1概要设计该系统的设计由8个模块组成:1)显示界面模块:也可以叫菜单模块,运行程序时用户首先看到的就是这个界面,界面显示出6种航空订票系统的功能,用户可以根据显示的选择自己要用的方式查询信息。

2)输入航班信息模块:此模块是管理员所支配,需要密码进行访问。

3)浏览信息模块:此模块是顾客浏览航空航班细节(包括:起飞时间,到达时间,起飞地点,目的地,票数等)4)修改航班信息:此模块是管理员改变航班的具体信息。

数据结构航空客运订票系统实验报告

数据结构航空客运订票系统实验报告

一.实验目的1.掌握使用VC+吐机调试队列的基本方法;2.掌握队列的基本操作:初始化,出队列,入队列等运算在顺序和链式存储结构上的实现。

3.了解队列的抽象数据类型定义4.熟练掌握链队列的定义,熟练掌握链队列表的基本算法及时间性能二.实验内容航班订票系统航空客运订票业务包括:查询航线,客票预订,办理退票等。

设计一个航空客运订票系统。

三.实验步骤(可选)typedef struct pas{CString nam;int bok;intlev;}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 & I){I. bas=(flyinfo*)malloc(sizeof(flyinfo)*10);I. 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::OnlnitDialog(){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]・l ef=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;pl .nam="jack";pl. 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;pal ・bok=2;pa1 ・l ev=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 & OxFFFO) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) {CString strAboutMenu;strAboutMenu ・LoadString(IDS_ABOUTBOX);if (!strAboutMenu ・lsEmpty()){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_f light=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.l ev=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;dig ・DoModal();五.实验中出现的问题、解决方法和心得体会1.通过本次实验,基本上了解了链队列的存储结构及其算法的实现,了解了链队列的特点以及链队列抽象出的数据类型的定义,基本上掌握了链队列基本算法如何实现,包括如何实现建立,查找,插入,删除,合并,销毁,数据排序等操作。

数据结构课程设计报告格式及要求(航空购票系统)

数据结构课程设计报告格式及要求(航空购票系统)

数据结构课程设计报告题目航空客运订票系统专业班级学号姓名指导教师成绩一、设计任务航空客运订票的业务包括查询(航线和客票预订的)信息、客票预订和办理退票等。

基本要求有:(1)系统必须存储的数据信息i.航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、已订票的客户名单。

ii.客户信息:客户姓名、证件号、座位号。

(2)系统能实现的功能i.承办订票业务:根据客户提出的要求(飞机低达城市、起降时间、订票数量)查询该航班信息(包括票价、折扣和剩余位置),若满足要求,则为客户办理订票手续,输出座位号。

ii.承办退票业务:根据客户提供的情况(航班号、订票数量),为客户办理退票手续。

(3)查询功能i.查询航线信息:根据飞机降落地点,输出下列信息:航班号、飞机号、起降时间、航班票价、票价折扣和剩余位置。

ii.查询客户预订信息:根据客户证件号,输出下列信息:航班号、飞机号和座位号。

提供的参考程序已经基本实现以上功能,但有很多不足之处,要求进行程序改进和完善。

具体任务有:(1)分析参考程序实现了哪些功能?指出存在的缺陷。

(2)从以下几方面完善程序:i.功能上的完善ii.程序结构上的完善iii.程序控制上的完善二、设计要点1、改变了订票系统主界面格式及背景颜色;2、增加了清屏功能,避免语句过多的结果;3、实现了订票与否;4、实现了只能输入正确航班;5、实现了选择性别只能选择男女;6、订票成功余票减少三、算法实现#include<stdio.h>#include <stdlib.h>#include<malloc.h>#include<string.h>#define OK 1#define ERROR 0typedef struct airline{ /* 飞机航班的结构定义*/ char air_num[8]; //航班号char plane_num[8];//飞机号char end_place[20];//抵达城市int total; //总位置int left; //剩余位置struct airline *next;}airline;/*顾客信息的结构定义*/typedef struct customer{char name[8]; //姓名char sex[8]; //性别char id[20]; //身份证char air_num[8]; //航班号int seat_num; //座位号struct customer *next; //指向下一个旅客}customer;/*创建航班链表*/airline *start_air(){airline *a;a=(airline*) malloc(sizeof(airline));if(a==NULL) printf("空间不足");return a;}/*创建顾客链表*/customer *start_cus(){customer *c;c=(customer*)malloc(sizeof(customer));if(c==NULL) printf("空间不足");return c;}/* 修改航班的空余座位信息*/airline *modefy_airline(airline *l,char *air_num){airline *p;p=l->next;for(;p!=NULL;p=p->next){if(strcmp(air_num,p->air_num)==0){p->left++;return l;}printf("NO the airline!");return 0;}}/* 增加航班信息*/int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left) {airline *q;q=(airline*)malloc(sizeof(airline));strcpy(q->air_num,air_num);strcpy(q->plane_num,plane_num);strcpy(q->end_place,end_place);q->total=total;q->left=left;q->next=NULL;(*p)->next=q;(*p)=(*p)->next;return OK;}/*增加某航班的顾客信息*/int insert_cus(customer **p,char *name,char *sex,char *id,char *air_num,int seat_num) {customer *q;q=(customer*)malloc(sizeof(customer));strcpy(q->name,name);strcpy(q->sex,sex);strcpy(q->id,id);strcpy(q->air_num,air_num);q->seat_num=seat_num;q->next=NULL;(*p)->next=q;(*p)=(*p)->next;return OK;}/*订票操作*/int book(airline *a,char *air_num,customer *c,char *name,char *sex,char *id){airline *p=a;customer *q=c->next;p=a->next;for(;p->next!=NULL;p=p->next){if(strcmp(p->air_num,air_num)==0)break;}while(q->next!=NULL){q=q->next;}{if(p->left>0){printf("您的座位号是%d",(p->total-p->left+1));printf("\n");insert_cus(&q,name,sex,id,air_num,p->total-p->left+1);--p->left;p=p->next;return OK;}else{printf("没您的座啦!");return 0;}}}/*取消订票信息操作*/int del_cus(customer *c,airline *l,char *name){customer *p,*pr;char air_num[8];pr=c;p=pr->next;while(p!=NULL){if(strcmp(p->name,name)==0||strcmp(p->air_num,air_num)==0){strcpy(air_num,p->air_num);l=modefy_airline(l,air_num);pr->next=p->next;p=pr->next;printf("取消订票成功!\n");return OK;}pr=pr->next;p=pr->next;}printf("没有这个人儿啊\n");return ERROR;}/*查找航班信息操作*/int search_air(airline *head){airline *p=head->next;printf("air_num plane_num end_place total left\n");for(;p!=NULL;p=p->next){printf("%s %-10s %-8s %-8d%-8d\n", p->air_num, p->plane_num,p->end_place,p->total,p->left);}return OK;}/*查找顾客信息操作*/int search_cus(customer *head){struct customer *q=head->next;printf(" name sex id air_num seat_num\n");for(;q!=NULL;q=q->next){printf("%-8s%-8s%-8s%-12s%-d\n",q->name,q->sex,q->id,q->air_num,q->seat_num);}return OK;}/*预先设置航班信息*/int creat_air(airline **l){airline *p=*l;int i=0;char *air_num[3]={"007af","008af","009af"};char *plane_num[3]={"航班1","航班2","航班3"};char *end_place[3]={"美国","德国","法国"};int total[3]={100,100,100};int left[3]={52,54,76};for(i=0;i<3;i++)insert_air(&p,air_num[i], plane_num[i], end_place[i],total[i], left[i]);return OK;}/*预先设置已订票的顾客信息*/int creat_cus(customer **l){customer *p=*l;int i=0;char *name[3]={"张三","李四","王五"};char *sex[8]={"nan","nan","nan"};char *id[20]={"123456","654321","741852"};char *air_num[3]={"007af","008af","009af"};int seat_num[3]={2,5,7};for(i=0;i<3;i++)insert_cus(&p,name[i],sex[i],id[i],air_num[i],seat_num[i]);return OK;}void main(){system("color 8E");int t=1;customer *cus=start_cus();airline *air=start_air();char name[8],air_num[8],ch,m;char sex[8],id[20];creat_air(&air);creat_cus(&cus);search_air(air);while(t==1){printf("\n\n\n");printf("*********************************\n");printf(" * 欢迎来订票哦,亲!*\n");printf(" * 订票----------1 *\n");printf(" * 退票----------2 *\n");printf(" * 查询----------3 *\n");printf(" * 退出----------4 *\n");printf("*********************************\n");scanf("%s",&ch);if(ch=='1'){system("cls");printf("亲,想乘坐哪辆航班嘞:");scanf("%s",air_num);if(strcmp(air_num,"007af")==0||strcmp(air_num,"008af")==0||strcmp(air_num,"009af")==0){printf("亲叫啥嘞:");scanf("%s",name);y1: printf("您的性别(nan or nv):");scanf("%s",sex);if(strcmp(sex,"nan")==0||strcmp(sex,"nv")==0){printf("您的id:");scanf("%s",id);}else {goto y1;}printf("*确认请输入Y否则输入N:");scanf("%s",&m);if(m=='Y'||m=='y'){printf("订票成功!");book(air,air_num,cus,name,sex,id);}else if(m=='n'||m=='N')printf("取消航班成功!\n");else{printf("您的输入有误\n");}} elseprintf("对不起,没有你要找的航班:\n\n");system("pause");}elseif(ch=='2'){system("cls");printf("您不想座哪个航班号啦:");scanf("%s",air);printf("您的姓名是啥来着:");scanf("%s",name);del_cus(cus,air,name);}elseif(ch=='3'){system("cls");search_air(air);printf("\n");search_cus(cus);}elseif(ch=='4'){t=0;}}}四、运行结果分析1.订票系统主界面2、订票成功操作3、订票航班输入错误操作4、选择男女操作5、选择订票是与否操作6、订票成功余票减少五、设计总结这次课程设计使用了C语言来编写程序,使我们的基础知识和数据结构的链表等知识得到了巩固,使我们在实践中得到了锻炼。

C语言数据结构课程设计航空订票实验报告(含源代码)

C语言数据结构课程设计航空订票实验报告(含源代码)

数据结构课程设计实验报告设计题目__________________________________________________________________ 设计者__________________________________________________________________ 指导老师__________________________________________________________________ 班级___________________________________________________________________ 学号____________________________________________________________________一、设计要求任务通过此系统可以实现如下功能:1.录入航班信息:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据定)2.查询航班:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓);3.订票:(订票情况可以存在一个数据文件中,结构自己设定);4.退票:可退票,退票后修改相关数据文件;5.修改航班信息6.退出程序客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;二、设计概要主界面选择操作项目1.录入航班信息通过单链表这种数据结构,设置了剩余票数,航班号,出发地点,到达地点,起飞日期,出发时间,到达时间,票价。

2.订票输入旅客的姓名,证件号,航班号,和订票张数。

程序中自动查询输入要定的航班号,如果没有则叫其重新输入,有则执行:票数足够则订票成功,票数不充足叫其选择其它航班。

此也采用单链表的数据结构。

航空订票测试实验报告(3篇)

航空订票测试实验报告(3篇)

第1篇一、实验目的本次实验旨在通过设计和实施一系列测试用例,验证航空订票系统的功能性和稳定性,确保系统在实际运行中能够满足用户的需求,提高系统的可靠性和用户体验。

二、实验环境1. 操作系统:Windows 102. 浏览器:Google Chrome3. 航空订票系统:自行开发或使用开源订票系统4. 测试工具:Selenium WebDriver三、实验内容1. 系统功能测试(1)航线查询功能测试目的:验证用户能否通过终点站名查询到相应的航班信息。

测试步骤:a. 输入终点站名,点击查询按钮;b. 检查查询结果是否包含航班号、飞机号、星期几飞行、最近一天航班的日期和余票额等信息;c. 检查查询结果是否按照时间顺序排列。

(2)订票功能测试目的:验证用户能否根据航班号和订票数额成功预订机票。

测试步骤:a. 选择航班,输入订票数额;b. 点击预订按钮;c. 检查是否成功预订机票,包括座位号、舱位等级等信息;d. 若余票不足,验证系统是否提示用户重新选择或登记排队候补。

(3)退票功能测试目的:验证用户能否根据日期和航班成功退票,并处理排队候补情况。

测试步骤:a. 输入日期和航班号,点击退票按钮;b. 检查是否成功退票;c. 检查排队候补情况,验证系统是否优先处理排队客户。

2. 系统性能测试(1)并发用户测试测试目的:验证系统在高并发用户情况下的稳定性和响应速度。

测试步骤:a. 使用JMeter工具模拟多个用户同时访问系统;b. 记录并发用户数量、响应时间、系统资源占用等信息;c. 分析测试结果,评估系统性能。

(2)压力测试测试目的:验证系统在极限负载情况下的稳定性和响应速度。

测试步骤:a. 使用JMeter工具模拟极限负载情况;b. 记录系统资源占用、错误率等信息;c. 分析测试结果,评估系统性能。

3. 系统兼容性测试(1)浏览器兼容性测试测试目的:验证系统在不同浏览器上的运行效果。

测试步骤:a. 在Chrome、Firefox、IE等浏览器上分别运行系统;b. 检查系统界面、功能、响应速度等是否正常;c. 分析测试结果,评估系统兼容性。

数据结构.航空客运订票系统

数据结构.航空客运订票系统

《数据结构》课程设计报告书题目:航空客运订票系统专业:班级:学号:姓名:完成时间:一、需求分析1.1问题描述设计一个航空客运订票系统,为乘客提供各种航空客运信息服务。

1.2 基本要求每条航线所涉及的信息有:终点站名、航班号、飞机号、星期几飞行、乘员定额、余票量、订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需数量)。

已订票客户和预订票客户名单可分别由线性表linklist和队列linkqueue 来实现。

为了插入和删除方便,两者皆采用链表作为存储结构。

系统需实现的操作和功能如下。

(1)查询航线:根据客户提出的终点站名输出如下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票量。

(2)承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少于订票额,则需重新询问客户要求。

若需要,可登记排队候补。

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

二、概要设计1.1 链表的抽象数据类型定义ADT ListData:D={ai|ai∈ElemtSet,i=1,2,…,n,n≥0}Relation:R={<ai-1,ai>|ai-1,ai∈D,i=2,…,n}Operation:airline *find_fin()//根据客户提出的终点站名输出航线信息airline *find_air()//根据客户提出的航班号查询航班信息airline *find_plane()//根据客户提出的飞机号查询航班信息airline *find_date()//根据客户提出的飞行日期查询航班信息void search()//根据客户提出的要求输出航线信息void list()//全部航线的信息void booklist()//订票客户名单linklist *addlink(linklist*,int,char,int)//增加订票的客户信息 void sort_ticket()//按剩余票数排序endADT1.2 队列的抽象数据类型定义ADT QueueData:D={ai|ai∈ElemtSet,i=1,2,…,n,n≥0}Relation:R={<ai-1,ai>|ai-1,ai∈D,i=2,…,n}Operation:linkqueue plusqueue(linkqueue,char,int)//增加排队等候的客户名单endADT2、本程序包含三个模块(1)主程序模块:void main(){初始化;Do{输入指令;处理指令;}while (指令!=”退出”);}(2)已买票的乘客的链表模块——实行对买票乘客信息的管理(3)排队买票乘客的队列模快——实行对排队买票乘客信息的管理3、各模块之间的调用关系三、详细设计1、为简化问题,本系统假设只有五条航线#define MAX 5//定义航线量的最大值2、客户的存储信息:结点中保存的信息包括姓名,订票量,舱位等级typedef struct book{char name[10];//客户姓名int amount;//订票量int level;//舱位等级book *next;}linklist;3、航班的存储信息:结点中保存的信息包括终点站名,航班号,飞机号,飞行日期,乘员定额,余票量。

(完整word版)飞机订票系统实验报告

(完整word版)飞机订票系统实验报告

(完整word版)飞机订票系统实验报告实验题目:订票系统实验目的:1.了解并掌握数据结构的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。

实验要求:●任务:通过此系统可以实现如下功能:●录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)●查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;●订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;●退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

●修改航班信息:当航班信息改变可以修改航班数据文件实验主要步骤:航班端(一)输入航班信息,add()增加航班信息,并保存到save().(二)修改信息,在xiugai()函数里,输入要修改的航班号,选择修改的内容,如修改时间,地点并保存。

客户端(一)输入起始站和终点站,在两者都符合的条件下在search ()函数里查找,并输出航班信息。

(二)订票:用search(),判断是否有符合的航班,有则输出并进行订票,还有输入客户信息。

(三)退票:调用search(),用它的返回值判断是否有符合的航班,有则输入,并删除客户信息。

1)在主函数里先了调用chushihua(),确定有hangban.dat 文件,并让客户或航班端选择相应的模块。

2)定义订票业务函数,在这个函数中首先调用了search 函数查找需要订票的航班,用search函数的返回值判断是否有该航班。

民航订座系统实验报告(3篇)

民航订座系统实验报告(3篇)

第1篇一、实验目的通过本次实验,了解民航订座系统的基本操作流程,掌握系统的主要功能,熟悉航班信息查询、旅客订座、电子客票等业务操作,提高实际操作能力,为将来从事民航服务行业打下基础。

二、实验内容1. 民航订座系统概述2. 系统登录与界面介绍3. 航班信息查询4. 旅客订座5. 电子客票6. 系统退出三、实验步骤1. 系统登录与界面介绍(1)打开民航订座系统,输入用户名和密码进行登录。

(2)登录成功后,进入系统主界面,界面主要包括菜单栏、功能按钮、航班信息显示区域、旅客信息输入区域等。

2. 航班信息查询(1)在菜单栏选择“航班查询”功能。

(2)输入查询条件,如出发城市、到达城市、出发日期、航班号等。

(3)点击“查询”按钮,系统将显示符合条件的航班信息。

(4)查看航班信息,包括航班号、出发时间、到达时间、机型、舱位等级、票价等。

3. 旅客订座(1)在菜单栏选择“旅客订座”功能。

(2)输入旅客信息,如姓名、性别、身份证号码、联系方式等。

(3)选择航班信息,包括航班号、出发日期、舱位等级等。

(4)点击“提交”按钮,系统将显示订座成功信息。

4. 电子客票(1)在菜单栏选择“电子客票”功能。

(2)输入旅客信息,如姓名、身份证号码等。

(3)选择航班信息,包括航班号、出发日期、舱位等级等。

(4)点击“生成电子客票”按钮,系统将生成电子客票,并显示在界面上。

5. 系统退出(1)完成实验操作后,点击菜单栏的“退出”按钮。

(2)系统提示是否退出,点击“确定”按钮,系统将退出实验环境。

四、实验结果与分析1. 实验结果通过本次实验,成功掌握了民航订座系统的基本操作流程,包括航班信息查询、旅客订座、电子客票等业务操作。

2. 实验分析(1)实验过程中,遇到的问题及解决方法:a. 在输入旅客信息时,身份证号码格式错误,导致无法提交。

b. 在查询航班信息时,未输入出发城市或到达城市,导致查询结果为空。

c. 在生成电子客票时,未选择舱位等级,导致无法生成电子客票。

航空客运订票系统实习报告

航空客运订票系统实习报告

实习报告一、实习背景及目的随着我国经济的快速发展,人民生活水平的不断提高,航空运输需求日益增长。

为了提高航空客运订票效率,降低运营成本,提升客户满意度,航空公司及相关部门积极引入先进的信息化技术,开发航空客运订票系统。

本次实习旨在了解航空客运订票系统的业务流程、掌握系统功能及操作方法,提高自身业务能力和实际操作技能。

二、实习内容与过程1. 实习前的准备工作在实习开始前,我认真学习了航空客运订票系统的相关理论知识,了解了航空客运订票系统的起源、发展及其在现代航空运输行业中的重要作用。

同时,我还熟悉了系统的操作界面、功能模块以及基本操作流程。

2. 实习过程中的主要工作(1)航线查询:根据旅客提出的终点站名,输出航班号、飞机号、星期几飞行,最近一天航班的日期和余票额等信息。

(2)订票业务:根据客户提出的要求(航班号、订票数额),查询该航班票额情况。

若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。

若需要,可登记排队候补。

(3)退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续。

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

3. 实习中遇到的问题及解决方法在实习过程中,我遇到了一些问题,如系统操作不熟悉、业务流程不清晰等。

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

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

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

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

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

数据结构课程设计 航空客运订票系统

数据结构课程设计 航空客运订票系统

《数据结构课程设计》报告设计题目航空客运订票系统专业班级学号姓名电话完成日期2017.04.13目录1. 问题描述 (2)2. 系统设计 (2)3. 数据结构与算法描述 (4)4. 测试结果与分析 (6)5. 总结 (10)6. 参考文献 (10)附录程序源代码 (10)课程设计题目1. 问题描述基于人们对航空客运使用需求的日益提高,为方便乘客提前买票及优化飞机航空订票服务,需要开发一个飞机订票系统,此程序是为实现航班情况的查询,订票,退票以及客户信息浏览与票务信息浏览等基本功能。

2. 系统设计2.1 设计目标(1)可以浏览航线信息;包括终点站名、航班号、飞机号、飞行日期、乘员定额和余票量;(2)可以浏览已订票客户信息;包括客户姓名、订票数额和舱位等级;(3)可以查询航线;包括终点站名、航班号、飞机号、飞行日期、乘员定额和余票量;(4)可以办理订票业务;需提供航班号、所需票数、客户姓名和舱位等级,生成客户座位号;(5)可以办理退票业务;提供航班号和客户姓名,即可退票;(6)可以查看剩余票数;(7)要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。

2.2 设计思想(1)运行环境(软硬件环境):DEV-C++;(2)输入的形式和输入值的范围:由航空公司输入航线情况并以单链表的形式存储在内存里面;(3)输出的形式描述:通过客户的输入,输出相应内容;(4)功能描述:用户可通过本系统实现对航班的查询、订票和退票功能。

2.3 系统模块划分2.3.1主函数输出菜单界面。

输入指令,显示,敲击回车开始工作。

2.3.2浏览航线信息编写void list()函数实现打印全部航线信息的功能,调用void display()函数实现打印struct airline链表中存储的航线的基本信息的功能。

2.3.2浏览已订票客户信息编写void prtlink()函数实现打印订票乘员名单域的客户名单信息的功能,调用find()函数查询并以指针形式返回。

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

一.实验目的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.通过本次实验,基本上了解了链队列的存储结构及其算法的实现,了解了链队列的特点以及链队列抽象出的数据类型的定义,基本上掌握了链队列基本算法如何实现,包括如何实现建立,查找,插入,删除,合并,销毁,数据排序等操作。

更加清楚的了解到如何从现实生活中抽象出链队列的数据类型并且实现功能,解决现实中遇到的问题。

相关文档
最新文档