实验3机票预定系统

合集下载

机票订购管理系统实习报告

机票订购管理系统实习报告

机票订购管理系统实习报告一、实习背景与目的作为一名计算机专业的学生,我深知实践对于理论知识的巩固和技能提升的重要性。

因此在大学期间,我积极寻找实习机会,以期在实际工作中锻炼自己,提高自己的专业素养。

本次实习,我有幸加入了一家机票订购管理系统的开发团队,参与到了这个项目的开发与维护工作中。

此次实习的主要目的是通过实际操作,将所学知识运用到实际工作中,提高自己的实际工作能力和团队协作能力。

二、实习内容与过程在实习期间,我主要参与了以下几个方面的工作:1. 系统需求分析:在项目开始阶段,我和团队成员一起对系统进行了需求分析。

通过对机票订购流程的了解,我们明确了系统的功能需求和性能需求。

2. 系统设计:根据需求分析结果,我参与到了系统的设计工作中。

主要工作是根据业务需求,设计系统的数据库结构和界面布局。

3. 系统开发与实现:在设计完成后,我开始着手进行系统的开发工作。

在开发过程中,我主要运用了Java语言和MySQL数据库技术,实现了系统的核心功能。

4. 系统测试与调试:在系统开发完成后,我和团队成员一起对系统进行了测试和调试。

通过不断的测试和优化,保证了系统的稳定性和可靠性。

5. 系统部署与维护:在系统测试合格后,我开始负责系统的部署和维护工作。

通过对系统的定期检查和更新,保证了系统的正常运行。

三、实习收获与反思通过本次实习,我收获颇丰。

首先,我学到了很多实际开发经验,掌握了Java语言和MySQL数据库技术的实际应用。

其次,我提高了自己的团队协作能力,学会了如何与团队成员沟通、协作,共同完成项目任务。

最后,我认识到了自己的不足,发现了自己在专业知识和实际操作中存在的漏洞,为今后的学习指明了方向。

同时,我也深刻反思了自己的实习过程。

在实习过程中,我认识到理论知识与实际工作的联系十分紧密,只有掌握了扎实的理论知识,才能在实际工作中游刃有余。

此外,我也认识到团队协作的重要性,一个优秀的团队可以产生1+1>2的效果。

机票预订系统实验报告

机票预订系统实验报告

一、实验名称系统静态建模二、实验目的1、掌握用例(Use Case)、角色(Actor)、用例图(Use Case Diagram)的概念。

2、掌握用例与用例之间、用例与角色、角色与角色之间的相互关系。

3、掌握类的属性和操作以及与其相关的概念,重点掌握类与类之间的关系三、所用软件1、Rational Rose2、Micorsoft Word四、预习内容1、UML的用例图、类图画法2、机票预订系统的分析3、Rational Rose的使用方法。

五. 实验介绍为方便旅客,某航空公司拟开发一个机票预定系统。

旅行社把预定机票的旅客信息(姓名、性别、工作单位,身份证号码、旅行时间、施行目的地等)输入该系统,系统为旅客安排航班,印出取票通知和帐单,旅客在飞机起飞前一天凭取票通知单和帐单交款取票,系统校对无误即印出机票给旅客。

机票预定系统的数据需求包括如下几点:1.数据录入和处理的准确性和实时性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。

数据的输入来源是手工输入。

手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。

在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。

2.数据的一致性与完整性由于系统的数据是共享的,在不同的旅行社中中,机票是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。

要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。

对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。

3.数据的共享与独立性整个机票预定系统的数据是共享的。

然而,从系统开发的角度上看,共享会给设计和调试带来困难。

因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。

机票预定系统实验报告

机票预定系统实验报告

机票预定系统实验报告机票预定系统实验报告一、引言机票预定系统是现代航空业中不可或缺的一环。

它通过在线平台的方式,为乘客提供方便快捷的机票预订服务。

本次实验旨在探讨机票预定系统的设计与实施,以及对用户体验的影响。

二、系统设计与实施1. 系统架构机票预定系统的设计需要考虑到用户界面、数据库、后台逻辑等多个方面。

我们采用了三层架构,即用户界面层、业务逻辑层和数据访问层。

这样的架构能够保证系统的可扩展性和灵活性。

2. 用户界面设计用户界面是机票预定系统中最直接与用户交互的部分。

我们注重设计简洁、直观的界面,以提高用户的使用体验。

通过合理的布局和明确的操作流程,用户可以轻松地完成机票预订的过程。

3. 数据库设计为了存储用户的个人信息和机票预订记录,我们设计了一个符合实际需求的数据库结构。

通过合理的表结构设计和索引优化,可以提高数据的查询效率和系统的响应速度。

4. 后台逻辑实现后台逻辑是机票预定系统的核心部分,它包括用户认证、机票查询、订单生成等功能。

我们使用了面向对象的编程语言,通过合理的类设计和模块划分,实现了系统的各项功能。

三、用户体验的影响机票预定系统的用户体验是评价系统质量的重要指标。

通过本次实验,我们对用户体验进行了一系列的测试和分析。

1. 响应速度用户在使用机票预定系统时,最关心的是系统的响应速度。

我们通过模拟大量用户同时访问系统的情况,测试了系统的并发处理能力。

结果显示,系统能够在短时间内响应用户的请求,保证了用户的流畅体验。

2. 用户界面友好性用户界面的友好性对于提高用户体验至关重要。

我们邀请了一些用户进行系统的测试,并收集了他们的反馈意见。

根据用户的建议,我们对界面进行了一些优化,使得用户能够更加轻松地完成机票预订的过程。

3. 功能完整性机票预定系统需要提供全面的功能,包括机票查询、订票、退票等。

我们对系统的各项功能进行了测试,确保其能够满足用户的需求。

同时,我们还进行了一些异常情况的测试,以保证系统的稳定性和可靠性。

航班预定系统课程设计

航班预定系统课程设计

航班预定系统课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握航班预定系统的原理、操作流程和应用场景;技能目标要求学生能够运用航班预定系统进行实际操作,并解决相关问题;情感态度价值观目标要求学生培养对航班预定系统的兴趣,增强信息技术的应用能力,提高解决问题的自信心。

通过分析课程性质、学生特点和教学要求,我们将目标分解为具体的学习成果。

学生将能够理解航班预定系统的概念,描述其工作原理和操作流程;能够操作航班预定系统,完成预定、取消、查询等任务;能够分析实际问题,运用航班预定系统提出解决方案。

二、教学内容根据课程目标,我们选择和了以下教学内容:首先,介绍航班预定系统的原理,包括系统的工作流程、预订机制和数据管理。

其次,讲解航班预定系统的操作流程,包括用户注册、航班查询、座位预订、支付和退票等步骤。

然后,通过案例分析,让学生了解航班预定系统在实际中的应用场景和优势。

最后,进行实践操作,让学生亲自体验航班预定系统的使用,解决实际问题。

三、教学方法为了激发学生的学习兴趣和主动性,我们选择了多种教学方法。

首先,通过讲授法,向学生传授航班预定系统的原理和操作流程。

其次,通过案例分析法,让学生深入了解航班预定系统在实际中的应用。

然后,通过讨论法,引导学生思考和探讨航班预定系统的优势和不足。

最后,通过实验法,让学生亲自动手操作航班预定系统,提高实际应用能力。

四、教学资源我们选择了适当的教学资源来支持教学内容和教学方法的实施。

教材包括《航班预定系统》一书,为学生提供了系统的理论知识。

参考书如《现代航班预定系统》等,为学生提供了丰富的实践案例。

多媒体资料包括教学PPT、视频教程等,为学生提供了直观的学习资源。

实验设备如计算机、网络等,为学生提供了实际操作的机会。

五、教学评估为了全面反映学生的学习成果,我们设计了合理的评估方式。

平时表现评估包括课堂参与度、提问回答和小组讨论等,以考察学生的学习态度和积极性。

软件工程机票预订实验报告

软件工程机票预订实验报告

本科实验报告课程名称:软件工程导论实验项目:机票预订系统实验地点:专业班级:学生姓名:指导教师:年月日1.实验目的和要求目的:为本实验课程做好各项准备工作,熟悉软件开发环境,熟悉电子资源的获取,了解学校内部工资系统的流程及其内容。

本实验课程通过完整地实施软件生命周期各阶段的任务,让学生系统地学习到软件开发过程的主要理论、方法、技术、标准和规范,使他们具备基本的软件开发设计能力;通过软件工程中常用CASE工具和软件项目管理的实践,使他们具备运用各种工具完成项目设计和实施的基本技能;通过集体项目开发,培训学生的合作意识和团队精神,培养学生对技术文档的编写能力。

要求:确定分组成员,根据提供的课题需求,作出相应的可行性研究报告,需求分析,结构化设计等。

结合具体的开发项目进行分析、设计。

二、实验内容和原理1.班级按项目小组进行分组,每组不得超过5人。

2.每个项目小组选出项目负责人或项目经理,由项目经理召集项目组成员讨论、选定开发项目,所有实验中都要采用同一个实验题目。

项目开发的每项任务要落实到人且规定该任务的起止日期和时间。

3.每个项目小组全体成员参加集体讨论需求分析,完成需求分析报告,,修订并评审需求分析报告,确定系统的需求分析模型。

4. 项目总体设计小组每个成员根据第3步需求分析的结果对系统进行总体设计,并完成文档,提交项目小组讨论。

2. 5. 项目详细设计小组人员每人选择第4步的一个模块进行详细设计。

6. 项目小组全体成员选择第4步的一个模块编码实现。

7. 由需求分析人员对第5步的结果进行黑盒测试,设计人员进行白盒测试,并编写测试计划和测试结果报告。

三、主要仪器设备计算机,相关软件开发工具和环境,浏览器四、操作方法与实验步骤小组情况项目题目:机票预订系统项目成员一、可行性分析报告1.引言1.1 目的为了方便旅客,航空公司拟开发一个飞机票预订系统。

旅游公司把预订机票的旅客信息(姓名、年龄、工作单位、身份证号码、旅游时间,旅游目的地等)输入系统,系统为旅客安排航班,打印出取票通知和账单,旅客在飞机起飞的三天内凭取票通知和账单交款取票,系统校对无误即可打印出飞机票给旅客。

实验三 模拟民航公司自动订票系统

实验三 模拟民航公司自动订票系统

实验三模拟民航公司自动订票系统一、实验目的1、掌握线性表链式存储结构的特点。

2、能够利用链表的基本操作解决实际问题。

二、实验内容民航自动订票系统乘客登记表中按照乘客姓氏的英文字母顺序排列,要求设计算法,实现任意一个乘客订票和退票服务。

三、问题分析该自动订票系统中以双链表存储形式表示乘客登记表,表中结点按乘客姓氏的英文字母顺序排列,结点序号表示乘客的座位号。

考虑到在自动订票系统中,节点的插入和删除(订票为插入,退票为删除)非常频繁,因此把乘客表设计成一个首尾相接的循环双重链表,并增添了一个表头。

当乘客表示空表时,只有表头存在,表头左、右指针均指向其本身。

设飞机有120个座位,则可设计一个有121个结点的双链表。

变量说明:D(i):结点关键字,用以存放乘客姓名。

Lnext(i):结点的左指针。

Rnext(i):结点的右指针。

X:订票的乘客姓名。

Y:退票的乘客姓名。

F1:乘客表的首指针。

F2:空座位表的首指针。

Q:结点的地址。

设表头的数据域中存放的航次及日期格式为:A300B/2006.5.1例:空乘客表座位号 D(i) Lnext(i) Rnext(i)座位号 D(i) Lnext(i) Rnext(i)座位号 D(i) Lnext(i) Rnext(i)座位号 D(i) Lnext(i) Rnext(i)用的空座位表,然后根据分支的选择,完成订票、退票和输出乘客表。

四、算法描述SAP(x,y){ strcpy(d[1],”A300B/2006.5.1”) ;lnext[1]=rnext[1]=1 ;/*建立成可循环链表的表头*/for(i=2 ; i<=120 ; i++)Rnext[i]=i+1 ;Rnext[121]=0 ;f1=1 ;f2=2 ;do{ scanf(“%d”,&n) ;switch(n){ case 1: gets(x) ;t=Rnext[f1] ;while(t!=1)if(strcmp(d[t],x)<0)t=rnext[t] ;elset=1 ;/*查询订票成可是否定过票及在乘客表中的位置*/if(strcmp(d[t],x)= =0)printf(“已定过票”) ;else{ q=f2 ;f2=rnext[q];d[q]=x ;Rnext[q]=t ;Lnext[q]=lnext[t] ;Rnext[lnext[t]]=q ;Lnext[t]=q ;printf(“已订好票”) ;} /* 订票结点插入乘客链表,修正空座位表入口*/ }break ;case 2: gets(y) ;q=Rnext[f1] ;while(q!=1)if(strcmp(d[q],y)<0)q=Rnext[q] ;elseq=1 ;/*查询退票乘客是否订过票及在乘客表中的位置*/if(strcmp(d[t],y)!=0)printf(“没订过票”) ;else{ Rnext[Lnext[q]]=Rnext[q] ;Lnext[Rnext[q]]=Lnext[q] ;Rnext[a]=f2 ;f2=q ;printf(“已取消预约”) ;}/*删除在乘客表中的订票结点,修正空座位表入口*/break ;case 3 : printf(“%s %d %d\n”,d[f1],Lnext[f1],Rnext[1]) ;/*打印乘客表的表头*/p=Rnext[f1] ;while(p!=1){ printf(“%s %d %d\n”,d[p],Lnext[p],Rnext[p]) ;p=Rnext[p] ; }}}while(n!=0) ;}实验一职工工资管理一、实验目的1、掌握线性表顺序存储结构的特点。

机票预定系统实验报告

机票预定系统实验报告

机票预定系统实验报告
《机票预定系统实验报告》
随着航空业的快速发展,机票预定系统成为了现代人出行的重要工具。

为了评估不同机票预定系统的效率和可靠性,我们进行了一项实验,并在本报告中分享我们的发现和结论。

实验方法:
我们选择了三个不同的机票预定系统进行测试,分别是A系统、B系统和C系统。

我们以相同的出发地和目的地为基准,分别在不同的时间段内使用这三个系统进行机票预定。

我们记录了每个系统的预定速度、可用航班数量、价格差异以及用户体验等方面的数据。

实验结果:
经过实验,我们发现A系统在预定速度上表现最佳,平均预定时间为3分钟;B系统次之,平均预定时间为5分钟;C系统表现最差,平均预定时间为10分钟。

在可用航班数量方面,A系统和B系统的航班选择较为丰富,而C系统的航班数量相对较少。

在价格方面,三个系统的价格相差不大,但A系统在特定时间段内能够提供更多的优惠折扣。

在用户体验方面,A系统和B系统的界面设计更加友好和直观,而C系统的界面较为复杂,容易使用户感到困惑。

结论:
通过这次实验,我们得出了以下结论:
1. A系统在预定速度、航班选择和用户体验方面表现最佳,是一个高效可靠的机票预定系统。

2. B系统在各个方面都表现稳定,是一个中等水平的机票预定系统。

3. C系统在预定速度和航班选择方面表现较差,需要改进其性能和用户体验。

总的来说,机票预定系统的性能和可靠性对用户的出行体验有着重要的影响。

我们希望通过这次实验报告,能够为用户选择合适的机票预定系统提供一些参考,也希望航空公司和系统开发者能够根据我们的实验结果,不断改进和优化机票预定系统,为用户提供更好的服务和体验。

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

上机实践报告课程名称:软件工程年级:上机实践成绩:指导教师:姓名:上机实践内容:机票预订系统学号:上机实践日期:一、目的用面向对象分析、设计方法来分析机票系统。

二、主要内容及问题需求分析:为方便旅客,某航空公司拟开发一个机票预订系统。

旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。

功能需求该系统主要分为五大功能:系统管理、新增、修改、查询和系统维护。

机票预定系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。

三、使用环境操作系统:Windows XP建模工具:StarUML、Microsoft Visio四、设计内容1-1、用例模型图用例模型图说明:机票预订系统主要使用的对象是旅行社管理员。

管理员根据顾客填写的目的地和时间信息,将其输入系统,系统根据相关信息进行处理,则系统其中的一个功能即用例就是接收顾客信息。

顾客需要用取票单去航空公司取票,系统由管理员输入的信息来识别,则系统的另一个功能即用例就是预定管理员输入信息符合的票。

1-2、类图类图说明:为此系统定义了4个类,分别是顾客类,管理员类,航空公司类,机票类。

各个类对应的属性和操作方法在图中已表示出,目前应该还是有很多不完善的地方,在后期再加以修改。

1-3、对象图对象图说明:对象图是根据设置的类图而设置的。

一个对象就是类的一个具体实例,本例中设置了一个custom的取票操作,详细信息在图中已经设置,根据顾客的相关信息和操作,系统会调用相应的类的对象来处理,在本例中不一定会全部都涉及。

1-4、顺序图顺序图说明:顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。

由于在顾客,旅行社,航空公司之间也有先后顺序,所以在顺序图中会有两个生命周期,分别是订票和取票操作。

旅行社根据顾客填写的信息,就操作系统的订票功能。

系统在对管理进行处理时,会先记录顾客的相关信息,最后再打印取票单给顾客。

系统对取票进行处理时,会先收取款,最后会把票给顾客。

1-5、状态图状态图说明:在订票系统中,主要会有两个对象的状态:顾客和管理员。

顾客的状态最开始是填写信息,再管理员将信息输入系统,此时系统查询合适的航班,顾客收到系统打印出的相应单据,最后顾客将取票单和款返回给系统得到票。

1-6、活动图活动图说明:状态图着重描述对象的状态变化以及触发状态变化的事件,活描述系统中各种活动的执行顺序,刻画一个方法中所要进行的各项活动的执行流程。

在订票系统中,各种活动由顾客和管理员的状态图转化而来。

顾客的信息,之后就由管理员输入系统,系统对应的活动就有查询订票,各自活动都有自己的的后续活动。

2、动态模型动态模型说明:动态模型主要是描述系统的动态行为和控制结构。

动态行为包括系统中对象生存期内可能的状态以及事件发生时状态的迁移,还包括对象之问动态合作关系,显示对象之间的交互过程以及交互顺序,同时描述了为满足用例要求所进行的活动以及活动问的约束关系。

动态模型主要包括的状态图、顺序图和活动图已经在1-4、1-5、1-6中画出。

建立动态模型的第一步是编写交互行为的脚本;第二步从脚本中提取出事件,确定后触发每个事件的动作对象及接收事件的目标对象;第三步排列事件发生的次序,确定每个对象可能有的状态及状态间的转换关系,并用状态图描绘它们。

最后,比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。

3、功能模型功能模型说明:功能模型表明了系统中数据之间的依赖关系,以及有关的数据处理功能,它由一组数据流图组成,此功能模型的分析与设计依照对象模型和动态模型而来。

DFD图(数据流图)描绘信息流和数据从输入移动到输出的过程中所经受的变换。

数据流中没有任何具体的物理部件,它知识描绘数据在软件中流动和被处理的逻辑过程,流程如图。

4、对象模型对象模型说明:对象模型描述了现实世界中的类与对象以及它们之间的关系,表示了目标系统的静态数据结构。

首先确定对象类和关联,对于大型复杂问题还要进一步划分出若干个主题;然后给类和关联增添属性,以进一步描述它们;接下来利用适当的继承关系进一步合并和组织类。

而对类中操作的最后确定,则需要等到建立了动态模型和功能模型之后,以为这两个子模型更准确地描述了对类中提供的服务的需求。

数据库表C语言代码#include<stdio.h> //标准输入、输出头文件#include<string.h> //包含字符串函数处理头文件#include<stdlib.h> //包含动态存储与释放函数头文件#define N 10000struct air //定义结构体数组{int num;char start[20];char over[20];char time[10];int count;}s[N];int i;int m=0;#define PRINT "%-d%12s%12s%10s%12d\n ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //定义输出格式void input();void print();void search();void Delete();void Booking();void Modify();void Refund();void save();void read();void main(){int j;do{printf(" ★---您好,欢迎进入中国民航管理系统!---★\n");printf("============================================================================ ==== ");printf(" -------- ☆ 1.输入航班信息☆--------\n "" -------- ☆ 2.浏览航班信息☆-------- \n"" -------- ☆ 3.查询航班信息☆-------- \n"" -------- ☆ 4.删除航班信息☆-------- \n"" -------- ☆ 5.订票信息☆--------\n "" -------- ☆ 6.修改信息☆--------\n "" -------- ☆7.退票信息☆-------- \n"" -------- ☆0.退出☆-------- \n");printf("============================================================================ ====\n ");printf("请在0-7中选择以回车键结束:");scanf("%d",&j);switch(j){case 1: input();//调用输入模块break;case 2:print();//调用打印模块break;case 3:search();//调用查询模块break;case 4:Delete();//调用删除模块break;case 5:Booking();//调用订票模块break;case 6:Modify();//调用修改模块break;case 7:Refund();//调用退票模块break;case 0:break;}}while(j=!0);}void input()//打印模块程序{char f[]="2008china"; //设置密码int y;printf("请输入密码并以回车键结束: ");scanf("%s",f); //读取密码if(strcmp(f,"chinahk")==0){printf("请依次输入航班信息(机票数为0结束输入): ""完成输入信息请键入w以回车键结束\n"); //打印提示信息printf("-------------------------------------------------------------------------- \n");for(i=0;i<N;i++){printf("请输入航班号: ");scanf("%d",&s[i].num); //读取航班号printf("请输入起始站: ");scanf("%s",s[i].start);//读取起始站printf("请输入终点站: ");scanf("%s",s[i].over);//读取终点站printf("请输入时间: ");scanf("%s",s[i].time);//读取时间printf("请输入机票数(机票数为0结束输入): ",m);scanf("%d",&s[i].count);//读取机票数m++;printf("第%d个信息已经输完是否继续?按任意键继续,按0结束",m);scanf("%d",&y);//在此需输入任意一个整数值数值,程序才能继续执行if(y==0)break;}save();//保持输入数据}elseprintf("输入密码错误!请检查您的密码是否正确!谢谢!再见! \n");}void save()//保存模块程序{FILE *fp;//定义文件指针if((fp=fopen("E:\\飞机票系统数据保存.txt","w"))==NULL)//打开文件并判断是否出错{printf("文件打开失败! ");//打印出错提示}else{fprintf( fp,"航班号起始站终点站时间机票数\n");fprintf( fp,"============================================================\n ");for(i=0;i<m;i++){fprintf(fp,"%-d%12s%12s%10s%12d\n ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count);}}fclose(fp);//关闭文件}void read()//从文件读取信息模块{FILE *fp;//定义文件指针if((fp=fopen("E:\\飞机票系统数据保存.txt","r"))==NULL)//打开文件,并判断是否出错printf("创建文件失败! ");//打印出错提示elsefor(i=0;i<m;i++){fscanf(fp,"%-d%12s%12s%10s%12d\n ",&s[i].num,s[i].start,s[i].over,s[i].time,&s[i].count ); printf(PRINT);}fclose(fp);//关闭文件}void print()//打印模块{char w[10];printf("航班号起始站终点站时间机票数\n");read();//调用读取文件函数/*for(i=0;i<m;i++){printf(PRINT);//打印信息printf("\n");}*/printf("请按任意键回车键结束返回上层菜单以: \n");scanf("%s",w);}void search()//查询模块{char name1[20];char name2[20];char ii[10];int n,no;do{printf("请选择查找方式:");//打印查询方式菜单printf("1.按航班号查找""2.按终点站查找""3.按航线查找""0.返回");printf("请在0-3中选择:""按其他键以回车键结束返回主菜单:\n ");scanf("%d",&n);//读取查找方式if(n==0)break;switch(n){case 1:printf("请输入航班号:");scanf("%d",&no);//航班号break;case 2:printf("请输入终点站名称:");scanf("%s",name2);//读取终点站break;case 3:printf("请输入起始站名称:");scanf("%s",name1);//读取起始站printf("请输入终点站名称:");scanf("%s",name2);//终点站}printf("航班号起始站终点站时间机票数\n");read();//调用读取函数for(i=0;i<m;i++){if(strcmp(s[i].over,name1)==0&&strcmp(s[i].over,name2)==0)//按终点站起始站判断输出条件{printf(" 对不起,没有您要的航班信息!\n ");break;}if(strcmp(s[i].over,name2)==0){printf("航班号起始站终点站时间机票数\n");printf(PRINT);//打印信息break;}if(s[i].num==no)//按航班号判断输出条件{printf(" 查找航班信息成功!\n ");printf("航班号起始站终点站时间机票数\n");printf(PRINT);//打印信息break;}}no=0;//将航班号赋值为0printf("没有您需要的信息或查找完毕:\n ""是否继续查找?请键入yes或no以回车键结束\n ");scanf("%s",ii);}while(strcmp(ii,"yes")==0||strcmp(ii,"no")==0);//判断结束}void Delete()//删除模块{char name1[20];char name2[20];char ii[10];char f[]="2008china";//设置密码int no,n;printf("请输入密码并以回车键结束: \n");scanf("%s",f);//读取密码if(strcmp(f,"2008china")==0) //判断密码是否正确{do{printf("请选择删除以方式回车键结束:\n ");//打印删除方式菜单printf("*1.按航班号删除""*2.按航线删除""*0.返回");printf("请在0-2中选择以回车键结束:\n");scanf("%d",&n);//读取删除方式if(n==0)break; //跳出循环switch(n){printf("请输入航班号:");scanf("%d",&no);//读取航班号read();//调用读取函数break;//跳出循环case 2:printf("请输入起始站名称:");scanf("%s",name1);//读取起始站printf("请输入终点站名称:");scanf("%s",name2);//读取终点站read();//调用读取函数break;//跳出循环}for(i=0;i<m;i++){if(s[i].num==no)//按航班号删除{printf("航班号起始点终点站时间票数\n"); for(int j=i;j<m;j++){s[j]=s[j+1];}m--;for(int i=0;i<m;i++){printf(PRINT);}}if(strcmp(s[i].start,name1)==0&&strcmp(s[i].over,name2)==0){printf("航班号起始点终点站时间票数\n"); for(int k=i;k<m;k++){s[k]=s[k+1];}m--;for(int i=0;i<m;i++){printf(PRINT);}}}printf("查找完毕或没有这个信息");printf("是否继续删除\n");printf("请键入yes或no以回车键结束\n");scanf("%s",ii); //读取是否继续信息save(); //调用读取函数if(!strcmp(ii,"yes")) //判断是否继续删除printf("请按任意键以回车键结束返回上层菜单: ");break;}while(n!=1&&n!=2&&n!=0); //判断结束}elseprintf("对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!\n ");}void Booking()//订票模块{int n;char a[10];do{search();//调用查询模块printf("请输入您要订的机票数以回车键结束:\n ");scanf("%d",&n);//读取所订机票数if(n<0||s[i].count<n){printf("请输入有效的机票数!");//判断机票数是否出错}if(s[i].count!=0&&s[i].count>=n)//判断是否出错{s[i].count=s[i].count-n;save();//调用保存函数printf("订票成功!\n\n ");}printf("是否继续?请输入yes或no以回车键结束: \n");//判断是否继续订票scanf("%s",a);}while(!strcmp(a,"yes"));//判断结束}void Refund()//退票模块{int n;char a[10];do{search();//调用查询模块printf("请输入您要退的机票数目:");scanf("%d",&n);//输入所退票数if(n<0) //判断票数是否有效printf("请输入有效的机票数!");else{s[i].count=s[i].count+n;save(); //调用保存模块printf("退票成功! ");}printf("是否继续?请键入yes或no以回车键结束: ");//判断是否继续退票scanf("%s",a);}while(!strcmp(a,"yes"));//判断并跳出循环}void Modify() //修改模块{struct modify //定义结构体{int mo;char start1[20];char over1[20];char time1[20];int count1;}M[1];char j[10];char f[]="2008china";//设置密码int n;printf("请输入密码并以回车键结束: ");scanf("%s",f);//读取密码if(strcmp(f,"2008china")==0)//判断是否出错{printf("航班号起始点终点站时间票数\n");read();//调用读取模块do{printf( "请选择修改方式:\n ""*1,按航班号修改: \n""*2,按航线修改:\n ");printf("请在1---2中修改以回车键结束:\n");scanf("%d",&n);//读取修改方式switch(n){case 1:printf("请输入航班号:");scanf("%d",&M[0].mo);//读取航班号break;case 2:printf("请输入起始站:");scanf("%s",M[0].start1);//读取起始站printf("请输入终点站:");scanf("%s",M[0].over1);//读取终点站break;}for(int i=0;i<m;i++){if(strcmp(s[i].start,M[0].start1)==0&&strcmp(s[i].over,M[0].over1)==0)//判断输出条件{printf("航班号起始站终点站时间机票数\n");printf(PRINT);break;}if(s[i].num==M[0].mo)//判断输出条件{printf("航班号起始站终点站时间机票数\n");printf(PRINT);break;}}M[0].mo=0; //将结构体中的号为零printf("请输入新航班号、起始站、终点站、时间(星期几)、机票数:\n ");printf("新航班号新起始站新终点站新时间新机票数\n");scanf("%d\t%s\t%s\t%s\t%d",&M[0].mo,M[0].start1,M[0].over1,M[0].time1,&M[0].count1);//定义输入格式s[i].num=M[0].mo;//替换航班号strcpy(s[i].start,M[0].start1);//替换其始站strcpy(s[i].over,M[0].over1);//替换终点站strcpy(s[i].time,M[0].time1);//替换时间s[i].count=M[0].count1;//替换机票数save();//调用保存模块printf("是否继续?请键入yes或no以回车键结束:\n ");scanf("%s",j);}while(strcmp(j,"yes")==0||strcmp(j,"no")==0); //判断结束}elseprintf("对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见! "); }登陆界面:(密码是chianhk)输入信息界面:查询界面:订票系统:五、总结通过本次实验,我基本能用面向对象的分析方法来分析机票预定系统,用面向对象的设计方法来实现系统的各种基本模型图。

相关文档
最新文档