对于该系统,主要是针对不同的人群有不同的价格,成人是原价,老人是5折,小孩是3折,其UML图如下

这里给出了每一个类的实现,运行结果如下

YongTicket类


public class YongTickt extends Ticket{public YongTickt() {}public YongTickt(float price) {this.setPrice(price);}@Overridepublic float singlePrice() {return this.getPrice();}
}

ChikdTicket类

public class ChildTicket extends Ticket{public ChildTicket() {}public ChildTicket(float price) {this.setPrice(0.3f*price);}@Overridepublic float singlePrice() {return this.getPrice();}
}

OldTicket类

public class OldTicket extends Ticket {public OldTicket(){}public OldTicket(float price) {this.setPrice(0.5f*price);}@Overridepublic float singlePrice() {return this.getPrice();}
}

Ticket类


public abstract class Ticket {public float price;public Ticket(){}public Ticket(float price) {this.price = price;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}abstract float singlePrice();
}

然后就是界面和实现了,TicketJFrame类

import java.awt.*;public class TicketJFrame extends javax.swing.JFrame {public TicketJFrame() {initComponents();}@SuppressWarnings("unchecked")// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponentsprivate void initComponents() {jLabel1 = new javax.swing.JLabel();jLabel2 = new javax.swing.JLabel();jLabel3 = new javax.swing.JLabel();jLabel4 = new javax.swing.JLabel();jLabel5 = new javax.swing.JLabel();jButton1 = new javax.swing.JButton();jTextField1 = new javax.swing.JTextField();jTextField2 = new javax.swing.JTextField();jTextField3 = new javax.swing.JTextField();jTextField4 = new javax.swing.JTextField();jLabel6 = new javax.swing.JLabel();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);jLabel1.setText("没票标准单价       ");jLabel2.setText("成人票");jLabel3.setText("老人票5折");jLabel4.setText("儿童票3折");jLabel5.setText("总价");jButton1.setText("计算");jButton1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jButton1ActionPerformed(evt);}});jTextField1.setText("100");jTextField2.setText("1");jTextField3.setText("1");jTextField4.setText("1");jLabel6.setText("180.0");javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false).addGroup(layout.createSequentialGroup().addGap(31, 31, 31).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLabel3).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLabel2).addComponent(jLabel4).addComponent(jLabel5)).addGap(74, 74, 74).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLabel6).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false).addComponent(jTextField3, javax.swing.GroupLayout.DEFAULT_SIZE, 92, Short.MAX_VALUE).addComponent(jTextField2).addComponent(jTextField4)))))).addGroup(layout.createSequentialGroup().addGap(14, 14, 14).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jButton1).addGroup(layout.createSequentialGroup().addComponent(jLabel1).addGap(52, 52, 52).addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 92, Short.MAX_VALUE))))).addContainerGap(164, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(30, 30, 30).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel1).addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(23, 23, 23).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel2).addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel3).addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(28, 28, 28).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel4).addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(24, 24, 24).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel5).addComponent(jLabel6)).addGap(18, 18, 18).addComponent(jButton1).addContainerGap(16, Short.MAX_VALUE)));pack();}// </editor-fold>//GEN-END:initComponentsprivate void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed// TODO add your handling code here://float standardPrice = Float.parseFloat(this.jLabel1.getText());float standardPrice = Float.parseFloat(jTextField1.getText());YongTickt yong = new YongTickt(standardPrice);OldTicket old = new OldTicket(standardPrice);ChildTicket child = new ChildTicket(standardPrice);float num = (float) (yong.singlePrice()*Float.parseFloat(jTextField2.getText())+ old.singlePrice()*Float.parseFloat(jTextField3.getText())+ child.singlePrice()*Float.parseFloat(jTextField4.getText()));//        System.out.println(standardPrice);
//        System.out.println(yong);
//        System.out.println(old);
//        System.out.println(child);jLabel6.setText(String.valueOf(num));//System.out.println("hello");}//GEN-LAST:event_jButton1ActionPerformed/*** @param args the command line arguments*/public static void main(String args[]) {try {for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {if ("Nimbus".equals(info.getName())) {javax.swing.UIManager.setLookAndFeel(info.getClassName());break;}}} catch (ClassNotFoundException ex) {java.util.logging.Logger.getLogger(TicketJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);} catch (InstantiationException ex) {java.util.logging.Logger.getLogger(TicketJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);} catch (IllegalAccessException ex) {java.util.logging.Logger.getLogger(TicketJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);} catch (javax.swing.UnsupportedLookAndFeelException ex) {java.util.logging.Logger.getLogger(TicketJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);}//</editor-fold>/* Create and display the form */java.awt.EventQueue.invokeLater(new Runnable() {public void run() {new TicketJFrame().setVisible(true);}});}// Variables declaration - do not modify//GEN-BEGIN:variablesprivate javax.swing.JButton jButton1;private javax.swing.JLabel jLabel1;private javax.swing.JLabel jLabel2;private javax.swing.JLabel jLabel3;private javax.swing.JLabel jLabel4;private javax.swing.JLabel jLabel5;private javax.swing.JLabel jLabel6;private javax.swing.JTextField jTextField1;private javax.swing.JTextField jTextField2;private javax.swing.JTextField jTextField3;private javax.swing.JTextField jTextField4;// End of variables declaration//GEN-END:variables
}

Java实现计算景区门票GUI版(入门)相关推荐

  1. java中的gui_java gui快速入门教程

    JCheckBox和JRadioButton使用示例 import java.awt.*; import javax.swing.*; class Hobby extends JPanel { JCh ...

  2. 实现景区门票计费系统(Java抽象类练习含GUI窗体组件)

    需要为一个景区实现计算景区门票的程序,已知成年人的门票价格是100元,儿童票打3折,老年票打5折.使用抽象类来为任意多张不同类型的票计算总价.其UML类图如下所示. 要求能够输入不同类型门票的数量,输 ...

  3. java抽象问题出租车计费_java抽象类实现计算景区门票

    需要为一个景区实现计算景区门票的程序,已知成年人的门票价格是100元,儿童票打3折,老年票打5折.使用抽象类来为任意多张不同类型的票计算总价.其UML类图如下所示. 程序实现结果如下图所示: 要求:给 ...

  4. 实现计算景区门票打折界面(JAVA界面设计)

    题目描述:需要为一个景区实现计算景区门票的程序,已知成年人的门票价格是100元,儿童票打3折,老年票打5折.使用抽象类来为任意多张不同类型的票计算总价.其UML类图如下所示. 解题思路:本题为我们老师 ...

  5. Java 基本功之(一)入门知识点

    转载自https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/basis/Java%E5%9F%BA%E7%A1%80%E7%9F% ...

  6. HDU2002 计算球体积【入门】

    计算球体积 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  7. 史上最强《Java 开发手册》泰山版王者归来!

    转存失败重新上传取消 阿里妹导读:潜力修炼一年之久的<Java 开发手册(泰山版)>今天发布!此次共计新增 34 条规约,修改描述 90 处,其中错误码规则更是第一次提出完整的解决方案,大 ...

  8. 从GitHub火到了博客,共计1658页的《Java岗面试核心MCA版》,拿走不谢

    2019年我凭借一份<Java面试核心知识点>成功拿下了阿里.字节.小米等大厂的offer,两年的时间,为了完成我给自己立的flag(拿下一线互联网企业offer大满贯),即使在职也一直在 ...

  9. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

最新文章

  1. 单调栈 or 线段树扫描线 ---- E. Delete a Segment [单调栈+二分] [扫描线处理空白位置的技巧乘2]
  2. 某程序员哀叹工资低:二本计算机毕业,四年前端开发,年包才四十万!薪资真的和学历挂钩吗?...
  3. Robot Framework Webdriver For Firefox FQA
  4. java 常用十种设计模式示例归纳 | 已打包请带走
  5. SAP HANA云平台YaaS,你不知道的三件事
  6. How to Set up SSH Tunneling (Port Forwarding)?
  7. 【视觉项目】【day4】8.24号实验记录(消除瓶子内部“边缘”)
  8. ElasticSearch highlight搜索结果高亮显示(英文检索)
  9. OpenEIM以前在合作伙伴做的时候
  10. Linux内核网络协议栈4-创建socket(2)
  11. Python基础笔记(一)数据类型、变量、字符串
  12. 阵列信号处理仿真一——延时求和滤波器
  13. 【C语言程序设计(2020版)】C语言基础入门教程,零基础教学视频教程
  14. King Arthur's Knights 【HDU - 4337】【哈密顿回路性质Dirac定理】
  15. excel超链接报本机限制问题
  16. 【PAT算法之路】 -- 专栏总揽
  17. 高三计算机教学计划,高三上学期教学教学计划集锦5篇
  18. 纯css实现乌云密布的天气图标
  19. CAD高版本窗体阵列LISP_[转载]AutoCAD高版本怎么把阵列对话框调出来?
  20. android usb type-c

热门文章

  1. CSliderCtrl鼠标点击精确定位
  2. 【C012】Python - 基础教程学习(三)
  3. 张季跃 201771010139《面向对象程序设计(java)》第十八周学习总结
  4. hadoop中的helloword
  5. css3鼠标悬停图片抖动效果
  6. delphi 演示数据路径
  7. Nginx启动报错误unlink() “nginx.pid” failed (2: No such file or directory)
  8. 玩转Linux系统用户管理
  9. html5怎么在index设置背景,index.html · huangliusong/HTML5Canvas知乎登录页面动态线条背景动画代码 - Gitee.com...
  10. 02-01 Python 安装与pip