1、数 据 库 课 程 设 计 报 告 书航 空 公 司 管 理 信 息 系 统所学专业:计算机科学与技术班 级:计算机05-2班作 者:苗亚男指导老师:李 涵完成日期:2008-9-24 目 录一、系统设计3二、数据库设计3三、数据库结构的实现9四、 航空公司管理信息系统主窗体的创建9五、系统用户管理模块的创建11六、舱位信息管理模块的创建11七、 客机信息管理模块的创建12八、航线信息管理模块的创建13九、客户类型信息管理模块的创建15十、客户信息管理模块的创建15十一、订票信息管理模块的创建17十二、系统的实现18十三、系统的编译和发行19航空公司管理信息系统一个正常营运的航空公司需要管理所
2、拥有的飞机、航线的设置、客户的信息等。面对各种不同种类的信息,需要合理的数据库结构来保存数据信息以及有效的程序结构支持各种数据操作的执行。一、系统设计1、系统功能分析l 舱位信息的输入和修改,包括舱位等级编号、舱位等级名称、提供的各种服务类别,以及备注信息等。l 客机信息的输入、修改和查询,包括客机编号、客机型号、购买时间、服役时间、经济舱座位数量、公务舱座位数量、头等舱座位数量以及备注信息等。2、系统功能模块设计对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如图91所示的系统功能模块图。图91 系统功能模块图二、数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构
3、设计的好坏将直接对应用系统的效率以及实现的效果产生影响.合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致.设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求.数据库设计一般包括如下几个步骤:l 数据库需要分析.l 数据库概念结构设计.l 数据库逻辑结构设计。1、数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。仔细分析调查有关航空公司管理信息需求的基础上,将得到如图92所示的本系统所处理
4、的数据流程。图92 航空公司管理信息系统数据流程图针对一般航空公司管理信息系统的需求,通过对航空公司管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:l 舱位等级信息,包括的数据项有:舱位等级编号、舱位等级名称、是否有礼品、是否有报纸、是否有饮料、是否有午餐、是否有电影、是否可以改签、是否可以退票、是否可以打折、备注信息等。l 客机信息,包括的数据项有:客机编号、客机型号、购买时间、服役时间、经济舱座位数量、公务舱座位数量、头等舱座位数量、备注信息等。l 航线信息,包括的数据项有:航线编号、出发城市、到达城市、航班日期、出发时间、到达时间、客机编号、经济舱价格、公务舱价格、头
5、等舱价格、备注信息等.l 客户类型信息,包括的数据项有:客户类型编号、客户类型名称、折扣比例、备注信息等。l 客户信息,包括的数据项有:客户编号、客户姓名、客户性别、身份证号码、联系电话、客户类型、备注信息等。2、数据库概念结构设计本实例根据上面的设计规划出的实体有:舱位等级信息实体、客机信息实体、航线信息实体、客户类型信息实体、客户信息实体、订票信息实体。各个实体具体的描述E-R图如下。舱位等级信息实体E-R图如图9-3所示。图93 舱位等级信息实体ER图客机信息实体ER图如图94所示.图9-4 客机信息实体E-R图航线信息实体ER图如图9-5所示。图9-5 航线信息实体E-R图客户类型信息
6、实体ER图如图9-6所示.图96 客户类型信息实体E-R图客户信息实体E-R图如图9-7所示.图9-7 客户信息实体E-R图订票信息实体E-R图如图98所示。图98 订票信息实体E-R图实体之间关系的ER图如图9-9所示。图9-9 实体之间关系的E-R图3、数据库逻辑结构设计现在需要将上面的数据库概念结构转化为SQL Server 2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。航空公司管理信息系统数据库中各个表格的设计结果如下面表格所示。每个表格表示在数据库中的一个表。表91为供应商信息表。表9-1 serviceInfo 舱位等级信息表列 名数据类型可否为空说 明servi
7、ceNOcharNOT NULL舱位等级编号serviceNamenvarcharNULL舱位等级名称noPresentcharNULL是否有礼物noNewsPapercharNULL是否有报纸noDrinkcharNULL是否有饮料noFoodcharNULL是否有午餐noMoviecharNULL是否有电影canChangecharNULL是否可以改签canCancelcharNULL是否可以退票canDiscountcharNULL是否可以打折serviceMemotextNULL备注信息表9-2为顾客信息表格。表9-2 planeInfo客机信息表格列 名数据类型可否为空说 明plan
8、eNOcharNOT NULL客机编号planeTypecharNULL客机型号buyDatedatetimeNULL购买日期serveDatedatetimeNULL服役日期isCommonnvarcharNULL经济舱座位数量isCommercialnvarcharNULL公务舱座位数量isFirstnvarcharNULL头等舱座位数量planeMemotextNULL备注信息表9-3为航线信息表。表93 airlineInfo航线信息表列 名数据类型可否为空说 明airlineNOcharNOT NULL航线编号departCitynvarcharNULL出发城市arrivalCity
9、nvarcharNULL到达城市departDatecharNULL航班日期departTimecharNULL出发时间arrivalTimecharNULL到达时间planeNOcharNULL客机编号commonPricenumericNULL经济舱价格commercialPricenumericNULL公务舱价格firstPricenumericNULL头等舱价格airlineMemotextNULL备注信息表9-4为客户类型信息表格.表9-4 customerType 客户类型信息表列 名数据类型可否为空说 明ctypeNOcharNOT NULL客户类型编号ctypeNamechar
10、NULL客户类型名称discountnumericNULL折扣比例续表列 名数据类型可否为空说 明ctypeMemotextNULL备注表95为客户信息表格。表95 customerInfo 客户信息表列 名数据类型可否为空说 明customerNOcharNOT NULL客户编号customerNamecharNULL客户姓名customerSexcharNULL客户性别customerIDcharNULL身份证号码customerTelecharNULL客户联系电话customerTypecharNULL客户类型customerMemotextNULL备注表96为订票信息表格.表9-6 t
11、icketInfo 订票信息表列 名数据类型可否为空说 明ticketNOcharNOT NULL订票编号customerNOcharNULL客户编号customerNamecharNULL客户姓名customerTypecharNULL客户类型discountnumericNULL折扣比例airlineNOcharNULL航线编号departCitynvarcharNULL出发城市arrivalCitynvarcharNULL到达城市ticketDatedatetimeNULL出发日期serviceTypecharNULL舱位类型ticketPricenumericNULL机票价格ticke
12、tSumnumericNULL结算金额customerMemotextNULL备注三、数据库结构的实现经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。现在就可以在SQL Server 2000数据库系统中实现该逻辑结构.这是利用SQL Server 2000数据库系统中的SQL 查询分析器实现的。下面给出创建这些表格的SQL语句。1、创建系统用户表CREATE TABLE dbo.user_Info1 2、创建舱位等级信息表CREATE TABLE dbo.serviceInfo3、创建客机信息表CREATE TABLE dbo。planeInfo 4、创建航线信息表CREATE
13、TABLE dbo.airlineInfo 5、创建客户类型信息表CREATE TABLE dbo.customerType6、创建客户信息表CREATE TABLE dbo。customerInfo 7、创建订票信息表CREATE TABLE dbo.ticketInfo 四、 航空公司管理信息系统主窗体的创建上面的SQL语句在SQL Server 2000中查询分析器的执行,将自动产生需要的所有表格.有关数据库结构的所有后台工作已经完成。现在将通过航空公司管理信息系统中各个功能模块的实现,讲解如何使用Visual Basic来编写数据库系统的客户端程序.1、创建工程项目MIS_Ticket
14、启动Visual Basic后,单击FileNew Project菜单,在工程模板中选择Standard EXE,Visual Basic将自动产生一个Form窗体,属性都是缺省设置。这里我们删除这个窗体,单击FileSave Project菜单,将这个工程项目命名为MIS_Ticket。2、创建航空公司管理信息系统的主窗体这个项目我们使用多文档界面,单击工具栏中的ADD MDI Form按钮,产生一个窗体。在这个窗体上添加所需的控件,窗体和控件的属性设置见表9-7。创建好的窗体如图9-10所示。表97 主窗体及其控件属性设置控 件属 性属性取值frmMain(Form)NameFrmMain
15、Caption大唐航空公司信息管理系统StartUpPositonCenterScreenWindowStateMaximizedSbStatusBar(StatusBar)NameSbStatusBarPanels(1)StyleSbrTextPanels(2)StyleSbrDatePanels(3)StyleSbrTime图9-10 航空公司管理信息系统主窗体在主窗体中加入状态栏控件,可以实时反映系统中的各个状态的变化。状态栏控件需要在通常的属性窗口中设置一般属性,还需要在其特有的弹出式菜单中进行设置。选中状态栏控件,单击鼠标右键,选中Property菜单,然后设置属性。面板1用来显示各
16、种文本信息,面板2用来显示当前日期,面板3用来显示当前时间。3、创建主窗体的菜单在如图910所示的主窗体中,单击鼠标右键,选择弹出式菜单中的Menu Editor,创建如图911所示的菜单结构:图911 主窗体中的菜单结构4、创建公用模块在Visual Basic中可以用公用模块来存放整个工程项目公用的函数、过程和全局变量等。这样可以极大地提高代码的效率。在项目资源管理器中为项目添加一个Module,保存为Module1。bas。下面就可以开始添加需要的代码了.由于系统中各个功能模块都将频繁使用数据库中的各种数据,因此需要一个公共的数据操作函数,用以执行各种SQL语句。添加函数ExecuteS
17、QL五、系统用户管理模块的创建用户管理模块主要实现:l 用户登录.l 添加用户。l 修改用户密码.这个功能模块和第1章的一样,这里就不再详细介绍了.六、舱位信息管理模块的创建舱位信息管理模块主要实现如下功能:l 添加舱位信息。l 修改舱位信息。l 删除舱位信息。1、 显示舱位信息窗体的创建选择“航线信息管理舱位信息”菜单,将出现如图9-12所示的窗体。图9-12 舱位等级信息窗体这个窗体用来显示舱位等级信息,并且可以对各条记录进行操作。在载入窗体时,程序将自动载入所有记录,代码如下:Private Sub menuCarbin_Click() frmService。txtSQL = selec
18、t * from serviceInfo” frmService。Show 0End Sub窗体的Show方法后面加上0或者1,可以得到不同的窗体显示方式.参数为0时,显示的窗体为无模式形式,窗体切换时不需要进行其他操作;参数为1时,显示的窗体为有模式形式,窗体切换时必须进行相关操作。2、 添加舱位信息窗体的创建在舱位信息显示窗体中单击“添加按钮,将出现如图9-13所示的窗体.图9-13 添加舱位等级信息窗体载入窗体时,首先根据标志变量判断状态,然后决定是添加还是修改3、修改舱位等级信息在舱位等级信息列表中选择需要修改的记录,然后单击“修改”按钮,将出现如图913所示的窗体.选择记录的内容将显
19、示在窗体中,可以进行修改,最后保存修改后的记录。七、 客机信息管理模块的创建客机信息管理模块主要实现如下功能:l 添加客机信息。l 修改客机信息。l 删除客机信息。l 查询客机信息.1、显示客机信息窗体的创建选择“航线信息管理客机信息”菜单,将出现如图914所示的窗体.所有客机信息都将显示出来。窗体的Load事件调用ShowTitle、ShowData函数,将所有记录显示出来。图9-14 显示客机信息列表窗体2、添加客机信息窗体的创建单击客机信息列表中的“添加”按钮,将出现如图915所示的窗体。图9-15 添加客机信息列表输入内容完毕,单击“保存按钮,将首先判断输入内容是否满足要求,然后将记录
20、添加到数据库中3、修改客机信息在客机信息列表中选择记录,然后单击“修改”按钮。当前记录将显示在如图915所示的窗体中,可以进行修改。4、查询客机信息在客机信息列表中单击“查询”按钮,将出现如图916所示的窗体。图9-16 查询客机信息的窗体载入窗体时,将自动加入所有客机编号和客机型号的信息八、航线信息管理模块的创建航线信息管理模块主要实现如下功能:l 添加航线信息。l 修改航线信息。l 删除航线信息。l 查询航线信息.1、显示航线信息窗体的创建选择“航线信息管理航线信息”菜单,将出现如图917所示的窗体.所有航线信息都将显示出来。窗体的Load事件调用ShowTitle、ShowData函数,
21、将所有记录显示出来。图9-17 显示客机信息窗体2、添加航线信息窗体的创建选择“航线信息管理|航线信息”菜单,将出现如图918所示的窗体,用来添加航线信息。图918 添加航线窗体输入完航线信息后,单击“保存”按钮:程序首先检查输入内容是否符合要求,然后检查是否有重复记录,最后添加到数据库中。3、修改航线信息在航线信息列表中选择记录,然后单击“修改”按钮。当前记录将显示在如图9-18所示的窗体中,可以进行修改。4、删除航线信息在航线信息列表中选择记录,然后单击“删除”按钮,当前记录将被删除。5、查询航线信息在航线信息列表中单击“查询”按钮,将出现如图919所示的窗体。图919 航线信息查询窗体载
22、入窗体时自动加入出发城市和到达城市的内容,设置查询内容后,单击“确定”按钮,所有满足查询条件的内容显示在航线信息列表中。九、客户类型信息管理模块的创建1、显示客户类型信息窗体的创建选择“客户信息管理客户类型菜单,将出现如图920所示的窗体。所有客户类型信息都将显示出来.窗体的Load事件调用ShowTitle、ShowData函数,将所有记录显示出来。图920 显示客户类型信息窗体2、添加客户类型信息窗体的创建在客户类型信息列表中单击“添加”按钮,将出现如图921所示的窗体,用来添加客户类型信息。图921 添加客户类型信息窗体十、客户信息管理模块的创建1、显示客户信息窗体的创建选择“客户信息管
23、理|客户信息”菜单,将首先出现如图922所示的窗体。所有客户类型信息都将显示出来。窗体的Load事件调用ShowTitle、ShowData函数,将所有记录显示出来.图9-22 显示客户信息窗体2、添加客户信息窗体的创建在客户信息列表中单击“添加”按钮,将出现如图923所示的窗体,用来添加客户信息。图923 添加客户信息窗体输入内容完毕,单击“保存”按钮,程序将首先检查内容是否符合要求,然后检查是否有重复记录,最后添加到数据库中。3、修改客户信息在客户信息列表中选择需要修改的记录,然后单击“修改”按钮,当前记录将出现在如图923所示的窗体中。修改完毕,单击“保存”按钮,修改后的记录保存到数据库
24、中。4、查询客户信息在如图922所示的客户信息列表中,单击“查询”按钮,出现如图924所示的对话框。图924 客户信息查询窗体十一、订票信息管理模块的创建1、显示订票信息窗体的创建选择“票务信息管理|订票信息菜单,将首先出现如图9-25所示的窗体。所有订票类型信息都将显示出来。窗体的Load事件调用ShowTitle、ShowData函数,将所有记录显示出来。图925 显示机票信息的窗体2、添加订票信息窗体的创建在机票信息列表中单击“添加按钮,将出现如图926所示的窗体,用来添加订票信息。图9-26 添加订票信息的窗体3、修改订票信息在机票信息列表中选择需要修改的记录,然后单击“修改”按钮,当
25、前记录将出现在如图9-19所示的窗体中.修改完毕,单击“保存按钮,修改后的记录保存到数据库中。4、删除订票信息选择机票信息列表中需要删除的记录,然后单击“删除”按钮,可以删除所选记录。5、查询订票信息在如图9-25所示的机票信息列表中,单击“查询按钮,出现如图927所示的对话框.图9-27 机票信息查询窗体十二、系统的实现现在已经完成了程序各个功能模块的创建。运行程序,出现如图9-28所示的登录窗口.图928 用户登录窗口十三、系统的编译和发行完成了航空公司管理信息系统的编程和调试工作,最后一步就是该系统的编译和发行。这涉及到工程项目属性的设置、可执行应用程序的生成。在系统的编译和发行以前,需
26、要设置工程项目的属性。选择“Project|MIS_TICKET Properties”菜单,进行属性设置,如图942所示.最后选择“File|Make MIS_TICKET.exe”菜单,编译开始。编译完毕后,即生成了相应的可执行文件。编译通过后,生成可执行文件Mis_TICKET。exe。我们需要在发行前对生成的可执行文件进行测试。通过测试的可执行文件,就可以进行发布了.图9-42 进行项目的属性设置一个完整的航空公司管理信息系统就创建完毕了。在本例子中我们详细地讲述了该航空公司管理信息系统的系统设计部分,包括功能模块设计、数据库结构设计等.系统设计为整个程序构建了骨架,各个功能模块实现各个细节部分.9