# 机票在线销售系统
## 一、实训目的
1.掌握面向对象的设计、架构与实现方法。
2.掌握图形用户界面的事件驱动机制。
3.掌握 Java 对象流的基本操作。
4.掌握图形用户界面、面向对象的设计以及文件的综合应用。
5.提高分析、阅读源代码的能力。
## 二、实训内容
必做内容:
1. 分析、阅读鼎利集团提供的“机票在线销售系统”源代码
提示:写出系统的分层结构、每个类中各个方法的功能(要详细,不能照抄鼎利提供的文档)。
2. 修改源系统中存在的缺陷(Bug)。
提示:先指出在哪个类、哪个方法中存在什么样的 bug,这个 bug 有什么危害。
然后给出修改后的代码(只需给出一个方法的代码,并注明修改的位置。
3. 在原系统的基础上扩充功能
增加添加航班信息的窗口,将新的航班信息追加到 flight.data 文件的尾部。
要求:给出源代码和测试结果
选作内容:
根据自己的能力做适当的扩充。
要求:1:说明扩充的功能
2:给出源代码和测试结果
### 1. 分析、阅读鼎利集团提供的“机票在线销售系统”源代码
#### 1.1 com.booking.constants 与 com.booking.util 包
##### 1.1.1 com.booking.constants 包
用于存放各种标实常量便于查看和更改常量。
##### 1.1.2 com.booking.util 包
存放程序要使用的各种外部工具,可借助外部工具使程序更快捷的编写出来。
其中包括日历类:CalendarPanel、购票信息数据操作工具类:DataOperateUtil、时间格式化工具类:DateFormatUtil、订单编码工具类:OrderUtil、 数据验证工具类:ValidateDataUtil、设置界面背景工具类:ViewBackgroundUtil
#### 1.2 基于面向对象现封装的对属性和对方法分别封装的类
##### 1.2.1Flight 类(属性)
本类将预定机票的属性进行了封装,里面拥有预定机票的各种属性,分别包括航班号、始发地、目的地、起飞时间时间、到达时间、航空公司、机型以及票价。如以下代码对类的属性进行了是申明。
```
private String flightNo;
private String startAddress;
private String endAddress;
private String startTime;
private String arrivedTime;
private String airLineName;
private String planeType;
private String price;
```
由于属性都是 private 修饰的属性,所以要想对类的属性进行更改也必然少不了各自对应的 get、set 方法。
##### 1.2.2 Seat 类(属性)
本类将座位的属性进行了封装,里面拥有座位的各种属性,分别包括状态、座位号。如以下代码对类的属性进行了是申明。
private String status;
private String seatNo;
由于属性都是 private 修饰的属性,所以要想对类的属性进行更改也必然少不了各自对应的 get、set 方法。
##### 1.2.3 Ticket 类(属性)
本类将机票的属性进行了封装,里面拥有已购机票的各种属性,分别包括始发地、目的地、出行时间、付款方式、订单编号、身份证以及姓名。如以下代码对类的属性进行了是申明。
```
private String startAddress;
private String endAddress;
private String travelDate;
private int payWay;
private String orderNo;
private String identityNo;
private String userName;
```
由于属性都是 private 修饰的属性,所以要想对类的属性进行更改也必然少不了各自对应的 get、set 方法。
##### 1.2.4 BookingService 接口以及其实现类 BookingServiceImpl(方法)
接口也就是为了实现类的设计,并将在线服务的方法进行了封装。其中包括的方法有,创建购票信息、获取购票信息、根据始发地和目的地获取航班信息、根据订单获取订单信息、存储座位信息和订单信息、修改出行时间以及退票删除订单编码。这时也要注意各个方法各自对应的参数。
```
public Map<String,Object> createBookingInfo(Ticket ticket);
public Map<String,Object> readData(String orderNoOrIdentityNo);
public Map<String,Object> readFlightData(String startAddress, String endAddress);
public Map<String,Object> readSeatData(String order);
public Map<String,Object> createSeatInfo(Seat seat,List<String> orderList);
public Map<String,Object> updateTravelDateInfo(String orderNo,String travelDate);
public Map<String,Object> deleteOrderInfo(String orderNo);
```
BookingServiceImpl 类则专用于实现对应的每个方法,以便后期使用。他的具体实现为:
以创建购票信息方法为例,他是首先获取当前时间的毫秒值作为账单号 orderNo。再分别创建一个结果和一个数据集,当验证身份证号不合法就返回错误提示,若正确则进行下一步验证姓名是否合法,当姓名不合法就返回错误提示,都合法就可将订单编号写入对象 ticket.在这都完成之后再进行读取磁盘中的文件,若文件为空则将机票集写入到结果集中,并将其加入到结果集中,如若文件不为空就将机票加入到文件链中,并将其加入到结果集中。最后返回机票结果集。其他方法以此类推。
#### 1.3 基本组件与基础 Frame 类,封装通用界面设置及拖拽事件
两个自定义按钮 CustomButton 与 CustomButton2 用于对图形界面进行设计时使用。
BaseFrame 用于基础 Frame 类,封装通用界面设置及拖拽事件,相当于对界面的初始化,初始化包括界面边框大小,位置、布局的初始化和对拖拽事件的处理。
也就是说以后的每一个界面的父类都是继承 BaseFrame 类的,并且很有可能会用到自定义按钮。
#### 1.4 在线订票系统主控制器以及其控制的各界面
##### 1.4.1 主控制器
主控制器首先在构造方法中将主界面(MainView)显示出来,并且对主界面的四个按钮进行监听,在加上子界面的另外“BacktoPaView”,”toMainView”,”homepage”几个按钮进行监听,虽然另有其他有几个按钮,但实际上并没有使用,所以可将其注释掉。所以在这个地方主控制器起到了主控制的作用,控制各界面的开关。
##### 1.4.2 MainView
最开始执行打开的界面,共有四个按钮添加到界面上。
##### 1.4.3 BookingView
在监听下按”bokingBtn”随即打开 BokingView,随后将主控制器生成对象(监听)传参给 BokingView,BokingView 可见。
BokingView 界面首先是有始发地,目的地,姓名,身份证号等机票信息标签及文本框的初始化和按钮的初始化与监听。
若点击选择航班,便打开 FlightListView 界面,并将对应始发地,目的地等其他参数传入(public FlightListView(JFrame frame, boolean modal, String title, JTextField flightNo, Ticket ticket)),其中最重要的功能是运用了 BookingService 类中的 readFlightData(ticket.getStartAddress(),ticket.getEndAddress())方法根据始发地和目的地将航班信息读取到表格中。完成信息填写后用户点击确认按钮就会打开 PayView 界面进行选择支付。
##### 1.4.4 RefundOrAlterView
在监听下按” alterBtn”随即打开 RefundOrAlterView,随后将主控制器生成对象(监听)传参给 RefundOrAlterView,RefundOrAlterView 可见。
RefundOrAlterView 界面首先是订单号或身份证号标签及文本框的初始化和按钮的初始化与监听。
在用户输入合法信息后点击确认按钮就会打开 AlterOrderView 界面,并将监听对象以及账单号或者身份证号参数传入(public AlterOrderView(ActionListener actionListener,String orderNoOrIdentityNo))其中最重要的功能是运用 BookingService 类中的 Map<String,Object>resultMap = bookingService.deleteOrderInfo(AlterOrderView.this.orderNo);方法根据始订单号或身份证号将机票退掉或者 BookingService 类中的 Map<String,Object> resultMap = bookin
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1.掌握面向对象的设计、架构与实现方法。 2.掌握图形用户界面的事件驱动机制。 3.掌握 Java 对象流的基本操作。 4.掌握图形用户界面、面向对象的设计以及文件的综合应用。 5.提高分析、阅读源代码的能力。
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![jar](https://img-home.csdnimg.cn/images/20210720083455.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 268 条
- 1
- 2
- 3
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/fbed2db386fd4018b8f2474d6651545d_s1t16.jpg!1)
神仙别闹
- 粉丝: 2714
- 资源: 7669
![benefits](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-1.c8e153b4.png)
下载权益
![privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-2.ec46750a.png)
C知道特权
![article](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-3.fc5e5fb6.png)
VIP文章
![course-privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-4.320a6894.png)
课程特权
![rights](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-icon.fe0226a8.png)
开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)