Java实现简单计算器、抽票程序

计算器:

  1 import java.awt.BorderLayout;
  2 import java.awt.Container;
  3 import java.awt.Font;
  4 import java.awt.GridLayout;
  5 import java.awt.event.ActionEvent;
  6 import java.awt.event.ActionListener;
  7
  8 import javax.swing.JButton;
  9 import javax.swing.JFrame;
 10 import javax.swing.JOptionPane;
 11 import javax.swing.JPanel;
 12 import javax.swing.JTextField;
 13
 14 public class Calculator extends JFrame implements ActionListener {
 15     // 属性
 16     JTextField txtResult;
 17     String a = "", b = "", operator = "";
 18     boolean beginDigit = false, beginOperator = false,beginEquals=false;
 19     //beginDigit记录此次输入前是否输入数字,beginOpertator记录此次输入前是否输入运算符,用于处理多次连续输入运算符的情况(5+-3)
 20     //beginEquals记录此次输入前是否进行过运算
 21     public Calculator() {
 22         setTitle("计算器");
 23         setSize(240, 270);
 24         setResizable(false);
 25         setLocationRelativeTo(null);
 26         setDefaultCloseOperation(EXIT_ON_CLOSE);
 27
 28         Container contentPane = this.getContentPane();
 29         contentPane.setLayout(new BorderLayout(1, 5));
 30         JPanel pnlNorth = new JPanel();
 31         JPanel pnlCenter = new JPanel();
 32
 33         pnlNorth.setLayout(new BorderLayout());
 34         pnlCenter.setLayout(new GridLayout(4, 4, 3, 3));
 35
 36         Font font = new Font("Times Roman", Font.BOLD, 20);
 37
 38         contentPane.add(BorderLayout.NORTH, pnlNorth);
 39         contentPane.add(BorderLayout.CENTER, pnlCenter);
 40
 41         txtResult = new JTextField();
 42         txtResult.setFont(font);
 43         txtResult.setEnabled(false);
 44         JButton btnClear = new JButton("C");
 45         btnClear.setFont(font);
 46         btnClear.addActionListener(this);
 47
 48         pnlNorth.add(BorderLayout.CENTER, txtResult);
 49         pnlNorth.add(BorderLayout.EAST, btnClear);
 50
 51         String[] captions = { "7", "8", "9", "+", "4", "5", "6", "-", "1", "2", "3", "*", "0", ".", "/", "=", };
 52         for (int i = 0; i < captions.length; i++) {
 53             JButton btn = new JButton(captions[i]);
 54             btn.setFont(font);
 55             pnlCenter.add(btn);
 56             btn.addActionListener(this);
 57         }
 58     }
 59     public static void main(String[] args) {
 60         JFrame frame = new Calculator();
 61         frame.setVisible(true);
 62     }
 63
 64     @Override
 65     public void actionPerformed(ActionEvent event) {
 66         String cmd = event.getActionCommand();
 67         if ("0123456789".contains(cmd)) {
 68             if(beginEquals==true) {//如果之前已进行过运算,再次直接输入数字就需要进行清空
 69                 txtResult.setText("");
 70                 a="";b = "";operator = "";beginDigit=false;
 71             }
 72             if (beginDigit == true) {
 73                 txtResult.setText(txtResult.getText() + cmd);
 74             } else {
 75                 txtResult.setText(cmd);
 76                 beginDigit = true;
 77                 beginEquals=false;//需要进行置换,不然无法进行上一个if语句
 78             }
 79             beginOperator=true;
 80         }
 81         if ("+-*/".contains(cmd)) {
 82             beginEquals=false;
 83             if (operator != ""&&beginOperator==true) {
 84                 if (txtResult.getText() != null) {
 85                     b = txtResult.getText();
 86                     if ("+".equals(operator)) {
 87                         a = String.valueOf(Float.parseFloat(a) + Float.parseFloat(b));
 88                     }if ("-".equals(operator)) {
 89                         a = String.valueOf(Float.parseFloat(a) - Float.parseFloat(b));
 90                     }if ("*".equals(operator)) {
 91                         a = String.valueOf(Float.parseFloat(a) * Float.parseFloat(b));
 92                     }if ("/".equals(operator)) {
 93                         a = String.valueOf(Float.parseFloat(a) / Float.parseFloat(b));
 94                     }
 95                     operator = cmd;//再次记录运算符
 96                     txtResult.setText(a);
 97                 }
 98             } else {
 99                 a = txtResult.getText();
100                 operator = cmd;
101             }
102             beginDigit = false;
103             beginOperator=false;
104         }
105         if (".".equals(cmd)) {
106             if(txtResult.getText().contains(".")) {
107                 JOptionPane.showMessageDialog(null, "不可输入多个小数点!");
108                 a=a.substring(0,a.length()-1);//删除多余的小数点
109                 txtResult.setText(a);
110             }
111             txtResult.setText(txtResult.getText() + cmd);
112         }
113         if ("C".equals(cmd)) {
114             txtResult.setText("");
115             a = "";
116             b = "";
117             operator = "";
118             beginDigit = false;
119             beginOperator=false;
120         }
121         if ("=".equals(cmd)) {
122             b=txtResult.getText();
123             if ("+".equals(operator)) {
124                 a = String.valueOf(Float.parseFloat(a) + Float.parseFloat(b));
125             }if ("-".equals(operator)) {
126                 a = String.valueOf(Float.parseFloat(a) - Float.parseFloat(b));
127             }if ("*".equals(operator)) {
128                 a = String.valueOf(Float.parseFloat(a) * Float.parseFloat(b));
129             }if ("/".equals(operator)) {
130                 a = String.valueOf(Float.parseFloat(a) / Float.parseFloat(b));
131             }
132             txtResult.setText(a);
133             a=txtResult.getText();
134             beginEquals=true;
135             beginDigit=false;
136             beginOperator=false;
137         }
138     }
139 }

抽奖:

 1 import java.util.ArrayList;
 2 import java.util.List;
 3 import java.util.Random;
 4
 5 public class Lottery {
 6     public static void main(String[] args) {
 7         List<Integer> list=new ArrayList<>();
 8         int[] result=new int[6];
 9         for(int i=0;i<32;i++) {
10             list.add(i+1);
11         }
12         Random random=new Random();//记得得初始化一个Random对象
13         for(int i=0;i<result.length;i++) {
14             // 随机生成一个下标,下标的范围不超过list.size()
15             int index=random.nextInt(list.size());
16             //将list中下标为index的数删掉
17             result[i]=list.remove(index);
18         }
19         for(int i=0;i<result.length;i++) {
20             System.out.printf("%02d ",result[i]);
21         }
22     }
23 }

原文地址:https://www.cnblogs.com/LJHAHA/p/10211075.html

时间: 2024-11-11 09:48:07

Java实现简单计算器、抽票程序的相关文章

[Java.web]简单计算器

项目的  WebRoot 目录下的 calculator.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML> <html> <head> <title>计算结果</title> </head> <body> <jsp:us

java实现简单计算器功能

童鞋们,是不是有使用计算器的时候,还要进入运行,输入calc,太麻烦了,有时候甚至还忘记单词怎么拼写,呵呵程序员自己写代码实现,又简单,又方便啊 以下为代码(想要生成可执行工具可参考:http://www.cnblogs.com/holdon521/p/4483966.html) package com; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.

用java实现简单的聊天小程序

该小程序目前还不具有对话功能,只有最基本的登录,显示聊天记录的功能 //登录界面import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JButton;import javax.swing.JTextField;import javax.swing.JPasswordField;import javax.swing.JPanel;import java.awt.GridLayout;import java.aw

Java多线程练习:ticket卖票程序

/*需求:简单的卖票程序多个窗口买票 */ class Ticket extends Thread{    private static int tick=100;    public void run()    {        while(true)        {            if(tick>0)            {                System.out.println(Thread.currentThread().getName()+"sale:--

《java小应用程序(Applet)和java应用程序(Application)分别编写的简单计算器》

Application和Java Applet的区别.Java语言是一种半编译半解释的语言.Java的用户程序分为两类:Java Application和Java Applet.这两类程序在组成结构和执行机制上都有一定的差异,主要体现在以下几方面:(1)运行方式不同.Java Application是完整的程序,可以独立运行:Java Applet程序不能单独运行, 它必须嵌入到用HTML语言编写的Web页面中,通过与Java兼容的浏览器来控制执行.(2)运行工具不同.Java Applicat

JAVA编写的简单计算器

package com.hellojava.practice.test; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; impo

Java对象简单实用(计算器案例)

Java对象简单实用(计算器案例) 对 Java中的对象与属性,方法的使用,简单写了个案例 1 import java.util.Scanner; 2 class Calculste 3 { 4 int a; //定义两个整数 5 int b; 6 String option; //定义接收操作符的字符串 7 public void count(){ 8 9 //对操作符进行判断 10 switch(option){ 11 case "+": 12 System.out.println

简单计算器 java实现hdu1237

简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15190    Accepted Submission(s): 5184 Problem Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,

JAVA学习第六十课 — UDP协议 &amp;基于多线程模拟简单的QQ聊天程序

UDP传输 UDP有发送端和接受端,有两大类,DatagramSocket.DatagramPacket 建立发送端和接收端 建立数据包 调用Socket的接收发送方法 关闭Socket 注意:发送端和接收端是两个独立的运行程序 UDP发送端演示 DatagramPacket(byte[] buf, int length, InetAddress address, int port) 构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号. public static voi