飞机票管理系统设计报告
- 格式:doc
- 大小:1.49 MB
- 文档页数:25
软件工程课程设计说明书题目:机票预订系统院系:专业班级:学生姓名:指导教师:院系软件工程教研室课程设计成绩评定表摘要本系统是根据C语言和数据库技术开发出来的一种用于机票预订系统的软件,适用于解决机场中的售票问题。
该系统有以下几个功能主要用于机票预订,所以提供了以下几个子功能:机票预订,取票通知,查询航班,查询机票,打印机票,各航班的营运统计,旅客延误了取票时间的处理,班机取消后的处理,以及更改机票的处理等。
机票预订功能:旅行社和机场管理员有权力进行该项功能。
首先通过查询得到旅客所需的航班,确定该航班还有没有被预订的座位,然后选择座位的等级,填写旅客的详细信息之后就可进行网上预订机票。
取票通知:该项功能只有旅行社和机场管理员有权力进行操作,在机票预订功能成功完成之后,系统会自动给浏览器端发送一条取票信息以及所需缴纳的费用。
旅行社可以利用特定设备将该取票信息打印出来,这就是取票通知。
退订机票:该功能只有旅行社和机场管理员有权力操作,利用身份证号和对应的机票号就可以查询到机票信息,然后就可以退订机票。
延误取票时间的处理:如果旅客延误了取票时间,但是离上飞机还有一段时间则在通知旅客来取,否则作废处理。
取消航班的处理:通过航班号和航班日期查询到航班信息后,取消航班就将该航班从数据库中删除,并及时通知旅客。
旅客临时更改班次的处理:首先查询更改的班次的票的剩余情况,根据旅客的需求选择班次。
关键词:机票预订,取票,更改班次,退票处理。
第一章需求分析 (6)机票预定系统的总目标: (6)旅客订票流程图: (6)功能需求: (7)第二章系统设计 (9)层次结构 (10)接口设计(人机界面设计) (12)第三章系统建模 (12)参与者列表 (12)系统模块图 (15)软件设计界面的截图 (18)飞机机票票的查询页面 (18)两地之间的飞机班次 (19)飞机机票的退订 (19)参考文献 (20)第一章需求分析机票预定系统的总目标:随着全球进入信息化时代,航空公司为了适应当前越来越激烈的竞争,增强公司的信息化程度,提高公司的售票管理的效率,就建立起了相应的航空预订票系统,成功实现提高了航空系统的售票效率和管理水平在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。
1 引言............................................................................................................................. -2 -1.1 编写目的 ............................................................................................................ - 2 -1 。
2 背景.................................................................................................................. - 2 -1.3 定义 .................................................................................................................... - 2 -1.4 参考资料 ............................................................................................................ - 2 -2 总体设计 (3)2 。
1 需求规定 (3)2.2 运行环境 (3)2.3 基本设计概念和处理流程 ................................................................................... - 3 -2 。
4 结构 (5)2 。
5 功能需求与程序的关系 (6)2.6 人工处理过程 (7)2 。
1.1 编写目的 (2)1.2背景 (2)1。
3定义 (2)1.4 参考资料 (3)...................................................................................................................................................................................................3 。
1 程序描述 (4)3.2功能 (5)3 。
3 性能 (5)3。
4 输人项 (5)3.5 输出项 (6)3 。
6 算法 (6)3。
7 流程逻辑 (7)3.8接口 (8)3.9 存储分配 (9)3 。
10 注释设计 (9)3.11 限制条件 (9)3.12 测试计划 (9)3.13 尚未解决的问题 (9)...........................................................................................4 。
1 程序描述 (9)4.2功能 (10)4.3 性能 (10)4 。
4 输人项 (10)4 。
5 输出项 (10)4.6算法 (11)4.7 流程逻辑 (11)4.8 接口 (12)4.9 存储分配 (13)4 。
10 注释设计 (13)4 。
11 限制条件 (13)4 。
12 测试计划 (13)4 。
13 尚未解决的问题 (13)在本机票预定系统项目的前一阶段,也就是概要设计阶段中,已经将系统用户对本系统的子模块功能做了详细的阐述,这些模块功能具体设计将在本报告中详尽得以叙述及阐明.本阶段已在系统的概要设计的基础上,对机票预定系统做详细设计。
主要解决了实现该系统程序模块具体设计问题。
包括确定算法,数据结构,模块接口的使用,数据库的动态操作以及界面设计等。
一绪论11.1 课题背景及现状 (1)1.2 开发工具介绍 (1)二需求分析 (2)(一)航空售票系统的数据需求(二)数据字典(三) 主要数据流图三概要设计 (6)四逻辑设计 (7)五详细设计 (7)(一)基本查询语句(二) 程序流图中某些加工实现采用IPO图的方式描述(三)数据库的逻辑结构设计六测试结果 (12)七小结 (17)参考文献 (18)附录(主要源代码) (19)一绪论1.1 课题背景及现状随着旅游业的逐渐的成熟发达,航空客运量大幅度的提高,国内国际的旅游航班的增加,这些都对航空的信息管理系统提出了更高的要求,所以要不断的完善更新航空售票系统,提高航空售票系统的工作效率。
航空公司为方便旅客,需开发一个订票系统。
系统的操作者是有登录密码和用户名的售票员。
系统要实现的基本功能是航班的调整,售票,订票,取票,退票,乘客信息的管理,乘客购票的统计;而系统在以后扩展时还可以实现的功能有:对机组工作人员的管理,预定机票的送票情况管理等。
此系统的开发由我们分模块完成,而我所负责的模块是实现系统的航班调整,售票,订票,退票,取票,航班查询功能。
举一个旅客订票的例子:预定机票的旅客信息,包括姓名、性别、地址、证件号、目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。
旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
航空售票系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点1.2 开发工具介绍本次课程设计应用的开发工具主要是用java语言和SQL Server 2005 。
C++课程设计报告飞机订票管理系统一、设计背景和目的随着航空业的不断发展,飞机订票系统逐渐成为人们旅游和出行的必须工具。
为了提高飞机订票系统的效率和便捷性,开发一款好用的飞机订票管理系统显得尤为重要。
本次课程设计即以C++为编程语言,设计一款简单实用的飞机订票管理系统。
二、系统功能1、用户注册/登录用户初次使用系统需要先进行注册,填写相关信息,包括用户名、密码等,并进行确认。
之后系统将给用户分配一个专用ID。
已经注册的用户可以通过输入用户名和密码进行登录。
2、航班查询用户登录系统后,可以通过系统查询到航班信息,并可以进行筛选和排序,便于用户选择最优航班。
3、机票订购用户选择航班后,可以进行机票订购操作。
订票后,系统将保留座位,并且将相应信息存入系统数据库。
机票订购成功后,系统将显示用户订票的详细信息。
4、支付系统用户在订票后需要进行支付操作,支付成功后机票订购成功。
5、订单管理系统管理员可以对用户订票信息进行管理,并且可以对订单信息进行统计和分析,改善系统运营效率。
三、技术框架和编程实现本系统采用C++语言进行编写,使用了面向对象的编程思想,包括以下类:1、User类该类实现了用户的注册和登录功能。
其中包含属性有用户名、密码等,包含方法有注册、登录等。
2、Flight类该类实现了航班信息的查询和排序功能。
其中包含属性有航班号、起飞时间、到达时间等,包含方法有查询、排序等。
3、Ticket类该类实现了机票订购和支付功能。
其中包含属性有座位号、价格等,包含方法有订购、支付等。
4、Order类该类实现了订单管理和统计功能。
其中包含属性有订单号、用户ID、航班号和票价等,包含方法有查询、删除、统计等。
以上四个类的成员变量和成员函数实现都需要在不同的源文件里面实现,最后通过主函数进行调用和启动。
四、系统运行和测试本系统可以通过Visual Studio等C++编程环境进行调试和运行。
在本地测试中,我们可以输入不同的用户名和密码,可以查询不同的航班,并进行筛选和排序,可以订购机票并支付,也可以通过系统管理员身份对用户订单进行管理和统计。
飞机售票系统课程设计报告一、课程目标知识目标:1. 让学生理解飞机售票系统的基本概念、功能及工作原理。
2. 让学生掌握飞机售票系统中涉及的航空公司、航班、座位、票价等基本知识点。
3. 让学生了解飞机售票系统在实际应用中的数据处理和存储方法。
技能目标:1. 培养学生运用所学知识分析和设计飞机售票系统的能力。
2. 培养学生使用编程语言或工具实现飞机售票系统基本功能的能力。
3. 培养学生通过实际操作,掌握飞机售票系统的使用方法。
情感态度价值观目标:1. 培养学生对计算机科学和技术领域的兴趣,激发他们探索航空业信息化的热情。
2. 培养学生具备团队协作精神,学会与他人共同解决问题。
3. 培养学生关注社会发展,认识到信息技术在航空业中的重要作用。
课程性质分析:本课程为信息技术或计算机科学与技术相关课程的实践环节,旨在让学生将所学理论知识运用到实际项目中,提高他们的实践能力。
学生特点分析:学生为高中年级学生,具备一定的计算机操作和编程基础,对新鲜事物充满好奇心,善于团队合作。
教学要求:1. 结合课本知识,注重理论与实践相结合,提高学生的动手能力。
2. 注重培养学生的创新意识和解决问题的能力。
3. 强调团队协作,提高学生的沟通与协作能力。
二、教学内容1. 基本概念:介绍飞机售票系统的定义、功能、发展历程及在航空业中的重要性。
关联教材章节:第一章 计算机售票系统概述2. 系统架构:讲解飞机售票系统的整体架构,包括客户端、服务器端、数据库等组成部分。
关联教材章节:第二章 售票系统架构与设计3. 数据库设计:学习飞机售票系统中涉及的表结构设计,如航班信息、座位信息、旅客信息等。
关联教材章节:第三章 数据库设计4. 功能模块:详细介绍飞机售票系统的各个功能模块,如查询航班、预订机票、支付、退改签等。
关联教材章节:第四章 售票系统功能模块设计5. 编程实践:指导学生使用编程语言(如Python、Java等)或工具(如Visual Basic、Access等)实现飞机售票系统的基本功能。
摘要之欧侯瑞魂创作飞机在现代的生活中饰演者非常重要的角色.它能够快速的把人们送到自己想要去的处所,既快速,又方便.所以现在坐飞机时很普遍的.可是都到机场去买票浪费时间,因此,航空订票系统应运而生.有了航空订票系统,用户可以在该系统进行飞机票的查询,订票,退票等把持.方便了年夜家关键词航空订票系统、查询、订票、退票目录摘要 (I)1 需求分析 (1)1.1 需求概述 (1)1.2 需求环境 (1)1.3 功能描述 (1)2 概要设计 (2)2.1 法式功能模块 (2)2.2 法式流程图 (2)2.3 课程设计的思想 (2)3 详细设计 (3)3.1 法式初始化 (3)3.1.1代码功能 (3)3.1.2 功能实现代码 (3)3.2 查询航班信息 (5)3.2.1代码功能 (5)3.2.3 功能实现代码 (6)3.3 订票模块 (7)3.3.1 代码功能 (7)3.3.2 功能实现代码 (7)4 测试与运行 (13)5结束语 (16)6 参考文献 (17)7附录 (18)1 需求分析1.1 需求概述航线管理.每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量客户管理.有关订票的客房信息(包括姓名、订票量、舱位品级(1,2和3)以及等替补的客房名单(包括姓名、所需标量).系统实现主要把持把持和功能.系统实现的主要把持规程和功能如下:①查询航线.根据旅客提出的终点站名输出下列信息:航班号、飞机号、飞行日期、余标额.②承办订票业务.根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户规画订票手续,输出座位号;若已满或者余票少于订票额,则需要重新询问客户要求;若需要,可等待排队侯补③承办退票业务.根据客户提供的情况(日期、航班),为客户输退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额满足该客户的要求,则为其订票手续,否则依次询问其他排队候补的客户.1.2 需求环境本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:①硬件要求:一台计算机.②软件配置:WINDOWS7/V.1.3 功能描述本次课程设计是航空订票系统主要是由查询航班信息,订票还有退票三年夜主要功能.除此之外,还有系统的界面等等.2.1 法式功能模块由需求分析知,本次课程设计是航空订票系统其主要由三年夜模块构成,即查询模块(这部份由我负责),订票系统模块和退票系统模块构成.2.2 法式流程图该法式开始运行后进如航空订票系统用户可以进行航班信息的查询,订票和退票把持.2.3 课程设计的思想由需求分析知道需要实现几个功能界说了两个结构体.这两个结构体分别用来暗示顾客信息和航班信息.有结构体可以知道一些基本信息,比如顾客的姓名,定的机票和航班的时间等等信息.使得实验代码的可读性年夜年夜增强.3.1 法式初始化代码功能这一块还是由我负责.我初始化了五个航班的基本信息.在初始化法式中,主要是航班的基本信息.比如航班号,动身时间和剩下的机票数目等等基本信息.通过运用指针和链表来进行对初始化信息的书写.在初始化时将三个重点的信息分别初始化为:①广州航班号005 飞机号PZH113 机票数120②天津航班号004 飞机号PZH121 机票数120③北京航班号003 飞机号PZH133 机票数120④上海航班号002 飞机号PZH132 机票数120⑤成都航班号001 飞机号PZH122 机票数1203.1.2 功能实现代码void InitLine() //初始化航线信息{airline *p,*q; //航线L=(airline *)malloc(sizeof(airline));L->booked=NULL;L->wait=NULL;L->next=NULL;strcpy(L->end_addr,"00000000"); //终点站strcpy(L->line_num,"000"); //航班号strcpy(L->plant_num,"0000000"); //飞机号L->day=L->left=L->total=0;q=L;p=(airline *)malloc(sizeof(airline));//广州p->booked=NULL;p->wait=NULL;strcpy(p->end_addr,"广州");strcpy(p->line_num,"005");strcpy(p->plant_num,"PZH113");p->day=5;p->left=120;p->total=120;p->next=q->next;q->next=p;p=(airline *)malloc(sizeof(airline));//天津p->booked=NULL;p->wait=NULL;strcpy(p->end_addr,"天津");strcpy(p->line_num,"004");strcpy(p->plant_num,"PZH121");p->day=4;p->left=120;p->total=120;p->next=q->next;q->next=p;p=(airline *)malloc(sizeof(airline));//北京p->booked=NULL;p->wait=NULL;strcpy(p->end_addr,"北京");strcpy(p->line_num,"003");strcpy(p->plant_num,"PZH133");p->day=1;p->left=120;p->total=120;p->next=q->next;q->next=p;p=(airline *)malloc(sizeof(airline));//上海p->booked=NULL;p->wait=NULL;strcpy(p->end_addr,"上海");strcpy(p->line_num,"002");strcpy(p->plant_num,"PZH132");p->day=2;p->left=120;p->total=120;p->next=q->next;q->next=p;p=(airline *)malloc(sizeof(airline));//成都p->booked=NULL;p->wait=NULL;strcpy(p->end_addr,"成都");strcpy(p->line_num,"001");strcpy(p->plant_num,"PZH122");p->day=3;p->left=120;p->total=120;p->next=q->next;q->next=p;}3.2 查询航班信息代码功能此模块主要由我负责,在此模块我实现了查询航班的功能.当进入查询功能时,通过输入数字用户可以查询航班的基本信息,比如目的地,剩下的机票数目,动身的时间等等基本信息.如果输入的数字在界面中没有显示则会提示用户没有这次航班.在这个模块我使用了个switch语句来实现对查询方式的选择.通过判断输入的数字进入到相对应的查询方式.如果输入的信息有误的话,系统将会提示用户没有这次航班,需要重新输入.在该模块用户可以进行查询功能.用户根据提示可以依照航班号、飞机号、飞行日期和航班重点来查询航班的基本信息.这些基本信息包括了飞行航班号、飞机号、剩余票量和惩罚日期等等.在该模块用户必需根据提示进行输入,否则系统会提示输入有误,需要重新输入.3.2.3 功能实现代码void search() //航班查询系统{int i;int flag=0;airline *p;PR("请输入查询航班的方式:\n");PR("航班号---->1\n");PR("飞机号---->2\n");PR("飞行日期-->3\n");PR("航班终点-->4\n");SC("%d",&i);for(;!flag;)switch(i) //switch语句来进行航班的查询方式{case 1: p=search_line();flag=1;break;case 2: p=search_plant();flag=1;break;case 3: p=search_day();flag=1;break;case 4: p=search_addr();flag-=1;break;default:PR("把持毛病,请重新输入\n");break;}if(p){PR("终点站航班号飞机号飞行周日余票量\n");PR("%-20s%10s%10s%8d%8d\n",p->end_addr,p->line_num,p->plant_num,p->day,p->left);PR("是否订票(确定请按1)");SC("%d",&i);if(i==1)book();}elsePR("没有该航班\n");}3.3 订票模块3.3.1 代码功能在此模块可以根据提示可以从航班号,飞行日期和终点站来进行订票.如果订票时余票缺乏所需要的票的数目时就可以进行排队购票选择.3.3.2 功能实现代码void book() //订票系统{int i;int flag=0;airline *p;customer *cst,*c;PR("请输入查询航班的方式:\n");PR("航班号--->1\n");PR("终点站--->2\n");PR("飞行日期->3\n");for(;!flag;){SC("%d",&i);switch(i) //运用一个switch语句进行航班查询{case 1: p=search_line();flag=1;break;case 2: p=search_addr();flag=1;break;case 3: p=search_day();flag=1;break;default:PR("把持毛病,请重新输入\n");break;}}if(p){PR("终点站航班号飞机号飞行周日余票量\n");PR("%-20s%10s%10s%8d%8d\n",p->end_addr,p->line_num,p->plant_num,p->day,p->left);cst=(customer *)malloc(sizeof(customer));PR("请输入订票数量:");SC("%d",&cst->num);PR("请输入舱位品级(1/2/3)");SC("%d",&cst->level);PR("请输入您的名字");SC("%s",cst->name);if(cst->num<=p->left){cst->next=p->booked;p->booked=cst;p->left=p->left-cst->num;PR("订票胜利,座位号为%d~%d\n",p->total-p->left-cst->num+1,p->total-p->left);}else//当需要的飘得数量年夜于剩余的票数的时候进行询问是否进行排队购票{PR("余票缺乏,是否排队等待\n是(y)\n否(n)\n");SC("%d",&flag);if(flag){if(!p->wait){cst->next=p->wait;p->wait=cst;}else{c=p->wait;for(;c->next;c=c->next);cst->next=c->next;c->next=cst;}}}}elsePR("没有该航班\n");guide();}排队订票时的排队订票系统:void waited(airline *p) //排队订票系统{int flag;customer *q,*q0,*h;if(!p->wait) return;q=(customer *)malloc(sizeof(customer));q->level=0;q->num=123;strcpy(q->name,"00000");q->next=p->wait;h=q;for(;p->left>0&&q->next;){if(q->next->num<p->left){PR("%s,您正在排队定%d张票,现有票,是否定\n是(y)\n 否(n)\n",q->next->name,q->next->num);SC("%d",&flag);if(flag){q0=q->next;q->next=q->next->next;q0->next=p->booked;p->booked=q0;p->left=p->left-q0->num;PR("排队订票胜利\n\n");}elseq=q->next;}elseq=q->next;}p->wait=h->next;}在此模块,用户可以根据系统的提示进行退票把持.当进行退票把持时需要进行信息的核对,如果正确,打印出信息,再询问是否退票.void refund() //退票系统{int flag;char a[20];airline *p;customer *c,*c1;p=search_line();c=p->booked;if(!p){PR("没有该航班\n\n");guide();return;}PR("请输入您的姓名");SC("%s",a);if(!p->booked->name) //进行信息的查找判断是否有用户的信息{PR("对不起,没有找到您的信息\n\n");guide();return ;}if(!strcmp(a,p->booked->name)) //核对完信息后输出要退票乘客的信息{PR("退票信息\n姓名/终点站/票数\n%s/%s/%d\n",p->booked->name,p->end_addr,p->booked->num);PR("确认要退票\n是(y)\n否(n)\n");scanf("%d",&flag);if(flag){p->booked=p->booked->next;p->left=p->left+c->num;free(c);PR("退票胜利\n\n");waited(p);guide();}}else{for(;c->next;c=c->next)if(!strcmp(a,c->next->name))break;if(!c->next){PR("对不起,没有找到您的信息\n\n");guide();return ;}else{PR("退票信息\n姓名/终点站/票数\n%s/%s/%d\n",c->next->name,p->end_addr,c->next->num);PR("确认要退票?\n是(y)\n否(n)\n");//询问是否退票scanf("%d",&flag);if(flag){c1=c->next;c->next=c->next->next;p->left=p->left+c1->num;free(c1);PR("退票胜利\n\n");waited(p);guide();}}}}以上三个模块是改法式最主要的功能实现的代码.初度之外还有部份其他显示模块.4 测试与运行由需求分析可知该法式运行后实现功能后的结果.此处是功能界面,用户可以依照提示进行把持进行查询功能时:进行查询模块式会显示出查询方式,依照查询方式可以准确的获得航班的信息进行订票模块时:在此处模块,订票可以根据提示进行购票,可以订多张票,输入舱位的品级和订票人名字排队订票系统:如果该航班剩余的票量小于所要购买的数量,则会提示是否进行排队购票.退票系统:在该模块,进行退票把持时,系统会进行信息的核对,如果正确,将会显示客户的信息.然后提示是否退票.5 结束语此次数据结构课程设计为航空订票系统.在写法式的时候还是遇到了很多的问题.有些功能怎么也实现不了.经过和同学的探讨还有上网查找资料,最后终于克服了这些问题,胜利的运行出了法式.通过这次学习,使我对编写法式的兴趣更年夜了.除此之外,此次课程设计帮我们熟练地运用所学习的知识,还让我们熟练的去融合他们,写出一个全新的法式来.在这次课程设计中要衷心的感谢老师对我们的帮手,使得我们对所学知识的熟练运用.总而言之,这次的课程设计既有趣又训练了我们对知识的运用.6参考文献[1]阮宏一,鲁静《数据结构课程设计C/C++描述》.电子工业出书社[3]袁蔚敏.《数据结构》清华年夜学出书社7 源代码源代码:#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>#define PR printf#define SC scanftypedef struct customer //客户信息{char name[20]; //客户姓名int num; //订票量int level; //舱位品级customer *next;}customer,*Lcustomer;typedef struct airline //航线信息{char end_addr[20]; //航线终点char line_num[5]; //航班号char plant_num[8]; //飞机号int day; //飞行日期int total; //定员int left; //剩余票数customer *booked; //已定客户信息customer *wait; //排队等待订票信息airline *next;}airline,*Lairline;airline *L; //将航班信息界说为全局变量,减少参数传递Lairline search_line() //按航班号查找航班{char a[5];airline *p;p=L->next;PR("请输入航班号");SC("%s",a);for(;p;p=p->next)if(!strcmp(a,p->line_num)) break;return p;}Lairline search_plant() //按飞机号查找航班{char a[8];airline *p;p=L->next;PR("请输入飞机号");SC("%s",a);for(;p;p=p->next)if(!strcmp(a,p->plant_num)) break;return p;}Lairline search_day() //按飞行日期查找航班{int a;airline *p;p=L->next;PR("请输入飞行日期");SC("%d",&a);for(;p;p=p->next)if(a==p->day) break;return p;}Lairline search_addr() //按航班终点查找航班{char a[20];airline *p;p=L->next;PR("请输入航班终点");SC("%s",a);for(;p;p=p->next)if(!strcmp(a,p->end_addr)) break;return p;}void guide() //主菜单界面{PR(" ------------航空订票客服系统----------\n");PR("==============================================\n");PR("\t\t显示所有航线==> 1\n");PR("\t\t查询航线信息==> 2\n");PR("\t\t订票业务 ==> 3\n");PR("\t\t退票业务 ==> 4\n");PR("\t\t退出系统 ==> 0\n");PR("==============================================\n");PR("\t\t清除屏幕信息==> 9\n\n");PR("请按上面指引把持:\t");}void print_customer(airline *p) //显示航班客户信息{customer *c;if(p->booked){c=p->booked;PR("已定票客户信息\n票数\t/\t客户姓名\n");for(;c;c=c->next)PR("%5d\t/\t%s\n",c->num,c->name);PR("\n\n");}elsePR("暂时没有客户订票\n\n");if(p->wait){c=p->wait;PR("排队订票客户信息\n票数\t/\t客户姓名\n");for(;c;c=c->next)PR("%5d\t/\t%s\n",c->num,c->name);PR("\n\n");}elsePR("暂时没有客户排队订票\n\n");}void book() //订票系统{int i;int flag=0;airline *p;customer *cst,*c;PR("请输入查询航班的方式:\n");PR("航班号--->1\n");PR("终点站--->2\n");PR("飞行日期->3\n");for(;!flag;){SC("%d",&i);switch(i){case 1: p=search_line();flag=1;break;case 2: p=search_addr();flag=1;break;case 3: p=search_day();flag=1;break;default:PR("把持毛病,请重新输入\n");break;}}if(p){PR("终点站航班号飞机号飞行周日余票量\n");PR("%-20s%10s%10s%8d%8d\n",p->end_addr,p->line_num,p->plant_num,p->day,p->left);cst=(customer *)malloc(sizeof(customer));PR("请输入订票数量:");SC("%d",&cst->num);PR("请输入舱位品级(1/2/3)");SC("%d",&cst->level);PR("请输入您的名字");SC("%s",cst->name);if(cst->num<=p->left){cst->next=p->booked;p->booked=cst;p->left=p->left-cst->num;PR("订票胜利,座位号为%d~%d\n",p->total-p->left-cst->num+1,p->total-p->left);}else{PR("余票缺乏,是否排队等待?\n是(y)\n否(n)\n");SC("%d",&flag);if(flag){if(!p->wait){cst->next=p->wait;p->wait=cst;}else{c=p->wait;for(;c->next;c=c->next);cst->next=c->next;c->next=cst;}}}}elsePR("没有该航班\n");guide();}void waited(airline *p) //排队订票系统{int flag;customer *q,*q0,*h;if(!p->wait) return;q=(customer *)malloc(sizeof(customer));q->level=0;q->num=123;strcpy(q->name,"00000");q->next=p->wait;h=q;for(;p->left>0&&q->next;){if(q->next->num<p->left){PR("%s,您正在排队定%d张票,现有票,是否定\n是(y)\n 否(n)\n",q->next->name,q->next->num);SC("%d",&flag);if(flag){q0=q->next;q->next=q->next->next;q0->next=p->booked;p->booked=q0;p->left=p->left-q0->num;PR("排队订票胜利\n\n");}elseq=q->next;}elseq=q->next;}p->wait=h->next;}void refund() //退票系统{int flag;char a[20];airline *p;customer *c,*c1;p=search_line();c=p->booked;if(!p){PR("没有该航班\n\n");guide();return;}PR("请输入您的姓名");SC("%s",a);if(!p->booked->name){PR("对不起,没有找到您的信息\n\n");guide();return ;}if(!strcmp(a,p->booked->name)){PR("退票信息\n姓名/终点站/票数\n%s/%s/%d\n",p->booked->name,p->end_addr,p->booked->num);PR("确认要退票?\n是(y)\n否(n)\n");scanf("%d",&flag);if(flag){p->booked=p->booked->next;p->left=p->left+c->num;free(c);PR("退票胜利\n\n");waited(p);guide();}}else{for(;c->next;c=c->next)if(!strcmp(a,c->next->name))break;if(!c->next){PR("对不起,没有找到您的信息\n\n");guide();return ;}else{PR("退票信息\n姓名/终点站/票数\n%s/%s/%d\n",c->next->name,p->end_addr,c->next->num);PR("确认要退票?\n是(y)\n否(n)\n");scanf("%d",&flag);if(flag){c1=c->next;c->next=c->next->next;p->left=p->left+c1->num;free(c1);PR("退票胜利\n\n");waited(p);guide();}}}}void search() //航班查询系统{int i;int flag=0;airline *p;PR("请输入查询航班的方式:\n");PR("航班号---->1\n");PR("飞机号---->2\n");PR("飞行日期-->3\n");PR("航班终点-->4\n");SC("%d",&i);for(;!flag;)switch(i){case 1: p=search_line();flag=1;break;case 2: p=search_plant();flag=1;break;case 3: p=search_day();flag=1;break;case 4: p=search_addr();flag-=1;break;default:PR("把持毛病,请重新输入\n");break;}if(p){PR("终点站航班号飞机号飞行周日余票量\n");PR("%-20s%10s%10s%8d%8d\n",p->end_addr,p->line_num,p->plant_num,p->day,p->left);PR("是否订票(确定请按1)");SC("%d",&i);if(i==1)book();}elsePR("没有该航班\n");}void InitLine() //初始化航线信息{airline *p,*q;L=(airline *)malloc(sizeof(airline));L->booked=NULL;L->wait=NULL;L->next=NULL;strcpy(L->end_addr,"00000000");strcpy(L->line_num,"000");strcpy(L->plant_num,"0000000");L->day=L->left=L->total=0;q=L;p=(airline *)malloc(sizeof(airline));p->booked=NULL;p->wait=NULL;strcpy(p->end_addr,"广州");strcpy(p->line_num,"005");strcpy(p->plant_num,"PZH113");p->day=5;p->left=120;p->total=120;p->next=q->next;q->next=p;p=(airline *)malloc(sizeof(airline));p->booked=NULL;p->wait=NULL;strcpy(p->end_addr,"天津");strcpy(p->line_num,"004");strcpy(p->plant_num,"PZH121");p->day=4;p->left=120;p->total=120;p->next=q->next;q->next=p;p=(airline *)malloc(sizeof(airline));p->booked=NULL;p->wait=NULL;strcpy(p->end_addr,"北京");strcpy(p->line_num,"003");strcpy(p->plant_num,"PZH132");p->day=1;p->left=120;p->total=120;p->next=q->next;q->next=p;p=(airline *)malloc(sizeof(airline));p->booked=NULL;p->wait=NULL;strcpy(p->end_addr,"上海");strcpy(p->line_num,"002");strcpy(p->plant_num,"PZH133");p->day=2;p->left=120;p->total=120;p->next=q->next;q->next=p;p=(airline *)malloc(sizeof(airline));p->booked=NULL;p->wait=NULL;strcpy(p->end_addr,"成都");strcpy(p->line_num,"001");strcpy(p->plant_num,"PZH122");p->day=3;p->left=120;p->total=120;p->next=q->next;q->next=p;}void printline() //显示所有航班信息{int flag;airline *p;p=L->next;PR("终点站航班号飞机号飞行周日余票量\n");for(;p;p=p->next){PR("%-20s%10s%10s%8d%8d\n",p->end_addr,p->line_num,p->plant_num,p->day,p->left);}PR("按1进入订票系统,按0返回主菜单\n");SC("%d",&flag);if(flag)book();else guide();}void main() //主函数{int flag=1;guide();InitLine();do{switch(getchar()){case '1':printline();break;case '2':search();break;case '3':book();break;case '4':refund();break;case '9':system("cls");guide();break;case '0':flag=0;break;}}while(flag);}。
飞机订票系统策划书3篇篇一飞机订票系统策划书一、引言二、系统目标1. 提供在线机票预订功能,方便用户随时随地预订机票。
2. 整合机票信息,提供实时的航班查询、预订和票价比较功能。
3. 支持多种支付方式,确保安全、便捷的支付流程。
4. 提供用户管理功能,方便用户查询订单、修改个人信息等。
5. 具备数据分析和报表功能,帮助航空公司进行市场分析和决策。
三、系统功能模块1. 用户界面模块机票搜索和预订:用户可以通过输入出发地、目的地、出发日期等信息搜索机票,并进行预订。
个人中心:用户可以查询订单、修改个人信息、管理常用联系人等。
客服中心:提供在线客服和常见问题解答,方便用户咨询。
2. 后台管理模块航班管理:航空公司可以管理航班信息、舱位设置、票价调整等。
订单管理:管理员可以查询、处理订单,报表。
用户管理:管理员可以管理用户信息,设置用户权限。
数据分析:系统可以分析用户行为、预订趋势等数据,为航空公司提供决策支持。
3. 支付模块支持多种支付方式,如在线支付、银行转账、信用卡支付等。
与第三方支付平台集成,确保支付安全可靠。
提供支付记录查询功能,方便用户查询支付状态。
4. 数据整合模块与航空公司的票务系统进行数据对接,实时获取航班信息和票价。
整合其他数据源,提供更多的机票信息和推荐。
四、技术选型1. 前端技术:采用 HTML、CSS、JavaScript 等技术,构建用户界面。
2. 后端技术:选择适合的编程语言和框架,如 Python、Django 等。
3. 数据库:使用关系型数据库如 MySQL 或 NoSQL 数据库如 MongoDB 存储数据。
4. 支付接口:与第三方支付平台进行集成。
五、项目时间表1. 需求分析与设计:[时间区间 1]2. 系统开发:[时间区间 2]3. 测试与修复:[时间区间 3]4. 上线与维护:[时间区间 4]六、预算1. 人力成本:[具体金额]2. 技术设备采购:[具体金额]3. 软件开发费用:[具体金额]4. 测试与维护费用:[具体金额]5. 其他费用:[具体金额]总预算:[具体金额]七、风险评估与应对措施1. 技术风险:关注技术发展趋势,及时解决技术难题。
C语言课程设计报告飞机订票系统摘要本文是关于C语言课程设计报告飞机订票系统,它具有灵活的菜单,可以让用户轻松查看有关航班信息的详细信息,并用于购买操作。
本文旨在概述程序的全部运行流程,运用相关编程技术来实现订票系统。
关键词:C 语言课程设计,飞机订票系统,编程技术1 引言随着科技的不断发展,传统的人工订票系统已经不能满足人们的复杂需求,订票系统需要采用新技术来改进,以适应现代用户的需求。
为了建立一个高效的订票系统,我们开发了一个飞机订票系统。
它具有基于菜单式界面的灵活性,可以有效地实现飞机航班信息的查询,购票和航班信息的管理。
本报告着重介绍了构筑飞机订票系统的过程,旨在介绍编程技术以及每个模块的函数、功能实现,并概述程序的全部运行流程。
2 技术框架编写本程序的主要语言是C,采用层次功能模块结构设计,分为用户界面,数据管理,查询服务,支付服务和关系维护四个主要模块。
(1)用户界面用户界面模块主要实现功能是提供用户访问的菜单界面,用户可以在输入信息后,访问系统并根据输入信息获取反馈,进行下一步操作。
(2)数据管理数据管理包含数据结构和文件管理模块,它用来存储和管理航班信息、乘客信息等有关数据,数据在使用后可以及时写入文件。
(3)查询服务查询服务模块提供用户查询航班信息所必需的功能,根据用户输入的查询条件,提供精确的查询结果。
(4)支付服务支付服务模块用来实现订票系统和外围支付系统或服务的接口,以进行订票支付操作,以保证系统订票的安全性。
(5)关系维护关系维护模块主要负责订票系统的关系维护,保证数据的一致性,以及相联的航班和乘客信息之间的一致性。
3 设计实现(1)用户界面模块用户界面模块主要是用户与系统的交互界面,用C语言的标准输入输出实现,通过“while-switch”语句实现对不同功能的跳转。
(2)数据管理模块数据管理模块采用数组和二维字符串实现,能够有效地存储和进行订票,查询,修改和删除数据。
机票预订系统实验报告姓名:潘凯学号:19专业:通信工程一、目的用面向对象分析、设计方法来分析机票系统。
二、主要内容及问题需求分析:为方便旅客,某航空公司拟开发一个机票预订系统。
旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。
功能需求该系统主要分为五大功能:系统管理、新增、修改、查询和系统维护。
机票预定系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。
三、使用环境操作系统:Windows XP建模工具:StarUML、Microsoft Visio四、设计内容1-1、用例模型图用例模型图说明:机票预订系统主要使用的对象是旅行社管理员。
管理员根据顾客填写的目的地和时间信息,将其输入系统,系统根据相关信息进行处理,则系统其中的一个功能即用例就是接收顾客信息。
顾客需要用取票单去航空公司取票,系统由管理员输入的信息来识别,则系统的另一个功能即用例就是预定管理员输入信息符合的票。
1-2、类图类图说明:为此系统定义了4个类,分别是顾客类,管理员类,航空公司类,机票类。
各个类对应的属性和操作方法在图中已表示出,目前应该还是有很多不完善的地方,在后期再加以修改。
1-3、对象图对象图说明:对象图是根据设置的类图而设置的。
一个对象就是类的一个具体实例,本例中设置了一个custom的取票操作,详细信息在图中已经设置,根据顾客的相关信息和操作,系统会调用相应的类的对象来处理,在本例中不一定会全部都涉及。
1-4、顺序图顺序图说明:顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。
青岛工学院C语言课程设计报告书
题目飞机票管理系统
学生姓名[张倩] 宋何会葛会晓王慧婷指导教师姜琴
学院青岛工学院
专业班级通信工程2010级2班
组内分工
目录
1 前言 (1)
2 需求分析 (1)
3 模块设计图 (2)
4 NS流程图清单 (4)
5 存储结构及函数说明 (13)
6 课程设计结果 (15)
7 实践心得体会 (22)
1 前言
该章主要描述课程设计的目的,以及对题目本身的理解。
飞机管理系统
自从计算机问世以来,随着软硬件技术的不断成熟,它在人们生活中得到了日益广泛的应用.飞机票管理工作不仅工作量大,而且时效性强。
过去,多采用
人工管理,效率和透明度较差,并且也容易出错;随着计算机技术的发展和信息
化时代的到来,使用计算机和专门的管理软件进行管理已成为大势所趋,它为飞
机票工作节约了大量的人力和物力,也大大减轻了工作人员的工作量。
结合飞机票管理的要求,对程序设计进行了较深入的学习和应用,主要完成对飞机售票管理系统的需求分析、功能模块划分,利用 C语言开发工具设计出
应用程序。
用来方便客户的各种需求,从而达到方便客户的目的!
2 需求分析
系统功能需求:本课题要实现的是飞机售票系统,在设计该系统时,应尽可能的
贴近现实,便于使用人员操作。
此售票系统具有如下功能以及实现模块!
能够添加客户信息和航班信息并排序
能够查询和显示航班信息
客户能退订票并保留客户资料
能删除客户信息和航班信息
✧基本信息模块
基本信息模块包括的主要功能模块:
●添加与修改航班信息
●添加与修改客户信息
●信息数据查询和排序
✧基本业务模块
基本业务模块包含的功能:
●客户订票
●客户退票
●删除航班信息
●删除客户信息
✧信息管理模块
信息管理模块的功能:
●客户信息管理
●航班信息管理
●客户信息显示
●航班信息显示
✧基本功能模块
基本功能模块的功能:
●进入界面
●功能判断
●数据转换
●程序的主干与退出
3 模块设计图
根据第二章中对系统的需求分析,绘制模块图,并对组内分工情况加以说明。
模块设计图:
包括获取该飞机剩余票数,
判断航班时间格式,判断有无重复
航班,复制客户与航班信息,按
不同方式查询航班与客户信息
按不同方式进行信息排序
包括删除单个客户信息
删除全部客户或航班信息
定退票的票数处理
主要的屏幕显示
各类信息的输出
字符串转换为数字
数字字符化为整型数
4 NS流程图清单
根据第三章的模块图,绘制每一个模块的NS流程图,如果在其中要用到某一特殊算法,如排序算法等,要详细说明。
1、按照顺序为:功能判断函数,欢迎进入,删除字符中的空格,字符转化为
整型数,退出系统,主菜单,客户信息查询,文件信息转存,
2、按照顺序依次为地点查询,航班号查询,类型信息排序,录入航班信息,修改航班信息
3、按照顺序依次为客户信息管理,显示所有航班信息,航班信息管理显示所有客户信息,只显示有票航班信息
4、按照顺序依次为,订票数量,确认订票数量,删除单个航班,删除客户信息,删除所有信息,退票。
5 存储结构及函数说明
在本章中主要描述系统中主要信息的存储结构,对于各模块中通用的信息尽量采用同一存储结构,并将共同的存储结构保存成头文件,以便于各模块调用。
对于各模块出现的函数要加以详细说明,特别是函数功能,其中包括函数形参和返回值代表的含义。
以二进制文件为存储方式,链表为功能辅助
1、
void LoadInfo();//载入信息
void InputInfo();//录入新航班信息
void Alter_autobus_message();//修改航班信息
void FindAutobus();//查找航班
void Compositor();//航班进行排序
void Compositor_Num();//航班进行排序
void Compositor_Cstomer();//客户资料排序
void Compositor_Cstomer_Num();//客户航班进行排序
void Compositor_Cstomer_Name();//客户姓名进行排序
void NumFind();//航班号查找
void PlaceFind();//地名查找
int JudgeFileInfo(char *JudgeAutobusNum);//航班号,判断文件中是否有该航班
int ObtainCritck(char *Make_Critck);//航班号,获取该航班所剩票数
int JudgeIfNum(char *cha,int chaNum);//判断航班时间格式
void FileMove_autobus();//文件复制,航班信息复制到临时文件
void FileMove_cstomer();//文件复制,客户资料复制到临时文件
void CopyInfo(struct Autobus *temp,struct Autobus *bus);//复制某一航班信息
void CopyInfo_cst(struct CstomerInfo *temp,struct CstomerInfo *cst);//复制某一客户信息
2、char Function_Select(char a1,char a2,char a3,char a4);//输入功能号
int random();//产生随机编号
void Judge_Space(char *p);//删除字符串中的空格
int JudgeAllNum(char *cha);//判断字符串是否全为数字
int char_int(char *cha);//把全部数字的字符转换成整数,返回该值
int da_da(int num);
void welcome();//欢迎界面
void main();//主函数
void ExitSystem();//退出系统
void Find_Cstomer_Info();//客户信息查询
void Find_To_Cridential();//按客户证件号查询
void Find_To_Name();//按客户姓名查询
3、void DelInfo();//删除信息
void DelAutobus(char *DelAutobusNum);//删除某一航班
void ConfirmTicket(char *ConAutobusNum,int Bus_Ticket_Num);//定票时数据处理void Del_ALL_(char *File_Road_);//删除该路径文件下的全部信息
void Del_One_Cstomer();//删除客户人个资料
void Back_Criket(char *Cridential_Num);//退票
4、void Manage_Autobus_Info();//航班信息管理
void DisplayInfo();//显示所有航班信息
void Display_Effectual();//显示有票有航班信息
void Manage_Cstomer();//客户信息管理
void Display_ALL_Cstomer_Info();//显示所有客户信息
6 课程设计结果欢迎进入
主菜单显示
航班信息管理
录入航班信息
显示所有航班信息
订票、查询
输入客户信息
修改航班信息
客户信息管理
退票
7 实践心得体会
如题:可对课程设计中出现的问题和解决方法加以描述。
我们开始先设计出系统的需求,根据需求将整个系统分为几个模块,每个模块具体又要实现哪些功能,然后就逐个模块去详细设计,设计的过程中不时地翻阅资料,用一些技巧来优化。
通过这一个课程设计中,我们学会了不少东西。
通过不断的探究使问题可视化,形式化。
而通过改正其中的错误,提高了我们在系统设计上的能力,增长了分析、解决问题的经验,对C语言设计有了更深的了解。
可以说,这次设计既锻炼了我们的动脑分析问题的能力,又锻炼了我们动手解决实际问题的能力,这将在我们以后的学习中起到很大的作用。
我们会运用从中学到的宝贵经验来指导我们今后的学习和工作,不断地实践,不断地学习,让自己变得更加的充实,更适合社会的需要。