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

上传人:b****3 文档编号:10440467 上传时间:2023-05-25 格式:DOCX 页数:23 大小:572.85KB
下载 相关 举报
数据库课程设计飞机订票系统.docx_第1页
第1页 / 共23页
数据库课程设计飞机订票系统.docx_第2页
第2页 / 共23页
数据库课程设计飞机订票系统.docx_第3页
第3页 / 共23页
数据库课程设计飞机订票系统.docx_第4页
第4页 / 共23页
数据库课程设计飞机订票系统.docx_第5页
第5页 / 共23页
数据库课程设计飞机订票系统.docx_第6页
第6页 / 共23页
数据库课程设计飞机订票系统.docx_第7页
第7页 / 共23页
数据库课程设计飞机订票系统.docx_第8页
第8页 / 共23页
数据库课程设计飞机订票系统.docx_第9页
第9页 / 共23页
数据库课程设计飞机订票系统.docx_第10页
第10页 / 共23页
数据库课程设计飞机订票系统.docx_第11页
第11页 / 共23页
数据库课程设计飞机订票系统.docx_第12页
第12页 / 共23页
数据库课程设计飞机订票系统.docx_第13页
第13页 / 共23页
数据库课程设计飞机订票系统.docx_第14页
第14页 / 共23页
数据库课程设计飞机订票系统.docx_第15页
第15页 / 共23页
数据库课程设计飞机订票系统.docx_第16页
第16页 / 共23页
数据库课程设计飞机订票系统.docx_第17页
第17页 / 共23页
数据库课程设计飞机订票系统.docx_第18页
第18页 / 共23页
数据库课程设计飞机订票系统.docx_第19页
第19页 / 共23页
数据库课程设计飞机订票系统.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《数据库课程设计飞机订票系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计飞机订票系统.docx(23页珍藏版)》请在冰点文库上搜索。

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

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

 

数据库课程设计报告

 

题目飞机订票管理系统

 

第1章概述

1.1项目背景

航空业作为运输行业的基础,要提高我国运输行业的整体水平,必须从基础抓起。

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

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

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

 

1.2编写目的

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

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

1,了解并掌握数据结构的设计方法,具备初步的独立分析能力;

2,初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能

3,提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

4,训练用系统的观点和软件开发的一般规范进行软件开发,培养软件工作者所具备的的科学的工作方法和作风。

 

1.3开发工具

1.3.1软件定义

Oracle11g,PowerDesigner,eclipse

1.3.2开发环境

Windows7,Java,database

 

第2章需求分析

2.1问题陈述

设计一个飞机订票系统

要求具备如下基本功能:

1、班机基本信息的管理;

2、航班信息的管理;

3、旅客预定机票、取消预约、付款取票、退票的管理;

4、查询航班信息、航班预定情况、旅客信息,计算航班满座率。

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

 

2.2ER模型图

Er模型图

 

 

 

 

第三章数据库逻辑设计

3.1定义数据库表

数据库表

1,flight表

字段名

数据类型

含义说明

控制情况

startplace

Varchar2

起点

不为空

endplace

Varchar2

终点

不为空

starttime

Varchar2

起飞时间

不为空

endtime

Varchar2

到达时间

不为空

flightnum

Varchar2

航班号

主关键字

Returnnum

Varchar2

返航号

可为空

Airfirm

Varchar2

航空公司

不为空

type

Varchar2

飞机类型

不为空

ticket

int

余票

不为空

price

float

票价

不为空

 

2.Customer表

字段名

数据类型

含义说明

控制情况

name

Varchar2

顾客姓名

不为空

id

Varchar2

身份证

主键

flightnum

Varchar2

航班号

外键

C_type

int

订票/候补

不为空

telephone

Varchar2

电话号码

不为空

tick

int

订票数

不为空

 

3.airfirm表

字段名

数据类型

含义说明

控制情况

income

float

收入

可为空

outcome

float

支出

可为空

Powerdesign下的物理模型构建

 

第4章软件功能设计

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对象,该对象就代表一个数据库连接;

Connectionconn=DriverManager.getConnection(url,username,password)

4,创建一个Statement,要执行SQL语句,必须获得java.sql.Statement实例,然后将要执行的语句作为参数传进去

PreparedStatementpstmt=con.prepareStatement(sql);

5,执行sql语句,Statement接口提供了三种执行SQL语句的方法:

executeQuery,executeUpdate,和execute

ResultSetrs=stmt.execute(Stringsql);

6处理结果:

执行更新返回的本次操作影响到的记录数,执行查询返回的结果是个ResultSet对象,使用结果集对象的访问方法获取数据:

While(rs.next()){

Stringname=rs.getString(“name”);

Stringpass=rs.getString

(1);

}

7,关闭JDBC对象:

操作完成以后要把所有使用的JDBC对象全部关闭,以释放JDBC资源,关闭顺序和声明顺序相反:

首先关闭记录集,然后关闭声明,最后关闭连接对象

If(rs!

=null){

Try{

Rs.close();}catch(SQLExceptione){

e.printStackTrace();

}

}

然后是stmt最后是conn

这样就是整个流程的进行

4.2.2航班信息查询模块

该模块属于基本功能,其主要实现对航班的基本信息的查询,修改和删除,是通过对后台的各种操作来方便前台。

其主要用的SQL语句有:

select,insert,delete,update等.

如select*fromflight;(从flight表中检索所有的信息)

Insertintoflightvalues(?

?

?

?

?

);

然后数据库通过JDBC连接到java,再在java中通过对界面的操作,与各功能块的实现结合起来。

Java中的部分功能实现代码:

1,查询模块

privatevoidqueryData(intpage)//查询模块采用分页显示

{

flightbasicDao=newFlightBasicMessDao();//Dao包为与数据库连接

pageBean=newPageBean(flightbasicDao.queryCount(),10);

//分页操作

if(page<=1){

pageBean.setCurPage

(1);

}elseif(page>=pageBean.getMaxPage()){

pageBean.setCurPage(pageBean.getMaxPage());

}else{

pageBean.setCurPage(page);

}

Vectorflightbasicinfo=flightbasicDao.queryFlightdata(pageBean.getCurPage(),pageBean.getRowsPrePage());//将查询结果放入向量flightbasicinfo中

//将查询结果用表格显示出来

Vectorcolumns=newVector();

Log.log(this,"queryDatavipinfosize"+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()+"");

}

连接数据库的部分:

publicVectorqueryFlightdata(intcurPage,introwsPrePage){

Vectorflightinfo=newVector();

Vectorv=null;

//初始化connection,preparedstatement,resultset

Connectionconn=null;

PreparedStatementstmt=null;

ResultSetrs=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=newVector();

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(SQLExceptione){

//TODOAuto-generatedcatchblock

Log.log(this,"queryflightdata"+e.getMessage());

e.printStackTrace();

}finally{

Log.log(this,"queryflightdata"+Constants.QUERY_FLIGHTBASICINFO);

Dbcp.close(rs,stmt,conn);

}

returnflightinfo;

}

增删改操作类似,此处不做赘述。

4.2.3顾客查询模块

该模块功能和航班信息查询模块功能类似,只是操作的表和信息不同而已。

下面展示部分源码:

//顾客查询分为两张表显示(数据库中只有一张表),一张储存已定票的顾客,一张储存正在候补队伍的顾客,其差别在于顾客状态

publicvoidqueryData(){

Vectoruserinfo1=flightdao.queryUserinfo();

Log.log(this,"----------------queryData"+userinfo1.size());

Vectorcolumns1=newVector();

columns1.add("乘客姓名");

columns1.add("乘客证件号码");

columns1.add("乘客机舱等级");

columns1.add("乘客所在航班号");

columns1.add("乘客联系方式");

columns1.add("乘客所定票数");

columns1.add("乘客状态");

tModel.setDataVector(userinfo1,columns1);

table.revalidate();

Log.log(this,"queryDatastuinfo.size:

"+userinfo1.size()+"columnssize"+columns1.size());

}

publicvoidqueryData1(){

Vectoruserinfo1=flightdao.queryUserinfo1();

Log.log(this,"----------------queryData"+userinfo1.size());

Vectorcolumns1=newVector();

columns1.add("乘客姓名");

columns1.add("乘客证件号码");

columns1.add("乘客机舱等级");

columns1.add("乘客所在航班号");

columns1.add("乘客联系方式");

columns1.add("乘客所定票数");

columns1.add("乘客状态");

tModel1.setDataVector(userinfo1,columns1);

table1.revalidate();

Log.log(this,"queryDatastuinfo.size:

"+userinfo1.size()+"columnssize"+columns1.size());

}

publicString[]queryFlightdata3(intcount){

//String[]flightinfo=newString[10];

String[]f=null;

Connectionconn=null;

PreparedStatementstmt=null;

ResultSetrs=null;

try{

conn=Dbcp.getConnection();

stmt=conn.prepareStatement(Constants.QUERY_CANCEL);

stmt.setInt(1,count);

rs=stmt.executeQuery();

while(rs.next()){

f=newString[10];

f[0]=rs.getString("name");

f[1]=rs.getString("id");

f[2]=rs.getString("ps");

f[3]=rs.getString("flightnumber");

f[4]=rs.getString("telphone");

f[5]=rs.getString("ticket");

f[6]=rs.getString("customtype");

System.out.println("~~~~~~~~~~~~~~~~~~~queryVipdata"+f[0]+f[1]);

//vipinfo.add(v);

}

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

Log.log(this,"~~~~~~~~~~~~~~~~~~~queryVipdata"+e.getMessage()+f[0]+f[1]);

e.printStackTrace();

}finally{

Log.log(this,"queryVipdata"+Constants.QUERY_CANCEL);

Dbcp.close(rs,stmt,conn);

}

returnf;

}

4.2.4订票、退票功能

订票的功能

也是基本功能之一,实际上也是对数据库中数据的增加和删除(或减少),不过其中会增加很多判断的部分,比如在订票之前需要先查询库里是不是还有余票,如果订票的数目小于或等于余票数目,则订票可以成功,如果订票数大于余票数,则会有一部分加入到候补队列中。

退票亦是如此,如果退票的时候,发现候补队列里有人,且其票数刚好小于或等于退票的数目,则可以直接将候补队列的顾客加入到订票队列中。

部分源码:

privatevoidhandin(){

intlen1=o.getJbtname().getText().trim().length();

intlen2=o.getJbtadultticketnumber().getText().trim().length();

intlen3=o.getJbtid().getText().trim().length();

intlen4=o.getJbttelephone().getText().trim().length();

Stringlen5=o.getJbtps().getSelectedItem().toString();

if(getstring(len1,len2,len3,len4)){

JOptionPane.showMessageDialog(dialog,"带**请务必全部输入");

}

else{

flightVovo=newflightVo();

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(Integer.parseInt(o.getJbtadultticketnumber().getText()));

vo.setTicket(o.getJbtadultticketnumber().getText());

vo.setCustomtype("已定票");

System.out.println(vo);

Stringmsg="";

System.out.println("提交");

intflag,count,count1,count2;

count=flightdao.queryflightinfo3(o.getJbtflight().getText());

count1=Integer.parseInt(o.getJbtadultticketnumber().getText());

count=count-count1;

if(count>0){

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());

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(count>0){

flightdao.addFlightinfo(vo);

flightdao.addFlightinfo1(vo);

msg="";

}

vo.setName(o.getJbtname().getText().trim());

vo.setId(o.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2