ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:497.97KB ,
资源ID:8205404      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8205404.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(机票票务管理程序的设计与实现.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

机票票务管理程序的设计与实现.docx

1、机票票务管理程序的设计与实现机票票务管理程序的设计与实现1 绪论1.1选题目的和意义随着社会发展的不断进步,民航事业的壮大,人们消费水平的提高,乘坐民航的消费者也越来越多,旅游也逐渐成为普通老百姓的生活组成部分,飞机票预订查询系统在各机票预定网点中的作用也越显重要。目前,我国一些旅行社和酒店的机票预定还停留在人工处理阶段,这已经严重制约了工作效率,在计算机技术高速发展的今天,有必要引入高效的计算机系统,来协助处理机票预订工作。因此,开发机票票务管理系统势在必行。1.2系统模拟与简化为了易于实现但不失仿真性,对问题做如下简化:1.在初始机票的所有城市共有:武汉、北京、西安、广州、青岛、济南六个城

2、市。因此所有的机票组合共有30种。2.机票只有单程票,不考虑联程票和往返票。3.假设航班无限,即不存在票售完的情况。票的数量不作限制。4.订票能订未来任意时间的票。不对时间进行检查。1.3可行性分析1.3.1前提要求安全与保密要求:管理员享有对机票信息库和定票信息库的管理与修改,旅客只享有对订票信息库的部分修改(订票与退票)以及机票信息库的查询。1.3.2 目标系统实现后,大大提高机票预定服务效率。降低售票服务中的错误发生率,减少信息交流的烦琐过程及其带来的开销。1.4 系统的主要功能:(1)票务管理人员对机票基本信息进行输入,删除,修改和查询(2)旅客对票务信息进行查询(3)订票处理,输入机

3、票和旅客的信息(4)退票处理2 需求分析2.1性能需求 为了保证系统能够长期、安全、稳定、可靠、高效的运行,机票预定系统应该满足以下的性能需求:2.1.1 系统处理的准确性系统处理的准确性是系统的基本性能。由于机票预订系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,在系统开发过程中,必须采用一定的方法保证系统的准确性。2.1.2 系统的开放性和系统的可扩充性 机票预订系统在开发过程中,应该充分考虑以后的可扩充性。用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统

4、,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。2.1.3 系统的易用性 机票预订系统是直接面对使用人员的,而使用人员往往对计算机并不是非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的帮助,缩短用户对系统熟悉的过程。2.2数据需求2.2.1数据录入处理的准确性与及时性 数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性。2.2

5、.2数据的一致性与完整性由于系统的数据是共享的,机票是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。因此必须在数据录入处控制数据的去向,并且要求对数据完整性进行严格的约束。2.2.3数据的共享与独立性整个机票预定系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性。2.3数据字典3 系统总体设计3.1数据结构设计对旅客个人信息的数据结构设计姓名身份证号对机票原始信息的数据结构设计出发城市目的城市航班号所属航空公司票价对已订出机票的数据结构

6、设计游客信息出发城市目的城市航班号时间日期所属航空公司票价姓名身份证号3.2物理结构设计3.2.1 旅客信息3.2.2原始机票信息 3.2.3已订出机票信息3.2.4两个链表的定义typedef struct _tagNode1 /定义一个链表,用来存储所有的票务信息,以便来实现管理员删除增加等功能 struct _tagNode1 *Next; TInfo AllTicketsInfo;AllTickets;typedef AllTickets * PtrAllTickets;typedef struct _tagNode2 /定义一个链表,用来存储已订出的票 struct _tagNode

7、2 *Next; BookedTInfo BookedTicketInfo;BookedTickets;typedef BookedTickets *PBookedTickets;3.3主要函数功能设计3.3.1数据初始化函数从文件TicketInfo.txt中将所有原始机票的信息读取到一个链表中PtrAllTickets Initial() /将所有的票务信息读取到内存中 FILE *fp; /从文件中读取机票的信息 char ch; PtrAllTickets phead,p1,p2,p; phead=(PtrAllTickets)malloc(sizeof(AllTickets); p1

8、=phead; if(fp=fopen(d:TicketInfo.txt,rt)=NULL) printf(Error open file!nPress any key to exit!n); getch(); exit(1); else ch=a; while(ch!=EOF) fscanf(fp,%s%s%s%s%s,p1-AllTicketsInfo.TDepartCity,p1-AllTicketsInfo.TArriveCity,p1-AllTicketsInfo.TFlightNo,p1-AllTicketsInfo.TCompany,p1-AllTicketsInfo.TPric

9、e); p2=(PtrAllTickets)malloc(sizeof(AllTickets); p1-Next=p2; p2-Next=NULL; p1=p2; ch=fgetc(fp); fclose(fp); return phead; exit(0);3.3.2订票功能的实现void GuestBookTickets() /Guest预定机票 FILE *fp; char ch; int tmp_n; int flag_state=0; PBookedTickets pb1; PtrAllTickets p=phead; pb1=(PBookedTickets)malloc(sizeo

10、f(BookedTickets); pb1-Next=NULL; printf(tttt欢迎使用订票系统!nnn); printf(请输入出发城市: ); /选择出发城市! scanf(%s,pb1-BookedTicketInfo.TDepartCity); printf(请输入飞往城市:); scanf(%s,pb1-BookedTicketInfo.TArriveCity); while(p!=NULL) /航班号,飞行公司,价格等均确定。 if(strcmp(p-AllTicketsInfo.TDepartCity,pb1-BookedTicketInfo.TDepartCity)=0

11、&strcmp(p-AllTicketsInfo.TArriveCity,pb1-BookedTicketInfo.TArriveCity)=0) strcpy(pb1-BookedTicketInfo.TPrice,p-AllTicketsInfo.TPrice); strcpy(pb1-BookedTicketInfo.TFlightNo,p-AllTicketsInfo.TFlightNo); strcpy(pb1-BookedTicketInfo.TCompany,p-AllTicketsInfo.TCompany); flag_state=1; p=p-Next; if(flag_s

12、tate) printf(请输入要预定的票的日期:(格式为xxxxxxxx,如20080808)n); /输入飞行日期 scanf(%s,pb1-BookedTicketInfo.TDate); printf(请输入您的姓名:n); /输入姓名 scanf(%s,pb1-BookedTicketInfo.PassengerInfo.PName); printf(请输入您的身份证号码:n); /输入游客身份证号 scanf(%s,pb1-BookedTicketInfo.PassengerInfo.PID); / 游客订票信息确认 printf(预定成功!以下是您的订票信息确认单:nn); pr

13、intf(ttt姓名:%sn,pb1-BookedTicketInfo.PassengerInfo.PName); printf(ttt身份证号码:%sn,pb1-BookedTicketInfo.PassengerInfo.PID); printf(ttt出发城市:%sn,pb1-BookedTicketInfo.TDepartCity); printf(ttt飞往城市:%sn,pb1-BookedTicketInfo.TArriveCity); printf(ttt航班号:%sn,pb1-BookedTicketInfo.TFlightNo); printf(ttt所属航空公司:%sn,p

14、b1-BookedTicketInfo.TCompany); printf(ttt日期:%sn,pb1-BookedTicketInfo.TDate); printf(ttt价格:%sn,pb1-BookedTicketInfo.TPrice); /将订票的信息存到一个文件中/ if(fp=fopen(d:BookedTicketsInfo.txt,rt)=NULL) /若文件不存在,则新建,若存在,则采用追加模式写入 if(fp=fopen(d:BookedTicketsInfo.txt,wt)=NULL) printf(文件创立失败!n无法写入数据!); else fprintf(fp,%

15、st%st%st%st%st%st%st%sn,pb1-BookedTicketInfo.PassengerInfo.PName,pb1-BookedTicketInfo.PassengerInfo.PID,pb1-BookedTicketInfo.TDepartCity,pb1-BookedTicketInfo.TArriveCity,pb1-BookedTicketInfo.TFlightNo,pb1-BookedTicketInfo.TDate,pb1-BookedTicketInfo.TCompany,pb1-BookedTicketInfo.TPrice); else fp=fope

16、n(d:BookedTicketsInfo.txt,at); fprintf(fp,%s %s %s %s %s %s %st%sn,pb1-BookedTicketInfo.PassengerInfo.PName,pb1-BookedTicketInfo.PassengerInfo.PID,pb1-BookedTicketInfo.TDepartCity,pb1-BookedTicketInfo.TArriveCity,pb1-BookedTicketInfo.TFlightNo,pb1-BookedTicketInfo.TDate,pb1-BookedTicketInfo.TCompany

17、,pb1-BookedTicketInfo.TPrice); fclose(fp); else printf(城市输入有误!n订票失败!n); 3.3.3退票功能的实现void GuestReturnTickets() /退票 注意几种特殊情况的处理1,删除的为第一张票 int flag_state=0; char PName15; char PID20; char TFlightNo10; char TDate10;/时间格式为:xxxxxxxx如200080808 FILE *fp; /从文件中读取机票的信息 char ch; PBookedTickets head,p1,p2,p,p_f

18、ront,ptrtmp; /先将所有的订票的信息存取到内存中 head=(PBookedTickets)malloc(sizeof(BookedTickets); p1=head; p_front=head; p=head; if(fp=fopen(d:BookedTicketsInfo.txt,rt)=NULL) printf(没有找到订票数据!n); getch(); exit(1); else ch=a; while(ch!=EOF) fscanf(fp,%s%s%s%s%s%s%s%s,p1-BookedTicketInfo.PassengerInfo.PName,p1-BookedT

19、icketInfo.PassengerInfo.PID,p1-BookedTicketInfo.TDepartCity,p1-BookedTicketInfo.TArriveCity,p1-BookedTicketInfo.TFlightNo,p1-BookedTicketInfo.TDate,p1-BookedTicketInfo.TCompany,p1-BookedTicketInfo.TPrice); p2=(PBookedTickets)malloc(sizeof(BookedTickets); p1-Next=p2; p2-Next=NULL; p1=p2; ch=fgetc(fp)

20、; fclose(fp); /输入票务有关信息 printf(请按下列提示输入票务信息:n); printf(ttt请输入票的航班号:n); scanf(%s,TFlightNo); printf(ttt姓名:n); scanf(%s,PName); printf(ttt身份证号:n); scanf(%s,PID); while(p!=NULL) / 查找符合条件的票 if(strcmp(p-BookedTicketInfo.PassengerInfo.PName,PName)=0&strcmp(p-BookedTicketInfo.TFlightNo,TFlightNo)=0&strcmp(

21、p-BookedTicketInfo.PassengerInfo.PID,PID)=0) ptrtmp=p_front; flag_state=1; p_front=p; p=p-Next; if(flag_state) if(ptrtmp=head) head=head-Next; else ptrtmp-Next=ptrtmp-Next-Next; p1=head; if(fp=fopen(d:BookedTicketsInfo.txt,wt)=NULL) printf(Error open file!nPress any key to exit!n); getch(); exit(1);

22、 else while(p1!=NULL) fprintf(fp,%st%st%st%st%st%st%st%sn,p1-BookedTicketInfo.PassengerInfo.PName,p1-BookedTicketInfo.PassengerInfo.PID,p1-BookedTicketInfo.TDepartCity,p1-BookedTicketInfo.TArriveCity,p1-BookedTicketInfo.TFlightNo,p1-BookedTicketInfo.TDate,p1-BookedTicketInfo.TCompany,p1-BookedTicket

23、Info.TPrice); p1=p1-Next; fclose(fp); exit(0); else printf(退票失败!n); exit(1);3.3.4按航班号查询功能的实现PtrAllTickets GuestAdminSearchTicketsFlightNo() int flag_state=0; PtrAllTickets p=phead,ptrtmp,p_front; char TFlightNo10; printf(请输入航班号:); scanf(%s,TFlightNo); while(p!=NULL) /航班号,飞行公司,价格等均确定。 if(strcmp(p-All

24、TicketsInfo.TFlightNo,TFlightNo)=0) printf(您查询的机票详细信息如下:n); printf(ttt*n); printf(ttt出发城市:%sn,p-AllTicketsInfo.TDepartCity); printf(ttt飞往城市:%sn,p-AllTicketsInfo.TArriveCity); printf(ttt航班号:%sn,p-AllTicketsInfo.TFlightNo); printf(ttt所属航空公司:%sn,p-AllTicketsInfo.TCompany); printf(ttt价格:%sn,p-AllTickets

25、Info.TPrice); printf(ttt*n); flag_state=1; ptrtmp=p_front; p_front=p; p=p-Next; if(!flag_state) printf(航班号输入有误!没有查询到航班号为%s的票务信息!n,TFlightNo); return ptrtmp;3.3.5按地点查询功能的实现PtrAllTickets GuestAdminSearchTicketsPlace() /注意删除头结点的特殊性 int flag_state=0; PtrAllTickets p=phead,ptrtmp,p_front=phead; char TDep

26、artCity10; char TArriveCity10; printf(请输入出发城市: ); scanf(%s,TDepartCity); printf(请输入飞往城市:); scanf(%s,TArriveCity); while(p!=NULL) if(strcmp(p-AllTicketsInfo.TDepartCity,TDepartCity)=0&strcmp(p-AllTicketsInfo.TArriveCity,TArriveCity)=0) printf(您查询的机票详细信息如下:n); printf(ttt*n); printf(ttt出发城市:%sn,p-AllTi

27、cketsInfo.TDepartCity); printf(ttt飞往城市:%sn,p-AllTicketsInfo.TArriveCity); printf(ttt航班号:%sn,p-AllTicketsInfo.TFlightNo); printf(ttt所属航空公司:%sn,p-AllTicketsInfo.TCompany); printf(ttt价格:%sn,p-AllTicketsInfo.TPrice); printf(ttt*n); flag_state=1; ptrtmp=p_front; p_front=p; p=p-Next; if(!flag_state) print

28、f(城市输入有误!没有查询到出发城市为%s,目的城市为%s的票务信息!n,TDepartCity,TArriveCity); return ptrtmp;3.3.6管理员对票务信息进行删除的函数void AdminDeleteTInfo() /Admin删除票务信息 ,注意删除头结点的特殊性 PtrAllTickets p,ptrtmp=phead; FILE *fp; /将修改后的机票信息存储 int tmp_n; char judege; /确认是否删除,值为y或n system(cls); printf(请先选择要删除的票n); printf(tttt请选择查询方式n); printf(tttt1.按地点查找n); printf(tttt2.按航班号查找n); printf(tttt0.退出n); printf(tttt按数字0-2选择:);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1