基于Java 的航空订票系统设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
术 Key words: Aviation industry; Sales network; Order form system
创
机票预定系统是为满足航空公司的系统管理和订票管理
而设计的。 在人民币持续升值、燃油成本波动相对较平和以及
新 2010 年 世 博 会 、亚 运 会 等 相 对 积 极 因 素 的 推 动 下,我 国 民 航 行 业正处于景气度不断提升的时期。 航空业的迅速发展带来了飞
while(true){ s=ss.accept();//转发给 serverThread 处理(传递 socket 参数) new ServerThread(s).start()
} } catch (IOException e) {
e.printStackTrace(); } 服务线程 ServerThread 通 过 构 造函 数 接 受 socket,然 后 转 发 给 Controller public class ServerThread extends Thread{ Socket s; protected ServerThread(Socket s){ //用传入的 socket 初始化
} } } 由 controller 调用 handle 方法,分析请求对象。 if(type.equals("login")){ // 登陆处理 loginHandle(req); }else if(type.equals("f1Search")){ //航班计划查询处理 f1SearchHandle(req); }else if(type.equals("order")){ //订单处理 orderHandle(); }else if(type.equals("quit")){ //退出处理 quitHandle(); break; }else if(type.equals("modifyPasswd")){ modifyPasswd(req); } 3.2 表单的显示方式 当 客 户 端 查 询 到 航 班 计 划 时 , 把 f1list 航 班 集 合 传 给 F1TableModel,再 把 F1TableModel 传 给 JTable,然 后 把 JTable 加 入 JScorllPane,就会自动显示数据。 F1TableModel ftm = new F1TableModel(f1list); JTable jt = new JTable(ftm); ClientMainClass.clientFrame.setTable(jt); F1TableModel 实现 了 AbstractTableModel 接口,实 现 了 如 下 四个方法。 package com.tarena.abs.client; import javax.swing.table.*; import java.util.*; import com.tarena.abs.model.*; public class F1TableModel extends AbstractTableModel{
赵晓霞: 讲师 基金项目: 牡丹江师范学院教学改革工程项目(10-XY01059)
4)舱 位 等 级(Cc):用 来 描 述 航 班 的 不 同 舱 位,一 般 分 为 三 种: 头等舱(F),公务舱(C),经济舱(Y)。 不同的舱位等级具有不同的机 票折扣。
5)乘客类型(Tt):用 来 描 述乘 坐 航 班的 乘 客 的类 型,一 般分 为 三 种 :成 人 (A)(age>12), 儿 童 (C)(2<age<=12), 婴 儿 (I)(0<=age<=2)。
软件时空
文 章 编 号 :1008-0570(2010)06-3-0214-02
《微计算机信息》(管控一体化 )2010 年第 26 卷第 6-3 期
基于 Java 的航空订票系统设计
Design of The Airline Booking System Based on Java
(牡丹江师范学院) 赵 晓 霞
this.s=s; } public void run(){
try { new Controller(s).handle(); //交给控制器处理
} catch (Exception e) { e.printStackTrace();
}finally{ try{s.close();}catch(IOException e){}
Abstract: Aviation industry's rapidly expand has brought airplane freight volume unceasing enlargement, at the same time the people unceasingly are also enhancing to Airline's service and the request, whether does the Airline accurate, high speed realize services and so on flight management, order form management and airplane ticket reservation management, has become the appraisal Airline
3 主要代码分析
3.1 数据流程代码分析
服务器启动时读取配置文件, 读取数据, 并且服务器端
ServerSocket 等 待 客 户 端 线 程 访 问 ,当 收 到 客 户 端 响 应 后,则 创
建一个新的服务线程执行服务。
ServerSocket ss=null;
Socket s=null;
try {
ArrayList s; public F1TableModel(ArrayList s){
this.s=s; } //获得列名 public String getColumnName(int arg0) { switch(arg0){
case 0: return "航班号"; case 1: return "出发地"; case 2: return "目的地"; case 3: return "起飞时间"; case 4: return "到达时间"; case 5: return "机型"; case 6: return "票价"; case 7: return "头等舱"; case 8: return "公务舱"; case 9: return "经济舱"; default: return null; } } //获得行数 public int getColumnCount() { return 10; } //获得列数 public int getRowCount() { return s.size(); } //获得指定位置的值 public Object getValueAt(int row, int col) { F1 f=(F1)s.get(row); if(row<0 || row>s.size()) return null; switch(col){ case 0: return f.getSch().getF1Number(); case 1: return f.getSch().getFromAddress(); case 2: return f.getSch().getToAddress(); case 3: return f.getSch().getFromTime(); case 4: return f.getSch().getToTime(); case 5: return f.getSch().getPlane(); case 6: return (int)(f.getSch().getPrice()*f.getPriceOff()); case 7: return f.getFCSRemain(); case 8: return f.getBCSRemain(); case 9: return f.getECSRemain(); default: return null; } } }
//创建服务器 socket
- 214 - 360元 / 年 邮局订阅号:82-946
《现场总线技术应用 200 例》
您的论文得到两院院士关注
软件时空
ss =new ServerSocket (Integer.parseInt (pro.getProperty (" ServerPort")));
图 1 部署图
2 系统设计
2.1 业务模型 通过上面的分析,建立了下列 Java 实体类: 1)航班 计 划(Fs):用 来 描 述由 某 个 航空 公 司 执 行 的 某 个 定 期 航班的计划表。 2)航班(F1):用 来描 述 在 某个 确 定 日期 执 行 某个 定 期 航班 计 划的一次航班。 3)营业网点(Br):用来描述航空公司的某个分支 机 构,该机 构 能使用该系统为顾客提供查询航班和出票的服务。
ZHAO Xiao-xia
摘要: 航空 业 的 迅 速 发 展 带 来 了 飞 机 运 输 量 的 不 断 加 大,与 此 同 时 人 们 对 航 空 公 司 的 服 务 和 要 求 也 在 不 断 提 高,航 空 公 司 能 否准确、高速的实现航班管理、订票管理及机票预订管理等业务,已成为评价航空公司业绩的主要方面。 本文的设计实现了 航班管理、订票管理、营业网点管理以及业务统计等功能。 关键词: 航空业; 营业网点; 订票系统 中图分类号: TP311 文献标识码: B
技 术 创 新
4 结束语
航空订票系统使用软件分层结构, 利用面向对象的设计方
法,实现了稳定、可维护、可扩展性的软件,并且完成业务需求。
参考文献
[1]周树峰.基于 Java 的多层系统模型研究[C].电脑知识与技术,
技 achievement the principal aspect. This article design has realized functions and so on flight management, order form management, sales network management as well as business statistics.
机运输量的不断加大, 同时人们对对航空公司服务和要求也在
不断提高,机票预定系统开发,已成为当前软件系统开发Fra Baidu bibliotek热门。
1 系统分析
本系统分为三个层次:分别是表现层,业务层和持久层,部署 如图 1 所示。
表现层分为客户端和服务器,负责用来接收和显示数据。 业务层都封装在服务器端,负责处理数据与分发数据。 持久层是数据库,负责存储和读取数据。
6)飞 机 机 型(Pm):用 来 描 述 执 行 某 个 航 班 计 划 的 飞 机 的 型 号,一般来讲,一个航班计划的各次航班都应该采用同种机型的 飞机来执行。
7)机 票 订 单(To):一 张 成 功 出 票 的 机 票 记 录 。 2.2 数据库设计 本系统数据库中包含的数据表主要有飞机机型表 (AIRPLANE_MODEL)、 航班 计划 表 (F1_SCHEDULER)、 航 班表 (F1)、 营业网点表(BR)、 出票记录表(TICKET_ORDER)。 2.3 DAO 接口设计 本系统设计了通用的 DAO 接口,而不 是 直 接写 访 问 数据 库 的实现类,这样可以创建不同的实现类来实现接口,使标准制定 和标准实现分离。 当换了数据库,或者换了数据库访问技术,就 可以写新的实现类,不用改变原来的代码。 如定义 F1DAO 接口, 若 从 文 件 中 读 取 数 据 可 以 定 义 F1DaoFromFile 实 现 类, 若 利 用 JDBC 访 问 数 据 可 以 定 义 F1DaoFromJDBC 实 现 类 , 若 利 用 hibernate 访问数据可以定义 F1DaoFromHibernate 实现类等。
创
机票预定系统是为满足航空公司的系统管理和订票管理
而设计的。 在人民币持续升值、燃油成本波动相对较平和以及
新 2010 年 世 博 会 、亚 运 会 等 相 对 积 极 因 素 的 推 动 下,我 国 民 航 行 业正处于景气度不断提升的时期。 航空业的迅速发展带来了飞
while(true){ s=ss.accept();//转发给 serverThread 处理(传递 socket 参数) new ServerThread(s).start()
} } catch (IOException e) {
e.printStackTrace(); } 服务线程 ServerThread 通 过 构 造函 数 接 受 socket,然 后 转 发 给 Controller public class ServerThread extends Thread{ Socket s; protected ServerThread(Socket s){ //用传入的 socket 初始化
} } } 由 controller 调用 handle 方法,分析请求对象。 if(type.equals("login")){ // 登陆处理 loginHandle(req); }else if(type.equals("f1Search")){ //航班计划查询处理 f1SearchHandle(req); }else if(type.equals("order")){ //订单处理 orderHandle(); }else if(type.equals("quit")){ //退出处理 quitHandle(); break; }else if(type.equals("modifyPasswd")){ modifyPasswd(req); } 3.2 表单的显示方式 当 客 户 端 查 询 到 航 班 计 划 时 , 把 f1list 航 班 集 合 传 给 F1TableModel,再 把 F1TableModel 传 给 JTable,然 后 把 JTable 加 入 JScorllPane,就会自动显示数据。 F1TableModel ftm = new F1TableModel(f1list); JTable jt = new JTable(ftm); ClientMainClass.clientFrame.setTable(jt); F1TableModel 实现 了 AbstractTableModel 接口,实 现 了 如 下 四个方法。 package com.tarena.abs.client; import javax.swing.table.*; import java.util.*; import com.tarena.abs.model.*; public class F1TableModel extends AbstractTableModel{
赵晓霞: 讲师 基金项目: 牡丹江师范学院教学改革工程项目(10-XY01059)
4)舱 位 等 级(Cc):用 来 描 述 航 班 的 不 同 舱 位,一 般 分 为 三 种: 头等舱(F),公务舱(C),经济舱(Y)。 不同的舱位等级具有不同的机 票折扣。
5)乘客类型(Tt):用 来 描 述乘 坐 航 班的 乘 客 的类 型,一 般分 为 三 种 :成 人 (A)(age>12), 儿 童 (C)(2<age<=12), 婴 儿 (I)(0<=age<=2)。
软件时空
文 章 编 号 :1008-0570(2010)06-3-0214-02
《微计算机信息》(管控一体化 )2010 年第 26 卷第 6-3 期
基于 Java 的航空订票系统设计
Design of The Airline Booking System Based on Java
(牡丹江师范学院) 赵 晓 霞
this.s=s; } public void run(){
try { new Controller(s).handle(); //交给控制器处理
} catch (Exception e) { e.printStackTrace();
}finally{ try{s.close();}catch(IOException e){}
Abstract: Aviation industry's rapidly expand has brought airplane freight volume unceasing enlargement, at the same time the people unceasingly are also enhancing to Airline's service and the request, whether does the Airline accurate, high speed realize services and so on flight management, order form management and airplane ticket reservation management, has become the appraisal Airline
3 主要代码分析
3.1 数据流程代码分析
服务器启动时读取配置文件, 读取数据, 并且服务器端
ServerSocket 等 待 客 户 端 线 程 访 问 ,当 收 到 客 户 端 响 应 后,则 创
建一个新的服务线程执行服务。
ServerSocket ss=null;
Socket s=null;
try {
ArrayList s; public F1TableModel(ArrayList s){
this.s=s; } //获得列名 public String getColumnName(int arg0) { switch(arg0){
case 0: return "航班号"; case 1: return "出发地"; case 2: return "目的地"; case 3: return "起飞时间"; case 4: return "到达时间"; case 5: return "机型"; case 6: return "票价"; case 7: return "头等舱"; case 8: return "公务舱"; case 9: return "经济舱"; default: return null; } } //获得行数 public int getColumnCount() { return 10; } //获得列数 public int getRowCount() { return s.size(); } //获得指定位置的值 public Object getValueAt(int row, int col) { F1 f=(F1)s.get(row); if(row<0 || row>s.size()) return null; switch(col){ case 0: return f.getSch().getF1Number(); case 1: return f.getSch().getFromAddress(); case 2: return f.getSch().getToAddress(); case 3: return f.getSch().getFromTime(); case 4: return f.getSch().getToTime(); case 5: return f.getSch().getPlane(); case 6: return (int)(f.getSch().getPrice()*f.getPriceOff()); case 7: return f.getFCSRemain(); case 8: return f.getBCSRemain(); case 9: return f.getECSRemain(); default: return null; } } }
//创建服务器 socket
- 214 - 360元 / 年 邮局订阅号:82-946
《现场总线技术应用 200 例》
您的论文得到两院院士关注
软件时空
ss =new ServerSocket (Integer.parseInt (pro.getProperty (" ServerPort")));
图 1 部署图
2 系统设计
2.1 业务模型 通过上面的分析,建立了下列 Java 实体类: 1)航班 计 划(Fs):用 来 描 述由 某 个 航空 公 司 执 行 的 某 个 定 期 航班的计划表。 2)航班(F1):用 来描 述 在 某个 确 定 日期 执 行 某个 定 期 航班 计 划的一次航班。 3)营业网点(Br):用来描述航空公司的某个分支 机 构,该机 构 能使用该系统为顾客提供查询航班和出票的服务。
ZHAO Xiao-xia
摘要: 航空 业 的 迅 速 发 展 带 来 了 飞 机 运 输 量 的 不 断 加 大,与 此 同 时 人 们 对 航 空 公 司 的 服 务 和 要 求 也 在 不 断 提 高,航 空 公 司 能 否准确、高速的实现航班管理、订票管理及机票预订管理等业务,已成为评价航空公司业绩的主要方面。 本文的设计实现了 航班管理、订票管理、营业网点管理以及业务统计等功能。 关键词: 航空业; 营业网点; 订票系统 中图分类号: TP311 文献标识码: B
技 术 创 新
4 结束语
航空订票系统使用软件分层结构, 利用面向对象的设计方
法,实现了稳定、可维护、可扩展性的软件,并且完成业务需求。
参考文献
[1]周树峰.基于 Java 的多层系统模型研究[C].电脑知识与技术,
技 achievement the principal aspect. This article design has realized functions and so on flight management, order form management, sales network management as well as business statistics.
机运输量的不断加大, 同时人们对对航空公司服务和要求也在
不断提高,机票预定系统开发,已成为当前软件系统开发Fra Baidu bibliotek热门。
1 系统分析
本系统分为三个层次:分别是表现层,业务层和持久层,部署 如图 1 所示。
表现层分为客户端和服务器,负责用来接收和显示数据。 业务层都封装在服务器端,负责处理数据与分发数据。 持久层是数据库,负责存储和读取数据。
6)飞 机 机 型(Pm):用 来 描 述 执 行 某 个 航 班 计 划 的 飞 机 的 型 号,一般来讲,一个航班计划的各次航班都应该采用同种机型的 飞机来执行。
7)机 票 订 单(To):一 张 成 功 出 票 的 机 票 记 录 。 2.2 数据库设计 本系统数据库中包含的数据表主要有飞机机型表 (AIRPLANE_MODEL)、 航班 计划 表 (F1_SCHEDULER)、 航 班表 (F1)、 营业网点表(BR)、 出票记录表(TICKET_ORDER)。 2.3 DAO 接口设计 本系统设计了通用的 DAO 接口,而不 是 直 接写 访 问 数据 库 的实现类,这样可以创建不同的实现类来实现接口,使标准制定 和标准实现分离。 当换了数据库,或者换了数据库访问技术,就 可以写新的实现类,不用改变原来的代码。 如定义 F1DAO 接口, 若 从 文 件 中 读 取 数 据 可 以 定 义 F1DaoFromFile 实 现 类, 若 利 用 JDBC 访 问 数 据 可 以 定 义 F1DaoFromJDBC 实 现 类 , 若 利 用 hibernate 访问数据可以定义 F1DaoFromHibernate 实现类等。