精华内容
下载资源
问答
  • 《影院售票管理系统》是一款集售票管理、会员管理、小卖部管理于一体的软件,适用于各大中小型电影院、剧院等。软件在功能方面主要包括:1.基础设置:节目设置、场所设置、票
  • 铁路售票管理系统软件使用说明书 铁路售票管理系统软件系统测试报告 铁路售票系统软件设计说明书 铁路售票系统需求说明书 create database railwaymanagementdb go use railwaymanagementdb go create table ...
  • 中顶售票管理系统,是针对景区、游乐场等各种售票场所开发的信息化管理软件,支持多窗口同步售票、支持相关景区配套商品的销售、支持多仓库管理,支持对库存商品的库存报警、
  • 吴省平售票管理系统Access版,可以完成售票、售票查询、售票统计、报表输出、票据库存、票据类型管理、用户管理等几大功能。软件界面使用了StoneXP.ocx控件,报表组件使用了FlexCel
  • 影院售票管理系统

    2017-04-22 12:24:09
    影院售票管理系统,使用C#+DevExpress15.2控件开发,本软件仅供学习参考.
  • 航空售票管理系统.rar

    2019-06-10 14:55:16
    航空售票管理系统,java语言。SQL server数据库连接,适合软件开发,java,数据库等的期末大作业项目
  • 电影院售票管理系统UML_计算机软件及应用_IT/计算机_专业资料。业务需求 1...Jsp 影院售票系统的架构是基于 Jsp/JavaBean 的模式,这种模式以其...Jsp 影院售票系统的架构是基于 Jsp/JavaBean 的模式,这种模式以其......

    一个完善的电影院售票管理系统,可以帮助电影院工作人员提升工作效率, 辅助电影院工...

    电影院售票管理系统UML_计算机软件及应用_IT/计算机_专业资料。业务需求 1...

    Jsp 影院售票系统的架构是基于 Jsp/JavaBean 的模式,这种模式以其...

    Jsp 影院售票系统的架构是基于 Jsp/JavaBean 的模式,这种模式以其...

    查询是否有余票及对应场次、 座位,判断是否接受订单 1.用户 3.软件需求规格说明 介绍 1.目标 软件需求规格说明描述了“电影院售票管理系统”版本的软件功能性需求......

    二、建模过程分析 1.1 电影院售票系统总体需求与功能模块本系统主要是实现电影院售票管理系统,从而提高售票效率。使用本系统,可以有效地 管理和统计影票的基本信息......

    影院售票管理系统_IT/计算机_专业资料。《影院售票管理系统》是一款集售票管理、...

    电影售票系统详解。电影售票系统详解 用户界面:包 UI package UI; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.List; ......

    Jsp 影院网上售票系统的架构是基于 Jsp/JavaBean 的模式, 这种模...

    判断是否接受订单 前置条件 1.用户 3.软件需求规格说明 3.1 介绍 1.目标 软件需求规格说明描述了“电影院售票管理系统”1.0 版本的软件功能性 需求和非功能性......

    在传统的网页html文件(*html,*htm)中加入java程 序片段(scriptlet)和jsp标记(...系统总体设计 ?整体功能结构图网上影院售票系统 用户登录 游客 管理员登录 查询......

    说明 职工 号 职工 密码 1.分析与创建数据库; 职工 类型 根据系统的功能分析结果,影院售票管理系统将会使用 Microsoft SQL Sever 2000 作为后台的数据库管理系统。...

    影院售票管理系统的设计与实现可行性研究报告_计算机软件及应用_IT/计算机_专业资料。影院售票管理系统的设计与实现可 行性研究报告 【摘要】 电影的产生改变人们的......

    采用自主开发方式,系统上线后,能更有效地支持影城的运 行,所产生的效益远远大约开发花销,即在经济可行性分析结果 是可行的。对于影城管理,本系统使用 JAVA1.7 与......

    上映时间映时间 职工号 职工密码 职工类型 三.设计说明 1.分析与创建数据库; 根据系统的功能分析结果,影院售票管理系统将会使用 2000 作为后台的数据 库管理系统。...

    面向对象程序设计课程设计报告 2006 / 2007 学年 第一 学期 项目名称: 影院售票管理系统 项目负责人: 王德才 学号:_0601023230_ 同组者: 李清爽 学号: ......

    职工信息 职工号 职工密码 职工类型 三.设计说明 1.分析与创建数据库; 根据系统的功能分析结果,影院售票管理系统将会使用 Microsoft SQL Sever 2000 作为后台的数据......

    职工号 职工密码 1 三.设计说明 1.分析与创建数据库;根据系统的功能分析结果, 影院售票管理系统将会使用 Microsoft SQL Sever 2000 作为后台的数据库管理系统。本......

    电影院| 管理系统| 电影院订票管理系统_销售/营销_经管营销_专业资料。java实践项目 电影院订票管理系统 用户 管理员 订票 修改 查询影片信息 退出 影片增删改查 ......

    1.2 背景 项目名称:影院售票管理系统 项目提出者:计算机 12 级王朴 开发...

    展开全文
  • 火车售票管理系统

    2013-11-03 15:08:24
    软件是本人在上学期间自己做的系统开发,其中包括数据库文件、文档。
  • 题目:C#实现驾校预约管理系统 目 录 1、背景与意义 1.1目的与要求 1.2设计环境 2、需求分析 2.1信息要求 2.2 处理要求 2.3安全性与完整性要求 2.4数据流图 2.5数据字典(简称DD) 3、概念模型设计 3.1...

    题目:C#实现驾校预约管理系统

    目  录     


    此处省略几千字


    需求分析

    2.1 信息要求

    根据目的站、车次、时间等信息查询有关车票情况;提供多种方式完成售票工作:现金结算、票据打印;提供与退票相关的一些信息查询手段,完成退票、改签换乘等业务;售票信息统计,打印详细报表。

    2.2处理要求
    具体内容通过全面收集汽车售票系统资料,进行系统规划,系统分析,进行可行性研究,争取达到以下系统目标:

    登录功能:系统管理员权限登陆。用户通过输入不同用户名和密码进行身份验证。

    查询功能:由汽车站的普通售票人员通过检索入口,查询车票信息,并进行排序。

    修改功能:系统管理员则能实现系统用户的添加,修改系统管理员的密码,以此确保该系统能够安全操作,避免不必要的损失。能够实现车站车次及线路信息的管理,对车次及线路的变动信息及时更新,打印输出生成报表。

    售票功能:按车次和时间分别进行售票。

    预定功能:对当天及之后的车票进行预定。

    退票功能:实现未过期车票的退订功能。

    汇总功能:对当天车票的信息进行汇总。能够实现车站车次及线路信息的管理,对车次及线路的变动信息及时更新。打印输出(生成曲线图和报表)。

    统计管理功能:按时间、站点、线路等不同维度统计售票情况,生成报表,分析运营状况分析。

    2.3完整性和安全性要求

    完整性要求:

    用户信息:我们对客户的一些基本信息进行了完整性的要求。用户的UID为唯一标识,不允许UID为空,也不允许UID的值相同。

    线路信息:线路的LINEID为唯一标识,不允许LINEID为空,也不允许LINEID的值相同。

    车辆信息:线路的BUSID为唯一标识,不允许BUSID为空,也不允许BUSID的值相同。

    安全性要求:

    程序分为登陆界面,主界面,线路信息管理界面,汽车信息管理界面,车票信息管理界面,票务信息管理界面,员工管理界面这几个主体界面。使用时应先知道管理员或员工帐号和密码,登陆进入系统主菜单界面,里面包括线路信息,汽车信息,车票信息,票务信息,帮助,退出程序菜单选项。管理人员可以在线路信息管理模块对车站线路信息进行管理。管理人员可以在汽车信息管理模块实现对汽车信息的管理。管理人员可以在车票管理模块实现对车票信息的管理。用户可以通过查询时间,线路和汽车信息,来确定自己要买什么时间,什么路线,什么型号的汽车的车票,并形成表单。

     

    ER图

     

     

    2.5数据字典

    表2.1车辆信息、驾驶员信息、线路信息表

     

    表2.2售票信息表

     

    表2.3购票信息表

     

    表2.4售票员信息、管理员信息表

    1)数据项
    票号、票价、车次、日期、车型、开车时间、起始站、终点站。

    1. 数据流
      数据流名称:车票
      简述:车票有关信息
      数据流来源:客户执行售票操作结果
      数据流去向:购票客户
      数据流组成:车票编号+车票类型+车次信息+票价信息
      3)数据存储
      售票记录:票号,起始站,终点站,票价,车次,日期,车型,售出时间。
      订票记录:票号,起始站,终点站,票价,车次,日期,开车时间,车型。
      车票记录:票号,起始站,终点站,票价,车次,日期,开车时间,车型。
      4)处理过程
      车票汇总:工作人员将一天所售出的票进行统计,包括票数,票类,形成确定的车票记录。
      查询:将顾客需要的车票信息输入系统,并查询其是否可供应。
      查询顾客信息:为订票所设,将顾客的准确信息记录,为其预定所车票。

    处理订票:进行订票交易,工作人员为顾客预定其所需车票,并在系统中作相应记录,确定订票记录。
    处理退票:进行退票交易,工作人员为顾客办理退票手续,并在系统中 作相应记录,确定退票记录。


    此处省略几千字


    资源下载

    完整论文+源程序+数据库下载:https://download.csdn.net/download/frank2102/18752839

    展开全文
  • 车站售票管理系统

    2011-12-30 14:57:29
    1.系统总体结构设计 1.1软件系统总体结构设计 ...2.1创建车票销售管理系统 2.2创建车票销售系统索引表 2.3建立存储过程向表中插入、修改、删除数据。 2.4建立存储过程实现查询 2.5建立视图
  • 通过分析当前的互联网浪潮对小编的前两天的影响,许多投资者都对自动售票管理系统感兴趣,因此,小编现在推出了互联网浪潮中最实用的自动售票管理系统。  国内电影软件供应商不遗余力地为剧院和电影院创造了扩大...

    通过分析当前的互联网浪潮对小编的前两天的影响,许多投资者都对自动售票管理系统感兴趣,因此,小编现在推出了互联网浪潮中最实用的自动售票管理系统。
      国内电影软件供应商不遗余力地为剧院和电影院创造了扩大销售渠道的机会。目前,只有7个经过“特别办公室”认证的票务管理软件,包括岳克(Fire Phoenix),华夏满天,中英博生(Flamingo)和沃思达达(VISTA),今年的新电影(定新)和M1905电影院电影自动售票管理系统。尽管这些自动售票管理系统应用程序具有独特的优势,但是沃思达自动售票管理系统在电影票管理中具有自己的独特功能,可以响应Internet的冲击。
      沃思达(vista)推出了一系列增值服务,例如手机购买,微信购买等,以帮助他们在影院中拥有更多渠道来发展自己的会员。微信平台上的第三方支付使观众可以随时购买门票,而影院则在微信公众背景下使用用户分析来了解用户动态并制定电影活动策略和促销计划。将自己的界面添加到“活动中心”和“会员中心”。剧院的会员管理更加令人担忧,用户体验更加亲密。使用您的每日订阅号信息可以使您的用户了解剧院的最新新闻。通过好友圈的促销活动打破剧院。信息观众限制的困境极大地增加了客户与剧院之间的联系,改善了剧院成员服务系统,并更好地为剧院服务。
      其次,沃思达(vista)的自动售票管理系统具有大数据会员服务系统,该系统可帮助影院根据第三方平台为消费者群体打开和优化数据,从而使影院能够重新获得对“会员”信息的控制。
      该系统为28个第三方电子商务平台提供界面支持,包括Guevara,Cat’s Eye,豆瓣电影,Time Network,百度Demi等。剧院可以选择与第三方平台独立工作,以有效获取第三方票务平台成员资格数据。影院根据会员的大数据分析,智能拍摄系统,电影院广告信息发布系统和座位分配设置功能,根据实际情况有效制定了特殊的营销计划,为影院提供更好的服务,并在互联网竞争中具有竞争优势增加。更大的自主权可以解决互联网对其影响的担忧。
      除了以上两点,该系统已在中国开始实现,现在在国内市场上有约500套应用,客户包括众多电影院和CGV,Oscar,Dadi,Star,Arturo和Time Warner等电影院。
      如果您担心如何将听众告诉周围的听众,今天的票务收入中有60%来自第三方在线销售平台,并且担心剧院将来会受到离线服务点的困扰。因此沃思达是最适合的选择。

    展开全文
  • 《影院售票管理系统》是一款集售票管理、会员管理、小卖部管理于一体的软件,适用于各大中小型电影院、剧院等。 软件在功能方面主要包括: 1.基础设置:节目设置、场所设置、票价设置、状态图示设置;对节目、票价...
  • ① 增加售票途径 ② 简化售票程序 ③ 解决买票难问题
  • C++程序设计 课程设计说明书 题 目 长途客运售票管理系统的设计 学 号 姓 名 指导教师 日 期 内蒙古科技大学课程设计任务书 课程名称 面向对象程序设计 A课程设计 设计题目 长途客运售票管理系统的设计 指导教师 ...
  • 汽车站售票管理系统 delphi语言编写。有源代码及实验报告,甚至还有打包的数据库,非常详细。它属于一个课程设计,软件工程的流程及需求该有的都有。
  • 售票管理系统 V1.01

    2010-01-27 11:25:56
    4、数据备份,可将数据库安全完整的进行备份,再也不用担心因重装系统或误卸载软件而丢失您的宝贵数据; 5、在线升级,支持在线升级软件目前最新版本,更新当前最新的功能,让您的升级工作更加简易、方便。
  • 千里达客运综合管理系统系统是市场上唯一一套基于.NET平台,用C#语言开的的系统,功能全面、操作方便、界面美观的管理系统,共分小型企业、中型企业、大型企业以及集团型大区域联网互售系统等四个版本供不同需求的...
  • 修改功能:系统管理员则能实现系统用户的添加,修改系统管理员的密码,以此确保该系统能够安全操作,避免不必要的损失。能够实现车站车次及线路信息的管理,对车次及线路的变动信息及时更新,打印输出生成报表。 ...
  • 软件系统仅供学习学习之用,功能强大,但在数据库方面做的不是很好,这个系统是关于软件工程方面课程设计,因时间紧迫仅仅完成大部分基本功能, 数据库方面还有待进一步修改.若造成商业损失,本人概不负责.
  • 本需求分析报告的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了本铁路售票系统软件开发过程,便于程序员与客户之间的交流、协作,并作为工作成果的...
  • 包括内容: 软件设计说明书 系统需求说明书
  • 车站售票管理系统【SQLServer数据库+课程设计文档】 1. 系统需求分析 1.1系统调查 1.2用户需求 2.系统逻辑方案 2.1数据流图(简称为DFD) 2.2数据字典(简称为DD) 2.2.1数据项 3.系统总体结构设计 3.1软件...
  • 机场售票管理系统Java+MySQL实现

    千次阅读 多人点赞 2020-08-17 09:20:26
    目录 ...机场售票管理系统的目标是:利用数据库和面向对象的开发软件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机场售票管理系统,实现航空公司的机票销售的自

    目录

    课程设计目的

    通过此次软件工程课程设计,能系统地学习软件开发的过程,并具备基本的软件开发能力,熟练并掌握Java等面向对象的语言并进行项目的开发,熟练电子资源的获取,熟练SQLServer、MySQL等数据库的使用,了解机场机票预订和管理所需流程等。

    课程设计课题描述和需求分析

    课程设计课题描述

    所选课题:机场售票及管理系统。
    机场售票及管理系统的目标是:利用数据库和面向对象的开发软件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机场售票及管理系统,实现航空公司的机票销售的自动化以及航班信息管理便捷化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息和航班信息。

    需求分析

    1、目的和意义
    随着社会发展的不断进步,民航事业的壮大,人们消费水平的提高,乘坐民航的消费者也越来越多,原有的机票预订系统随着机场载客量的迅猛增长和人们对便捷性要求的提高,已经难以满足人们的出行需求。
    为了实现航空公司的现代化管理,进一步提高工作效率,方便旅客购票以及机场管理,需要开发一个机场售票及管理系统。该系统需要具有完整的存储,查询,核对等功能。用户可以通过该系统进行机票的查询和预订,机场可以对航班班次一次订单信息进行查询和管理,航空公司可以对航班信息以及收益信息进行管理。
    今后随着计算机技术以及网络技术的迅速发展,电子商务正逐渐成为Internet应用的一个重要领域。电子商务也必然对航空公司的机票销售模式产生深远的影响。

    2、功能需求
    为方便乘客对于机票的购买以及机场对于售票和航班信息的管理,系统需要三个主要模块通过数据库进行机票的售卖和管理,三个主要模块为:航空公司、机场以及用户模块。
    (1)用户模块:
    用户可以登录自己的账号进入系统,若无账号,则可注册新的账号。登录进入机票预订系统后进行机票的查询,用户输入出发城市,到达城市,出发时间,即可获得班次信息,也可选择航空公司进行筛选,用户在预定机票时,需添加乘客,即输入乘客信息,完成订票。
    (2)机场模块:
    机场通过航空公司所提供的航班信息来安排班次,可通过数据库对班次信息可进行查询增加、取消、修改等操作,同时也可对客户的订单进行查询。若飞机飞机因为意外原因发生延误,机场则可发布相应的信息到客户端。
    (3)航空公司模块:
    航空公司可以安排航班,将飞机和航线等航班信息录入数据库以供机场使用,同时航空公司还能通过数据库中纪录的各航班的余票信息,查询航空公司在不同机场的每日收益,包括利益和销售票数。

    3、功能需求实现
    (1)用户模块:
    在这里插入图片描述
    (2)机场模块:
    在这里插入图片描述
    (3)航空公司模块:
    在这里插入图片描述
    4、系统性能需求
    为了保证系统能够长期、安全、稳定、可靠、高效的运行,机票预定系统应该满足以下的性能需求:
    (1)系统处理的准确性和及时性
    系统处理的准确性和及时性是系统的必要性能,在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作里,使系统的处理能力和响应时间能够满足企业对信息处理的需求。由于机场售票和管理系统的查询功能对于整个系统的功能和性能完成举足轻重,作为系统的很多数据来源,而机票数量和时间又影响企业的决策活动,其准确性很大程度上决定了机场售票和管理系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性。
    (2)系统的开放性和系统的可扩充性
    机场售票和管理系统在开发过程中,应该充分考虑以后的可扩充性,系统需要能提供足够的手段进行功能的调整和扩充。要实现这一点,应通过系统的开放性来完成,即系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。
    (3)系统的易用性和易维护性
    机场售票和管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点, 就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。机票预定系统中涉及到的数据是航空公司的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。
    (4)系统的标准性
    系统在设计开发使用过程中都要涉及到很多计算机硬件、软件等,这些都应符合主流国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。如规范的数据库操作界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等。同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。

    5、系统的数据需求
    机场售票和管理系统的数据需求包括如下几点:
    (1)数据录入和处理的准确性和实时性
    数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用从而使系统的工作失去意义。数据的输入来源是手工输入,手工输入要通过系统面上的安排系统具有容错性,并且对操作人员要进行系统的培训。在系统中,数据输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。
    (2)数据的一致性与完整性
    由于系统的数据是共享的,在不同的航空公司中,机票航班等是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系統应拒绝该数据。
    (3)数据的共享与独立性
    整个机场售票和管理系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性。

    课程设计报告内容

    课程设计任务分析

    课设的首要任务应是进行需求分析,通过深入细致的调研和分析,才能准确地理解用户和项目的功能、性能、可靠性等具体化的要求。团队成员可以通过上网查阅资料、与用户交流等方式,收集功能性需求和非功能性需求,最后进行分析综合。
    接下来的任务应该是进行系统设计,系统设计主要包括数据库设计和界面设计。
    为了存储大量的数据信息,方便用户对数据进行有效的检索和访问,本次课设需要设计一个良好的数据库。该数据库内应该详尽地含有用户信息、航班信息、班次信息等,还应具有可数据共享、易于集中控制、安全、可维护的特点。数据库的开发工具可以使用SQL Server,也可使用Mysql。
    界面是软件与用户交互的最直接的层,设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用,还能够给用户带来轻松愉悦的感受。因此,本次课设应该设计一个具有易用性、规范性、美观性的用户界面。界面的设计实现可采用多种工具,可从中选择一种开发效率较高的。
    在完成系统设计之后,应开始进行系统开发的任务。在该阶段,团队各成员应该根据前面系统设计得出的对功能实现、数据库设计、界面设计以及程序设计等方面的要求,选择合适的开发工具和开发软件,进行代码的撰写工作。在编码过程中,应注意不同模块之间的协调和协作。

    设计方案

    1、概要设计
    航空公司向机场提供航班信息,机场利用这些航班信息来安排班次,用户通过登录账号,为乘客进行预约班次,一个用户可以为多名乘客预约,而一个预约只能由一个用户完成,航空公司可以提供多个航班信息,一个航班信息只能由一个航空公司提供。一个航班能够安排多个班次,一个班次只能是一个航班。
    (1)数据逻辑结构设计:
    机票管理系统所涉及的主要数据库的逻辑结构如下:
    航班信息表(flight):(航班编号,航空公司,机型,出发城市,到达城市),主键:航班编号,外键:无;
    班次信息表(classes):(班次编号,出发时间,到达时间,出发机场,到达机场,甲等余票,乙等余票,月份,甲等价格,乙等价格,是否延误,航班编号),主键:班次编号,外键:航班编号;
    乘客信息表(passengers):(订单号,乘客姓名,乘客证件号,下单日期,座位号,账号,舱位,班次号 ),主键:订单号,外键:账号,班次号;
    用户信息表(users):(账号,密码,姓名,年龄,电话,性别),主键:账号,外键:无。

    (2)数据字典:
    为了使各数据流、数据处理过程、存储过程能反映其中的数据成份、数据项目、数据特性,所以用数据字典来对数据流中的各成份进行具体的定义,为系统的分析、设计及以后的实现提供有关元素的一致性定义和详细的描述:
    数据流名称:用户信息管理 标志符:F1
    别名:无
    来源:用户
    去向:用户注册P2
    数据组成:用户账号+密码+姓名+性别+年龄+电话
    数据流名称:乘客管理管理 标志符:F2
    别名:无
    来源:乘客
    去向:机票预订P4 订单查询P6
    数据组成:订单号+乘客身份证+姓名+下单时间+座位号+用户账号+座位等级+航班号
    数据流名称:航班管理 标志符:F3
    别名:无
    来源:航空公司
    去向:增加航班P10
    数据组成:航班号+航空公司+飞机机型+出发城市+到达城市
    数据流名称:班次管理 标志符:F4
    别名:无
    来源:机场
    去向:班次查询P5 增加班次P6 取消班次P7 修改班次P8 航班延迟通知P9 查询月季报表P11
    数据组成:班次号+出发机场+到达机场+出发时间+到达时间+甲等余票+乙等余票+甲等价格+乙等价格+航班号+是否延迟

    ②数据存储字典:
    数据存储名称:用户信息数据库 标志D1
    描述:用户信息的详细资料
    流入数据流:F1
    涉及处理:P1,P2
    数据组成:用户账号+密码+姓名+性别+年龄+电话
    数据存储名称:乘客信息数据库 标志D2
    描述:乘客信息的详细资料
    流入数据流:F2
    涉及处理:P4,P6
    数据组成:订单号+乘客身份证+姓名+下单时间+座位号+用户账号+座位等级+航班号
    数据存储名称:航班信息数据库 标志D3
    描述:航班信息的详细资料
    流入数据流:F3
    涉及处理:P10
    数据组成:航班号+航空公司+飞机机型+出发城市+到达城市
    数据存储名称:班次信息数据库 标志D4
    描述:班次信息的详细资料
    流入数据流:F4
    涉及处理:P5,P6,P7,P8,P9,P11
    数据组成:班次号+出发机场+到达机场+出发时间+到达时间+甲等余票+乙等余票+甲等价格+乙等价格+航班号+是否延迟

    ③数据处理字典:
    数据处理名称:用户登录 标志P1
    处理定义:登录系统
    激发条件:所输入的编号密码正确
    输入:F1
    输出:无
    数据处理名称:用户注册 标志P2
    处理定义:将用户信息录入用户信息数据库中
    激发条件:用户账号未重复且填写完成注册表中的必填项
    输入:F1
    输出:F1
    数据处理名称:机票查询 标志P3
    处理定义:查询班次数据库中的班次信息
    激发条件:乘客进入机票预订界面并进行机票查询
    输入:F4
    输出:F4
    数据处理名称:机票预订 标志P4
    处理定义:将乘客信息录入到乘客信息数据库中
    激发条件:乘客完成机票预订
    输入:F2、F4
    输出:F2
    数据处理名称:班次查询 标志P5
    处理定义:查询班次数据库中的班次信息
    激发条件:机场对班次信息进行查询
    输入:F4
    输出:F4
    数据处理名称:订单查询 标志P6
    处理定义:查询乘客数据库中的乘客信息
    激发条件:机场对订单信息进行查询
    输入:F2
    输出:F2
    数据处理名称:班次增加 标志P6
    处理定义:将班次信息录入班次数据库中
    激发条件:机场增加班次信息
    输入:F4
    输出:F4
    数据处理名称:班次取消 标志P7
    处理定义:删除班次数据库中的某一条班次信息
    激发条件:机场删除班次信息
    输入:F4
    输出:F4
    数据处理名称:班次修改 标志P8
    处理定义:修改班次数据库中的班次信息
    激发条件:机场对某一条班次信息进行修改
    输入:F4
    输出:F4
    数据处理名称:航班延迟通知 标志P9
    处理定义:查询班次数据库中的班次信息并修改
    激发条件:机场查询并修改有延迟的班次的出发和到达时间
    输入:F4
    输出:F4
    数据处理名称:航班增加 标志P10
    处理定义:将航班信息录入航班数据库中
    激发条件:航空公司增加航班信息
    输入:F3
    输出:F3
    数据处理名称:月季报表查询 标志P11
    处理定义:查询班次数据库中的班次信息
    激发条件:航空公司对月季报表进行查询
    输入:F4
    输出:F4

    (3)ER图:
    在这里插入图片描述

    (4)数据库建表:
    建库代码:
    在这里插入图片描述
    建航班信息表:

    在这里插入图片描述
    建班次信息表:

    在这里插入图片描述
    建用户信息表:

    在这里插入图片描述
    建乘客信息表:

    在这里插入图片描述
    (5)各字段意义注明:
    航班信息表(flight):
    数据项名 数据项意义 别名 数据类型 取值范围 取值意义
    FlightNumber 唯一标识航班号 航班号 Varchar(10) 前面两个字母为航班的出发城市与到达城市的首字母,其余为数字编号
    Company_name 表示航空公司的名字 航空公司 Varchar(10)
    planeType 飞机机型 Varchar(20)
    DepartureCity 代表航班的出发城市 出发城市 Varchar(10)
    ArrivalCity 代表航班的到达城市 到达城市 Varchar(10)

    班次信息表(classes):
    数据项名 数据项意义 别名 数据类型 取值范围 取值意义
    ClassNumber 唯一识别每个班次号 班次号 varchar(10) 前两位字母分别是出发机场以及到达机场的首字母,后为区别的数字编号
    DepartureData 代表班次的出发时间 出发时间 Datetime 同一机场的两班次的出发时间不能相同
    DepartureAirport 代表班次的出发机场 出发机场 Varchar(10)
    ArrivalData 代表班次的到达时间 到达时间 Datetime
    ArrivalAirport 代表班次的到达机场 到达机场 Varchar(10)
    A_number 代表甲等座位的剩余的票数 甲等余票 Int(11) 0-30 一个班次有30个甲等座位
    B_Number 代表乙等座位的剩余票数 乙等余票 Int(11) 0-80 一个班次有80个乙等座位
    Delay 代表班次是否有延误 延误信息 Boolean 0,1 0代表班次没有延误,1代表有延误
    Aprice 甲等座位价格 Int(11) 0-10000000 价格只能大于0
    BPrice 乙等座位价格 Int(11) 0-10000000 价格只能大于0
    FlightNumber 唯一标识航班号 航班号 Varchar(10) 前面两个字母为航班的出发城市与到达城市的首字母,其余为数字编号

    用户信息表(users):
    数据项名 数据项意义 别名 数据类型 取值范围 取值意义
    Id 标识乘客的身份证号 证件号 Varchar(10)
    Account 唯一标识用户的账号 账号 Varchar(10)
    Password 账号对应的登录密码 密码 Varchar(10)
    Sex 性别 Varchar(2) 男,女
    Tel 电话
    Age 年龄 0-200
    Name 用户的名字 名字

    乘客信息表(passengers):
    数据项名 数据项意义 别名 数据类型 取值范围 取值意义
    OrderNumber 唯一表示订单的信息 订单号 Int(11) 0-1000000000 用数字编号座位订单号
    PName 标识乘客姓名 乘客姓名 Varchar(10)
    Id 标识乘客的身份证号 证件号 Varchar(10)
    orderTime 下单时间 Datetime 用户预订时的系统时间
    Seat 乘客的座位号 座位号 Varchar(5) 开头字母为A的为甲等座位,其余为乙等座位
    Degree 座位的等级 等级 Varchar(2) A,B A为商务舱,B为经济舱
    Account 唯一标识用户的账号 账号 Varchar(10)
    ClassNumber 唯一识别每个班次号 班次号 varchar(10) 前两位字母分别是出发机场以及到达机场的首字母,后为区别的数字编号

    2、界面设计
    (1)用户登录界面:用户需能在该界面输入账号和密码进行登录,同时也能通过该界面跳转至用户注册界面。
    (2)用户注册界面:该界面能注册账号,在该界面填入账号、密码、姓名、电话、性别、年龄等基本信息进行注册,并能在注册完成后跳转回用户登录界面。
    (3)机票查询界面:在该界面,用户可以输入出发日期、达到日期、出发城市、到达城市等查询航班信息,并能选择机票进行预订。
    (4)订单界面:在该界面可实现对该航班的预定,点击预定按钮,跳转到添加乘客界面,在此输入乘客姓名,证件号,座位号等信息,完成预定。
    (5)订单信息查询界面:机场管理端可在此界面查看订单号、下单账号、乘客姓名、证件号、座位号、舱位、预定时间等订单信息。
    (6)增加班次界面:在该界面,机场可以根据实际安排增加航班班次,能填写需增加的航班班次信息,并能显示已有的航班时间信息,以避免航班班次时间安排上的冲突。
    (7)取消班次界面:在该界面,机场可以根据实际选择需取消的航班班次号,并能显示出来该航班班次的所有信息。
    (8)修改班次界面:在该界面,机场可根据实际选择要修改的班次号,在该航班的所有信息都显示出来之后,选择要修改的信息,进行修改。
    (8)航班延迟通知界面:在该界面,机场可以通知乘客延误信息,并且重新安排航班。
    (9)月季报表界面:航空公司可在该界面查看该月的所有订单信息。

    详细设计

    1、系统功能模块设计
    (1)登录功能:
    登录界面,输入账号和密码,若账号和密码与数据库中储存的账号密码一致时,登录成功,不一致则显示账号密码错误。
    (2)注册功能:
    注册新的用户,用户输入个人信息,其中账号密码和姓名是必填的选项,没有填的话则显示提示用户填写,填写后检查数据库中是否已存在该账号,若存在,则提示用户重新选择账号,资料输入无误后,账号创建成功,跳回登录界面。
    (3)机票查询功能:
    用户登录成功后,进入机票查询界面,在相应位置输入出发城市,到达城市,出发时间,选择单程的话值显示从出发城市到到达城市的班次,若选择双程,则需要输入返回时间,会显示出发城市和到达城市之间在规定日的所有班次信息,用户从中可查询到,有多少机票,机票的价格。
    (4) 预定功能:
    点击想要预定的班次后,出现一个填写乘客信息的界面,输入乘客基本信息后,预定成功,机场系统中的余票减一。
    (5)班次查询功能:
    选择查询班次信息还是订单信息,输入所查询班次的几个重要信息后,进入则可得到所要查询的班次信息,可供机场管理员对班次进行检查核对。选择查询订单信息,输入所查询的订单信息的几个重要信息后,可以得到所要查询的订单的详细信息,可供管理员对订单进行检查核实。
    (6)班次安排功能:
    选择增加班次,添加班次的基本信息后,确认添加,班次则添加成功。选择取消班次,输入唯一识别的班次号,可得到该班次的详细信息,检查无误后,点击确认删除,该班次则取消成功。选择修改航班,输入唯一识别班次的班次号,得到班次的所有信息,其中班次号为不可修该,其他数据皆可修改,修改数据后,点击确认,班次则修改成功。
    (7)航班延误通知功能:
    输入延误的班次号,得到延误的班次号,显示原本预期的到达时间和出发时间,填入延误后新的到达时间和出发时间,同时,用户登录后,若有用它的账号添加乘客的飞机延迟,会显示飞机延误商务提示。
    (8)航班增加功能:
    输入航班各个信息后,点击确认,当航班号重复时,会提示航班已存在,重新添加航班号。信息无误后点击确认,航班添加成功。
    (9)月季报表查看功能:
    可以查看各个航空公司在各个机场每个月的报表,还能查看航空公司在某个城市的报表,以及各个机场销售情况。

    在这里插入图片描述
    2、数据流设计
    总数据流图

    在这里插入图片描述
    用户模块数据流图

    在这里插入图片描述
    机场模块数据流图

    在这里插入图片描述

    航空公司模块数据流图

    在这里插入图片描述
    3、程序流程设计
    (1)用户模块:
    在这里插入图片描述
    (2)机场模块:

    在这里插入图片描述
    (3)航空公司模块:

    在这里插入图片描述
    4、软件的算法设计流程图

    (1)用户管理模块算法设计:

    在这里插入图片描述
    用户模块写在customer包中,plane_message为主函数,通过主函数调用login_layout类,其中用JFrame绘制了用户登录界面,login_system函数则用来判断用户输入的账号密码是否正确,若正确则打开机票查询界面,若错误则发出警告。Register_layout类中绘制了用户注册界面,通过register_new_user函数判断用户账号是否重复以及必填项是否填写等,若满足以上条件则添加新用户成功,用户信息将录入数据库中的用户信息表中,若不满足则发出警告。Plan_message_layout类绘制了查询机票界面,通过add_avitation_company函数选择航空公司以及飞机机型,通过setinfo函数来根据输入的条件筛选可乘飞机信息并显示出来,可供用户选择。order_layout类绘制了机票预订界面,用户输入乘客信息后即完成机票预订,并将乘客信息传入数据库总,记录在乘客信息表中。
    DBHelper中写的是连接数据库的代码,利用JDBC来执行SQL语句并实现java和数据库连接。

    (2)机场管理模块算法设计流程:

    在这里插入图片描述
    机场模块写在airport包中,main_system为主函数,其中绘制了机场主界面,其中可通过菜单栏选择功能。delay类中绘制了航班延迟通知界面,若班次延误则更新时间并通知乘客。Flight类中绘制了三个界面,addFight函数里的增加班次界面,输入班次信息,将其添加到数据库中,deleteFight函数里的取消班次界面,将对应班次信息从数据库里删除,changeFight函数绘制了修改班次界面,能修改数据库中对应的班次信息。research类中绘制了两个查询界面,research_plane函数里的班次查询界面,以及research_book里的订单查询界面。

    (3)航班公司模块算法设计流程图

    在这里插入图片描述
    航空公司模块写在company包中,company_system作为主函数。addFight类中绘制了添加航班界面,foucusLost函数判断航班号是否重复若重复则警告航班已存在,actionPerformed函数表示航班添加成功。Research_revenue类中绘制了查看月季报表界面,revenueTableValuse函数显示筛选出的月季报表的列表。

    5、核心算法的设计与实现说明

    (1)用户订票模块
    ①用户登录
    输入账号与密码,点击登录按钮,如果密码错误,则提示密码错误的信息。
    实现sql代码如下:

    Statement statement = (Statement) connection.createStatement();
    String sql = "select * from aviation.users where account ='" +
            old_account+"'";
    ResultSet resultSet = statement.executeQuery(sql);
    if (resultSet.next())
    if (old_password.equals(resultSet.getString("password")))
    {
        plane_message_layout pl = new plane_message_layout(old_account);
        pl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(false);
    }
    else{
        Warning_info warning_info = new Warning_info("密码或者账户错误,请重新输入");
        account_text.setText("");
        password_text.setText("");
    

    若密码正确则进入查询界面

    ②注册新用户
    注册界面填入账号,密码,姓名,电话,性别,年龄等基本信息,其中账号,密码,名字是必填项,如果没有填则会出现提示
    实现sql代码如下:

    try{
    Statement statement = (Statement) connection.createStatement();
    String sql = "select * from aviation.users where account ='" +
            account+"'";
    ResultSet resultSet = statement.executeQuery(sql);
    resultSet.next();
    if (account.equals(resultSet.getString("account"))){
        Warning_info warning_info = new Warning_info("该用户已存在");
        flag=1;
    

    输入后即注册成功回到登录界面

    ③返回登录界面:
    实现sql代码如下:

    try{
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1,account);
        preparedStatement.setString(2,password);
        if (!age.equals(""))
            preparedStatement.setInt(3,Integer.valueOf(age));
        if (!sex.equals(""));
        preparedStatement.setString(4,sex);
        if (!tel.equals(""))
            preparedStatement.setString(5,tel);
        preparedStatement.setString(6,name);
    }catch (SQLException e){
        e.printStackTrace();
    }
    

    ④查询航班
    输入出发城市,到达城市,出发日期即可查询航班信息
    实现sql代码如下:

    Statement statement = (Statement) connection.createStatement();
    String sql = "select * from aviation.classes,aviation.flight where flight.DepartureCity = '" +
            departPlace+"' and flight.ArrivalCity = '" +
            ArrivalPlace+"' and DepartureData between '"+data+ " 00:00:00' and '"+data
            +" 23:59:59' and flight.flightNumber = classes.flightNumber";
    ResultSet resultSet =statement.executeQuery(sql);
    
    while (resultSet.next()){
        count++;
        Name = resultSet.getString("company_name");
        Time1 = resultSet.getString("DepartureData");
        Time1 = Time1.substring(11,19);
        Time2 = resultSet.getString("ArrivalData");
        Time2 = Time2.substring(11,19);
        Place1 = resultSet.getString("DepartureAirport");
        Place2 = resultSet.getString("ArrivalAirport");
        NO = resultSet.getString("planeType");
        classNumber = resultSet.getString("classNumber");
        JPanel infoPanel = new info();
    

    ⑤预订机票
    点击预定按钮即可进行对该航班的预定,这时会出现添加乘客界面,输入乘客姓名,证件号,座位号等信息,点击确定即可完成预定
    实现sql代码如下:

    try{
        String sql1 = "insert into aviation.passengers values (?,?,?,?,?,?,?,?)";
        String sql = "select count(*) as number from aviation.passengers";
        Statement statement1 = (Statement) connection.createStatement();
        ResultSet resultSet1 = statement1.executeQuery(sql);
        resultSet1.next();
        int n = resultSet1.getInt("number");
        PreparedStatement preparedStatement = connection.prepareStatement(sql1);
        preparedStatement.setInt(1,n+2);
        preparedStatement.setString(2,name);
        preparedStatement.setString(3,id);
        preparedStatement.setString(4,dateFormat.format(date));
        preparedStatement.setString(5,seat);
        preparedStatement.setString(6,account);
        if (ticketType.equals("经济舱"))
            preparedStatement.setString(7,"B");
        else preparedStatement.setString(7,"A");
        preparedStatement.setString(8,classNumber);
        preparedStatement.execute();
    

    (2)机场管理模块
    ①班次信息查询
    表格显示班次编号,出发时间,到达时间,出发机场,到达机场,甲等余票,乙等余票的班次信息。
    班次信息查询有四个信息输入框,当输入相应的信息之后,表格就会出现相应的班次信息。当输入框没有输入时,表格显示所有班次的信息,有输入时则显示符合要求的班次信息。
    实现sql代码如下:

    String sql = "SELECT * from  aviation.flight,aviation.classes where  classes.flightNumber = flight.flightNumber";
        if (!noText.equals(""))
        {
            sql += " and company_name = '"+noText+"'";
        }
        if (!place1Text.equals("")){
            sql += " and DepartureCity = '"+place1Text+"'";
        }
        if (!place2Text.equals("")){
            sql += " and ArrivalCity ='"+place2Text+"'";
        }
        if (!dayText.equals("")){
            sql += " and DepartureData like'"+dayText+"%'";
        }
        Connection connection = dbHelper.getConnection();
        try {
            Statement statement = (Statement) connection.createStatement();
            ResultSet resultSet = statement.executeQuery(sql);
            int i = 0;
            while (resultSet.next()){
                values[i][0] = resultSet.getString("classNumber");
                values[i][1] = resultSet.getString("DepartureData");
                values[i][2] = resultSet.getString("ArrivalData");
                values[i][3] = resultSet.getString("DepartureAirport");
                values[i][4] = resultSet.getString("ArrivalAirport");
                values[i][5] = resultSet.getString("A_number");
                values[i][6] = resultSet.getString("B_number");
                i++;
            }
        }
        catch (SQLException e){
            e.printStackTrace();
        }
    }
    

    先判断是否有输入,若有则将选择条件加进去,找出符合条件的班次号,再将班次号的信息显示出来。

    ②订单信息查询
    表格显示订单号,下单账号,乘客姓名,证件号,座位号,舱位,预定时间的订单信息。
    订单信息查询有四个信息输入框,当输入相应的信息之后,表格就会出现相应的订单信息。当输入框没有输入时,表格显示所有订单的信息,有输入时则显示符合要求的订单信息。
    实现sql代码如下:

    String sql = "select * from aviation.passengers,aviation.users where users.account = passengers.account";
    
    if(!flightText.equals("")){
        sql += " and orderTime like '"+flightText+"%'";
    }
    if (!PNText.equals("")){
        sql += " and passengers.name = '"+PNText+"'";
    }
    if (!UNText.equals("")){
        sql += " and  classNumber = '"+UNText+"'";
    }
    if (!AccountText.equals("")){
        sql += " and users.account = '"+AccountText+"'";
    }
    Connection connection = dbHelper.getConnection();
    try{
        Statement statement = (Statement) connection.createStatement();
        ResultSet resultSet = statement.executeQuery(sql);
        int i = 0;
        while (resultSet.next()) {
            values[i][0] = resultSet.getString("orderNumber");
            values[i][1] = resultSet.getString("account");
            values[i][2] = resultSet.getString("passengers.name");
            values[i][3] = resultSet.getString("id");
            values[i][4] = resultSet.getString("seat");
            values[i][5] = resultSet.getString("degree");
            values[i][6] = resultSet.getString("orderTime");
            i++;
        }
    }
    catch (SQLException e){
        e.printStackTrace();
    }
    

    先判断是否有输入,若有则将选择条件加进去,找出符合条件的订单号,再将订单号的信息显示出来。

    ③增加班次
    下拉框里面包含了所有的航班号,通过选择所有的航班得到航班号。
    实现sql代码如下:

    Connection connection = dbHelper.getConnection();
    try{
        Statement statement = (Statement) connection.createStatement();
        String sql = "select * from aviation.flight";
        ResultSet resultSet = statement.executeQuery(sql);
        while (resultSet.next()){
            FN_jtf.addItem(resultSet.getString("flightNumber"));
        }
    }catch (SQLException e){
        e.printStackTrace();
    }
    

    由于有的航班在使用过程中,不能安排其他班次,当选择航班号后,会出现这个航班的使用时间表,让管理人员参考,避免冲突安排。
    实现sql代码如下:

    Connection connection = dbHelper.getConnection();
    try{
        Statement statement = (Statement) connection.createStatement();
        String sql = "select * from aviation.classes where flightNumber ='" +
                FN_jtf.getSelectedItem().toString()+"'";
        ResultSet resultSet = statement.executeQuery(sql);
        int i = 0;
        while (resultSet.next()){
            values[i][0] = resultSet.getString("DepartureData");
            values[i][1] = resultSet.getString("ArrivalData");
            i++;
        }
        jTable.updateUI();
        jTable1.updateUI();
    }
    catch (SQLException e1){
        e1.printStackTrace();
    }
    

    选择航班号得到对应的班次,然后找出对应的出发时间和使用时间。
    由于机场在一个时间点只能起飞或者降落一架飞机,所以,在输入出发机场和到达机场时,出现该机场的起飞表和降落表,让管理人员参考,避免冲突安排。
    实现sql代码如下:

    Statement statement = (Statement) connection.createStatement();
        String sql = "select * from aviation.classes where DepartureAirport = '" +
                DA_jtf.getText()+"'";
    
        ResultSet resultSet = statement.executeQuery(sql);
        int i = 0;
        while (resultSet.next()) {
            values[i][0] = resultSet.getString("DepartureData");
            i++;
        }
        jTable.updateUI();
        jTable1.updateUI();
    } catch (SQLException event) {
        event.printStackTrace();
    }
    
    
    try {
        Statement statement = (Statement) connection.createStatement();
        String sql = "select * from aviation.classes where ArrivalAirport ='" +
                AA_jtf.getText()+"'";
        ResultSet resultSet = statement.executeQuery(sql);
        int i = 0;
        while (resultSet.next()) {
            values[i][1] = resultSet.getString("ArrivalData");
            i++;
        }
        jTable1.updateUI();
        jTable.updateUI();
    } catch (SQLException e1) {
        e1.printStackTrace();
    }
    

    上面的sql分别是出发机场和到达机场的出发时间和到达时间
    由于班次号具有唯一性,所以当输入的班次号重复时,就回提示班次号重复
    实现sql代码如下:

    try{
        Statement statement = connection.createStatement();
        String sql = "select * from aviation.classes";
        ResultSet resultSet = statement.executeQuery(sql);
        Warning_info warning_info;
        while (resultSet.next())
        {
            if (CN_jtf.getText().equals(resultSet.getString("classNumber"))){
                warning_info = new Warning_info("该班次已存在");
            }
        }
    }
    catch (SQLException e1){
        e1.printStackTrace();
    }
    

    选择所有的班次,一个一个检查是否有和输入相同的班次号

    将所有信息输入,点击确定,显示航班添加成功的提示
    实现sql代码如下:

    try{
        String sql = "insert into  aviation.classes values (?,?,?,?,?,?,?,?,?,?,?,?);";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setString(1,CN_jtf.getText());
        preparedStatement.setString(2,DD_jtf.getText());
        preparedStatement.setString(3,DA_jtf.getText());
        preparedStatement.setString(4,AD_jtf.getText());
        preparedStatement.setString(5,AA_jtf.getText());
        preparedStatement.setString(6,AA_jtf.getText());
        preparedStatement.setInt(6,Atotal);
        preparedStatement.setInt(7,Integer.valueOf(DD_jtf.getText().substring(5,7)));
        preparedStatement.setInt(9,Btotal);
        preparedStatement.setBoolean(8,false);
        preparedStatement.setInt(10,Integer.valueOf(AP_jtf.getText()));
        preparedStatement.setInt(11,Integer.valueOf(BP_jtf.getText()));
        preparedStatement.setString(12,FN_jtf.getSelectedItem().toString());
        preparedStatement.execute();
    

    其中票的总数是固定的。

    ④取消班次
    选择班次号,首先将所有班次号放在下拉框中。
    实现sql代码如下:

    try {
        Statement statement = (Statement) connection.createStatement();
        String sql = "select * from aviation.classes;";
        ResultSet resultSet = statement.executeQuery(sql);
        while (resultSet.next()){
            CN.addItem(resultSet.getString("classNumber"));
        }
    
    	选择要删除的航班号,选中该航班的所有信息都将显示出来
    实现sql代码如下:
    Statement statement = (Statement) connection.createStatement();
        String sql = "select * from aviation.classes where classNumber = '" +
                CN.getSelectedItem().toString()+"'";
        ResultSet resultSet = statement.executeQuery(sql);
        resultSet.next();
        DD.setText(resultSet.getString("DepartureData"));
        DA.setText(resultSet.getString("DepartureAirport"));
        AD.setText(resultSet.getString("ArrivalData"));
        AA.setText(resultSet.getString("ArrivalAirport"));
        AP.setText(resultSet.getString("APrice"));
        BP.setText(resultSet.getString("BPrice"));
        AN.setText(resultSet.getString("A_number"));
        BN.setText(resultSet.getString("B_number"));
    }
    catch (SQLException e1){
        e1.printStackTrace();
    }
    

    按下按钮班次取消成功,与该班次有关的订单也相应删除了。
    实现sql代码如下:

    try {
        String sqlp = "delete from aviation.passengers where classNumber = '" +
                CN.getSelectedItem().toString()+"'";
        PreparedStatement preparedStatement = connection.prepareStatement(sqlp);
    
        String sql = "delete from aviation.classes where classNumber = '" +
                CN.getSelectedItem().toString()+"'";
        PreparedStatement preparedStatement1 = connection.prepareStatement(sql);
        preparedStatement.execute();
        preparedStatement1.execute();
        Warning_info warning_info = new Warning_info("班次取消成功");
    }
    catch (SQLException e1){
        e1.printStackTrace();
    }
    

    应先删除订单代码,才能删除班次代码

    ⑤修改班次
    下拉框选择可选择已有的所有航班号和班次号。
    实现sql代码如下:

    try {
        Statement statement = (Statement) connection.createStatement();
        String sql = "select * from aviation.flight";
        ResultSet resultSet = statement.executeQuery(sql);
        while (resultSet.next()) {
            FN.addItem(resultSet.getString("flightNumber"));
        }
    }catch (SQLException e){
        e.printStackTrace();
    }
    
    try {
        Statement statement = (Statement) connection.createStatement();
        String sql = "select * from aviation.classes";
        ResultSet resultSet = statement.executeQuery(sql);
        while (resultSet.next()) {
            CN.addItem(resultSet.getString("classNumber"));
        }
    }catch (SQLException e1){
        e1.printStackTrace();
    }
    

    下拉框选择要修改的班次号,该航班的所有信息都显示出来,选择要修改的信息,修改后,就是实现了班次的修改
    实现sql代码如下:

    try{
        Statement statement = (Statement) connection.createStatement();
        String sql = "select * from aviation.classes where classNumber ='" +
                CN.getSelectedItem().toString()+"'" ;
        ResultSet resultSet = statement.executeQuery(sql);
        resultSet.next();
        DD.setText(resultSet.getString("DepartureData"));
        DA.setText(resultSet.getString("DepartureAirport"));
        AD.setText(resultSet.getString("ArrivalData"));
        AA.setText(resultSet.getString("ArrivalAirport"));
        AP.setText(resultSet.getString("APrice"));
        BP.setText(resultSet.getString("BPrice"));
        FN.setSelectedItem(resultSet.getString("flightNumber"));
    }
    catch (SQLException e1){
        e1.printStackTrace();
    }
    

    ⑥航班延迟通知
    点击下拉框出现所有的班次号。
    实现sql代码如下:

    try{
        Statement statement = (Statement) connection.createStatement();
        String sql = "select  * from aviation.classes";
        ResultSet resultSet = statement.executeQuery(sql);
        while (resultSet.next()){
            CN.addItem(resultSet.getString("classNumber"));
        }
    }
    catch (SQLException e){
        e.printStackTrace();
    }
    

    选择要修改的班次,得到原始起飞时间和到达时间,输入新的时间,点击按钮,完成班次的修改
    实现sql代码如下:

    try{
        String sql = "update aviation.classes set DepartureData = '" +
                newDD.getText()+"', ArrivalData = '" +
                newAD.getText()+"',delay = 1 where classNumber = '"
                +CN.getSelectedItem().toString()+"'";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.execute();
        Warning_info warning_info = new Warning_info("修改并发布成功");
        newAD.setText("");
        newDD.setText("");
        oldAD.setText("");
        oldDD.setText("");
        CN.setSelectedItem("请选择班次号");
    }
    catch (SQLException e1){
        e1.printStackTrace();
    }
    

    (3)航公公司管理模块
    ①增加航班
    添加航班号后,如果已存在该航班号,则提示已存在。选择航空公司以及飞机机型填入出发城市,到达城市,航班号,点击按钮后即可
    实现sql代码如下:

    try{
        String sql = "insert into aviation.flight values (?,?,?,?,?);";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
    preparedStatement.setString(1,CN.getSelectedItem().toString());
    preparedStatement.setString(2,PT.getSelectedItem().toString());
        preparedStatement.setString(3,FN.getText());
        preparedStatement.setString(4,DC.getText());
        preparedStatement.setString(5,AC.getText());
        Warning_info warning_info = new Warning_info("添加成功");
        FN.setText("");
        DC.setText("");
        AC.setText("");
    }
    

    ②查看月季报表
    当搜索内容为空时,显示所有的报表信息,输入要查询的信息即可得到结果
    实现sql代码如下:

    String sql = "select * from  aviation.classes,aviation.flight"+
            " where flight.flightNumber = classes.flightNumber ";
    if (!Company.equals("")){
        sql += " and flight.company_name = '"+Company+"'";
    }
    if (!Airport.equals("")){
        sql += " and DepartureAirport = '"+Airport+"'";
    }
    if (!Month.equals("")){
        sql += " and month = "+Month+"";
    }
    if (!Year.equals("")){
        sql +=" and DepartureCity = '"+Year+"'";
    }
    Connection connection = dbHelper.getConnection();
    try{
        Statement statement = (Statement) connection.createStatement();
        ResultSet resultSet = statement.executeQuery(sql);
        int i = 0;
        while (resultSet.next()){
            values[i][0] = resultSet.getString("DepartureAirport");
            values[i][1] = resultSet.getString("company_name");
            values[i][2] = resultSet.getString("DepartureCity");
            values[i][3] = resultSet.getString("DepartureData").substring(0,4);
            values[i][4] = resultSet.getString("DepartureData").substring(5,7);
            int Anumber = resultSet.getInt("A_number");
            int Bnumber = resultSet.getInt("B_number");
            int Aprice = resultSet.getInt("APrice");
            int Bprice = resultSet.getInt("BPrice");
            values[i][5] = Atotal+Btotal-Anumber-Bnumber;
            values[i][6] = (Atotal-Anumber)*Aprice+(Btotal - Bnumber)*Bprice;
            i++;
        }
    }
    catch (SQLException e){
        e.printStackTrace();
    }
    

    软件外观

    (1)用户模块界面:

    在这里插入图片描述

    用户登录界面:用户需输入自己的账号和密码进行登录,点击登录按钮,在账户密码正确的前提下可完成登录;若无账号,则可以点击注册按钮进入注册界面进行注册。

    在这里插入图片描述
    注册界面:进入注册界面后,用户需输入账号、密码、姓名、电话、性别以及年龄,其中右边标红星的框表示该项内容必填。用户的账号不可重复,标红星的内容必须填写,在满足这两个条件后即可点击注册,返回用户登录界面进行登录。

    在这里插入图片描述
    查询机票界面:用户登录完成后即可进入机票查询界面,该界面左边部分可选择单双程,输入出发城市、到达城市、出发日期和返回日期,可选择航空公司和舱位等级,由此来进行班次的筛选等,选择和输入完成信息后点击探索按钮,则可在界面右边部分看到筛选出来的班次信息,由此来进行机票的预订。

    在这里插入图片描述

    订单界面:用户选则完机票并点击预订按钮后进入订单界面,界面上边部分显示的是所选班次的信息,界面下边部分则进行乘客的添加,用户输入证件号、姓名以及座位号后,点击添加乘客按钮,完成机票预订。

    (2)机场模块界面:

    在这里插入图片描述
    机场的班次查询页面:界面中间的搜索框可输入航空公司、出发地、到达地以及出发日期等信息,点击搜索按钮进行班次的搜索,下面的列表显示筛选后的班次信息。在搜索框为空时,显示全部的班次信息。

    在这里插入图片描述

    机场的订单查询界面:界面中间的搜索框可输入预定时间、乘客姓名、下单账号以及班次编号等信息,点击搜索按钮进行订单的搜索,下面的列表显示筛选后的订单信息。在搜索框为空时,显示全部的订单信息。

    在这里插入图片描述
    机场增加班次界面:界面左边部分可选择航班号,输入班次号、出发机场、到达机场、出发时间、到达时间、甲等价格以及乙等价格,界面右边上边部分的表格显示的是机场的班次时间安排,下边部分的表格则显示的是该航班的时间安排,由此在增加航班班次时可避免时间上的冲突等。在满足时间未冲突的情况下可点击增加航班按钮,完成航班班次的增加。

    在这里插入图片描述
    机场取消航班班次的界面:可选择班次号,界面显示出该班次的出发时间。到达时间、出发机场、到达机场、甲等余票、乙等余票、甲等价格以及乙等价格的信息,点击取消该航班按钮,完成航班班次的取消。

    在这里插入图片描述

    机场的修改班次界面:可选择班次号和航班号,输入要修改的出发时间到达时间、出发机场、到达机场、甲等价格以及乙等价格的信息,点击修改航班按钮,完成航班班次的修改。

    在这里插入图片描述
    航班延迟通知界面:选择航班号,显示出原起飞时间和原到达时间,输入新起飞时间和新到达时间后,点击确定并通知乘客按钮,实现航班班次起飞时间和到达时间的更新以及对乘客的通知。

    (3)航空公司模块界面:

    在这里插入图片描述
    增加航班界面:选择航空公司和飞机机型,输入出发城市、到达城市以及航班号,点击确定添加航班按钮,实现航班的增加。

    在这里插入图片描述
    查看月季报表界面:界面中间的搜索框可输入航空公司、机场、城市以及月份等信息,点击搜索按钮进行报表的搜索,下面的列表显示筛选后的收益信息。在搜索框为空时,显示全部的收益信息。

    软件运行结果

    1、系统运行结果

    (1)用户模块运行结果:

    在这里插入图片描述
    用户进入登录界面。

    在这里插入图片描述
    用户输入账号密码时,若账号密码错误,则弹出对话框显示密码错误,请重新输入。

    在这里插入图片描述
    若用户无账号,这点击登录界面的之策按钮,进入注册界面,注册界面中输入框右侧的红星标记表示该项必填。若未填写必填项,则点击注册按钮时弹出对话框显示标有红色的不能为空。

    在这里插入图片描述
    用户可填写账号、密码、姓名、电话、性别以及年龄,完成后点击注册按钮,注册成功则跳回用户登录界面。

    在这里插入图片描述

    用户注册成功后返回登录界面,弹出对话框显示账号注册成功,回到登录界面。

    在这里插入图片描述
    此时可输入账户和密码,点击登录,进入机票查询界面。

    在这里插入图片描述
    用户登录成功后进入机票查询界面,在该界面进行机票的选择。

    在这里插入图片描述
    选择国内航班单程,输入出发城市、到达城市以及出发日期,选择中华航空,点击搜索按钮进行筛选,得到右边筛选过后的机票信息。

    在这里插入图片描述
    选择一张票,点击预订按钮,弹出订单界面,可查看选择的机票信息,在输入框中可输入乘客信息。

    在这里插入图片描述
    输入证件号、姓名以及座位号,点击添加乘客,完成机票的预订。

    在这里插入图片描述
    添加完后在数据库中,发现出现了该乘客高一的信息。

    (2)机场模块运行结果:

    在这里插入图片描述
    机场对班次信息进行查询,当搜索框内容为空时,显示全部的班次信息。

    在这里插入图片描述
    可加入筛选条件,例如中国航空,此时界面下方的表中显示了航空公司为中国航空时的筛选结果。

    在这里插入图片描述
    可继续加入筛选条件,例如加上出发地为上海,此时界面下方的表中了航空公司是中国航空且出发地为上海的班次信息。

    在这里插入图片描述
    机场进行订单查询,当搜索框为空时,显示全部订单信息。

    在这里插入图片描述
    可输入完成预定的乘客姓名进行搜索,例如高一,点击搜索按钮,此时界面下方表格中显示的是乘客高一的订单信息。

    在这里插入图片描述
    可输入乘客的下单账号,例如0001,点击搜索按钮,此时界面下方表中显示的是下单单号为0001的订单信息。

    在这里插入图片描述
    机场增加航班班次,选择航班号,可以看到界面右下部分的表内显示出已经安排好的该航班的时间,以避免时间上的冲突。

    在这里插入图片描述
    因机场在一个时间点只能起飞或者降落一架飞机,所以在输入出发机场和到达机场时,界面右上部分表内显示出该机场的起飞时间和降落时间,以避免时间上的冲突。

    在这里插入图片描述
    因为班次号唯一,若输入的班次号重复,则弹出对话框显示该班次已存在。

    在这里插入图片描述
    点击添加该航班按钮,弹出对话框显示航班添加成功,表示航班添加成功。

    在这里插入图片描述
    机场取消航班班次,选择班次号,即可显示出相关的该班次信息。

    在这里插入图片描述
    点击确定无效该航班按钮,弹出对话框班次取消成功,表示班次取消成功。

    在这里插入图片描述
    机场修改航班班次,选择所要修改的班次号和航班号,输入修改后的出发时间、到达时间、出发机场、到达机场、甲等座的价格以及乙等座的价格等班次信息。

    在这里插入图片描述
    点击修改航班按钮,弹出对话框显示班次修该成功,则表示班次已修改成功。

    在这里插入图片描述
    机场航班延迟管理并通知乘客,选择延迟的班次号,出现原起飞时间和原到达时间,输入新起飞时间和新到达时间。

    在这里插入图片描述
    点击确定并通知乘客按钮,弹出对话框显示修改并发送成功,表示完成班次信息数据库的更新并通知乘客延迟成功

    (3)航空公司模块运行结果:

    在这里插入图片描述
    航空公司添加航班,选择航空公司,选择飞机机型,输入航班号,若已存在该航班号则弹出对话框显示该航班已存在。

    在这里插入图片描述
    选择航空公司以及飞机机型,输入出发城市、到达城市、航班号,点击确定添加航班按钮,弹出对话框显示添加成功,表示航班添加成功。

    在这里插入图片描述
    航空公司查看月季报表,当搜索框内容为空时,显示全部报表信息。

    在这里插入图片描述
    可输入航空公司进行筛选,例如中国航空,点击搜索按钮,此时界面下方表中显示的是中国航空的月季报表信息。

    在这里插入图片描述
    可输入月份进行筛选,例如5月份,点击搜索按钮,此时下方表中显示的是5月份的月季报表信息。

    2、出现的问题及解决办法
    (1)问题一:
    java.sql.SQLException: After end of result set
    解决一:
    原因是引用了多个结果集,由于前一个结果集已经和数据库关闭,再次引用则出现java.sql.SQLException: After end of result set的情况,可以把定义为全局的数据库连接放进方法中单独使用,或者使用不同的resultset,如resultset0、resultset1,并进行及时的resultset0.close( )h和resultset1.close( )等。

    (2)问题二:
    java.sql.SQLException: Illegal operation on empty result set.
    解决二:
    报错的原因是 resultset 为空, 需要加入一个 while 的判断 while ( resultSet0.next () ),先判断下结果集是否为空。

    (3)问题三:
    在这里插入图片描述
    在选择商务舱和经济舱的时候,无论点击商务舱还是经济舱,都是出现的经济舱的相关消息。
    解决三:
    原因是此处的飞机票信息中ticketType和Price是for循环体外的变量,当循环体进行一遍时,最后的ticketType和Price永远都是经济舱的相关信息。所以可采取将变量放入循环体中的方法,但由于下方还得使用到两变量取值不同的响应,因此这里最好采用两个变量,ticketType1、Price1和ticketType2、Price2分别对应商务舱和经济舱。

    ticketType = "";
    Price  = 0;
    for (int i = 0;i < 2;i++){
                        MyButtonUI book = new MyButtonUI("预定");
                        try{
                            Statement statement1 = (Statement) connection.createStatement();
                            String sql1 = "select * from classes where classNumber = '" +
                                    classNumber+"'";
                            ResultSet resultSet1 = statement1.executeQuery(sql1);
                            resultSet.next();
                            if (i == 0){
                                ticketType = "商务舱";
                                seatNumber = resultSet.getInt("A_number");
                                Price = resultSet.getInt("APrice");
                            }
                            else {
                                ticketType = "经济舱";
                                seatNumber = resultSet.getInt("B_number");
                                Price = resultSet.getInt("BPrice");
                            }
                            }catch (SQLException e){
                            e.printStackTrace();
                        }
                        book.addActionListener(new ActionListener() {});
    }
    

    总结及体会

    这里略去很多行~~~~~~

    参考文献

    [1]刘茜. 基于决策树方法的机票信息挖掘及机票预订系统的设计与实现[D].吉林大学,2012.
    [2]王磊. 基于REST的机票预订系统的设计与实现[D].北京邮电大学,2013.
    [3]韩若冰. 机票预定系统的设计与实现[D].厦门大学,2014.
    [4]端木海.国内消费者旅行预订方式研究[J].企业经济,2015(05):101-104.
    [5]李典桐. 用于机票预订的垂直搜索引擎的设计与实现[D].云南大学,2015.
    [6]张文航.基于Web的机票预订系统的设计与实现[J].无线互联科技,2015(24):60-61.
    [7]张赞赞.基于用户体验的机票预订网站策略研究[J].智库时代,2017(07):140-141.

    在这里插入图片描述

    展开全文
  • 课程设计 3人小组完成 可供参考 软件工程专业作品 论文更有参考价值
  • 完全按照软件工程系统开发的文档要求编写,里面要需求分析、可行性研究、概念模型设计、逻辑模型设计、系统实现、系统调试与维护和设计心得。内容详细、排版合理、是数据库课程设和软件工程设计报告参考的好资料。
  • 公司老王外包给我了一个电影院的项目,我想跟大家分享软件开发心路历程 项目采用技术 我使用了如下大法开发这个系统 哈哈哈哈 springboot elasticsearch mybatis-plus redis mysql 微信开发者工具 Vue.js 项目创新点...
  • 包括 铁路时候管理系统软件使用说明书 系统测试报告 软件设计报告书 需求说明书

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 130
精华内容 52
关键字:

售票管理系统软件