飞机航班管理系统.docx
《飞机航班管理系统.docx》由会员分享,可在线阅读,更多相关《飞机航班管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
飞机航班管理系统
飞机航班管理系统数据库设计
1概述(设计题目与可行性分析)
1.1设计题目
本次课程设计的题目是飞机航班管理系统设计。
根据给出初始条件建立一个管理飞机航班的数据库,能够从中查询飞机的航班情况,飞行线路,票价,折扣等等情况。
并能在数据库中更新维护飞机航班的信息,进行需求分析、概念设计、逻辑设计和物理实现,实现飞机航班数据库,并且基于该数据库实现具有一定功能的应用程序。
1.2可行性分析
对于飞机航班管理,航空公司里可能有很多飞行班次。
简单的书面管理无法满足对客户的服务需求和自身的高效运作。
该系统实现后可对航班进行科学的微机管理,也使得用户可以直接在网上享受对航班的查询,订票,退票等服务,大大提高管理效率和服务水平。
综上,飞机航班数据库是值得去现实的,下面从技术可行性、经济可行性和操作可行性3个方面进行分析:
(1)技术可行性:
与飞机航班管理数据库相类似的一些数据库,如学生学籍数据库等都早已实现,为该数据库的设计和实现提供了一定的经验。
同时市场上和数据库相关的一些技术都发展的十分成熟了,如微软开发的mssql、甲骨文开发的oracle、开源免费的mysql等都可以支持不同种类数据库的开发。
因此,该数据库的设计和实现在技术上是可以行得通的;
(2)经济可行性:
该飞机航班数据库设计并且实现后,可供用户相关的航班服务,一方面可以节省部分人力资源减少对大量客户直接接待的费用,提高工作效率;另一方面也可以更为科学和合理的管理飞机航班系统,对其进行及时管理,以提高公司的服务水平。
因此,该数据库的的实现在经济上是可行的;
(3)操作可行性:
通过基于飞机航班管理数据库的相关的应用系统的实现,用户即便不是数据库方面的专业人员,只要懂得计算机相应的输入输出,在系统的提示下就可以完成对飞机航班数据库的相关的操作。
因此,具有操作可行性。
总体上来看,可以在尽可能短的时间里,以最小的代价实现飞机航班数据库及其相关的应用系统,供航空公司对其航班进行更科学的管理,使用户获得更方便的服务。
2系统目标和建设原则
2.1系统目标
飞机航班数据库的设计和实现需要航空公司根据自己的需求对本公司的飞机航班进行科学高效管理,并为用户提供方便实用的系统服务。
数据库中需要保存航班的基本信息、并对航班信息做出及时的更新和维护。
飞机航班主要包括1个记录表,此表包含航班的航班号,飞行时间,飞行路线,机票价格等信息,系统应对这些信息进行及时更新和维护。
除了这些飞机航班数据库的基本组成表之外,该数据库的设计和实现还应当便于相关的应用程序开发人员的理解相关的信息,方便的进行相关的数据库操作,尽可能的为应用系统效率的提高奠定基础。
2.2建设原则
数据库建设实质数据库应用系统从设计、实施到运行维护的全过程。
数据库建设的基本规律是“三分技术,七分管理,十二分基础数据”。
在数据库建设中,开发技术固然重要,但是管理更为重要,而且包括项目管理和企业的业务管理。
经过长期的实践,人们越来越深刻的认识到一个企业数据库设计的过程是企业管理模式的改革和提高的过程,只有把企业的管理做好才能实现技术创新,才能建设好一个数据库应用系统。
“十二分基础数据”则强调了数据的收集、整理、组织和不断更新是数据库建设中的重要环节,基础数据的手机、入库时数据库建立初期工作量最大、最繁琐、最细致的工作,在以后数据库运行过程中更需要不断的把新的数据加到数据库中,使之成为一个“活库”,具有更高的使用价值。
同时,我们还不得不在进行结构设计的同时,也注意行为设计。
数据库设计应该和应用系统设计相结合,也就是说,整个设计过程要把数据库结构设计和对数据库的处理设计密切结合起来。
3支撑环境规划
3.1网络逻辑结构
飞机航班管理系统使用B/S结构(Browser/Server结构),即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
特别是在JAVA这样的跨平台下,B/S架构管理软件更是方便、快捷、高效。
图1B/S体系的网络结构
3.2软件支撑环境及开发工具
飞机航班数据库及其相应的应用系统的设计和实现都是在WindowsXP操作系统下完成的。
因为使用了B/S三层构架和MVC设计模式,因为J2EE本身就是B/S结构的平台,并且MVC在J2EE中的应用就是对J2EE程序进行分层管理,加之自己对于J2EE比较熟悉,自然而然的使用了J2EE的一套开发工具:
(1)SDK:
即Java软件开发工具包,这里使用的是jdk1.6.0_06版本;
(2)MySQLServer5.0:
一个小型关系型数据库管理系统,因其体积小、速度快、开发源代码等特点,被广泛地应用在Internet上的中小型网站;
(3)SQLyog:
是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具;
(4)Eclipse3.3:
是一个开放源代码的、基于Java的可扩展开发平台,是一个框架和一组服务,用于通过插件组件构建开发环境;
(5)Tomcat6.0:
Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,Tomcat5支持最新的Servlet2.4和JSP2.0规范,因为。
Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器;
(6)Lomboz3.3.0:
是Eclipse的一个J2EE的插件,它将很多Java应用服务器、J2EE组件和Web应用开发集成到Eclipse中,可以帮助Java开发者使用Eclipse建立、测试、部署J2EE应用。
4系统总体结构
4.1需求分析
4.1.1整体功能描述
飞机航班管理系统能够查询飞机的航班情况,飞行线路,票价,折扣等等情况,并能够在数据库中更新维护飞机航班的信息,对飞机航班数据库进行管理,如航班的增加,删除和修改等。
具体的功能需求如下。
航班信息管理:
(1)添加航班:
系统管理员可以在系统中增加飞机航班,在增加之前必须填写完整的飞机航班的属性。
(2)删除航班:
系统管理员可以删除系统中已经存在的航班。
(3)修改航班属性:
系统管理员可以根据航空公司实际航班更改情况修改系统数据库中已经存在的航班的属性。
(飞机航班的属性包括:
航班号,飞行时间,飞行路线,票价,实时折扣等信息。
)
航班信息查询:
(4)按航班号查询:
用户给定航班号,系统返回相应的航班号的航班信息。
(5)按飞行线路查询:
用户给定终点站,系统返回符合要求的航班信息。
(6)按同时输入的时间查询:
用户给定时间,系统返回符合要求的航班信息。
航班信息排序:
(7)按飞行时间进行排序。
(8)按航班号进行排序。
进行订票:
(9)用户查询航班完毕后,输入航班号,填写相应信息进行订购机票。
进行退票
(10)用户输入航班号,填写相应信息进行退票信息。
4.1.2总体DFD
飞机航班数据库及其相关的应用程序的总体DFD图描述了信息流和数据的流动过程及其经过处理后的变化情况。
用户选择相关的服务项目可以查看相关航班基本信息,并且可以根据自己需求选择相应服务,系统的信息更新时,相关的信息经过相应处理后,会存入到飞机航班数据库中的航班信息记录表中;系统管理员根据航空公司实际情况可以更新航班信息,并通过修改信息处理后被保存到飞机航班表中。
图2总体DFD
系统维护部分使得系统管理员对基本信息进行相应修改,同时将删除,增加,或修给的结果保存在飞机航班信息表中,以使得统中的信息及时得到更新,便于应用。
图3系统信息维护的DFD
顾客服务的部分使得顾客可以查询所需要的航班情况,可以对所需要乘坐的航班进行订票,并能对已订机票进行退订,系统对用户的服务请求做出相应信息反馈来满足用户的需求。
并在订票退票后及时更新系统信息。
图4客户查询信息的DFD
4.1.3数据字典
名字
航班号
别名
无
描述
确定唯一的航班
定义
航班=航班号+飞行时间+飞行线路+票价+实时折扣
位置
系统数据库信息
名字
航班号
别名
无
描述
确定唯一的航班
定义
航班=航班号+飞行时间+飞行线路+票价+实时折扣
位置
系统数据库信息
名字
航班信息管理
别名
无
描述
描述对航班信息的修改
定义
航班信息管理={添加航班/删除航班/修改航班属性}
位置
系统数据库信息
名字
票价
别名
无
描述
购买航班机票所需费用
定义
票价=购买航班机票所需费用
位置
系统数据库信息
名字
飞行时间
别名
无
描述
描述航班起飞及到达时间
定义
飞行时间=起飞时间+到达时间
位置
系统数据库信息
名字
飞行线路
别名
无
描述
描述航班飞行过程停航地点以及目的地
定义
飞行线路=中途靠航地点+目的地
位置
系统数据库信息
名字
订票
别名
无
描述
描述用户对所需乘坐航班进行预订
定义
订票=用户基本信息+航班号+定金
位置
系统数据库信息
名字
退票
别名
无
描述
描述用户所订机票进行退订
定义
退票=用户基本信息+航班号
位置
系统数据库信息
名字
用户基本信息
别名
无
描述
唯一确定一个用户的属性
定义
用户基本信息=姓名+性别+住址+身份证号
位置
系统数据库信息
名字
查询方式
别名
无
描述
描述用户根据需求以相应信息对航班进行查询
定义
查询方式={按航班号查询|按飞行线路查询|按时间查询}
位置
系统数据库信息
表1数据字典
4.2功能结构
飞机航班数据库及其应用系统所涉及到的用户主要有顾客和系统管理员2类,因此也将该系统分为2个相应的大的功能模块。
顾客可以通过服务项目选择查询相关航班情况,进行订票,退订等服务项目。
,系统会将数据库中相应信息反馈给顾客。
系统管理员负责管系统信息的及时更新,可以根据航空公司航班的具体的情况更新数据库。
图6功能结构图
4.3概念设计(E-R图)
概念模型可以看成是现实世界到机器世界的一个过度的中间层次。
它必须真实的反映现实世界中事物与事物之间的联系;应该容易被客户理解;随着应用环境和应用需求的改变,容易被修改和扩充;概念模型还应该容易向关系,网络和层次等各种数据模型转换。
本次课程设计主要完成飞机航班数据库设计。
在业务处理中发生查询,订票,退订等服务的联系双方是系统和客户,而系统情况是系统管理员来维护。
通过对飞机航班数据库及其应用系统的分析,并结合所得到的各层数据流图,抽象数据并设计局部视图得到分E—R图,然后是集成局部视图从而得到全局的概念视图,集合而成总体E—R图。
对于顾客来说,具有本身的一些信息和联系方式。
遵循E_R图的设计原则,为了简化E_R图的处置,将能作为属性对待的尽量作为属性对待。
因此,顾客实体的属性有:
ID、姓名、性别、地址、电话和密码等。
同理,系统管理员的属性有:
ID、姓名、地址和电话。
由步骤4.1中的数据流的分析可知,管理员可以维护系统、修改数据。
系统可以为不同的客户提供服务,客户也可根据自己所需服务的情况进行选择。
由此分析可得图7的E-R图。
图7E-R图
4.4逻辑设计
E-R图则是由实体型、实体型的属性和实体之间的联系3个要素组成的。
E-R图向关系模型的转换要解决的问题是如何将实体和实体型间的联系转换为关系模式,如何确定这些关系模式的属性和码。
关系模型的逻辑结构是一组关系模式的集合。
下面分别将E-R图中的实体和关系转化为相应的关系模式:
(1)系统管理员员(管理员ID,姓名,性别,住址,电话,e-mail,部门ID,密码)该关系模式已经包含了联系——“属于”所对应的关系模式,其中部门ID是外码,其中对性别进行了约束,只能是男或者女;
(2)顾客(顾客ID,姓名,地址,电话)该关系模式是实体顾客所对应的关系模式;
(3)航班(航班号,航行线路,航行时间,票价,折扣,)该关系模式是联系“服务”所对应的关系模式,主码是航班号
(4)票价(票价,折扣)这是联系“买票”所对应的关系模式,主码是销售价格和折扣;
在设计表时,除了设置实体完整性和参照完整性外,对一些有特定要求的列,需设置一些约束条件。
如,性别只能取男女;订票和退票服务记录中服务完成情况只能是完成或者未完成;票价必须大于等于0等。
总之,要根据实际情况对对应的属性设置一些约束以防止非法数据入库。
而从数据库的安全性方面考虑,对应不同的用户群还可以设置相应的视图,以屏蔽掉一些保密数据。
4.4代码实现
4.5.1应用程序框架
查询功能用chaxun.java实现
4.5.2查询代码
importjava.io.IOException;
importjava.io.PrintWriter;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.Statement;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
/**
*ServletimplementationclassforServlet:
chaxun
*
*/
publicclasschaxunextendsjavax.servlet.http.HttpServletimplementsjavax.servlet.Servlet{
staticfinallongserialVersionUID=1L;
/*(non-Java-doc)
*@seejavax.servlet.http.HttpServlet#HttpServlet()
*/
publicchaxun(){
super();
}
/*(non-Java-doc)
*@seejavax.servlet.http.HttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
//TODOAuto-generatedmethodstub
}
/*(non-Java-doc)
*@seejavax.servlet.http.HttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)
*/
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
//TODOAuto-generatedmethodstub
response.setCharacterEncoding("gb2312");
Stringtitle="theinfomationofair";
StringdocType="
DOCTYPEHTMLPUBLIC\"-//W3C//DTDHTML4.0Transitional//EN\">\n";
Stringstr_id=request.getParameter("id");
//Stringstr_stime=newString(request.getParameter("stime").getBytes("ISO-8859-1"));
Stringstr_eaddr=newString(request.getParameter("eaddr").getBytes("ISO-8859-1"));
PrintWriterout=response.getWriter();
out.println(docType+
"\n"+
"
"+title+"\n"+
"
\n"+
"
\n"+"
"+title+"
\n"+"\n"+
"
\n"+"
航班号 | 起飞时间 | 起飞地址 | 终点站 | 票价 | 到达时间 | 折扣"); Stringstr_dep=request.getParameter("department"); Connectioncon=null; Statementsm=null; ResultSetrs=null; try{ Class.forName("com.mysql.jdbc.Driver").newInstance(); Stringurl="jdbc: mysql: //localhost/wg"; con=DriverManager.getConnection(url,"root","123"); sm=con.createStatement(); if(! str_id.isEmpty()){ rs=sm.executeQuery("selectair.id,air.stime,air.saddr,air.eaddr,"+ "air.price,air.etime,air.discountfromair"+ "whereair.id='"+str_id+"'andair.eaddr='"+str_eaddr+"'"); } else{ rs=sm.executeQuery("selectair.id,air.stime,air.saddr,air.eaddr,"+ "air.price,air.etime,air.discountfromair"+ "whereair.eaddr='"+str_eaddr+"'"); } while(rs.next()){ out.println(" |
"+rs.getString("id")+" | "+rs.getString("stime")+ " | "+rs.getString("saddr")+" | "+rs.getString("eaddr")+ " | "+rs.getString("price")+" | "+rs.getString("etime")+" | "+rs.getString("discount")); } } catch(Exceptione){ e.printStackTrace(); } finally{ if(rs! =null){ try{rs.close();}catch(Exceptione){e.printStackTrace();} } if(sm! =null){ try{sm.close();}catch(Exceptione){e.printStackTrace();} } if(con! =null){ try{con.close();}catch(Exceptione){e.printStackTrace();} } } } } 4.5.3用户界面实现代码 DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"""> index欢迎光临
请选择你要查询的航班
航班号
终点站
4.5.4测试截图 4.5.4.1数据库航班表信息 4.5.4.2查询结果截图 当用户查询的信息不存在时,截图如下 5总体实施计划 在飞机航班数据库设计的开始,需求分析是整个设计过程的基础,对设计出的数据库的性能影响是很大的。 为了获得最为精确的需求信息,需要对该问题的背景有一定的了解,通过从网上查询资料和查看了一个现有的管理系统,了解了该系统的业务流程,再对飞机航班数据库分别进行功能分析和数据分析,得到功能需求和数据需求,为尽可能合理的设计系统进而解决实际问题奠定了基础。 接着进行概念结构设计。 飞机航班数据反映的是系统管理员、顾客等实体,数据库中表示的是这些实体的属性和它们之间的关系等的原始数据形式,包括各数据项、记录、表的标识符、定义、类型、度量单位和值域。 对该系统进行详细的分析,得
展开阅读全文
相关搜索
|