当前位置:文档之家› 数据库课程设计汇本~飞机订票系统

数据库课程设计汇本~飞机订票系统

数据库课程设计报告题目飞机订票管理系统目录第一章概述 (3)1.1项目背景 (3)1.2 编写目的 (3)1.3 开发工具 (3)1.3.1软件定义 (3)1.3.2 开发环境 (3)第二章需求分析 (4)2.1 问题述 (4)2.2 ER模型图 (4)第三章数据库逻辑设计 (5)3.1 定义数据库表 (5)数据库表 (5)第四章软件功能设计 (7)4.1 软件功能结构图 (7)4.2软件划分模块 (7)4.2.1 整体流程: (7)4.2.2 航班信息查询模块 (8)4.2.3 顾客查询模块 (10)4.2.4 订票、退票功能 (12)4.2.5 财务查询 (17)第五章界面设计 (18)第六章结束语 (19)第一章概述1.1项目背景航空业作为运输行业的基础,要提高我国运输行业的整体水平,必须从基础抓起。

订票系统是航空业从事生产和管理的基层单位,加强订票系统是航空业基础地位的关键,也是保障航空业业可持续发展的重要基石。

随着现在航空运输业的发展,机票预订系统也成为了航空运输业的软件副产品,目前的管理系统都是与数据库关联,故数据库的管理也成为很热门的研究对象。

此项目是以数据库为支撑,java(eclipse)为平台而开发的。

1.2 编写目的编写此项目的目的是为了进一步了解数据库的储存管理机制以及数据库与其他的语言语言工具之间关联和协作。

也可以熟悉项目开发的流程,步骤,为以后编写其他的程序打下基础。

1,了解并掌握数据结构的设计方法,具备初步的独立分析能力;2,初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能3,提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4,训练用系统的观点和软件开发的一般规进行软件开发,培养软件工作者所具备的的科学的工作方法和作风。

1.3 开发工具1.3.1软件定义Oracle 11g,PowerDesigner,eclipse1.3.2 开发环境Windows7,Java,database第二章需求分析2.1 问题述设计一个飞机订票系统要求具备如下基本功能:1、班机基本信息的管理;2、航班信息的管理;3、旅客预定机票、取消预约、付款取票、退票的管理;4、查询航班信息、航班预定情况、旅客信息,计算航班满座率。

5、统计每周、每月,每年营业收入情况。

2.2 ER模型图Er模型图第三章数据库逻辑设计3.1 定义数据库表数据库表字段名数据类型含义说明控制情况income float 收入可为空outcome float 支出可为空Powerdesign下的物理模型构建第四章软件功能设计4.1 软件功能结构图4.2软件划分模块4.2.1 整体流程:对主界面进行功能选择操作,通过反馈Action进入分功能操作,然后在Action模块中分别由search(),add(),delete(),update()关联到Dao包(Dao包主要管理连接数据库的业务),然后根据不同的功能进入到了关联数据库的部分,通过如下部分连接数据库:1,加载JDBC驱动程序,成功加载后,会将Driver类的实例注册到DriverManager;2,提供JDBC连接的URL,连接URL定义了连接数据库时的协议,子协议,数据源标识;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语句的方法: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!=null){Try{Rs.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过对界面的操作,与各功能块的实现结合起来。

Java中的部分功能实现代码:1,查询模块private void queryData(int page) //查询模块采用分页显示{flightbasicDao=new FlightBasicMessDao(); //Dao包为与数据库连接pageBean = new PageBean(flightbasicDao.queryCount(),10);//分页操作if(page <= 1){pageBean.setCurPage(1);}else if(page >= pageBean.getMaxPage()){pageBean.setCurPage(pageBean.getMaxPage());}else{pageBean.setCurPage(page);}Vector<Vector>flightbasicinfo=flightbasicDao.queryFlightdata(pageBean.ge tCurPage(), pageBean.getRowsPrePage()); //将查询结果放入向量flightbasicinfo中//将查询结果用表格显示出来Vector columns = new Vector();Log.log(this, "queryData vipinfo size"+flightbasicinfo.size());columns.add("起点");columns.add("终点");columns.add("起飞时间");columns.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()+"");maxPage.setText(pageBean.getMaxPage()+"");maxCount.setText(pageBean.getMaxCount()+"");}连接数据库的部分:public Vector<Vector> queryFlightdata(int curPage,int rowsPrePage){ Vector flightinfo = new Vector();Vector v = null;//初始化connection,preparedstatement,resultsetConnection conn = null;PreparedStatement stmt = null;ResultSet 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.getString("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 Auto-generated catch blockLog.log(this, "queryflightdata"+e.getMessage());e.printStackTrace();}finally{Log.log(this,"queryflightdata"+Constants.QUERY_FLIGHTBASICINFO);Dbcp.close(rs, stmt, conn);}return flightinfo;}增删改操作类似,此处不做赘述。

相关主题