大型软件项目实训报告 - 图文

更新时间:2024-03-03 14:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

大 型 软 件 项 目 实 训 报 告

题 目:TOA航空公司营业柜员系统

选题来源: 指导教师: 姓 名: 班 级: 学 号:

辽宁工程技术大学软件学院

目录

1.序言 ........................................................................................ 3

1.1选题背景 ........................................................................................................................................ 3 1.2选题目的及意义 ............................................................................................................................ 3 1.3 选题完成情况 ............................................................................................................................... 3

2.项目需求分析 ....................................................................... 4

2.1项目功能需求 ................................................................................................................................ 4 2.2项目性能需求 ................................................................................................................................ 5 2.3名词解释 ........................................................................................................................................ 5

3.项目概要设计 ....................................................................... 9

3.1 系统功能结构设计 ....................................................................................................................... 9 3.1.1前台设计 ................................................................................................................................. 9 3.1.2后台设计 ............................................................................................................................... 10 3.2 系统整体架构设计 ..................................................................................................................... 11 3.3 数据库结构设计 ......................................................................................................................... 11 3.3.1E-R图 .................................................................................................................................... 11

4.项目详细设计 ..................................................................... 17

4.1后台管理员管理模块描述 .......................................................................................................... 17 4.1.1 功能描述 .............................................................................................................................. 17 4.1.2 类设计 .................................................................................................................................. 18 4.1.3方法设计 ............................................................................................................................... 19 4.1.4 算法描述/逻辑流程 ............................................................................................................. 21 4.1.5 接口(或关键函数)设计 .................................................................................................. 24

5.实训总结.............................................................................. 25

5.1 技术总结 ..................................................................................................................................... 25 5.2 思想总结 ..................................................................................................................................... 26

致谢 ............................................................................................ 27 参考文献 .................................................................................... 27

辽宁工程技术大学软件学院

1.序言

1.1选题背景

达内实习期间,由教师带领学员进行项目实战训练。根据学员的总体技术水

平与人数,选定TOA航空公司营业柜员系统为实战项目,并进行分组,协同完成。

1.2选题目的及意义

我们要为TOA航空公司开发一套国内机票营业柜员系统,该系统要求能通过分布在全国各主要城市的该航空公司的营业网点为顾客提供航班查询,购买机票以及退票的服务。

航班查询的业务流程:当顾客到达营业网点后向航空公司营业员提供出发地,目的地和出发日期,营业员根据以上信息,操作软件查询满足条件的航班。

购票的业务流程:在查询出航班信息的基础上,根据顾客的要求选择某个航班,输入乘客信息,以及舱位信息,然后等待顾客确认,并收取票款,然后执行出票操作。

退票的业务流程:根据顾客提供的机票号和证件号码,查询出该机票的信息,然后根据该机票的退改签规定收取一定手续费,将剩余票款退还给顾客,并将机票收回(如果有纸质机票的话)。

该系统要求能进行航班管理,航班管理员能添加和删除航班计划,还能临时修改航班计划,对航班计划的修改包括临时添加航班和临时取消航班以及临时改变航班的执行机型。除此之外,航班管理员还能随时更新航班的季节折扣。

该系统要求能进行营业员和营业网点的管理,营业管理员能添加营业网点,删除营业网点,修改营业网点的信息(名称,地址,电话等),添加营业员,删除营业员。

该系统能保存所有营业记录,营业记录是营业员与航空公司进行营业款结算的依据,营业款的结算采用两级结算的原则,航空公司与每个营业网点经理结算,营业网点经理与每个营业员结算,原则上营业款应该每天结算。

该系统还要求有日志记录的功能,日志要求记录以下事件:营业员的登录,登出,成功的订票操作和退票操作,营业款的结算记录,航班管理员对航班的成功修改,营业管理员对营业员和营业网点的成功修改等。

1.3 选题完成情况

由于本组组员之间的配合默契,组长分配协调合理,项目按时完成,各项功能完整,并通过大量真实数据测试,程序运行稳定。

辽宁工程技术大学软件学院

2.项目需求分析

2.1项目功能需求

1、顾客的购票功能:要求该系统能够根据顾客的需求查出相关的航班信息,并且要求能够根据顾客所选择的航班,输入顾客的相关信息,同时输入仓位的信息,等待顾客确认之后,又服务人员收取相应金额,之后出票,要求在日志中记录相关的操作记录。

2、顾客的退票功能:根据顾客提供的机票号和证件号码,查询出该机票的信息,然后根据该机票的退改签规定收取一定手续费,将剩余票款退还给顾客,并将机票收回(如果有纸质机票的话),要求在日志中记录相关的操作记录。

3、营业款的二级结算功能:该系统要求对营业款完成二级结算功能,即由每个营业网点的营业员对该网点的营业经理完成第一级的结算,使营业款由未结算状态转换成一级待结算状态,当营业经理确认一级结算后,营业款由一级待结算状态转换成一级已结算状态,当营业经理向总公司提出结算申请时,营业款由一级已结算状态转换成二级待结算状态,总部确认结算后,营业款最终变为二级已结算状态。

4、营业记录的查询功能:在该系统中,要求相关人员能够根据不同的查询条件查询出相关的营业记录,在查询的过程中,还要求能够根据操作人员的不同权限进行不同查询结果的显示。

5、权限的管理功能:在该系统中,要求能够设置和回收不同角色的权限,不同的权限和角色要求拥有不同的操作和显示。

6、营业员的管理功能:在该系统中,要求能够查出公司中,每一名员工的相关信息和权限,并且要求拥有相关权限的管理人员能够根据实际需求,增加新员工,并为新员工设置角色和权限,能够更改员工的相关信息和权限,能够删除一名员工等。所有的操作都应该记录到日志文件中。

7、营业网点的管理功能:要求在该系统中,拥有相关权限的管理人员能够查看当前的营业网点信息,并且能够根据业务需求,对这些营业网点进行管理,包括更改营业网点的相关信息,增加新的营业网点,删除现有的营业网点等操作。

辽宁工程技术大学软件学院

所有操作都应该记录到日志文件中。

8、航班和航班计划管理:航班和航班计划的管理对以一个航空公司来说是相当重要的。在该系统中要求能够将航空公司的某一期或者某几期航班计划录入到系统中,并且要求能够将这些航班计划自动转化成相应的航班信息,供顾客查询。对过期的航班计划要求系统能够定时的进行维护和备份,要求能够更改已经录入在系统中的航班计划。对于航班,要求能够对已经存在的航班进行更改和删除,并且要求能够添加临时的航班在系统中。

2.2项目性能需求

该系统需要满足TOLO航空公司每周约300个定期国内航班和180个定期国际航班(包括港澳台航班)的运营,并且要尽量满足在可预见的未来,以每年15%左右的速度增长的业务需求。

具体说来,本系统需要满足每天约20,000的峰值访问量,并提供300以上链接数量的并发访问控制。

项目同时要求系统的前台柜员系统可以尽量提供人性化的界面设计以提高前台售票人员的工作效率。

2.3名词解释

TOLO:某一家航空公司的名称,该航空公司的注册地在中国,TOLO航空公司每周运营约300个定期国内航班和180个定期国际航班(包括港澳台航班),并且在可预见的未来,将以每年15%左右的速度增长。

航班计划(Flight Scheduler):用来描述TOLO航空公司执行的某个定期航班的计划表。例如:由TOLO航空公司执行的每天早上8:00从北京起飞,上午10:00到达上海的TL1202就是一个航班计划。根据中国民航相关管理部门的规定,TOLO航空公司可以在每一季度前一个月提交下一季度的航班计划申请,由民航管理部门核准后执行。在一个季度的执行过程中,TOLO航空公司不得随意改变航班计划。如有特殊情况需临时改变航班计划,可由TOLO航空公司提出申请,由民航管理部门审核通过后执行更改。

航班计划包含的信息:航班号,起始日期,结束日期,出发地,目的地,离港时间,到港时间,里程,飞机机型,班期,基准票价。

航班(Flight):用来描述在某个确定日期执行某个定期航班计划的一次航班。例如:2009年12月25日从北京飞上海的TL1202就是一个航班的实例。

航班包含的信息:执行的航班计划,出发日期,各舱剩余座位数,季节折扣。

辽宁工程技术大学软件学院

3.2 系统整体架构设计

1. client 存放客户端通信相关类 2. common 存放图形界面公用类 3. dao 存放访问数据库的类 4. entity 存放实体类 5. gui.manage 后台GUI 6. gui.business 前台GUI 7. server 服务器相关类 8. util 工具类

3.3 数据库结构设计 3.3.1E-R图

用户:

用户ID 编号 联系方式 用户账号 用户 附加权限 密码 网点编号 基本角色

航班计划:

起始日期 航班号 班期 结束日期 航班计划 出发地 飞机机型 里程 目的地 离港时间 到港时间

辽宁工程技术大学软件学院

航班:

流水号 航班计划 出发日期 航班 季节折扣 头等舱剩余座位 公务舱剩余座位 经济舱剩余座位

营业记录:

流水号 航班编号 发生时间 营业记录 结算状态 类型 金额 员工ID

机票:

流水号ID乘客姓名 证件号码 机票 机票类型 联系电话 仓位等级 营业记录流水号

辽宁工程技术大学软件学院

营业网点:

流水号 网点编号 网店经理 网点名称 营业网点 电话 所属省份 所属城市 地址

机型:

飞机型号 制造厂商 最大航程 机型 头等舱座位数 公务舱座位数 经济舱座位数 机场:

机场 三字码 机场名 城市 地区

辽宁工程技术大学软件学院

1.用户表(users)

列名 用户ID 编号 字段 userid usernum 字段类型 int varchar 约束 PK 备注 自增序列,流水号 为员工自定义的一个编号,方便公司管理 相当于主键 加密后的32位长度的密码 这一列可以为空,如果为空则说明该用户不是营业员 由于只有六个基本角色,所以不再创建一个表,用相应的整数表示。1营业员,2网店经理,3航班管理员,4网点管理员,5财务管理员,6超级管理员 默认值0 用户账号 密码 所属营业网点编号 username password stationid varchar(10) char(32) int UNIQUE NOT NULL NOT NULL 基本角色 role int NOT NULL 附加权限 联系方式 authority contact int varchar(20) NOT NULL 2.航班计划表(flightplan) 列名 航班号 字段 flightnum 字段类型 varchar(10) 约束 PK 备注 前两个字符是字母,后面是数字,长度5-7位不等 起始日期 结束日期 出发地 目的地 离港时间 到港时间 里程 飞机机型 班期 startdate enddate startaddr endaddr leavetime arrivetime mileage planetype schedule date date varchar(20) varchar(20) datetime datetime int varchar(15) int NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL 辽宁工程技术大学软件学院

3.航班表(flight) 列名 流水号 执行的航班计划 出发日期 头等舱剩余座位 公务舱剩余座位 经济舱剩余座位 季节折扣 字段 flightid flightnum leavedate topseat offiseat econoseat discount 字段类型 int varchar(10) date int int int double 约束 PK FK NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL 备注 0 0 0 4.营业记录表(record) 列名 流水号ID 航班编号 字段 recid flightnum 字段类型 int varchar(10) 约束 PK FK 备注 自增序列 数据库中可不定义外键,但在程序中要控制 1(购票),2(退票),3(改签) 同航班序号备注 0(未结算),1(一级待结算),2(一级已结算),3(二级待结算),4(二级已结算) 记录发生时间 类型 金额 员工ID 结算状态 recdate type price userid counttype datetime int int int int NOT NULL NOT NULL NOT NULL FK 5机票表(ticket) 列名 流水号ID 乘客姓名 证件号码 联系电话 舱位等级 字段 ticketid psenname psenid psenphone level 字段类型 int varchar(10) varchar(18) varchar(15) int 约束 PK NOT NULL UNIQUE NOT NULL NOT NULL NOT NULL 备注 自增序列 0(经济舱),1(公务舱),2(经济舱) 0(成人),1(儿童),2(婴儿) 默认值0 0(未改签),1(改签) 乘客类型 营业记录流水号 机票类型 psentype recid tickettype int int int NOT NULL FK

辽宁工程技术大学软件学院

6营业网点(station) 列名 流水号 网点编号 网店名称 所属省份 所属城市 地址 电话 网点经理 字段 stationid stanum staname province city addr phone userid 字段类型 int varchar(10) varchar(20) varchar(8) varchar(10) varchar(50) varchar(15) int 约束 PK UNIQUE NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL 备注 相当于主键 7机型表(planetype) 列名 飞机型号 制造厂商 最大航程 头等舱座位数 公务舱座位数 经济舱座位数 字段 plannum manufacturer maxsail topseat offiseat econoseat 字段类型 varchar(15) varchar(30) int int int int 约束 PK NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL 备注 默认值为0 默认值为0 默认值为0 8机场表(airport) 列名 三字码 地区 城市 机场名 字段 airportnum province city airportname 字段类型 varchar(6) varchar(10) varchar(10) Varchar(10) 约束 PK NOT NULL NOT NULL NOT NULL 备注

辽宁工程技术大学软件学院

4.项目详细设计

4.1后台管理员管理模块描述 4.1.1 功能描述

该模块的功能是管理角色和用户。实现角色的增、删、改、查,用户的增、删、改、查。

D1 查询角色表 P1 D2 高级查询角色表 管理员 F1 角色信息处理 D3 增加角色表 D4 修改角色表 D5 删除角色表

D6 查询用户表 P2 D7 高级查询用户表 管理员 F1 用户信息处理 D8 增加用户表 D9 修改用户表 D10 删除用户表 D11 密码重置

辽宁工程技术大学软件学院

4.1.2 类设计

client包下的类

BusiClientSendAndRec客户端与服务器端通信相关类

ClientTCP 与服务器连接类,封装了输入输出流以及Socket GetTicket SearchTicket

SearchUser common包下的类

CheckBoxRenderer 实现了TableCellRenderer接口,供table绘制器调用。 CheckButtonEditor 继承自DefaultCellEditor类,table编辑器。

MyJTextField 继承自JTextField类,可以控制JTextField对象中文本的长度。

SepPanel JPanel的子类,上面绘制了一条细线。 SimpleCal 日历对话框。提供一个供选择的日历。 dao包下的类

DBConnection 获取数据库连接类,可通过读取配置文件获得一个数据库的连接。

AirportDaoInterface 机场DAO接口,定义了对airport表操作的方法。

AirportDaoImpl AirportDaoInterface的实现类。

FlightDaoInterface 航班DAO接口,定义了对flight表操作的方法。 FlightDaoImpl FlightDaoInterface的实现类。

FlightPlanDaoInterface 航班计划DAO接口,定义了对flightplan表操作的方法。

FlightPlanDaoImpl FlightPlanInterface的实现类。

PlaneTypeDaoInterface 机型DAO接口,定义了对planetype表操作的方法。 PlaneTypeDaoImpl PlaneTypeDaoInterface的实现类。

RecordDaoInterface 营业记录DAO接口,定义了对record表操作的方法。 RecordDaoImpl RecordDaoInterface的实现类。

TicketDaoInterface 机票DAO接口,定义了对ticket表操作的方法。 TicketDaoImpl TicketDaoInterface的实现类。

UserDaoInterface 用户DAO接口,定义了对users表操作的方法。 UserDaoImpl UserDaoInterface的实现类。 服务器端详客户端发送的数据。 entity.form包下的类

AirportForm 机场JavaBean。 FlightForm 航班JavaBean。

FlightPlanForm 航班计划JavaBean。 RecordForm 营业记录JavaBean。 TicketForm 机票JavaBean。 UserForm 用户JavaBean。 gui.business包下的类(略) server包下的类

辽宁工程技术大学软件学院

BusiServerTCP 服务器相关类。 util包下的类

GenerateExcel 生成Excel。 MD5Tool md5加密类。

ReadFileMes 读取文本类。

4.1.3方法设计

类Util.ReadFileMes中的主要方法:

1. public static String getMes(String file,String key)

功能:获取file文件中键为key的值

功能:获取错误代码为key的相关信息,当type为ReadFileMes.ERROR_REASON

2. public static String getErrorMes(String key,int type) 时返回错误原因,当type为ReadFileMes.ERROR_MEASURE时返回解决错误的措施。

类Client. BusiClientSendAndRec中的主要方法:

1. public static Object clientLogin(UserForm loginner) 功能:向服务器发送和从服务器接收登录相关数据。 2. public static void clientCut() 功能:断开当前的TCP连接

3. public static List busiSearchFlight(UserForm

user,FlightForm flight)

功能:向服务器发送和从服务器接收查询航班相关数据。

4. public static FlightForm bookTicket(UserForm user,Integer flightid) 功能:向服务器发送和从服务器接收订票相关信息。

5. public static List getCurrentRecord(UserForm user,int

userid)

功能:向服务器发送和从服务器接收当前记录相关信息。

6. public static List getHistoryRecord(UserForm user,int

userid,String datel,String dateh)

功能:向服务器发送和从服务器接收历史记录相关信息。

7. public static String requestAccount(UserForm user,List arr,int

counttype) 功能:向服务器发送和从服务器接收结算相关信息。

8. public static List superAccount(UserForm user,RecordForm

record) 功能:向服务器发送和从服务器接收营业记录高级查询相关信息。

9. public static List refreshRecord(UserForm user,Integer

type,Integer stationid) 功能:向服务器发送和从服务器接收刷新营业记录相关信息。

10. public static String bookTicket(UserForm user,List tickets) 功能:向服务器发送和从服务器接收订票相关信息。

11. public static double getDiscount(UserForm user,String flightnum,String

leavedate) 功能:向服务器发送和从服务器接收折扣相关信息。

辽宁工程技术大学软件学院

12. public static List clientGetClty(UserForm user,String

province) 功能:向服务器发送和从服务器接收城市相关数据。

13. public static int getPlanSeatByFlightnum(UserForm user,String type) 功能:向服务器发送和从服务器接收飞机座位总数相关信息

类Client. ClientTCP中的主要方法:

1. public ClientTCP(String key1,String key2)

功能:根据key1和key2读取文本取得服务器配置信息,将到服务器的输入输出流及Socket封装起来。

类Client. GetTicket中的主要方法:

1. public static Object changeTicket(UserForm user,String leavedata,String name,String

idnum,String phone,int recid,String flightnum,int price,int type,int counttype) 功能:向服务器端发送和接受改签的机票信息。

2. public static Object searchTicketUserForm user,String leavedata,String name,String

idnum,String phone,int recid,String flightnum,int price,int type,int counttype) 功能:向服务器发送和接受要查询的机票信息 3. public static void clientCut() 功能:切断与服务器的连接

4. public static void clientQuit(UserForm user) 功能:退出程序

5. public static List busiSearchFlight 功能:查询选定机票的具体信息

6. public static FlightForm bookTicket(UserForm user,Integer flightid) 功能:将订票的具体信息传送和接受到服务器.

类common. CheckBoxRenderer中的主要方法:

1. public Component getTableCellRendererComponent(JTable table, Object

value,boolean isSelected, boolean hasFocus, int row, int column) 功能:获得表单元格中的组件。

类common. CheckButtonEditor中的主要方法:

1. public Component getTableCellEditorComponent(JTable table, Object

value,boolean isSelected, int row, int column) { 2. public Object getCellEditorValue() {

3. public void itemStateChanged(ItemEvent e) {

类common. FlightCalendar中的主要方法:

1. protected void addLabelOnPanel(int i,String str,boolean listenerSign){ 2. protected void setMiddle(){

3. protected void addEventListener(){

类common. MyJTextField中的主要方法:

1. public void setMaxLength(int max) 功能:设置JTextField中文本的长度。

类common. SearchAllAirports中的主要方法

1. public static List getAllAirports(){ 功能:查询所有机场。

本文来源:https://www.bwwdw.com/article/45va.html

Top