飞机订票系统实验报告

合集下载

QTP测试实验报告-飞机票订票系统(word文档良心出品)

QTP测试实验报告-飞机票订票系统(word文档良心出品)

QTP 自动化功能测试实践一、实验目的1、熟悉QTP自动化功能测试流程2、能够利用QTP进行B/S或者C/S架构程序的自动化功能测试二、实验内容功能测试是针对应用系统进行测试,是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用。

本项目主要使用QuickTest 对其自带的MercuryTours 网站/ 飞机票订票系统进行功能测试,要求录制预订机票的完整过程,然后执行测试脚本并分析结果。

三、实验要求1 、独立完成;2、提交测试脚本3、提交测试用例说明书及缺陷报告。

四实验内容1 脚本的录制与回放测试及检查点的设置验证脚本代码:Dialog("Login").WinEdit("Agent Name:").Check CheckPoint("Agent Name:") ' 验证乘客名字文本框中的值标准检查点Dialog("Login").WinEdit("Agent Name:").Set "123456" '输入用户名Dialog("Login").WinEdit("Password:").Set "mercury" ' 输入密码Dialog("Login").WinButton("OK").Click ' 单击OK 按钮登陆Window("Flight Reservation").Static("Static").Check CheckPoint("Static") ' 检查页面中的图片元素是否加载Window("Flight Reservation").ActiveX("MaskEdBox").Type "011218"Window("Flight Reservation").WinComboBox("Fly From:").Select "London" Window("Flight Reservation").WinComboBox("Fly To:").Select "Paris"Window("Flight Reservation").WinButton("FLIGHT").ClickWindow("Flight Reservation").Dialog("Flights Table").WinList("From").Select "12534 LON 08:00 AM PAR 10:00 AM AF $165.50" Window("FlightReservation").Dialog("Flights Table").WinButton("OK").Click Window("Flight Reservation").WinEdit("Name:").Set "gcc"Window("Flight Reservation").WinEdit("Tickets:").SetSelection 0,1Win dow("Flight Reservatio n").Wi nEdit("Tickets:").Set "5"Win dow("Flight Reservatio n").Wi nRadioButto n( "Busi ness").Set Window("Flight Reservation").WinButton("Insert Order").Click Win dow("Flight Reservatio n").CIose ' 关闭订票系统 结果- 曲 Run^TinriR D?it3i TableS-- Cbackpoint 1 (Row 1}IS 讨 Actonl Summary 申#自login 白 * ■ AgentNdme:…Checkpoint 'Aceinft I ! [ ■ ■- H K Agent N^mec-SetText |KPassw&rdLSetTe )rt| L M oKcikkilFlight ReservationI5ic Agent N@-me:.Set~ert pir Pa s £ wo rdi . ext二I OKTlick3- Fl gbt Resen r ation2参数化脚本测试本案例中将Flight From 的选项内容设置为参数化类型 脚本代码 With Dialog("Logi n").Win Edit("Age nt Name:").Set "aaaa" .Win Edit("Password:").Set "mercury" .Win Butt on ("OK").CIick曰lest Cha^kp-Qint Sunnmary勃 Run-Time Data latleB Ch&ckpoirrt Iteraticn 11 (Row1)-■』伦 Actiorl SLmiria^y自LogirElDmailsEnd WithWith Win dow("Flight Reservatio n") .ActiveX("MaskEdBox").Type "011218".Win ComboBox("Fly From:").Select DataTable("from", dtGlobalSheet) 参数化 ‘.Win ComboBox("Fly To:").Select "Syd ney" .Win Butto n( "FLIGHT").CIick With .Dialog("Flights Table").Win List("From").Select "12463 LON 03:07 PM SYD 04:48 PM NW $160.40".Win Butto n( "OK").Click End With.Win Edit("Name:").Set "gcc" .Win Edit("Tickets:").Set "3".Win RadioButt on ("Busi ness").Set .Win Butto n("In sert Order").Click .Close End Withwait(1)必须有wait 函数回调给第二次循环预留准备时间 结果脚本录制关键字视图♦namD€DErGH IJLMN1Lo-ijcm 2 iFarra3脚本回放结果4t ft JVWH前¥前"^LHTIW"磚b/l 师工kH inse^ U"2ET " aJtisr"""I Fii^l Fesw-slc-■Q IN■Z™E Fi 丁1 MTrfc*wafu.WaR ( 1 «btfg ihwst華.HI TKtes.自T I E 'ges'lfi 'aTfii IN NP ”" ■adtbac.*T f 1l-t *T»<jfft■严.Stf5KIII >4H '■TWOL W 曾jibtiiiMTt 仲練 fDaAaToDh5KEhi. ' BM > ' E 叶Civile 1 1 vS. tXhOctT 砂'0112145心jiBeF'iW 1Hhpn- Miishiina- ihf Frer-.'K対R1IW "却 1 即-h* II ・丹 T Q * 111 *缺 TL1GHT araStfMTCkfc :)KJ 呵严itiM本案例中对Flight 系统的用户登陆界面进行参数化的黑盒测试 用到6组测试数据测试脚本Dialog("Logi n").Wi nEdit("Age nt Name:").Set DataTable("username", dtGlobalSheet)'输入用户名Dialog("Logi n").Wi nEdit("Password:").Set DataTable("password", dtGlobalSheet)'输入密码Dialog("Logi n").Wi nButto n("OK").CIick '点击登陆 If Dialog("Login").Dialog("Flight Reservations").Exist ThenDialog("Logi n").Dialog("Flight Reservatio ns").Wi nButto n(" 确定").Click ' 弹出 提示框点击确认按钮 Dialog("Log in ").Close else '登陆成功进入订票Win dow("Flight Reservatio n").ActiveX("MaskEdBox").Type "011218"Win dow("Flight Reservatio n").Wi nComboBox("Fly From:").Select "Lo ndon" Win dow("Flight Reservatio n").Wi nComboBox("Fly To:").Select "Paris" Win dow("Flight Reservatio n").Wi nButto n("FLIGHT").CIickWin dow("Flight Reservatio n").Dialog("Flights Table").Wi nList("From").Select耳專 Test Parameter Summary "… 曲 Rur-Timc Ddt? Tablu□ |j^ Porometer Iteration 1 (RevH 电 Actionl SjirnnfiiyEl-- X 由)Parimrter Iteration 2 fRov 刁 X 唱Action] S immsiry(41 Ji login0 X Hight ReservationMa^ktdSox fypt-回fl F ¥ From:占elect 密 Fly TcjLSd&a■ FLIGHT, Click Para meter Results Summary宦 X 曰 Fights T ・bb5— J*◎ P.un Errorffl • Flight ReservationTest Parameter Results name. Resl I Time 厶>n 匕中国転薜时旧Run HtartQd:2D1SHP^135340Ftun ended: 201S/1/7-"12274 LON 01:27 PM PAR 03:07 PM NW $155.00"Win dow("Flight Reservatio n").Dialog("Flights Table").Wi nButton ("OK").CIickWin dow("Flight Reservatio n").Wi nEdit("Name:").Set "gcc"Win dow("Flight Reservatio n").Wi nEdit("Tickets:").Type "5"Window("Flight Reservation").WinEdit("Tickets:").SetSelection 0,1Win dow("Flight Reservatio n").Wi nEdit("Tickets:").Set "5"Win dow("Flight Reservatio n").Wi nRadioButto n( "Busi ness").SetWindow("Flight Reservation").WinButton("Insert Order").ClickWin dow("Flight Reservatio n").CIose ' 退出订票界面End Ifwait(3)脚本录制结果|曾小川L OTH Cwortrfo-Qcfc EizkEne "OK-□Lit”v Q ridlt匚he亡庸wheEher the ' F?gnt fesertiBt =TH ' base sasts . H 931口*□色ttie bLtonChiE CleaE IhrE 占兰四日龙*二「帕用Re时皿如Cbw Cw lhr 'F^h ' wrdsw 誉Funriiinr Gal Wfit 3 }務匕*耳岂护FI M14 4 it Hi ■, d q BMpRl:肌,L-atJi T施I E脚本回放结果鼻Test ^arameterLog nTest S j—匪Run-Time Data Table 由• “ Pa meterLog inTect tte 3 Po ro mctortoginTcrt Ito 3 D| ParometcrtoginTest Ite 自• ParameterLoginTest Ite 用• ParameterLoginTest Ite r« • ® Pa ra meterlog inTe^t IteTest ParameterLoflinTestResults name: R G$5Time Zone: 4=国听;隹对司Run started: 2018/1/7 ・ 14:2059 Run ended 2018/1/7-14 2151。

航空订票系统 数据结构程序设计实验报告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");

飞机订票系统测试报告

飞机订票系统测试报告

飞机订票系统测试报告1. 引言本文档旨在介绍飞机订票系统的测试过程和结果。

飞机订票系统是一款用于用户预订航班机票的在线平台。

通过测试,我们旨在确保系统的功能正常、性能稳定,并且用户能够顺利完成预订流程。

2. 测试环境为了对系统进行全面的测试,我们搭建了以下测试环境:•操作系统:Windows 10•浏览器:Google Chrome,Mozilla Firefox•设备:台式电脑,笔记本电脑,手机(Android,iOS)•网络环境:LAN,WLAN,4G网络3. 测试目标我们的测试目标主要包括以下几个方面:•功能测试:确保系统的各项功能正常运作,包括用户注册、登录、查询航班信息、预订机票等。

•兼容性测试:在不同的操作系统、浏览器和设备上测试系统的兼容性,确保用户可以在不同的环境中正常使用系统。

•性能测试:通过模拟多用户同时访问、查询航班和预订机票,测试系统的性能稳定性和响应速度。

•安全性测试:检查系统的安全性,防止潜在的数据泄露和非法访问。

4. 测试步骤为了对系统进行全面的测试,我们按照以下步骤进行测试:4.1 用户注册和登录功能测试1.打开系统主页,点击注册按钮进入注册页面。

2.输入有效的用户名、密码和邮箱地址,点击注册按钮完成注册。

3.使用注册的用户名和密码,尝试登录系统。

4.验证登录是否成功,检查是否能够正常浏览个人信息页面。

4.2 航班查询功能测试1.登录系统后,点击航班查询按钮进入查询页面。

2.输入有效的出发地、目的地和日期,点击查询按钮进行航班搜索。

3.检查系统是否能够正确地显示符合条件的航班信息。

4.选择一条航班信息,尝试获取详细信息。

4.3 机票预订功能测试1.在航班查询结果页面,选择一条符合条件的航班信息。

2.输入乘客信息和联系方式,点击预订按钮进行机票预订。

3.检查系统是否成功生成订单,并显示预订成功的提示信息。

4.登录用户的邮箱,确认是否收到预订成功的邮件通知。

4.4 兼容性测试在不同的操作系统、浏览器和设备上测试系统的兼容性,包括:•操作系统:Windows,macOS,Linux•浏览器:Google Chrome,Mozilla Firefox,Safari•设备:台式电脑,笔记本电脑,手机(Android,iOS)4.5 性能测试1.使用性能测试工具,模拟多用户同时访问系统。

飞机订票系统测试报告

飞机订票系统测试报告

飞机订票系统功能测试报告课题名称飞机订票系统功能测试报告系/专业班级学号学生姓名指导教师:第一章QTP自动化测试介绍1.1概述QTP是HP公司开发的功能自动化测试工具。

相对于手工测试,QTP自动化测试比人工测试快得多,同时可以避免人工测试的错误,因此,随着测试技术的发展,自动化测试逐渐成为测试的一个重要测试工具。

1.2测试介绍本次课程的内容就是学习QTP自动化测试工具,以飞机订票系统为实例,通过飞机订票的过程,包括登陆、订票、删除等一系列功能操作,运用QTP自动化测试工具来进行具体测试操作,从而来了解并学习QTP自动化测试工具。

在使用QTP进行自动化测试时,所包含的几个步骤:1、准备录制;2、创建对象库;3、创建函数和函数库;4、录制执行;5、强化测试脚本;6、调试脚本;7、在回归测试中运行测试;8、分析结果,报告问题。

按照以上步骤,对飞机订票系统的各个功能进行自动测试,完成系统的测试工作。

1.3 测试内容对于飞机订票系统的自动化测试,首先要熟悉了解一下这个飞机订票系统的基本运行流程,从登陆到订票到查询、删除等一系列基本功能的操作,在对系统流程了解后,再开始对其中的一些功能进行测试工作。

在对这个飞机订票系统,此次测试内容有登陆功能,其中登陆功能测试包含一个用户正确登陆、设置参数可以进行多个用户(正确和错误的)的登陆以及运用手工登陆的方法进行测试,在订票功能中,有对订票是否成功的测试、设置检查点以及循环所有航班的测试,另外还有传真订单的录制,其中有录制签名和录制模式,除此之外还有与数据库的链接等一些简单的功能测试。

1.4测试目标本次课程主要目标就是了解熟悉并学习简单的自动化测试工具,能运用基本的测试工具,对系统进行简单的自动化测试。

对于QTP自动化测试的测试目标:熟悉QTP自动化测试工具及其基本功能掌握QTP自动化测试的基本测试步骤运用QTP测试工具对系统进行简单的自动化测试在QTP测试中,能写出基本的脚本语言对于飞机订票系统的测试目标:测试登陆功能,包括单个用户能否正确登陆、多个用户的正确和错误是否能正确登陆,以及手工能否登陆的测试 订票功能的测试,其中有判断订票是否成功、添加检查点及循环所有航班能否成功测试传真和删除订单的测试,在传真测试中,录制签名后,进行播放时签名是能否播放出来,对于订单的删除,进行脚本语句的编写,能否成功完成测试第二章测试计划及测试环境搭建2.1测试原理分析QTP主要采用的是GUI模拟人的操作。

机票预订系统压力测试报告

机票预订系统压力测试报告

机票预订系统压力测试报告1. 简介机票预订系统是一种用于在线预订航班机票的软件系统。

为了确保系统能够在高流量情况下正常运行,我们进行了一系列的压力测试,以评估其性能和稳定性,并提供本报告以记录和分析测试结果。

2. 测试环境我们搭建了一个模拟真实用户访问的测试环境,包括使用真实数据的航班信息和用户信息,并通过自动化工具模拟了多种类型的用户请求。

测试环境的配置如下:- 操作系统:Windows Server 2016- 虚拟机:VMware Workstation 15- 内存:8GB- 处理器:***********************3. 测试内容和方法我们针对机票预订系统的主要功能和模块进行了压力测试,包括以下方面:- 用户登录和注册- 航班查询和订购- 订单支付和确认- 退票和改签功能在每个功能测试中,我们模拟了多个并发用户同时访问系统,并通过增加并发请求的数量来逐渐增加系统的负载,直到达到系统资源的极限。

同时,我们还进行了长时间持续压力测试,以评估系统在高负载状态下的稳定性和性能表现。

4. 测试结果根据我们的压力测试,机票预订系统在正常使用负载下能够快速响应用户请求,系统性能表现良好,能够满足用户的需求。

然而,在极端高负载条件下,系统响应时间会有所增加,并存在一些瓶颈和性能问题。

具体的测试结果如下:- 在低负载条件下,系统平均响应时间为500毫秒。

- 随着并发用户数量的增加,系统响应时间逐渐增加。

当并发用户数量达到100时,系统平均响应时间增加到2秒。

- 当并发用户数量达到200时,系统响应时间进一步增加,平均响应时间达到5秒。

- 在持续高负载情况下,系统偶尔出现请求超时和响应错误的情况,但整体稳定性较好。

5. 性能优化建议根据测试结果,我们提出以下性能优化建议,以改善机票预订系统的性能和稳定性:- 针对数据库查询进行性能优化,包括索引的优化和查询语句的优化,以提高系统的查询和订购速度。

机票预订系统实验报告

机票预订系统实验报告

一、实验名称系统静态建模二、实验目的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. 功能完整性机票预定系统需要提供全面的功能,包括机票查询、订票、退票等。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

机票预定系统实验报告

机票预定系统实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

机票预订系统实验报告

机票预订系统实验报告

机票预订系统报告班级:医药软件工程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环境,提供远程机票预订功能,包括远程航班信息查询,机票预订与确认等;使用《网上机票预订系统》可使机票订购过程简单化、电子化、数字化,节省常规过程所不必要的资源浪费。

该软件要实现方便用户提前预定机票,提前知晓航班信息的功能,为了减少用户到机场现场买票导致的未能买到较为合适机票所浪费时间的现象。

航空公司为给旅客乘机提供方便,需要开发一个机票预定系统。

各个旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码(护照号码)、旅行时间、旅行始发地和目的地,航班舱位要求等)输入到系统中,系统为旅客安排航班。

当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统核对无误即打印出机票给旅客。

【机票预订系统测试报告】机票订票系统测试分析报告

【机票预订系统测试报告】机票订票系统测试分析报告

【机票预订系统测试报告】机票订票系统测试分析报告机票订票系统测试分析报告机票预定系统测试文档--XXX1.引言.................................................................................................................. . (2)1.1编写目的 (2)1.2项目背景 (2)1.3定义 (2)1.4参考资料..............................................................................错误!未定义书签。

2.测试计划执行情况 (3)2.1测试项目 (3)2.2测试计划和人员 (5)2.3测试结果 (5)3.软件需求测试结论 (11)4.评价.................................................................................................................. .. (14)4.1软件能力 (14)4.2缺陷和限制 (14)4.3解决和找到的Bug (14)4.4测试结论 (14)1.引言1.1编写目的在开发大型软件的漫长过程中,面对极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺。

因此,在软件生命周期的每个阶段都不可避免地会产生差错。

尤其对于机票预订系统这类会影响人们生活.财产的工程软件,必须尽量减少差错,以免造成严重的损失。

测试是“为了发现程序中的错误而执行程序的过程”。

测试的目的就是在软件投入生产性运行之前,尽可能多的发现软件中的错误。

目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明.设计和编码的最后复审,也是必不可少的关键步骤。

(完整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. 在生成电子客票时,未选择舱位等级,导致无法生成电子客票。

(完整word版)飞机订票系统实验报告(word文档良心出品)

(完整word版)飞机订票系统实验报告(word文档良心出品)

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

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

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

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

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

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

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

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

运用if 语句实现订票时的多种情况:订票数输入不正确、飞机票数不足等情况。

机票预订系统活动图及试验报告

机票预订系统活动图及试验报告

实验五活动图
一、实验目的
1.熟悉动态建模的概念和内容。

2.熟悉活动图的基本功能和使用方法。

3. 掌握如何使用建模工具绘制活动图方法。

二、实验内容
根据所选课题需求分析、用例图、类图等,应针对每个用例进行业务分析,说明其具体的业务流程,完成系统活动图。

三、实验步骤
以“删除读者信息”用例为例,说明绘制活动图的步骤。

1.管理员在录入界面,输入待删除的读者名;
2.“业务逻辑”组件在数据库中,查找待删除的读者名;
3.如果不存在,则显示出错信息,返回步骤(1),如果存在则继续;
4.“业务逻辑”组件判断“待删除的读者”是否可以删除;
5.如果不可以,则显示出错信息,返回步骤(8),如果可以则继续;
6.在数据库中,删除相关信息;
7.显示删除成功信息;
8.结束。

以此为例,完成以下活动图:
1) 订票者的活动图
2) 机票管理员的活动图
3) 系统管理员的活动图
四、实验安排
需要2 学时,分1 周进行,每周2 学时。

实验报告三(详细设计)

实验报告三(详细设计)

实验序号及实验名称实验三软件项目的详细设计一、实验题目:飞机订票管理系统二、任务概述(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. 熟悉飞机订票系统的基本原理和功能模块;2. 掌握系统设计与开发的基本方法;3. 提高编程能力和团队协作能力;4. 培养解决实际问题的能力。

三、实训内容本次实训主要围绕以下几个方面展开:1. 系统需求分析:分析用户需求,确定系统功能模块和性能指标;2. 系统设计:根据需求分析结果,设计系统架构、数据库、界面等;3. 系统实现:使用Java Swing和MySQL技术实现系统功能;4. 系统测试:对系统进行功能测试、性能测试、安全测试等;5. 系统部署与维护:将系统部署到服务器,并进行日常维护。

四、实训过程1. 需求分析:- 用户:乘客、旅游代理、航空公司工作人员等;- 功能模块:用户管理、航班查询、机票预订、订单管理、航空公司与航班信息管理、客户支持与服务、优惠活动与促销、数据统计与分析;- 性能指标:系统响应时间、并发用户数、数据存储容量等。

2. 系统设计:- 架构设计:采用B/S架构,前端使用Java Swing,后端使用MySQL;- 数据库设计:设计飞机表、订单表、用户表、航空公司表等;- 界面设计:设计登录界面、系统首页、航班查询、机票预订、订单管理等界面。

3. 系统实现:- 使用Java Swing实现前端界面;- 使用MySQL实现后端数据库操作;- 实现用户管理、航班查询、机票预订、订单管理等功能。

4. 系统测试:- 功能测试:测试系统各个功能模块是否正常工作;- 性能测试:测试系统响应时间、并发用户数等性能指标;- 安全测试:测试系统是否存在安全隐患。

5. 系统部署与维护:- 将系统部署到服务器;- 定期进行系统备份和恢复;- 及时修复系统漏洞和故障。

五、实训成果1. 完成了飞机订票系统的设计与开发;2. 系统功能完善,操作便捷;3. 提高了编程能力和团队协作能力;4. 为以后从事软件开发及相关工作打下了坚实基础。

机票设计系统实验报告(3篇)

机票设计系统实验报告(3篇)

第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等技术实现用户界面。

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

课程设计课程名称:数据结构实验项目:飞机订票系统姓名:专业:班级:学号:计算机科学与技术学院年月日实验项目名称:飞机订票系统一、实验目的:1. 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;二、实验内容(1)本系统实现航班订票的功能。

要求具有录入、订票、退票等功能。

(2)航班信息存放在一个结构体中,分别有航班号、起飞时间、降落时间、票价等信息。

(3)程序完成航班信息的录入和乘客订票功能。

(4)客户能通过航班号或抵达城市查询航班信息,并且能订票。

当座位无剩余时提示客户并提示相关航线。

三.概要设计程序包含函数:主控模块包含子模块为:四.详细设计算法流程图a) 系统以菜单方式工作;b) 航班订票功能c) 航班退票功能d) 查询航线:(至少一种查询方式)--算法;e) 修改航线(1) 增加航班号(2) 删除航班号(3) 修改密码(4) 查询航班信息f) 按终点站查询。

程序截图菜单增加航线信息订票退票查询五.源代码#include <conio.h>#include<stdio.h>#include<string.h>#include<stdlib.h>#define OK 1#define TRUE 1#define FALSE 0#define ERROR 0#define OVERFLOW -2#define PR printftypedef int status;typedef struct airline{char line_num[8];//航班号char plane_num[8];//飞机号char end_place[20];//目的的int total;//座位总数int left;//剩余座位struct airline *next;//下一个结点}airline;typedef struct customer{char name[9];//顾客名char line_num[8];//航班号int seat_num;//座位号struct customer *next;//下一个结点}customer;airline *init_airline(){ //初始化链表airline *l;l=(airline*)malloc(sizeof(airline)); if(l==NULL){ exit(0);}l->next=NULL;return l;}customer * init_customer(){//初始化链表customer *l;l=(customer*)malloc(sizeof(customer)); if(l==NULL){exit(0);l->next=NULL;return l;}status insert_airline(airline **p,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作airline *q;q=(airline*)malloc(sizeof(airline));strcpy(q->line_num , line_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;// PR("insert %d ,%dis succssed!\n",e,bl);return OK;}status insert_customer(customer **p,char *name,char *line_num,int seat){//customer链表插入操作customer *q;q=(customer*)malloc(sizeof(customer));/* { PR("内存分配失败\n");return OVERFLOW; }*/strcpy(q->name , name);strcpy(q->line_num , line_num);q->seat_num =seat;q->next=NULL;(*p)->next=q;(*p)=(*p)->next;// PR("insert %d ,%dis succssed!\n",e,bl);return OK;}airline *modefy_airline(airline *l,char *line_num)//修改airline链表中的数据{ airline *p;p=l->next ;for(;p!=NULL;p=p->next ){ if(strcmp(line_num,p->line_num )==0){ p->left ++;// PR("modefy %s\n",p->line_num );return l;}}PR("\n\t\t没有这个航班,无法完成修改任务!");status delete_airline(airline *h,char *line_num)//删除航班{ airline *p,*pr;pr=h;p=pr->next ;while(p!=NULL){ if(strcmp(line_num,p->line_num )==0){ pr->next =p->next ;PR("\n\t\t删除 %s 航班\n",p->line_num );return OK;}pr=pr->next ;p=pr->next ;}PR("\n\t\t无此航班,无法删除!\n");return ERROR;}status delete_customer(customer *h,char *line_num)//删除顾客{ customer *p,*pr;pr=h;p=pr->next ;while(p!=NULL){ if(strcmp(line_num,p->line_num )==0){ pr->next =p->next ;}pr=pr->next ;p=pr->next ;}// PR("无此航班,无法删除!\n");return OK;}status delete_cus(customer *h,airline *l,char *name)//顾客退票{ customer *p,*pr;char line_num[8];// qr=h;pr=h;p=pr->next ;// PR("开始删除\n");while(p!=NULL){ if(strcmp(name,p->name )==0){ strcpy(line_num,p->line_num );l=modefy_airline(l,line_num);pr->next =p->next ;PR("\n\t\t顾客 %s 退票成功!",p->name );pr=pr->next ;p=pr->next ;}PR("\n\t\t无此顾客,无法退票!\n");return ERROR;}status save_airline(airline *l)//保存airline.dat{ FILE *fp_airline;char ch='#';airline *p=l->next ;char filename[]="c:\\airline.dat";if((fp_airline=fopen(filename,"wb"))==NULL){ printf("can not open file to write:%s\n",filename);return ERROR;}for(;p!=NULL;p=p->next ){ // printf("%s,%s,%s,%d,%d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p ->left );fprintf(fp_airline,"%s,%s,%s,%d,%d%c\n",p->line_num ,p->plane_num ,p->end_plac e ,p->total ,p->left ,ch);}fclose(fp_airline);return OK;}status save_customer(customer *l)//保存顾客信息 customer.dat{ FILE *fp_customer;char ch='#';customer *p=l->next ;char filename[]="c:\\customer.dat";if((fp_customer=fopen(filename,"wb"))==NULL){ printf("can not open file to write:%s\n",filename);return ERROR;}for(;p!=NULL;p=p->next ){ // PR("%s,%s,%d\n",p->name ,p->line_num ,p->seat_num );fprintf(fp_customer,"%s,%s,%d%c",p->name ,p->line_num ,p->seat_num ,ch);}fclose(fp_customer);return OK;}int changStrInt(char *ch)//把字符串转化为整型{ int a=1,b=0,c=0,i;{ if (ch[i]<58&&ch[i]>47){ b=a*(ch[i]-48);a=a*10;c=c+b;}else{ PR("\n\t\t%c 不合法,无法将此字符串转化为整形!",ch[i]);return 0;}// printf("the c is %d\n",c);}return c;}status insert_air(airline *l,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作airline *q;q=(airline*)malloc(sizeof(airline));strcpy(q->line_num , line_num);strcpy(q->plane_num , plane_num);strcpy(q->end_place , end_place);q->total =total;q->left =left;q->next=l->next ;l->next=q;// PR("insert %d ,%dis succssed!\n",e,bl);return OK;}status insert_cus(customer *l,char *name,char *line_num,int seat){//customer链表插入操作customer *q;q=(customer*)malloc(sizeof(customer));strcpy(q->name , name);strcpy(q->line_num , line_num);q->seat_num =seat;q->next=l->next ;l->next=q;return OK;}status load_airline(airline *l){ FILE *fp_airline;int flag=0,i=0;char ch;char line_num[8];//航班号char end_place[20];//目的的char total_str[5];char left_str[5];int total;//座位总数int left;//剩余座位// airline *p=l;char filename[]="c:\\airline.dat";if((fp_airline=fopen(filename,"rb"))==NULL){ printf("can not open file to load:%s\n",filename); return ERROR;}while(!feof(fp_airline)){ ch=fgetc(fp_airline);if(ch!='#'){ if(flag==0&&ch!=','){ line_num[i]=ch;i++;}else if(flag==1&&ch!=','){ plane_num[i]=ch;i++;}else if(flag==2&&ch!=','){ end_place[i]=ch;i++;}else if(flag==3&&ch!=','){ total_str[i]=ch;i++;}else if(flag==4&&ch!=','){ left_str[i]=ch;i++;}else if (ch==','){ flag++;i=0;}/* else{ PR("错误\n");return ERROR;}*/}elsei=0;total=changStrInt(total_str);left=changStrInt(left_str);PR("%8s%8s%8s%9d%9d\n",line_num ,plane_num ,end_place ,total ,left ); insert_air(l,line_num,plane_num,end_place,total,left);}}fclose(fp_airline);return OK;}status load_customer(customer *l){ FILE *fp_customer;int flag=0,i=0;char ch;char name[9];char line_num[8];//航班号char seat_num_str[5];int seat_num;//座位// customer *p=*l;char filename[50]="c:\\customer.dat";if((fp_customer=fopen(filename,"rb"))==NULL){ printf("can not open file to load:%s\n",filename);return ERROR;}while(!feof(fp_customer)){ ch=fgetc(fp_customer);printf("%c\n",ch);if(ch!='#'){ if(flag==0&&ch!=','){ name[i]=ch;i++;}else if(flag==1&&ch!=','){ line_num[i]=ch;i++;}else if(flag==2&&ch!=','){ seat_num_str[i]=ch;i++;}else if (ch==','){ flag++;i=0;}{ PR("错误\n");return ERROR;}}else{ flag=0;seat_num=changStrInt(seat_num_str);PR("%10s %10s %d\n",name ,line_num ,seat_num );insert_cus(l,name,line_num,seat_num);// p=p->next ;}}fclose(fp_customer);return OK;}status creat_airline(airline **l)//创建airline单链表{ airline *p=*l;int i=0;char *line_num[3]={"bjnc01","bjsh02","shgz03"};char *plane_num[3]={"plane1","plane2","plane3"};char *end_place[3]={"nc","sh","gz"};int total[3]={100,100,100};int left[3]={51,50,78};for (i=0;i<3;i++){insert_airline(&p,line_num[i],plane_num[i],end_place[i],total[i],left[i]);}return OK;}status creat_customer(customer **l)////创建customer单链表{ customer *p=*l;int i=0;char *name[3]={"ouyangj0","yhl","fs"};char *line_num[3]={"bjnc01","bjsh02","shgz03"};int seat_num[3]={1,5,10};for (i=0;i<3;i++){insert_customer(&p,name[i],line_num[i],seat_num[i]);}return OK;}status increase_air(airline *l,char *line_num,char *plane_num,char *end_place,int total)//增加航线{ airline *p=l->next ;for(;p->next !=NULL;p=p->next){}insert_airline(&p,line_num,plane_num,end_place,total,total);return OK;}status book(airline *l,char *line_num,customer *c,char *name)//订票函数{ airline *p=l;customer *q=c->next ;p=l->next ;for(;q->next !=NULL;q=q->next){}// PR("%s\n",q->name );for(;p!=NULL;p=p->next ){ if(strcmp(line_num,p->line_num )==0){ if(p->left >0){ PR("\n\t\t恭喜您!订票成功!");PR("\n\t\t你的座位号是: %d",(p->total -p->left +1));insert_customer(&q,name,line_num,p->total -p->left +1);p->left --;return OK;}else PR("\n\t\t对不起,座位已满!");return 0;}}PR("\n\t\t对不起,没有这个航班号!");return ERROR;}status print_airline(airline *l)//打印航线信息{ airline *p=l->next ;for(;p!=NULL;p=p->next ){ PR("%8s%8s%8s%9d%9d\n",p->line_num ,p->plane_num ,p->end_place ,p->total ,p->left );}return OK;}status print_customer(customer *l)//打印顾客信息{customer *p=l->next ;for(;p!=NULL;p=p->next ){ PR("%10s %10s %d\n",p->name ,p->line_num ,p->seat_num );}return OK;}status inputpassword(char cc[9])//隐藏密码为*号的函数 -------------------楼主,注意这里!{char c;for(i=0;c=getch();i++){if(c==13) break; /*13是回车的ascii码,用'\n'不行,不知怎么回事*/else{cc[i]=c;printf("*");}}cc[i]='\0';//printf("\n");//printf("%s",cc);//getchar();return strlen(cc);}int main(){ char choice,choice2,name[9],line_num[8],password[9],plane_num[8],end_place[9];char pass[9]="12345678",re_pass_1[9],re_pass_2[9];int t=1,tt=1,total;airline *air=init_airline();customer *cus=init_customer();creat_airline(&air);creat_customer(&cus);// save_airline(air);// save_customer(cus);while(t==1){PR("\n\t\t********************************");PR("\n\t\t 欢迎进入航班订票系统 ");PR("\n\t\t* 1----订票 *");PR("\n\t\t* 2----退票 *");PR("\n\t\t* 3----查询 *");PR("\n\t\t* 4----修改航线 *");PR("\n\t\t* 5----读入文件 *");PR("\n\t\t* 0----返回 *");PR("\n\t\t********************************");PR("\n\t\t*请输入菜单号(0-5):");choice = getch();PR("%c\n",choice);if(choice=='1'){ PR("\n\t\t请输入你要订的航班号: ");scanf( "%s",line_num);PR("\n\t\t请输入你的姓名: ");book(air,line_num,cus,name);save_airline(air);save_customer(cus);}else if(choice=='2'){ PR("\n\t\t请输入你的姓名: ");scanf( "%s",name);delete_cus(cus,air,name);save_airline(air);save_customer(cus);}else if(choice=='3'){ PR("\n 航班号飞机号目的地总票数余票数\n"); print_airline(air);PR(" 姓名航班号座位号\n");print_customer(cus);}else if(choice=='4'){ tt=1;PR("请输入密码: ");//scanf("%s",password);inputpassword(password);if(strcmp(password,pass)==0){ while (tt==1){PR("\n\t\t********************************"); PR("\n\t\t* 航线信息修改: *"); PR("\n\t\t* 增加航班号-----'0' *");PR("\n\t\t* 删除航班号-----'1' *");PR("\n\t\t* 修改密码-------'2' *");PR("\n\t\t* 查询航线信息---'3' *");PR("\n\t\t* 退出航线修改---'4' *");PR("\n\t\t********************************"); PR("\n\t\t请选择: ");choice2=getch();PR("%c\n",choice2);if(choice2=='0'){ PR("\n\t\t请输入你要增加的航班号: ");scanf("%s",line_num);PR("\n\t\t请输入飞机号: ");scanf("%s",plane_num);PR("\n\t\t请输入目的地: ");scanf("%s",end_place);PR("\n\t\t请输入座位总数: ");increase_air(air,line_num,plane_num,end_place,total); save_airline(air);save_customer(cus);}else if (choice2=='1'){ PR("\n\t\t请输入你要删除的航班号: ");scanf("%s",line_num);delete_airline(air,line_num);delete_customer(cus,line_num);save_airline(air);save_customer(cus);}else if(choice2=='2'){ PR("\n\t\t注意:密码不能超过8位!");PR("\n\t\t请输入新密码:");scanf("%s",re_pass_1);PR("\n\t\t请再输入一次: ");scanf("%s",re_pass_2);if(strcmp(re_pass_1,re_pass_2)==0){ strcpy(pass,re_pass_1);PR("\n\t\t密码修改成功!请记住.");}else { PR("\n\t\t你两次输入的密码不一致!");}}else if(choice2=='3'){ PR("\n\t\t 航班号飞机号目的地总票数余票数\n"); print_airline(air);}else if(choice2=='4'){ tt=0;}else {PR("\n\t\t你的输入有误");tt=0;}}//end while}//end ifelse {PR("\n\t\t对不起!你输入的密码不正确!");}}//end else if 修改else if(choice=='4'){ load_airline(air);}else if(choice=='0'){ PR("\n\t\t再见!");t=0;}else{ PR("\n\t\t你的输入有误"); }}getch();}。

相关文档
最新文档