201404121104121069奥振平面向对象技术大作业

上传人:xins****2008 文档编号:104790531 上传时间:2019-10-10 格式:DOCX 页数:14 大小:183.84KB
返回 下载 相关 举报
201404121104121069奥振平面向对象技术大作业_第1页
第1页 / 共14页
201404121104121069奥振平面向对象技术大作业_第2页
第2页 / 共14页
201404121104121069奥振平面向对象技术大作业_第3页
第3页 / 共14页
201404121104121069奥振平面向对象技术大作业_第4页
第4页 / 共14页
201404121104121069奥振平面向对象技术大作业_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《201404121104121069奥振平面向对象技术大作业》由会员分享,可在线阅读,更多相关《201404121104121069奥振平面向对象技术大作业(14页珍藏版)》请在金锄头文库上搜索。

1、 面向对象技术大作业 姓名:奥振平学号:04121069班级:041211二零一四年十一月1.需求分析,描述你对这个题目的理解,要实现哪些功能。画出系统状态转移图(30分) 这个题目要求编写程序实现地铁售票系统的仿真。要实现的功能有:地铁路线的模拟,找零系统的模拟,取票出零钱的模拟2.程序设计,说明你解决这个问题用到了哪些类?这些类之间的关系怎样?这些类都有哪些属性和方法?分别代表什么意思?这些方法之间如何交互?(30分)类:HandleXianSubWay方法:public void initNum() 初始化数据函数 public void actionPerformed(ActionEv

2、ent e) 时间处理函数 countMoney(countStation) 计算经过这么多站点的票价 public void countChange() 计算找零还是用户需要继续付款,在显示信息之前需要调用此函数 public void getMoneyCount() 获得用户付款信息 public void countMoney(int countStation) 根据站点数量来计算所需要的车票钱 public void showMess() / 显示消息供用户查看3 符合编程规范的代码清单。(25分) package xidian.zuoye.aozp; import java.awt.

3、BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel; public class HandleXianSubWay implements ActionListener /

4、 HandleXianSubWay h = new HandleXianSubWay(); XianSubway xasw = null;DefaultTableModel dtm1 = null;DefaultTableModel dtm2 = null;static int money;/ 计算花费的钱int countStation = 0;/ 计算经过了多少个站点int start = 0;/ 站点号int start2 = 0;/ 站点名int countTicket = 0;/ 所购票数int stop = 0;/ 目的号int stop2 = 0;/ 目的名int startLi

5、ne = 0;/ 1代表始发站在一号线上,2代表始发站在一号线上int endLine = 0;/ 1代表目的站在二号线上,2代表目的站在二号线上int payMoney = 0;/ 统计用户已付款多少int allMoney = 0;/ 统计总共票价是多少int stillPay = 0;/ 需要继续付款多少int change = 0;/ 系统需要找零int yuan1 = 0, yuan5 = 0, yuan10 = 0, yuan20 = 0;/ 统计各种钱币的数量int num = 0; private String sites1;/ 接收一号站点数组private String s

6、ites2;/ 接收二号站点数组 public void initNum() / 初始化数据函数stillPay = 0;countStation = 0;allMoney = 0;change = 0;payMoney = 0; public HandleXianSubWay() / 无参构造函数/ TODO Auto-generated constructor stub public HandleXianSubWay(String sites1, String sites2,XianSubway xasw) / 有参数构造函数,接XianSubway传递过来的参数this.sites1 =

7、 sites1;this.sites2 = sites2;this.xasw = xasw; public void doExample(ActionEvent e, DefaultTableModel dtm) this.dtm1 = dtm;/ 接收传递过来的事件源,此语句必须要放在下面一行语句之前,否则可能会引起空指针异常this.dtm2 = dtm;this.actionPerformed(e);/ 将此事件传递给事件处理函数进行处理 Overridepublic void actionPerformed(ActionEvent e) / 时间处理函数String commandSt

8、ring = e.getActionCommand();/ 接收到的命令/ 对单选按钮进行事件处理if (commandString.equals(始发站在一号线) startLine = 1;if (commandString.equals(始发站在二号线) startLine = 2;if (commandString.equals(目的站在一号线) endLine = 1;if (commandString.equals(目的站在二号线) endLine = 2;if (commandString.equals(西安地铁一号线站点图) / 对一号线按钮进行事件处理dtm1 = new D

9、efaultTableModel(10, 2);/ 实例化模版对象dtm1.setColumnIdentifiers(new String 站点号, 站点名称 );/ 设置标题JFrame jf1 = new JFrame(西安地铁一号线站点图);jf1.setLocation(480, 100);/ 设置坐标JTable jt1 = new JTable(dtm1);JScrollPane jsp1 = new JScrollPane(jt1);/ 设置滚动条jf1.add(jsp1, BorderLayout.NORTH);/ 加入窗体的北面jf1.setVisible(true);jf1

10、.setSize(500, 500);/ jf1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);for (int i = 0; i sites1.length; i+) dtm1.insertRow(i, sites1i);if (commandString.equals(西安地铁二号线站点图) / 对二号线按钮进行事件处理dtm2 = new DefaultTableModel(10, 2);/ 实例化模版对象dtm2.setColumnIdentifiers(new String 站点号, 站点名称 );/ 设置标题JFrame jf2 =

11、new JFrame(西安地铁二号线站点图);jf2.setLocation(880, 100);JTable jt2 = new JTable(dtm2);JScrollPane jsp1 = new JScrollPane(jt2);jf2.add(jsp1, BorderLayout.NORTH);jf2.setVisible(true);jf2.setSize(500, 500);/ jf1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);此处如果设置的话,会将两个窗口进行关联,即关闭此处的窗口,同时源窗口也就关闭了for (int i =

12、 0; i sites2.length; i+) dtm2.insertRow(i, sites2i); / 对复选框进行事件处理if (commandString.equals(1) if (xasw.getJck1().isSelected() / 判断复选框是否处于选中状态yuan1 = Integer.parseInt(xasw.getJck1().getText(); else / 注意此处也要进行处理,如果没被选中,则将数目置0yuan1 = 0; if (commandString.equals(5) if (xasw.getJck2().isSelected() / 判断状态y

13、uan5 = Integer.parseInt(xasw.getJck2().getText(); else yuan5 = 0; if (commandString.equals(10) / 判断状态if (xasw.getJck3().isSelected() yuan10 = Integer.parseInt(xasw.getJck3().getText(); else yuan10 = 0; if (commandString.equals(20) / 判断状态if (xasw.getJck4().isSelected() yuan20 = Integer.parseInt(xasw.

14、getJck4().getText(); else yuan20 = 0; if (commandString.equals(提交) / 对提交按钮进行事件处理String str1 = xasw.getJtf1().getText();/ 表示启点String str2 = xasw.getJtf2().getText();/ 表示终点if (str1.equals(str2) JOptionPane.showMessageDialog(null,对不起,您的目的站和始发站在同一地点,您不需要乘车!);String str3 = ;try str3 = xasw.getJtf3().getText();/ 表示所购的票数/ 说明此处需要进行异常处理,否则会出现NumberFormatException异常countTicket = Integer.parseInt(str

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号