软件工程课程设计.docx

上传人:b****5 文档编号:29998299 上传时间:2023-08-04 格式:DOCX 页数:34 大小:94.40KB
下载 相关 举报
软件工程课程设计.docx_第1页
第1页 / 共34页
软件工程课程设计.docx_第2页
第2页 / 共34页
软件工程课程设计.docx_第3页
第3页 / 共34页
软件工程课程设计.docx_第4页
第4页 / 共34页
软件工程课程设计.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

软件工程课程设计.docx

《软件工程课程设计.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计.docx(34页珍藏版)》请在冰豆网上搜索。

软件工程课程设计.docx

软件工程课程设计

大连科技学院

毕业实习报告

 

题目开拓飞机票管理系统

 

学生姓名康志华专业班级软件工程08-2

指导教师王立娟刘瑞杰职称讲师讲师

所在单位信息科学系软件工程教研室

教学部主任王立娟

 

完成日期2012年3月23日

毕业实习报告单

学号

0801030229

姓名

康志华

专业班级

软件工程08-2

考核项目

评分

备注

1

平时工作态度及遵守纪律情况 

 

 

(10分)

2

掌握基本理论、关键知识、基本技能的程度和阅读参考资料的水平

 

 

(10分)

3

独立工作能力、综合运用所学知识分析和解决问题能力及实际工作能力提高的程度

 

 

(20分)

4

完成课程设计说明书及软件的情况与水平(小组分工情况、规范性、整洁清楚、叙述完整性、思路清晰程度、工作量及实际运行情况和创新性)

 

 

(60分)

总评成绩

 

综合评定:

 

 

 

(优、良、中、及格、不及格)

指导教师签字:

 

 

 

2012年3月23日

 

《毕业实习设计》任务书

任务及要求:

一、设计(研究)内容和要求

内容:

编写一个飞机票系统管理软件,使用GUI界面,实现“飞机票订阅”和“飞机票查询”两部分功能。

用户可以对飞机票信息和销售预定信息进行,查询,添加,删除等操作。

采用数据库存储数据。

要求:

1、软件要求

(1)实现界面,可以依次录入飞机票管理系统登录的界面,主界面,飞机票预订管理的界面,飞机票销售信息查询管理的界面。

(2)实现数据库的连接和应用功能。

(3)实现对飞机票预订信息和销售信息的查询,添加,删除等功能。

2、文档要求

(1)设计程序结构、画出模块图。

(2)按照指导教师给出的项目文档的模板进行书写。

(3)参考文献数量不得低于4个。

二、工作量

3周(15个工作日)时间

三、计划安排

第1个工作日-第3个工作日:

查找相关资料、书籍,阅读示例文档;

设计程序结构、模块图、完成类的设计。

第4个工作日-第12个工作日:

完成程序的编码,并且自己调试、测试。

穿插进行项目文档的撰写。

第13个工作日-第14个工作日:

撰写和整理项目文档。

第15个工作日:

由教师检查软件测试效果、项目文档,给出学生本课程成绩。

 

指导教师签字:

                        2012年3月5日

目录

1 需求分析1

1.1 功能要求1

1.2 操作要求1

1.3 系统性能要求1

2 总体设计3

2.1 本系统的主要功能3

2.2 系统包含的类及类之间的关系3

2.3 java源文件及其功能3

3 详细设计与实现4

3.1 主类main类4

3.2 模式设计4

3.3 数据库表5

3.3 运行效果7

3.3.1 系统主界面7

3.3.2 系统具体功能实现录入界面7

参考文献9

毕业实习设计总结10

附  录11

 

1 需求分析

1.1 功能要求

开拓航空订票管理系统主要是为机场、航空公司和客户三方进行服务的。

航空公司提供航线、飞机的资料,机场则对在本机场起飞和降落的航班和机票进行管理,而客户能得到的服务应该有查询航班路线和剩余票数,以及网上订票,退票,以及改签等功能。

客户可以分为两类:

一类是普通客户,对于普通客户只有普通的查询功能和订票功能没有相应的票价优惠;另一类是经常旅客,需要办理注册手续,但增加了里程积分功能和积分优惠政策。

机场还要有紧急应对措施,在航班出现延误时,要发送相应的信息。

1.2 操作要求

并分析所需要存储的数据信息。

(1)查询航线:

根据旅客提出的终点站名输出下列信息:

航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;

(2)承办订票业务:

根据客户提出的要求(航班号、订票数额)查询该航班票额情况和折扣情况,若尚有余票,则根据折扣为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。

若需要,可登记排队候补;

(3)承办退票业务:

根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足客户的要求,则为客户办理订票手续,否则依次询问其他排队候补的客户。

(4)承办改签业务:

若客户晚点到达机场或因故不能乘坐预定的航班,为客户办理改签手续,根据与客户沟通的乘坐时间,查询该航班的载客情况,改签到下一班次。

1.3 系统性能要求

(1)客户订票过程

设计一个存储过程,实现客人订票处理。

提示:

需先查看客户是否为特殊客户,若不是,则票价不打折扣;否则如果客户累计航程超过10万公里,票价打九折;超过20万公里,打八折。

获得确切票价后加入客户订票信息表中,并将客户新订票里程的信息累计到用户信息表中。

注:

须查看客户订票后,是否超过可容纳的座位数目,如果超过,取消所有操作。

(2)飞机更新处理

设计一个触发器,实现在飞机信息表中若删除了一架飞机,同时需删除该航班的信息。

(3)航班延误处理

设计一个触发器,实现若航班产生延误,则发出信息通知客户。

(4)余票更新处理

设计一个触发器,实现若订票后,自动更新的功能。

 

2 总体设计

2.1 本系统的主要功能

1.查询航线功能;

2.办理订票业务功能;

3.办理退票业务功能;

4.办理改签业务功能;

2.2 系统包含的类及类之间的关系

本系统共包括7个java源文件。

如图2-1所示。

 

图2-1 类之间的关系

2.3 java源文件及其功能

1.book.java

该文件实现了订票功能;

2.query.java

该文件实现了查询功能;

3.order.java

该文件实现了预约功能;

4.change.java

该文件实现了改签功能;

5.refound.java

该文件实现了退票功能;

6.mydb.java

该文件实现了与SQL之间的连接;

7.main.java

该文件为运行类,其中包含了主方法。

3 详细设计与实现

3.1 主类main类

(1)成员变量见表2-1

表2-1 主要成员变量(属性)

成员变量描述

变量类型

名称

Button变量

JButton

btn_query

Button变量

JButton

btn_order

Button变量

JButton

btn_refund

Button变量

JButton

btn_change

Button变量

JButton

btn_book

(2)方法见表2-2

表2-2 主要方法

方法描述

功能

备注

Main()

主方法的重载

Main(String)

主方法

actionPerformed(ActionEvent)

执行方法

(3)源代码见文件Main.java

3.2 模式设计

按系统整体E-R模型,写出关系模式;并利用数据字典加以描述。

(如每个关系模式有何属性、属性的类型、属性值的长度、是否可取空值、是否为主码、有何约束条件等信息)

航空客运的业务包括查询,订票,退票,预约,改签等。

用户通过查询航线、航班来确定自己的需求。

需要建立一个关系模式,如下:

∙航线(航线号,航班号,出发地,终点,出发时间,到底时间)

∙航班(航班号,飞机号,出发地,终点)

∙飞机(飞机号,一等舱数量,二等舱数量,三等舱数量)

∙机票(机票号,座位号,单价,航班号,客户号)

∙客户(客户号,身份证号,姓名,联系方式,类型)

∙订票(订票号,客户号,舱位等级,订票量,订票价格)

∙退票(退票量,订票号)

∙预约(预约号,预约量,客户号)

∙改签(客户号,改签航班)

3.3 数据库表

表2-3 航线

列名称

类型

宽度

允许空值

缺省值

主键外键

说明

air_no

char

8

主键

航线号

fly_no

char

8

外键

航班号

start

varchar

20

出发地

destination

varchar

20

终点站

start_time

datetime

出发时间

arive_time

datetime

达到世界

表2-4 航班

列名称

类型

宽度

允许空值

缺省值

主键外键

说明

fly_no

Char

8

主键

航班号

Start

Varchar

20

出发地

destination

Varchar

20

终点站

plane_no

Char

8

外键

飞机号

表2-5 飞机

列名称

类型

宽度

允许空值

缺省值

主键外键

说明

Plane_no

char

8

主键

飞机号

Number1

Int

一等舱量

Number2

Int

二等舱量

Number3

Int

三等舱量

表2-6 机票

列名称

类型

宽度

允许空值

缺省值

主键外键

说明

ticket_no

char

8

主键

机票号

Fly_no

Char

8

航班号

Price

Int

外键

单价

Client_no

Char

8

外键

客户号

 

表2-7 客户

列名称

类型

宽度

允许空值

缺省值

主键外键

说明

Client_no

char

8

主键

客户号

Id_no

Char

20

身份证号

Sname

Char

8

姓名

Phone_no

Char

15

联系方式

type

Char

20

普通

类型

表2-8 订票

列名称

类型

宽度

允许空值

缺省值

主键外键

说明

Book_no

Char

8

主键

订票号

Client_no

Char

8

外键

客户号

Plane_grade

Char

8

三号舱

舱位等级

Bookum

int

订票量

Price1

int

订票价格

表2-9 退票

列名称

类型

宽度

允许空值

缺省值

主键外键

说明

Book_no

char

8

主键

订票号

Refund_no

Char

8

退票量

表2-10 预约

列名称

类型

宽度

允许空值

缺省值

主键外键

说明

Order_no

char

8

主键

预约号

Order_num

Char

8

预约量

Client_no

Char

8

外键

客户号

表2-11 改签

列名称

类型

宽度

允许空值

缺省值

主键外键

说明

Book_no

char

8

订票号

Change_no

Char

8

改签航班

3.3 运行效果

3.3.1 系统主界面

图3-1 系统主窗口

3.3.2 系统具体功能实现录入界面

图3-2 查询操作界面

 

图3-3 订票操作界面

 

图3-4 退票操作界面

 

图3-5 改签操作界面

 

参考文献

[1] 孙卫琴.Java面向对象编程.电子工业出版社.2006年

[2] 王海亮,张立民.精通Oracle10gSQL和PLSQL.中国水利水电出版社.2006

[3] 耿祥义,张跃平.JAVA2实用教程(实用教程)[M].北京:

清华大学出版社,2006.

[4] (美)KarlE.Wiegers.软件需求(第二版)[M].北京:

高等教育出版社,2004.

[5] (美)KarlE.Wiegers.软件需求(第二版)[M].北京:

高等教育出版社,2004.

[6] 曹建主编.Dreamweaver与JSP实战演练[M].北京:

电子工业出版社.2001.

[7] Time创作室编著.Office2000系列丛书SQLserver2000[M].北京:

人民邮电出版社.1999.

[8] 武晓军,陈海滨编著.Javascript/VBScript网页编程实例解析[M].北京:

清华大学出版社.2001.

[9] [美]GregBuczek著.王小娟.陈代川译.SQLserver2000数据库开发即时应用[M].北京:

人民邮电出版社.2002.

[10] 林金霖.JSP实务经典[M].北京:

中国铁道出版社.2000.

[11] BruceEckel.JAVA编程思想[M].北京:

机械工业出版社.2003.10.

[12] 赛奎春.JAVA工程应用与项目实践[M].北京:

机械工业出版社.2002.8.

 

毕业实习总结

通过这次实验,我深刻的认识到实习实验的必要性,从实验的过程中,我学会了很多自己原本不会的知识,我深刻的理解了动手的主要性。

从开始的不知所措到最后实验的初步成型,我收获了很多,让我获益匪浅。

在实验的过程中,把课堂里所学的知识与理论相结合起来,更加清楚的明白了各个过程的功能。

航空管理系统是一个比较复杂的系统,从起初画ER开始,就可以清楚的知道,在确定试题,关系的时候,我考虑了很多不同的情况,也走了很多弯路。

但是在实际见表的过程中,我意识到问题所在。

在编程界面的时候,由于各种原因,使得界面与数据库的联系失败,都给我深刻的印象,也使我更加注重这个方面,我也一直向编程好的同学请教,在不断磨合的过程中,我终于做好这个设计,但是我还是觉得我的设计有很多问题,但不管怎样,在这个学习的过程中,我学到了很多知识,我相信自己在今后的学习中会更加努力,争取做好。

 

附  录

packagecom.db;

importjava.sql.*;

publicclassmydb{

Stringurl="jdbc:

odbc:

mydb";

Stringdriver="sun.jdbc.odbc.JdbcOdbcDriver";

Connectioncon=null;

publicmydb(){

try{

Class.forName(driver);

}catch(ClassNotFoundExceptione){

e.printStackTrace();

}

}

publicResultSetexecuteQuery(Stringsql){

ResultSetrs=null;

try{

con=DriverManager.getConnection(url);

Statementcmd=con.createStatement();

rs=cmd.executeQuery(sql);

}catch(Exceptionex){

ex.printStackTrace();

}

returnrs;

}

publicvoidexecuteUpdate(Stringsql){

try{

con=DriverManager.getConnection(url);

Statementcmd=con.createStatement();

cmd.executeUpdate(sql);

con.close();

}catch(Exceptionex){

ex.printStackTrace();

}

}

publicvoidcloseConnection(){

try{

if(con!

=null&&!

con.isClosed())

con.close();

}catch(SQLExceptione){

e.printStackTrace();

}

}

}

packagecom.view;

importjava.awt.*;

importjava.awt.event.*;

importjava.sql.ResultSet;

importjavax.swing.*;

importjavax.swing.table.DefaultTableModel;

importcom.db.mydb;

publicclassqueryextendsJFrameimplementsActionListener{

privateJLabeljb1=newJLabel("出发站名");

privateJTextFieldjt1=newJTextField();

privateJLabeljb2=newJLabel("终点站名");

privateJTextFieldjt2=newJTextField();

privateJButtonjb_ok=newJButton("确定");

privateJButtonjb_reset=newJButton("重置");

Stringss[]={"航线号","航班号","起飞时间"};

Stringrows[][]=newString[3][3];

JTabletable=newJTable(rows,ss);

mydbdb=newmydb();

publicquery(){

super("查询");

JPaneljp=(JPanel)this.getContentPane();

jp.setLayout(newBorderLayout());

JPaneljp1=newJPanel();

jp.add(jp1,BorderLayout.NORTH);

jp1.setLayout(newGridLayout(5,2));

jp1.add(jb1);

jp1.add(jt1);

jp1.add(jb2);

jp1.add(jt2);

jp1.add(jb_ok);

jp1.add(jb_reset);

jb_ok.addActionListener(this);

jb_reset.addActionListener(this);

JScrollPanejsp=newJScrollPane(table);

jp.add(jsp);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==jb_ok)

{

Stringstart=jt1.getText().trim();

Stringdestination=jt2.getText().trim();

Stringsql="selectcount(*)fromairline_1740";

ResultSetrs=db.executeQuery(sql);

try{

rs.next();

intc=rs.getInt

(1);

rows=newString[c][3];

c=0;

sql="selecta.air_no,plane_no,start_time"+

"fromairline_1740a,fly_1740b"+

"wherea.start='"+start+"'"+"anda.destination='"+destination+"'";

rs=db.executeQuery(sql);

System.out.print(sql);

if(rs.next()){

rows[c][0]=rs.getString

(1);

rows[c][1]=rs.getString

(2);

rows[c][2]=rs.getString(3);

//rows[c][3]=rs.getString(4);

//c++;

}

table.setModel(newDefaultTableModel(rows,ss));

db.closeConnection();

}catch(Exceptionex){}

}

}

//publicstaticvoidmain(String[]args){

//searchFrmfrm=newsearchFrm();

//frm.setSize(250,200);

//frm.setVisible(true);

//}

}

packagecom.view;

importjava.awt.*;

importjava.awt.event.*;

importjava.sql.ResultSet;

importjavax.swing.*;

importjavax.swing.table.DefaultTableModel;

importcom.db.mydb;

publicclassbookextendsJFrameimplementsActionListener{

JLabellbl1=newJLabel("订票号:

");

JTextFieldtxt1=newJTextField();

JLabellbl3=newJLabel("订票量:

");

JTextFieldtxt3=newJTextField();

JButtonbtn1=newJButton("1");

JButtonbtn2=newJButton("取消");

Stringss[]={"订票号","客户号","订票量"};

Stringrows[][]=newString[3][3];

JTabletable=newJTable(rows,ss);

mydbdb=newmydb();

publicbook(){

super("订票查询");

JPaneljp=(JPanel)this.getContentPane();

jp

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

当前位置:首页 > 高等教育 > 历史学

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

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