机票预订系统课程设计报告_第1页
机票预订系统课程设计报告_第2页
机票预订系统课程设计报告_第3页
机票预订系统课程设计报告_第4页
机票预订系统课程设计报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《数据库原理及应用课程设计》系统开发报告学号:姓名:题目:机票预订系统指导教师:提交时间:2015年12月计算机工程系目录TOC\o"1-3"\h\u600一.概述 2231771.1课程实训目的与要求 3162291.2机票预订系统 381801.2.1系统功能的根本要求 327051.2.2数据库要求 414544二.需求分析 4273872.1背景分析 4184832.2功能分析 556502.3数据词典 631184三.概念结构设计 8114423.1概念结构设计的方法与步骤 8264073.2局部E-R图设计 8138663.4总体概念E-R图结构 119964四.逻辑结构设计 12287864.1逻辑结构设计 13248094.2数据库表的建立 161822五.物理结构设计 17209015.1表的建立与数据载入 1737885.2视图建立 17175605.3索引建立 18207665.4存储过程 181865.5触发器 1955145.6创立登陆账户和添加数据库用户 2017056六.数据流图及程序结构框图 21136886.1功能模块图 21308676.2数据流图 2232395七.界面设计与功能测试 23225887.1登录界面及代码 23153727.2进入系统界面 25253117.3订票过程 2818638八.总结 35一.概述应用对数据库技术及应用的理论学习通过上机实践的方式将理论知识与实践更好的结合起来稳固所学知识。实践和稳固在课堂教学中学习的关于数据库的有关知识熟练掌握对于给定实训任务的数据库的创立、根本操作、程序系统的建立和调试以及系统评价。实践和稳固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法熟练掌握对于给定实际问题为了建立一个关系数据库信息管理系统必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程为将来在学习工作中的应用打下根底。1.1课程实训目的与要求课程实训的目的是本次课程实训的主要任务是运用在《数据库原理及应用》课程中学到的理论知识来指导实践了解数据库设计过程及其实现方法学会用数据库建模的方法解决实际问题。掌握数据库原理、范式理论、标准化等相关知识掌握数据库分析设计的具体步骤与根本方法掌握SQL语言的根本语法和根本内容并能运用SQLServer2005实现设计数据库掌握SQLServer2005数据库、表、视图、约束、索引、存储过程、触发器的使用利用一种前台开发工具实现数据库管理系统的开发实现特定的业务功能。通过综合课程实训提高实践动手技能培养独立分析分析问题和解决问题的能力。课程实训的要求本次课程实训的选题比拟灵活可以是自主选题也可以自己选择比拟感兴趣的题目重点是完成数据库的分析、设计与实现题目要符合《数据库原理及应用》的要求并且具备一定的难度和深度除此以外可以从备选题目之外选择一个题目完成。1.2机票预订系统在所给的实训题目中我选择的是机票预订系统的设计。1.2.1系统功能的根本要求每个航班信息的输入每个航班的坐位信息的输入当旅客进行机票预定时输入旅客根本信息系统为旅客安排航班打印取票通知和帐单旅客在飞机起飞前一天凭取票通知交款取票旅客能够退订机票能够查询每个航班的预定情况、计算航班的满座率。1.2.2数据库要求在数据库中至少应该包含以下数据表航班信息表航班坐位情况表旅客订票信息表取票通知表帐单。二.需求分析2.1背景分析随着社会开展的不断进步民航事业的壮大人们消费水平的提高乘坐民航的消费者也越来越多旅游也逐渐成为普通老百姓的生活组成局部飞机票预定查询系统在各机票预定网点中的作用也越显重要。目前我国一些旅行社和酒店的机票预定还停留在人工处理阶段这已经严重制约了工作效率在计算机技术高速开展的今天有必要引入高效的计算机系统来协助处理机票预定工作。因此开发一套具有完整的存储查询核对打印机票功能的实时机票预定系统势在必行。机票预定系统是为机场工作人员和客户提供订票退票等与机票相关内容和管理的系统它具有开放体系结构的、易扩充的、易维护的、具有良好人机界面的优点.它除克服了存储乘客信息少查询效率低下等问题外更重要的是其安全性可靠性实现航空公司的机票销售的自动化。它为企业的决策层提供准确、精细、迅速的机票销售信息为乘客出行提供方便便于机场工作人员对机票信息进行管理提高了机场工作人员对机票管理的工作效率。2.2功能分析经过综合分析确定了机票预订系统主要包括以下功能(1)航班信息管理功能主要实现航班的一些根本信息航班编号、票价、起飞地、目的地、起飞时间的添加、修改、删除和查询。(2)航班座位信息管理功能主要实现航班座位也就是机票的一些根本信息航班编号、座位号、座位信息、机票类型的添加、修改、删除和查询。(3)旅客信息管理功能此模块的主要实现旅客一些根本信息姓名、性别、联系方式、证件号码、的查询功能。(4)取票信息管理功能此模块用于取票信息的管理包括对航班根本信息航班编号等旅客根本信息旅客姓名、座位号、取票时间的查询。(5)退票信息管理功能此模块用于退票信息的管理包括对订单号、旅客姓名、联系方式、证件号码的查询。2.3数据词典经分析之后,本系统要用到五个根本表:航班信息表、航班座位情况表、旅客订票信息表、取票和账单信息表、退票信息表。数据结构定义如表数据结构名含义说明组成航班信息表定义了航班航班号起飞地目的地起飞时间航班座位情况定义了航班座位有关信息航班号座位号,座位信息机票类型表旅客订票信息定义了旅客有关信息旅客姓名身份证号性别号表取票和账单信定义了取票通知相关有关信息旅客姓名取票时间航班号座位息表号机票类型退票信息表定义了退票旅客的有关信息旅客姓名身份证号订单号机票预订系统的主要数据字典如下1航班信息数据流来源航班管理数据流去向航班安排数据项组成航班号起飞地目的地起飞时间票价2航班座位情况数据流来源航班管理和订票情况数据流去向旅客座位数据项组成航班号座位号,座位信息机票类型3旅客信息数据流来源确定旅客信息后管理人员输入系统数据流去向安排顾客的航班数据项组成旅客姓名身份证号性别号4取票通知和账单信息数据流来源打印取票通知和账单数据流去向核对订票信息数据项组成旅客姓名取票时间航班号座位号机票类型5退票信息数据流来源旅客退票申请数据流去向订票信息申请退票数据项组成旅客姓名身份证号订单号号三.概念结构设计3.1概念结构设计的方法与步骤1概念结构设计的方法概念设计阶段我采用自底向上的方法即自顶向下的进行需求分析然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起最终合成一个全局概念模式。2概念结构设计的步骤第一步是进行局部视图的设计由于高层的数据流图只能反映系统的概貌而中层流图能较好的反映系统中各局部应用的子系统组成。因此我们先逐一的设计分E-R图。第二步是进行视图的集成各子系统的E-R图设计好之后下一步就是要将所有的分E-R图合成一个系统的总E-R图一般有两个方式多个分E-R图一次集成另一种是一次集成两个分E-R图。我想采用一次集成两个分E-R图的方式。3.2局部E-R图设计根据需求分析抽象出信息结构可得该系统的E-R图。(1)航班信息E-R图如图3.1所示。起飞地起飞时间目的地航班编号票价航班信息图3.1航班信息E-R图(2)航班座位信息E-R图如图3.2所示。座位号座位信息机票类型航班编号航班座位信息3.2机票信息E-R图旅客E-R图如图3.3所示。身份证号性别号姓名旅客图3.3旅客E-R图(4)取票通知E-R图如图3.4所示。机票类型旅客姓名座位号取票时间航班编号取票通知和账单3.4取票通知E-R图退票信息E-R图如图3.5所示。订单号身份证号号旅客姓名退票信息3.5退票信息E-R图3.4总体概念E-R图结构经过逐步细化再进行每两个一集成初步形成一个E-R图最后得到图3.6总体概念结构E-R图。逻辑结构设计4.1逻辑结构设计1E-R图向关系模型的转换将图3.6总体概念结构E-R图转化成关系模型。退票信息订单号旅客姓名联系方式证件号码旅客旅客姓名证件号码联系方式性别)航班信息表航班号票价起飞地目的地起飞时间取票通知单旅客姓名取票时间证件号码航班号座位号机票信息表座位号航班号座位信息机票类型2数据模型的优化将转化的关系模式进行优化最终到达第三范式。确定数据依赖退票信息订单号旅客姓名联系方式证件号码根据这个关系写出数据依赖订单号→旅客姓名订单号→联系方式订单号→证件号码旅客旅客姓名证件号码联系方式性别)旅客姓名→证件号码旅客姓名→联系方式旅客姓名→性别航班信息表航班号票价起飞地目的地起飞时间航班号→起飞地航班号→票价航班号→目的地航班号→起飞时间取票通知单旅客姓名取票时间航班号座位号旅客姓名→取票时间旅客姓名→航班号旅客姓名→座位号机票信息表座位号航班号座位信息机票类型座位号航班号→舱位类型座位号航班号座位信息→机票类型对各关系模式间数据依赖进行极小化处理消除冗余订单号→旅客姓名订单号→联系方式订单号→证件号码旅客姓名→性别旅客姓名→取票时间旅客姓名→航班号旅客姓名→座位号旅客姓名→机票类型航班号→起飞地航班号→目的地航班号→起飞时间座位号航班号→座位信息看这些模式是否符合要求确定是否要对某些模式进行合并或者分解最终分解成第三范式订单号联系方式证件号码订单号旅客姓名旅客姓名取票时间性别机票类型旅客姓名航班号旅客姓名座位号航班号座位号票价航班号起飞地目的地起飞时间3数据库的结构根据总体结构图设计机票预定系统根本表结构其相应标的定义如下4.2数据库表的建立需要明确数据库需要建几张表,以及每张表包括的属性。在建立每张表的过程中,需要对表进行字段属性的设置。在机票预订管理系统中,要建立六张表,分别是:订单信息表,旅客信息表,航班信息表,机票信息表,取票通知单表,退票通知表。表4.2.1订单信息表Table5-1ofthebookinginformationform表4.2.2旅客信息表Table5-2passengersinformationtable表4.2.3航班信息表Table5-3flightinformationtable表4.2.4机票信息表Tableticketinformationtable表退票信息表Tablerefundinformationtable视图的建立视图是查看数据库的一种方式,视图提供了存储预定义的查询语句作为数据库中的对象,具备以后使用的能力。视图是一种逻辑对象,是一种虚拟表。五.物理结构设计数据库物理设计是指设计出数据库的物理数据模型它是数据库在物理设备上的具体实现即数据库效劳器物理空间上的表空间、表、字段、索引、视图、存储过程、触发器以及相应的数字字典的设计。经过数据库的需求分析和概念模型设计得到数据库的逻辑结构现在可以设计好的逻辑结构在SQLserver中建立数据库及数据库的数据表。5.1表的建立与数据载入需要明确数据库需要建立几张表以及每个表中所要包括的属性。在建立表的过程中。要对每个表进行字段属性的设置。至少包括5张表每个表都有主键根据实际情况建立视图在机票预订系统中主要建立了5个表分别是航班信息表航班座位情况表旅客订票信息表取票和账单信息表退票信息表。5.2视图建立视图是查看数据库表中数据的一种方式。视视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力。视图是一种逻辑对象是一种虚拟表。在机票预订系统中我建立了两个视图。分别是航班和座位视图和旅客和取票信息视图。他们分别通过飞机编号也就是flightnumber项和旅客信息也就是passagename项联系起来。5.3索引建立索引是一个单独的、物理的数据库结构它是某个表中一列或假设干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引依赖于表建立它提供了数据库中编排表中数据的内部方法。在机票预订系统中我建立了三个索引分别是在航班信息表中建立了flightnumber索引在旅客信息表中建立passagename索引在航班座位信息表中建立了seatnumber索引。索引类型为唯一性的非聚集索引。5.4存储过程我创立了三个存储过程输出三个表的全部信息。分别是航班信息表、航班座位信息表、旅客信息表。命令为CREATEPROCaaaASSELECT*FROMFlightnumberCREATEPROCbbbASSELECT*FROMSeatnumberCREATEPROCcccASSELECT*FROMPassagename5.5触发器触发器是一种实施复杂的完整性约束的特殊存储过程它在SQLserver进行某个特定的表修改时由SQLServer自动执行。触发器一般用于加强数据库的某些使用规那么。在机票管理系统中我建立了一个DDL触发器用于保护当前SQLServer效劳器里的所有数据库不被删除。具体代码为CREATETRIGGERnotdeleteONallserverFORDROP_DATABASEASPRINT’不能删除数据库’ROLLBACKGO另外分别在航班信息表、航班座位信息表、旅客信息表、取票通知和账单这四个表中建立了四个触发器对于表中的添加和更改数据提示错误信息。代码为CREATETRIGGERaONflightnumberFORINSERT,UPDATEASRAISERROR('不能添加和更新数据',16,1)ROLLBACKTRANSACTIONGOCREATETRIGGERbONflightnumberFORINSERT,UPDATEASRAISERROR('不能添加和更新数据',16,1)ROLLBACKTRANSACTIONGOCREATETRIGGERcONpassagenumberFORINSERT,UPDATEASRAISERROR('不能添加和更新数据',16,1)ROLLBACKTRANSACTIONGOCREATETRIGGERdONGettickettimeFORINSERT,UPDATEASRAISERROR('不能添加和更新数据',16,1)ROLLBACKTRANSACTIONGO5.6创立登陆账户和添加数据库用户在实训中我利用SQL创立了一个“login1”的登陆账号。密码为123456。在一个数据库中用户账号唯一标识一个用户用户对数据库的访问权限以及对数据库对象的所有关系都是通过用户账号来控制的。在机票预订系统中我创立了一个用户名为user1的用户。六.数据流图及程序结构框图6.1功能模块图根据所需的功能可以设计出系统的总体功能模块如图6.1所示。机票预订系统航机旅取退班票客票票信信信信信息息息息息管管管管管理理理理理模模模模模图6.1机票预订系统功能模块示意图取票信息管理模块的细化功能模块如图6.2所示。6.2数据流图取票信息管理旅客根本信息查询机票根本信息查询图6.2取票信息管理模块退票信息管理模块的细化功能模块如图6.3所示。取票信息管理旅客根本信息查询订单信息查询6.3退票信息管理模块订票信息旅客机票预订系统旅客机票付费信息图6.40层数据流图通知、账单信息旅客信息订票旅客旅客取票通知、账单信息图6.51层数据流图七.界面设计与功能测试7.1登录界面及代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceWindowsApplication2{publicpartialclassForm6:Form{publicForm6(){InitializeComponent();}publicSqlConnectionconn;privatevoidlabel3_Click(objectsender,EventArgse){}privatevoidbutton1_Click(objectsender,EventArgse){Form1f=newForm1();conn.Open();stringuname=this.textBox1.Text.ToString();stringupassword=this.textBox2.Text.ToString();SqlCommandthiscommand=conn.CreateCommand();thiscommand.CommandText="select管理员账号,管理员密码from管理员where管理员账号='"+uname+"'";SqlDataReaderthisreader=thiscommand.ExecuteReader();if(thisreader.Read()){if(thisreader["管理员密码"].ToString().Trim()==upassword){MessageBox.Show("恭喜您登陆成功!","登陆成功!",MessageBoxButtons.OK,MessageBoxIcon.Information);//yhxxtt=newyhxx();//tt.Show();//this.Close();//关闭当前窗体//newForm1().Hide();this.Visible=false;//当前窗口不可见f.Show();//newForm2().Show();//form2显示newForm2().Show();}}else{MessageBox.Show("密码错误,请重新输入!","错误",MessageBoxButtons.OK,MessageBoxIcon.Information);}}conn.Close();}privatevoidForm6_Load(objectsender,EventArgse){stringMyConn="server=.;DataSource=,7788;InitialCatalog=机票预订系统;IntegratedSecurity=True";conn=newSqlConnection(MyConn);}}}7.2进入系统界面usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceWindowsApplication2{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}privatevoidbutton1_Click(objectsender,EventArgse){Form2f=newForm2();f.Show();}privatevoidbutton2_Click(objectsender,EventArgse){Form2A=newForm2();A.Show();//Afrm2=newA();//frm2.Show();}}}7.3订票过程usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceWindowsApplication2{publicpartialclassForm2:Form{publicForm2(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){Form3f=newForm3();f.Show();}privatevoidbutton2_Click(objectsender,EventArgse){Form4f=newForm4();f.Show();}privatevoidbutton3_Click(objectsender,EventArgse){}privatevoidForm2_Load(objectsender,EventArgse){}}}usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceWindowsApplication2{publicpartialclassForm3:Form{publicForm3(){InitializeComponent();}publicSqlConnectionconn;privatevoidbutton1_Click(objectsender,EventArgse){stringMyInsert="insertinto订单信息表values('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"','"+textBox5.Text+"','"+textBox6.Text+"','"+textBox7.Text+"','"+textBox8.Text+"','"+textBox9.Text+"','"+textBox10.Text+"','"+textBox11.Text+"','"+textBox12.Text+"','"+textBox13.Text+"')";SqlCommandMyCommand=newSqlCommand(MyInsert,conn);conn.Open();MyCommand.ExecuteNonQuery();conn.Close();MessageBox.Show("成功","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);//stringMyConn="server=.;DataSource=,7788;InitialCatalog=机票预订系统;IntegratedSecurity=True";//SqlConnectionconn=newSqlConnection(MyConn);//try//{////conn.Open();//}//catch{MessageBox.Show("数据库连接失败");return;}//stringsql="insertinto订单信息表(订单号,身份证号,航班号,座位号,旅客姓名,性别,工作单位,号码,起飞地,目的地,起飞时间,订单时间,订单数量)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}')",textBox1.Text.Trim(),textBox2.Text.Trim(),textBox3.Text.Trim(),textBox4.Text.Trim(),textBox5.Text.Trim(),textBox6.Text.Trim(),textBox7.Text.Trim(),textBox8.Text.Trim(),textBox9.Text.Trim(),textBox10.Text.Trim(),textBox11.Text.Trim(),textBox12.Text.Trim(),textBox13.Text.Trim());//SqlCommandsqlCmd=newSqlCommand(sql,conn);//SqlDataAdapterda=newSqlDataAdapter(sql,conn);;//实例化sqldataadpter//DataSetds1=newDataSet();//实例化dataset//da.Fill(ds1);//把数据填充到dataset//dataGridView1.DataSource=ds1.Tables[0];//将数据集绑定datagridview,完成显//conn.Close();}privatevoidForm3_Load(objectsender,EventArgse){//stringMyConn="server=.;DataSource=,7788;InitialCatalog=机票预订系统;IntegratedSecurity=True";//SqlConnectionconn=newSqlConnection(MyConn);stringMyConn="server=.;DataSource=,7788;InitialCatalog=机票预订系统;IntegratedSecurity=True";conn=newSqlConnection(MyConn);}privatevoidlabel14_Click(objectsender,EventArgse){}}}usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceWindowsApplication2{publicpartialclassForm4:Form{publicstaticForm4f=null;publicForm4(){InitializeComponent();f=this;}publicSqlConnectionconn;publicstringtoos(){stringa=textBox1.Text;returna;}privatevoidbutton1_Click(objectsender,EventArgse){//stringMyConn="server=.;DataSource=,7788;InitialCatalog=机票预订系统;IntegratedSecurity=True";//conn=newSqlConnection(MyConn);stringMyInsert="select*from订单信息表where订单号='"+textBox1.Text+"'";SqlCommandMyCommand=newSqlCommand(MyInsert,conn);try{conn.Open();}catch{MessageBox.Show("数据库连接失败");return;}objecto=MyCommand.ExecuteScalar();if(o==null){MessageBox.Show("不存在此记录","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{SqlDataAdapterDA=newSqlDataAdapter(MyInsert,conn);DataSetdsl=newDataSet();DA.Fill(dsl);dataGridView1.DataSource=dsl.Tables[0];}try{conn.Close();}catch{return;}//MyCommand.ExecuteNonQuery();//conn.Close();//MessageBox.Show("成功","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);//stringMyConn="server=.;DataSource=,7788;InitialCatalog=机票预订系统;IntegratedSecurity=True";//SqlConnectionconn=newSqlConnection(MyConn);}privatevoiddataGridView1_CellContentClick(objectsender,DataGridViewCellEventArgse){}privatevoidForm4_Load(objectsender,EventArgse){stringMyConn="server=.;DataSource=,7788;InitialCatalog=机票预订系统;IntegratedSecurity=True";conn=newSqlConnection(MyConn);}privatevoidbutton2_Click(objectsender,EventArgse){stringMyInsert="deletefrom订单信息表where订单号='"+textBox1.Text+"'";SqlCommandMyCommand=newSqlCommand(MyInsert,conn);conn.Open();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论