数据库实验报告机票管理系统Word格式文档下载.docx
《数据库实验报告机票管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据库实验报告机票管理系统Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
![数据库实验报告机票管理系统Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-12/14/086e062b-0b7e-4a59-8ce7-9f6a719c08f9/086e062b-0b7e-4a59-8ce7-9f6a719c08f91.gif)
年月日
机票预订系统
1需求分析
为方便旅客,某航空公司拟开发一个机票预定系统。
旅客可通过旅行社或机场前台向该系统查询航班情况(按目的地、起飞时间、航班班次等)。
旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入该系统,系统为旅客安排航班,打印取票通知和账单,旅客在收到取票通知和账单后可交费并于飞机起飞前24小时凭取票通知和账单到机场前台取票,经系统校对信息无误后打印机票给旅客,旅客也可以直接到机场前台购票。
旅客也可向系统提出退票要求,系统针对具体情况计算手续费后进行相应退票处理。
1.1系统功能分析
本系统设有三部分,分为旅行社登录部分、机场前台登录部分和管理员登陆部分。
不同部分通过不同的用户名进入机票预订系统的不同界面进行操作。
1)旅行社界面
●查询:
可对航班信息进行查询操作;
●预订:
可对旅客选定的航班进行预定操作并记录旅客预定信息;
●帮助:
提供系统使用帮助文档;
●退出:
关闭当前页面。
2)机场前台界面
●售票:
可对旅客选定的航班进行操作记录旅客信息并打印机票;
●取票:
根据旅客提供的订单号核实旅客预定信息,打印机票;
●退票:
根据旅客提供的订单号核实旅客预定信息,为旅客提供退票服务;
提供帮助文档,方便旅客使用该系统;
3)系统管理员界面
●查询机票信息:
●录入/修改机票信息:
可对旅客信息进行添加、修改、浏览操作;
●删除机票信息:
可对旅客订票信息进行删除操作;
机票预订系统主功能图:
机票预订系统数据流图:
3.机票预订系统数据字典
在数据流图的基础上,定义数据字典。
数据字典是关于数据库中数据的描述,它的作用是在软件分析和设计过程中为有关人员提供关于数据描述信息的查询,以保证数据的一致性。
下面举例说明数据字典的定义。
数据项以“订单号”为例。
描述如下:
数据项名:
订单号
别名:
含义:
唯一标识旅客预订的机票信息
类型:
数字型
取值范围:
0000000000至999999999
取值含义:
标示订单
数据结构以“fly表”为例,描述如下:
数据结构名:
fly表
含义说明:
定义了一个航班的有关信息
组成:
航班号,日期,起飞时间,到达时间,出发地点、到达地点,票价,票余量
数据存储以“预定机票信息表”为例,描述如下:
数据存储名:
lvke表
说明:
旅客信息表情况
流出数据流:
查询旅客信息
流入数据流:
填写订票信息
数据描述:
身份证号,姓名,性别,联系电话,订单号,日期,目的地,座位号
二.机票预订系统概念结构设计
根据需求分析,我们知道机票预订系统的实体有:
航班和旅客。
航班实体的属性有:
航班号,日期,航班起飞时间,航班到达时间,目的地,票价,票余量
旅客实体的属性有:
身份证号,姓名,联系电话,航班号,日期,目的地,座位号
他们之间有M:
N的订购关系,即一旅客可以定多个航班,一个航班也可以被多个旅客订购。
按照以上机票预定系统总框架图,设计实体属性图以及局部E-R图
系统总结构设计视图E-R图
三.机票预订系统逻辑结构设计
1.E-R图向关系模型的转换
将图3.4总体概念结构E-R图转化成关系模型。
旅行社(账号,密码)
订单信息(订单号,航班号,过期时间,票价)
旅客信息(旅客姓名,性别,身份证号,联系方式,订单号,航班号)
此关系模型包含关系“包含”所对应的关系模型
机场前台(账号,密码)
系统管理员(账号,密码)
机票信息(航班号,起飞日期,起飞地点,到达地点,起飞时间,到达时间,座位类型,机票价格,系统管理员账号)
此模型包含关系“管理”所对应的关系模型
预定(旅行社账号,订单号,航班号,过期时间,票价)
查询(旅行社账号,航班号)
售票(机场前台账号,订单号,航班号)
2.数据模型的优化
1、确定数据依赖
退票信息(订单号,旅客姓名,电话号,身份证号)根据这个关系写出数据依赖
订单号→旅客姓名,订单号→电话号,订单号→身份证号
旅客(旅客姓名,身份证号,电话号,性别,工作单位)
旅客姓名→身份证号,旅客姓名→电话号,旅客姓名→性别,旅客姓名→工作单位
航班信息表(航班号,起飞地,目的地,起飞时间)
航班号→起飞地,航班号→目的地,航班号→起飞时间
取票通知单(旅客姓名,取票时间,航班号,座位号,机票类型)
旅客姓名→取票时间,旅客姓名→航班号,旅客姓名→座位号,
旅客姓名→机票类型
航班座位信息表(座位号,航班号,座位信息,机票类型)
(座位号,航班号)→座位信息,(座位号,航班号,座位信息)→机票类型
2、对各关系模式间数据依赖进行极小化处理,消除冗余
订单号→旅客姓名,订单号→电话号,订单号→身份证号,旅客姓名→性别
旅客姓名→工作单位,旅客姓名→取票时间,旅客姓名→航班号
旅客姓名→座位号,旅客姓名→机票类型,航班号→起飞地,航班号→目的地
航班号→起飞时间,(座位号,航班号)→座位信息
3、看这些模式是否符合要求,确定是否要对某些模式进行合并或者分解
最终分解成第三范式:
(订单号,电话号,身份证号)(订单号,旅客姓名)(旅客姓名,取票时间,性别,工作单位,机票类型)(旅客姓名,航班号)(旅客姓名,座位号)(航班号,座位号,机票类型)(航班号,起飞地,目的地,起飞时间)
四.机票预订系统物理结构设计
机票预订系统数据库(access)各个表设计如下:
机票预订系统旅客信息表(lvke)
字段名
数据类型
长度
约束
文本
50
不为空
性别
2
身份证号
数字
20
电话号
11
10
主键
机票预订系统航班信息表(fly)
航班号
起飞时间
时间/日期
到达时间
出发地点
到达地点
票价
票余量
五.部分实验代码:
5.1添加:
aConnection.Open();
stringstrSQL1="
select*fromflywhere航班号='
"
+textBox1.Text.Trim()+"
'
;
OleDbCommandcomm1=newOleDbCommand(strSQL1,aConnection);
if(null!
=comm1.ExecuteScalar())
MessageBox.Show("
已有此航班,请重新输入"
"
提示"
);
else
{
try
//aConnection.Open();
StringstrSQL="
INSERTINTOfly("
+"
起飞日期,航班号,起飞时间,到达时间,起飞地点,到达地点,头等舱票价,公务舱票价,经济舱票价,头等舱余票,公务舱余票,经济舱余票)"
VALUES('
+dateTimePicker1.Text+"
'
+textBox1.Text+"
+textBox2.Text+"
+textBox3.Text+"
+textBox4.Text
+textBox5.Text+"
+textBox6.Text+"
+textBox7.Text+"
+textBox8.Text+"
+textBox9.Text+"
+textBox10.Text+"
+textBox11.Text+"
)"
OleDbCommandmyCmd=newOleDbCommand(strSQL,aConnection);
myCmd.ExecuteNonQuery();
插入操作成功"
OleDbCommandcomm=newOleDbCommand("
select*fromfly"
aConnection);
OleDbDataAdapteradapter=newOleDbDataAdapter(comm);
OleDbCommandBuilderbuilder=newOleDbCommandBuilder(adapter);
DataSetds=newDataSet();
adapter.Fill(ds,"
fly"
dataGridView1.DataSource=ds.Tables["
];
textBox1.Clear();
aConnection.Close();
}
catch(Exceptionex)
Errorinhandling:
"
+ex.Message);
5.2删除:
try
aConnection.Open();
stringdelete_by_id="
deletefromflywhere航班号='
+comboBox1.Text.Trim()+"
OleDbCommandcmd=newOleDbCommand(delete_by_id,aConnection);
cmd.ExecuteNonQuery();
删除成功"
catch
请选择准确的行!
5.3修改:
StringstrSql="
Select*Fromfly"
dadapter=newOleDbDataAdapter();
dadapter.SelectCommand=newOleDbCommand(strSql,aConnection);
dset=newDataSet();
dadapter.Fill(dset);
dataGridView1.DataSource=dset.Tables[0];
5.4查询:
Select*Fromflywhere起飞日期='
+dateTimePicker1.Text.Trim()+"
and起飞地点='
and到达地点='
+comboBox2.Text.Trim()+"
六.机票预订系统操作界面
1.登录界面:
填写不同的用户名和密码,进入不同的系统主界面。
系统管理员主界面:
查询机票信息子界面:
添加修改机票信息界面:
1)添加
2)修改
机场前台主界面:
机票预订界面:
取票界面;
六.课程设计小结
在数据库课程设计过程中,经过认真的回顾数据库的相关知识,并很好的巩固了课程设计的基本步骤,掌握了在数据库课程设计过程中所要遵循的基本原则和环节;
运用软件设计中的数据库的增、删、改、查方法对系统的设计制作起到了至关重要的作用。
但在系统设计和调试过程中也遇到了很多困难大体总结有以下几点:
⑴、首先是在确定系统开发的过程中遇到了编程语言的困难,在设计查询子功能时,按条件查询需要用到相关的SQL查询语句。
如:
select*fromempcheckwhere旅客姓名='
&
Text1&
cn,adOpenDynamic,adLockPessimistic,-1和select*fromempcheckwhere身份证号='
Text3&
cn,adOpenDynamic,adLockPessimistic,-1。
⑵、本系统的缺陷是在进行修改时,只有当旅客身份证号和姓名都不为空时才可以修改,不可以只选一项。
而且在登录过程中应该设计用户数据库的链接,达到登录完整化。
有时候,根据设定的值关闭窗口时会莫名的弹错。
这些都是需要改进的。
⑶、还有不完善的就是只有管理员可以登录,一般用户不可以登录。
这样一来增加了安全性,但是带了很多不便。
比如说旅客想查询一下相关信息的话必须通过管理员来实现。
虽然在本次机票预订系统中遇到很多的困难但是在老师的精心指导和自己的不断努力基本上完成了此次数据库的设计并达到了预期的要求,而且自己在程序设计方面也有不少的收获。