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