计算器:

 import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField; public class Calculator extends JFrame implements ActionListener {
// 属性
JTextField txtResult;
String a = "", b = "", operator = "";
boolean beginDigit = false, beginOperator = false,beginEquals=false;
//beginDigit记录此次输入前是否输入数字,beginOpertator记录此次输入前是否输入运算符,用于处理多次连续输入运算符的情况(5+-3)
//beginEquals记录此次输入前是否进行过运算
public Calculator() {
setTitle("计算器");
setSize(240, 270);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE); Container contentPane = this.getContentPane();
contentPane.setLayout(new BorderLayout(1, 5));
JPanel pnlNorth = new JPanel();
JPanel pnlCenter = new JPanel(); pnlNorth.setLayout(new BorderLayout());
pnlCenter.setLayout(new GridLayout(4, 4, 3, 3)); Font font = new Font("Times Roman", Font.BOLD, 20); contentPane.add(BorderLayout.NORTH, pnlNorth);
contentPane.add(BorderLayout.CENTER, pnlCenter); txtResult = new JTextField();
txtResult.setFont(font);
txtResult.setEnabled(false);
JButton btnClear = new JButton("C");
btnClear.setFont(font);
btnClear.addActionListener(this); pnlNorth.add(BorderLayout.CENTER, txtResult);
pnlNorth.add(BorderLayout.EAST, btnClear); String[] captions = { "7", "8", "9", "+", "4", "5", "6", "-", "1", "2", "3", "*", "0", ".", "/", "=", };
for (int i = 0; i < captions.length; i++) {
JButton btn = new JButton(captions[i]);
btn.setFont(font);
pnlCenter.add(btn);
btn.addActionListener(this);
}
}
public static void main(String[] args) {
JFrame frame = new Calculator();
frame.setVisible(true);
} @Override
public void actionPerformed(ActionEvent event) {
String cmd = event.getActionCommand();
if ("0123456789".contains(cmd)) {
if(beginEquals==true) {//如果之前已进行过运算,再次直接输入数字就需要进行清空
txtResult.setText("");
a="";b = "";operator = "";beginDigit=false;
}
if (beginDigit == true) {
txtResult.setText(txtResult.getText() + cmd);
} else {
txtResult.setText(cmd);
beginDigit = true;
beginEquals=false;//需要进行置换,不然无法进行上一个if语句
}
beginOperator=true;
}
if ("+-*/".contains(cmd)) {
beginEquals=false;
if (operator != ""&&beginOperator==true) {
if (txtResult.getText() != null) {
b = txtResult.getText();
if ("+".equals(operator)) {
a = String.valueOf(Float.parseFloat(a) + Float.parseFloat(b));
}if ("-".equals(operator)) {
a = String.valueOf(Float.parseFloat(a) - Float.parseFloat(b));
}if ("*".equals(operator)) {
a = String.valueOf(Float.parseFloat(a) * Float.parseFloat(b));
}if ("/".equals(operator)) {
a = String.valueOf(Float.parseFloat(a) / Float.parseFloat(b));
}
operator = cmd;//再次记录运算符
txtResult.setText(a);
}
} else {
a = txtResult.getText();
operator = cmd;
}
beginDigit = false;
beginOperator=false;
}
if (".".equals(cmd)) {
if(txtResult.getText().contains(".")) {
JOptionPane.showMessageDialog(null, "不可输入多个小数点!");
a=a.substring(0,a.length()-1);//删除多余的小数点
txtResult.setText(a);
}
txtResult.setText(txtResult.getText() + cmd);
}
if ("C".equals(cmd)) {
txtResult.setText("");
a = "";
b = "";
operator = "";
beginDigit = false;
beginOperator=false;
}
if ("=".equals(cmd)) {
b=txtResult.getText();
if ("+".equals(operator)) {
a = String.valueOf(Float.parseFloat(a) + Float.parseFloat(b));
}if ("-".equals(operator)) {
a = String.valueOf(Float.parseFloat(a) - Float.parseFloat(b));
}if ("*".equals(operator)) {
a = String.valueOf(Float.parseFloat(a) * Float.parseFloat(b));
}if ("/".equals(operator)) {
a = String.valueOf(Float.parseFloat(a) / Float.parseFloat(b));
}
txtResult.setText(a);
a=txtResult.getText();
beginEquals=true;
beginDigit=false;
beginOperator=false;
}
}
}

抽奖:

 import java.util.ArrayList;
import java.util.List;
import java.util.Random; public class Lottery {
public static void main(String[] args) {
List<Integer> list=new ArrayList<>();
int[] result=new int[6];
for(int i=0;i<32;i++) {
list.add(i+1);
}
Random random=new Random();//记得得初始化一个Random对象
for(int i=0;i<result.length;i++) {
// 随机生成一个下标,下标的范围不超过list.size()
int index=random.nextInt(list.size());
//将list中下标为index的数删掉
result[i]=list.remove(index);
}
for(int i=0;i<result.length;i++) {
System.out.printf("%02d ",result[i]);
}
}
}

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

  1. [Java.web]简单计算器

    项目的  WebRoot 目录下的 calculator.jsp <%@ page language="java" import="java.util.*" ...

  2. java编写简单的语法分析预测程序

    编译原理课程中,编了一个简单的语法分析预测程序,这个程序时根据固定的文法得到预测分析表,然后编写程序来判断表达式是否会正确推到出来. 前提是程序没有左递归符合LL(1)文法: 文法如下: E→TE' ...

  3. java实现简单计算器功能

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

  4. 用Java实现简单的网络聊天程序

    Socket套接字定义: 套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开.读写和关闭等操作.套接字允许应用程序将I/O插入到网络中,并与网络中的其他 ...

  5. java实现简单计算器

    首先利用字符串数组保存计算器上的按钮的标签名 private final String[] str = {"7","8","9"," ...

  6. C语言初学 简单计算器计算加减乘除程序

    #include<stdio.h> main() { float a,b; char c; printf("输入表达式如a+(* -  /)b:\n"); scanf( ...

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

    /*需求:简单的卖票程序多个窗口买票 */ class Ticket extends Thread{    private static int tick=100;    public void ru ...

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

    Application和Java Applet的区别.Java语言是一种半编译半解释的语言.Java的用户程序分为两类:Java Application和Java Applet.这两类程序在组成结构和 ...

  9. Java语言编写计算器(简单的计算器)

    Java编写的一个简单计算器,本人还比较菜,只能这样了,有点代码冗余,不能连续计算. import javax.swing.*; import java.awt.*; import java.awt. ...

随机推荐

  1. kindeditor用法简单介绍(转)

    1,首先去官网下载http://www.kindsoft.net/ 2,解压之后如图所示: 由于本人做的是用的是JSP,所以ASP,PHP什么的就用不上了,直接把那些去掉然后将整个文件夹扔进Myecl ...

  2. 缺失dll的问题

    不小心运行一下什么程序就会出现缺失xxx.dll的问题,太烦了,遇到好多,一直没有记录.现在开始记录,以便日后查看~ 1. api-ms-win-crt-runtime-l1-1-0.dll 64位系 ...

  3. pod 使用详解

    cd 进去到 项目目录 包含 xcodeproj 结尾的目录下 1 pod init 创建一个pod 文件 2 打开生产的pod 文件 然后 配置pod 文件 并保存  3 pod install 安 ...

  4. 遇到的一个移动端从下往上过渡的弹框,在Android下过渡动画的优化问题。

    优化之前: /* 分享弹框样式 */ .popUpDiv { width: 100vw; height: 100vh; transition: all 0.5s ease; position: fix ...

  5. nginx实践(四)之静态资源web服务(防盗链)

    防盗链目的 防止资源被盗用 http_refer 主要是判断refer信息,判断请求来源是不是合法身份 语法 实例 参数说明: none表示允许没有代理的头信息过来,blocked表示refer信息不 ...

  6. Java的动手动脑(四)

    日期:2018.10.18 星期四 博客期:019 Part1:回答为啥会报错 答案:当然会报错啦!因为平常的编程过程中,系统会对我们写的类自动生成一个默认无参形式的构造方法,类似于C++中的体制!这 ...

  7. PXE+HTTP+TFTP+Kickstart实现无人值守部署centos6.10

    在联网的状态下安装所需软件: Shell> yum install dhcp httpd tftp-server xinetd syslinux system-config-kickstart ...

  8. appium+python测试app使用相对坐标定位元素

    我们获取到的是绝对坐标,如果换一个屏幕分辨率不同的手机那这个坐标自然会发生变化,要实现不同手机均能实现点击同一控件自然要用到相对坐标了,具体方法如下: 1.获取当前空间的绝对坐标(x1,y1),开启指 ...

  9. 数据结构c++实现代码-链表

    /*节点Node的相关声明与定义*/ //Node.h #include<iostream> using namespace std; template<typename T> ...

  10. docker日志清理

    前言:docker运行久了,会发现它的映射磁盘空间爆满,尤其是yum安装的docker的 解决方法: 1. 用脚本清理,一般yum安装的docker,其存储空间一般都在/var/lib/docker/ ...