数据库原理及应用课程设计-机票预订系统课程设计报告.doc_第1页
数据库原理及应用课程设计-机票预订系统课程设计报告.doc_第2页
数据库原理及应用课程设计-机票预订系统课程设计报告.doc_第3页
数据库原理及应用课程设计-机票预订系统课程设计报告.doc_第4页
数据库原理及应用课程设计-机票预订系统课程设计报告.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

数据库原理及应用课程设计系统开发报告 学 号: 姓 名: 题 目: 机票预订系统 指导教师: 提交时间: 2015年12月 计算机工程系目录一.概述21.1 课程实训目的与要求31.2 机票预订系统31.2.1 系统功能的基本要求31.2.2 数据库要求4二.需求分析42.1背景分析42.2 功能分析52.3 数据词典6三.概念结构设计83.1概念结构设计的方法与步骤83.2 局部 E-R 图设计83.4总体概念 E-R 图结构11四.逻辑结构设计124.1 逻辑结构设计134.2 数据库表的建立16五.物理结构设计175.1 表的建立与数据载入175.2 视图建立175.3 索引建立185.4 存储过程185.5 触发器195.6 创建登陆账户和添加数据库用户20六.数据流图及程序结构框图216.1 功能模块图216.2数据流图22七.界面设计与功能测试237.1登录界面及代码237.2 进入系统界面257.3 订票过程28八总结35一.概述 应用对数据库技术及应用的理论学习 通过上机实践的方式将理论知识与实践更好的结合起来 巩固所学知识。实践和巩固在课堂教学中学习的关于数据库的有关知识 熟练掌握对于给定实训任务的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法 熟练掌握对于给定实际问题 为了建立一个关系数据库信息管理系统 必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程 为将来在学习工作中的应用打下基础。1.1 课程实训目的与要求 课程实训的目的是 本次课程实训的主要任务是运用在数据库原理及应用课程中学到的理论知识来指导实践 了解数据库设计过程及其实现方法 学会用数据库建模的方法解决实际问题。掌握数据库原理、范式理论、规范化等相关知识 掌握数据库分析设计的具体步骤与基本方法 掌握 SQL 语言的基本语法和基本内容 并能运用 SQL Server 2005 实现设计数据库 掌握 SQL Server 2005 数据库、表、视图、约束、索引、存储过程、触发器的使用 利用一种前台开发工具实现数据库管理系统的开发 实现特定的业务功能。通过综合课程实训 提高实践动手技能 培养独立分析分析问题和解决问题的能力。课程实训的要求 本次课程实训的选题比较灵活 可以是自主选题 也可以自己选择比较感兴趣的题目 重点是完成数据库的分析、设计与实现 题目要符合数据库原理及应用的要求 并且具备一定的难度和深度 除此以外 可以从备选题目之外选择一个题目完成。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 图(3) 旅客 E-R 图 如图 3.3 所示。 身份证号性别电话号姓名旅客图 3.3 旅客 E-R 图(4) 取票通知 E-R 图 如图 3.4 所示。机票类型旅客姓名座位号取票时间航班编号取票通知和账单图 3.4 取票通知 E-R 图(5) 退票信息 E-R 图 如图 3.5 所示。订单号身份证号电话号旅客姓名 退票信息图 3.5 退票信息 E-R 图3.4总体概念 E-R 图结构经过逐步细化再进行每两个一集成初步形成一个 E-R 图 最后得到图 3.6 总体概念结构 E-R 图。4. 逻辑结构设计4.1 逻辑结构设计1 E-R 图向关系模型的转换将图 3.6 总体概念结构 E-R 图转化成关系模型。退票信息 订单号 旅客姓名 联系方式 证件号码旅客 旅客姓名 证件号码 联系方式 性别)航班信息表 航班号 票价 起飞地 目的地 起飞时间取票通知单 旅客姓名 取票时间 证件号码 航班号 座位号机票信息表 座位号 航班号 座位信息 机票类型2 数据模型的优化将转化的关系模式进行优化 最终达到第三范式。确定数据依赖退票信息 订单号 旅客姓名 联系方式 证件号码 根据这个关系写出数据依赖订单号旅客姓名 订单号联系方式 订单号证件号码旅客 旅客姓名 证件号码 联系方式 性别)旅客姓名证件号码 旅客姓名联系方式 旅客姓名性别航班信息表 航班号 票价 起飞地 目的地 起飞时间航班号起飞地 航班号票价 航班号目的地 航班号起飞时间取票通知单 旅客姓名 取票时间 航班号 座位号旅客姓名取票时间 旅客姓名航班号 旅客姓名座位号机票信息表 座位号 航班号 座位信息 机票类型座位号 航班号 舱位类型 座位号 航班号 座位信息 机票类型对各关系模式间数据依赖进行极小化处理 消除冗余订单号旅客姓名 订单号联系方式 订单号证件号码旅客姓名性别 旅客姓名取票时间 旅客姓名航班号 旅客姓名座位号 旅客姓名机票类型航班号起飞地 航班号目的地 航班号起飞时间座位号 航班号 座位信息看这些模式是否符合要求 确定是否要对某些模式进行合并或者分解最终分解成第三范式订单号 联系方式 证件号码 订单号 旅客姓名 旅客姓名 取票时间 性别 机票类型 旅客姓名 航班号 旅客姓名 座位号 航班号 座位号 票价 航班号 起飞地 目的地 起飞时间3 数据库的结构根据总体结构图设计机票预定系统基本表结构 其相应标的定义如下4.2 数据库表的建立 需要明确数据库需要建几张表,以及每张表包括的属性。在建立每张表的过程中,需要对表进行字段属性的设置。在机票预订管理系统中,要建立六张表,分别是:订单信息表,旅客信息表,航班信息表,机票信息表,取票通知单表,退票通知表。表4.2.1 订单信息表Table 5-1 of the booking information form表4.2.2 旅客信息表Table 5-2 passengers information table表4.2.3 航班信息表Table 5-3 flight information table表4.2.4 机票信息表Table4.2.4 ticket information table表4.2.5 退票信息表Table4.2.5refund information table4.2.1视图的建立视图是查看数据库的一种方式,视图提供了存储预定义的查询语句作为数据库中的对象,具备以后使用的能力。视图是一种逻辑对象,是一种虚拟表。五.物理结构设计数据库物理设计是指设计出数据库的物理数据模型 它是数据库在物理设备上的具体实现 即数据库服务器物理空间上的表空间、表、字段、索引、视图、存储过程、触发器以及相应的数字字典的设计。经过数据库的需求分析和概念模型设计 得到数据库的逻辑结构 现在可以设计好的逻辑结构在 SQL server 中建立数据库及数据库的数据表。5.1 表的建立与数据载入需要明确数据库需要建立几张表 以及每个表中所要包括的属性。在建立表 的过程中。要对每个表进行字段属性的设置。至少包括 5 张表 每个表都有主 键 根据实际情况 建立视图在机票预订系统中 主要建立了 5 个表 分别是 航班信息表 航班座位情况表 旅客订票信息表 取票和账单信息表 退票信息表。5.2 视图建立视图是查看数据库表中数据的一种方式。视视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力。视图是一种逻辑对象 是一种虚拟表。在机票预订系统中 我建立了两个视图。分别是航班和座位视图和旅客和取票信息视图。他们分别通过飞机编号也就是 flight number 项和旅客信息也就是passage name 项联系起来。5.3 索引建立索引是一个单独的、物理的数据库结构 它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引依赖于表建立 它提供了数据库中编排表中数据的内部方法。在机票预订系统中 我建立了三个索引 分别是在航班信息表中建立了flight number 索引 在旅客信息表中建立 passage name 索引 在航班座位信息表中建立了 seat number 索引。索引类型为唯一性的非聚集索引。5.4 存储过程我创建了三个存储过程 输出三个表的全部信息。分别是航班信息表、航班座位信息表、旅客信息表。命令为CREATE PROC aaaASSELECT *FROM Flight numberCREATE PROC bbbASSELECT *FROM Seat numberCREATE PROC cccASSELECT *FROM Passage name5.5 触发器触发器是一种实施复杂的完整性约束的特殊存储过程 它在 SQL server 进行某个特定的表修改时由 SQL Server 自动执行。触发器一般用于加强数据库的某些使用规则。在机票管理系统中 我建立了一个 DDL 触发器 用于保护当前 SQL Server服务器里的所有数据库不被删除。具体代码为CREATE TRIGGER notdeleteON all serverFOR DROP_DATABASEASPRINT不能删除数据库ROLLBACKGO另外分别在航班信息表、航班座位信息表、旅客信息表、取票通知和账单这四个表中建立了四个触发器 对于表中的添加和更改数据 提示错误信息。 代码为CREATE TRIGGER a ON flight number FOR INSERT,UPDATEAS RAISERROR(不能添加和更新数据,16,1) ROLLBACK TRANSACTIONGOCREATE TRIGGER b ON flight number FOR INSERT,UPDATEAS RAISERROR(不能添加和更新数据,16,1)ROLLBACK TRANSACTIONGOCREATE TRIGGER c ON passage numberFOR INSERT,UPDATEAS RAISERROR(不能添加和更新数据,16,1)ROLLBACK TRANSACTIONGOCREATE TRIGGER d ON Get ticket timeFOR INSERT,UPDATEAS RAISERROR(不能添加和更新数据,16,1)ROLLBACK TRANSACTIONGO5.6 创建登陆账户和添加数据库用户在实训中 我利用SQL创建了一个“login1”的登陆账号。密码为123456。在一个数据库中 用户账号唯一标识一个用户 用户对数据库的访问权限以及对数据库对象的所有关系都是通过用户账号来控制的。在机票预订系统中 我创建了一个用户名为user1的用户。六.数据流图及程序结构框图6.1 功能模块图根据所需的功能 可以设计出系统的总体功能模块 如图 6.1 所示。 机票预订系统航机旅取退班票客票票信信信信信息息息息息管管管管管理理理理理模模模模模图 6.1 机票预订系统功能模块示意图取票信息管理模块的细化功能模块如图 6.2 所示。6.2数据流图取票信息管理旅客基本信息查询机票基本信息查询图 6.2 取票信息管理模块 退票信息管理模块的细化功能模块如图 6.3 所示。 取票信息管理 旅客基本信息查询 订单信息查询图 6.3 退票信息管理模块 订票信息 旅客 机票预订系统 旅客 机票 付费信息 图 6.4 0 层数据流图通知、账单信息旅客信息订票旅客旅客 取票通知、账单信息图 6.5 1 层数据流图七.界面设计与功能测试7.1登录界面及代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsApplication2 public partial class Form6 : Form public Form6() InitializeComponent(); public SqlConnection conn; private void label3_Click(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) Form1 f = new Form1(); conn.Open(); string uname = this.textBox1.Text.ToString(); string upassword = this.textBox2.Text.ToString(); SqlCommand thiscommand = conn.CreateCommand(); thiscommand.CommandText = select 管理员账号,管理员密码from 管理员where 管理员账号= + uname + ; SqlDataReader thisreader = thiscommand.ExecuteReader(); if (thisreader.Read() if (thisreader管理员密码.ToString().Trim() = upassword) MessageBox.Show(恭喜您登陆成功!, 登陆成功!, MessageBoxButtons.OK, MessageBoxIcon.Information); /yhxx tt = new yhxx(); /tt.Show(); /this.Close();/关闭当前窗体 /new Form1().Hide(); this.Visible = false;/当前窗口不可见 f.Show(); / new Form2().Show();/form2显示new Form2().Show(); else MessageBox.Show(密码错误,请重新输入!, 错误, MessageBoxButtons.OK, MessageBoxIcon.Information); conn.Close(); private void Form6_Load(object sender, EventArgs e) string MyConn = server=.;Data Source=,7788;Initial Catalog=机票预订系统;Integrated Security=True; conn = new SqlConnection(MyConn); 7.2 进入系统界面using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace WindowsApplication2 public partial class Form1 : Form public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) Form2 f = new Form2(); f.Show(); private void button2_Click(object sender, EventArgs e) Form2 A = new Form2(); A.Show(); / A frm2 = new A(); / frm2.Show(); 7.3 订票过程using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace WindowsApplication2 public partial class Form2 : Form public Form2() InitializeComponent(); private void button1_Click(object sender, EventArgs e) Form3 f = new Form3(); f.Show(); private void button2_Click(object sender, EventArgs e) Form4 f = new Form4(); f.Show(); private void button3_Click(object sender, EventArgs e) private void Form2_Load(object sender, EventArgs e) using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.SqlClient;using System.Drawing;using System.Text;using System.Windows.Forms;namespace WindowsApplication2 public partial class Form3 : Form public Form3() InitializeComponent(); public SqlConnection conn; private void button1_Click(object sender, EventArgs e) string MyInsert = insert into 订单信息表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 + ); SqlCommand MyCommand = new SqlCommand(MyInsert, conn); conn.Open(); MyCommand.ExecuteNonQuery(); conn.Close(); MessageBox.Show(成功, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); /string MyConn = server=.;Data Source=,7788;Initial Catalog=机票预订系统;Integrated Security=True; / SqlConnection conn = new SqlConnection(MyConn); / try / / conn.Open(); / / catch MessageBox.Show(数据库连接失败); return; / string sql = insert into 订单信息表(订单号,身份证号,航班号,座位号,旅客姓名,性别,工作单位,电话号码,起飞地,目的地,起飞时间,订单时间,订单数量) 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(); / SqlCommand sqlCmd = new SqlCommand(sql, conn); / SqlDataAdapter da = new SqlDataAdapter(sql, conn); ;/实例化sqldataadpter / DataSet ds1 = new DataSet();/实例化dataset / da.Fill(ds1);/把数据填充到dataset / dataGridView1.DataSource = ds1.Tables0;/将数据集绑定datagridview,完成显 / conn.Close(); private void Form3_Load(object sender, EventArgs e) / string MyConn = server=.;Data Source=,7788;Initial Catalog=机票预订系统;Integrated Security=True; /SqlConnection conn = new SqlConnection(MyConn); string MyConn = server=.;Data Source=,7788;Initial Catalog=机票预订系统;Integrated Security=True; conn = new SqlConnection(MyConn); private void label14_Click(object sender, EventArgs e) using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace WindowsApplication2 public partial class Form4 : Form public static Form4 f = null; public Form4() InitializeComponent(); f = this; public SqlConnection conn; public string toos() string a = textBox1.Text; return a; private void button1_Click(object sender, EventArgs e) / string MyConn = server=.;Data Source=,7788;Initial Catalog=机票预订系统;Integrated Security=True; / conn = new SqlConnection(MyConn); string MyInsert = select * from 订单信息表where 订单号=+textBox1.Text+; SqlCommand MyCommand = new SqlCommand(MyInsert, conn); try conn.Open(); catch MessageBox.Show(数据库连接失败); return; object o = MyCommand.ExecuteScalar(); if (o = null) MessageBox.Show(不存在此记录, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); else SqlDataAdapter DA = new SqlDataAdapter(MyInsert, conn); DataSet dsl = new DataSet(); DA.Fill(dsl); dataGridView1.DataSource = dsl.Tables0; try conn.Close(); catch return; / MyCommand.ExecuteNonQuery(); / conn.Close(); / MessageBox.Show(成功, 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); /string MyConn = server=.;Data Source=,7788;Initial Catalog=机票预订系统;Integrated Security=True; / SqlConnection conn = new SqlConnection(MyConn); privat

温馨提示

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

评论

0/150

提交评论