ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:513.10KB ,
资源ID:30301088      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30301088.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(飞机订票系统数据库课程设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

飞机订票系统数据库课程设计.docx

1、飞机订票系统数据库课程设计数据库课程设计报告题 目 飞机订票管理系统 第1章 概述 1.1项目背景航空业作为运输行业的基础,要提高我国运输行业的整体水平,必须从基础抓起。订票系统是航空业从事生产和管理的基层单位,加强订票系统是航空业基础地位的关键,也是保障航空业业可持续发展的重要基石。随着现在航空运输业的发展,机票预订系统也成为了航空运输业的软件副产品,目前的管理系统都是与数据库关联,故数据库的管理也成为很热门的研究对象。此项目是以数据库为支撑,java(eclipse)为平台而开发的。1.2 编写目的编写此项目的目的是为了进一步了解数据库的储存管理机制以及数据库与其他的语言语言工具之间关联和

2、协作。也可以熟悉项目开发的流程,步骤,为以后编写其他的程序打下基础。1,了解并掌握数据结构的设计方法,具备初步的独立分析能力;2,初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能3,提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4,训练用系统的观点和软件开发的一般规范进行软件开发,培养软件工作者所具备的的科学的工作方法和作风。1.3 开发工具 1.3.1软件定义Oracle 11g,PowerDesigner,eclipse 1.3.2 开发环境Windows7,Java,database第2章 需求分析2.1 问题陈述设计一个飞机订票系统要求具备如下基本功

3、能:1、 班机基本信息的管理;2、 航班信息的管理;3、 旅客预定机票、取消预约、付款取票、退票的管理;4、 查询航班信息、航班预定情况、旅客信息,计算航班满座率。5、 统计每周、每月,每年营业收入情况。2.2 ER模型图Er模型图 第三章 数据库逻辑设计3.1 定义数据库表数据库表1,flight表字段名数据类型含义说明控制情况startplaceVarchar2起点不为空endplaceVarchar2终点不为空starttimeVarchar2起飞时间不为空endtimeVarchar2到达时间不为空flightnumVarchar2航班号主关键字ReturnnumVarchar2返航号

4、可为空AirfirmVarchar2航空公司不为空typeVarchar2飞机类型不为空ticketint余票不为空pricefloat票价不为空 2. Customer表字段名 数据类型 含义说明 控制情况nameVarchar2顾客姓名不为空 idVarchar2身份证主键 flightnumVarchar2航班号外键C_typeint 订票/候补不为空telephoneVarchar2电话号码不为空tickint订票数不为空3.airfirm表字段名数据类型含义说明控制情况incomefloat收入可为空outcomefloat支出可为空 Powerdesign下的物理模型构建 飞机订票

5、系统航班信息查询顾客信息查询订票退票财务查询增删改查航班信息查询信息增加信息删除信息查询第4章 软件功能设计4.1 软件功能结构图 4.2软件划分模块4.2.1 整体流程:对主界面进行功能选择操作,通过反馈Action进入分功能操作,然后在Action模块中分别由search(),add(),delete(),update()关联到Dao包(Dao包主要管理连接数据库的业务),然后根据不同的功能进入到了关联数据库的部分,通过如下部分连接数据库:1,加载JDBC驱动程序,成功加载后,会将Driver类的实例注册到DriverManager;2,提供JDBC连接的URL,连接URL定义了连接数据库

6、时的协议,子协议,数据源标识;3,创建数据库的连接,向java.sql.DiverManager请求并获得Connection对象,该对象就代表一个数据库连接;Connection conn=DriverManager.getConnection(url,username,password) 4,创建一个Statement,要执行SQL语句,必须获得java.sql.Statement实例,然后将要执行的语句作为参数传进去PreparedStatement pstmt=con.prepareStatement(sql);5,执行sql语句,Statement接口提供了三种执行SQL语句的方法:

7、executeQuery,executeUpdate,和executeResultSet rs=stmt.execute(String sql);6处理结果:执行更新返回的本次操作影响到的记录数,执行查询返回的结果是个ResultSet对象,使用结果集对象的访问方法获取数据:While(rs.next()String name=rs.getString(“name”);String pass=rs.getString(1);7,关闭JDBC对象:操作完成以后要把所有使用的JDBC对象全部关闭,以释放JDBC资源,关闭顺序和声明顺序相反:首先关闭记录集,然后关闭声明,最后关闭连接对象If(rs!

8、=null)TryRs.close();catch(SQLException e)e.printStackTrace();然后是stmt最后是conn这样就是整个流程的进行4.2.2 航班信息查询模块该模块属于基本功能,其主要实现对航班的基本信息的查询,修改和删除,是通过对后台的各种操作来方便前台。其主要用的SQL语句有:select,insert,delete,update 等.如select * from flight;(从flight表中检索所有的信息)Insert into flight values(?,?,?,?,?);然后数据库通过JDBC连接到java,再在java中通过对界面

9、的操作,与各功能块的实现结合起来。Java中的部分功能实现代码:1,查询模块 private void queryData(int page) /查询模块采用分页显示 flightbasicDao=new FlightBasicMessDao(); /Dao包为与数据库连接 pageBean = new PageBean(flightbasicDao.queryCount(),10); /分页操作 if(page = pageBean.getMaxPage() pageBean.setCurPage(pageBean.getMaxPage(); else pageBean.setCurPage

10、(page); Vectorflightbasicinfo=flightbasicDao.queryFlightdata(pageBean.getCurPage(), pageBean.getRowsPrePage(); /将查询结果放入向量flightbasicinfo中 /将查询结果用表格显示出来 Vector columns = new Vector(); Log.log(this, queryData vipinfo size+flightbasicinfo.size(); columns.add(起点); columns.add(终点); columns.add(起飞时间); col

11、umns.add(到达时间); columns.add(航班号); columns.add(返航号); columns.add(航空公司); columns.add(票务类型); columns.add(剩余票数); columns.add(票价); tModel.setDataVector(flightbasicinfo, columns); /刷新表格 table.revalidate(); /设置分页信息 curPage.setText(pageBean.getCurPage()+); rowsPrePage.setText(pageBean.getRowsPrePage()+); ma

12、xPage.setText(pageBean.getMaxPage()+); maxCount.setText(pageBean.getMaxCount()+); 连接数据库的部分:public Vector queryFlightdata(int curPage,int rowsPrePage) Vector flightinfo = new Vector(); Vector v = null; /初始化connection,preparedstatement,resultset Connection conn = null; PreparedStatement stmt = null; R

13、esultSet rs = null; try conn = Dbcp.getConnection(); stmt=conn.prepareStatement(Constants.QUERY_FLIGHTBASICINFO); stmt.setInt(1, curPage*rowsPrePage); stmt.setInt(2,(curPage-1)*rowsPrePage+1); rs = stmt.executeQuery(); while(rs.next() v = new Vector(); v.add(rs.getString(startplace); v.add(rs.getStr

14、ing(endplace); v.add(rs.getString(starttime); v.add(rs.getString(returntime); v.add(rs.getString(flightnumber); v.add(rs.getString(returnflight); v.add(rs.getString(airfirm); v.add(rs.getString(style); v.add(rs.getString(tick); v.add(rs.getInt(price); flightinfo.add(v); catch (SQLException e) / TODO

15、 Auto-generated catch block Log.log(this, queryflightdata+e.getMessage(); e.printStackTrace(); finally Log.log(this, queryflightdata+Constants.QUERY_FLIGHTBASICINFO); Dbcp.close(rs, stmt, conn); return flightinfo; 增删改操作类似,此处不做赘述。4.2.3 顾客查询模块该模块功能和航班信息查询模块功能类似,只是操作的表和信息不同而已。下面展示部分源码:/顾客查询分为两张表显示(数据库中

16、只有一张表),一张储存已定票的顾客,一张储存正在候补队伍的顾客,其差别在于顾客状态public void queryData() Vector userinfo1=flightdao.queryUserinfo(); Log.log(this, -queryData+userinfo1.size(); Vector columns1=new Vector(); columns1.add(乘客姓名); columns1.add(乘客证件号码); columns1.add(乘客机舱等级); columns1.add(乘客所在航班号); columns1.add(乘客联系方式); columns1.

17、add(乘客所定票数); columns1.add(乘客状态); tModel.setDataVector(userinfo1, columns1); table.revalidate(); Log.log( this, queryData stuinfo.size:+userinfo1.size()+columns size+columns1.size(); public void queryData1() Vector userinfo1=flightdao.queryUserinfo1(); Log.log(this, -queryData+userinfo1.size(); Vecto

18、r columns1=new Vector(); columns1.add(乘客姓名); columns1.add(乘客证件号码); columns1.add(乘客机舱等级); columns1.add(乘客所在航班号); columns1.add(乘客联系方式); columns1.add(乘客所定票数); columns1.add(乘客状态); tModel1.setDataVector(userinfo1, columns1); table1.revalidate(); Log.log( this, queryData stuinfo.size:+userinfo1.size()+col

19、umns size+columns1.size(); public String queryFlightdata3(int count )/ String flightinfo = new String10; String f = null; Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try conn = Dbcp.getConnection(); stmt = conn.prepareStatement(Constants.QUERY_CANCEL); stmt.setInt(1,

20、count); rs = stmt.executeQuery(); while(rs.next() f = new String10; f0=rs.getString(name); f1=rs.getString(id); f2=rs.getString(ps); f3=rs.getString(flightnumber); f4=rs.getString(telphone); f5=rs.getString(ticket); f6=rs.getString(customtype); System.out.println(queryVipdata+f0+f1);/ vipinfo.add(v)

21、; catch (SQLException e) / TODO Auto-generated catch block Log.log(this, queryVipdata+e.getMessage()+f0+f1); e.printStackTrace(); finally Log.log(this, queryVipdata+Constants.QUERY_CANCEL); Dbcp.close(rs, stmt, conn); return f;4.2.4 订票、退票功能订票的功能也是基本功能之一,实际上也是对数据库中数据的增加和删除(或减少),不过其中会增加很多判断的部分,比如在订票之前

22、需要先查询库里是不是还有余票,如果订票的数目小于或等于余票数目,则订票可以成功,如果订票数大于余票数,则会有一部分加入到候补队列中。退票亦是如此,如果退票的时候,发现候补队列里有人,且其票数刚好小于或等于退票的数目,则可以直接将候补队列的顾客加入到订票队列中。部分源码:private void handin() int len1=o.getJbtname().getText().trim().length(); int len2=o.getJbtadultticketnumber().getText().trim().length(); int len3=o.getJbtid().getTex

23、t().trim().length(); int len4=o.getJbttelephone().getText().trim().length(); String len5=o.getJbtps().getSelectedItem().toString(); if(getstring(len1,len2,len3,len4) JOptionPane.showMessageDialog(dialog, 带*请务必全部输入); else flightVo vo = new flightVo(); vo.setName(o.getJbtname().getText().trim(); vo.se

24、tId(o.getJbtid().getText().trim(); vo.setPs(o.getJbtps().getSelectedItem().toString();/ vo.setFlightnumber(Integer.parseInt( o.getJbtflight().getText() ); vo.setFlightnumber( o.getJbtflight().getText() ); vo.setPhonenumber(o.getJbttelephone().getText().trim(); vo.setTick(Integer.parseInt(o.getJbtadu

25、ltticketnumber().getText(); vo.setTicket(o.getJbtadultticketnumber().getText(); vo.setCustomtype(已定票); System.out.println(vo); String msg = ; System.out.println(提交); int flag,count,count1,count2; count=flightdao.queryflightinfo3(o.getJbtflight().getText(); count1=Integer.parseInt(o.getJbtadultticket

26、number().getText(); count=count-count1; if(count0) if(flightdao.addFlightinfo(vo) 0) if(flightdao.addFlightinfo1(vo)0) msg = 订票成功!; else msg=定票失败; else msg=定票失败; else/ msg=余票不足; count=flightdao.queryflightinfo3(o.getJbtflight().getText(); count1=Integer.parseInt(o.getJbtadultticketnumber().getText()

27、; count2=count1-count; if(JOptionPane.showConfirmDialog(dialog, 余票不足,您可以订+count+张票,剩下的+count2+加入候补?,确定,JOptionPane.YES_NO_OPTION) = 1) return; vo.setName(o.getJbtname().getText().trim(); vo.setId(o.getJbtid().getText().trim(); vo.setPs(o.getJbtps().getSelectedItem().toString();/ vo.setFlightnumber(Integer.parseInt( o.getJbtflight().getText() ); vo.setFlightnumber( o.getJbtflight().getText() ); vo.setPhonenumber(o.getJbttelephone().getText().trim(); vo.setTick(count); vo.setTicket(count+); vo.setCustomtype(已定票); if(count0) flightdao.addFlightinfo(vo); flightdao.addFlightinfo1(vo); msg=;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1