计算器:

 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. Confluence 6 重构查找索引

    查找索引是自动维护的,但是你有时候可能会因为你在查找的时候或查看者邮件主题出现了异常,或者你的 Confluence 实例升级到了新的版本,你可能需要手动重构索引. 进行搜索索引重构: 在屏幕的右上角 ...

  2. 水果(map的嵌套)

    夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了 ...

  3. python SSL处理

    浏览器SSL提示 我们看一下IE的解决方案,对ie浏览器而言,需要添加Desired Capabilities的acceptSslCerts选项为True,代码如下: 的 112 / 166 #_*_ ...

  4. 引用的作用&引用与指针的区别

    引入 C语言中函数有两种传参的方式: 传值和传址.以传值方式, 在函数调用过程中会生成一份临时变量用形参代替, 最终把实参的值传递给新分配的临时变量即形参. 它的优点是避免了函数调用的一些副作用, 但 ...

  5. Pthon面向对象之基础

    命名空间 class Course: language = 'Chinese' def __init__(self,teacher,name,period,price): self.teacher = ...

  6. Two Sum【LeetCode】

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  7. The.Glory.of.Innovation 创新之路3放飞好奇

    教育最重要的就是 问题不在于教他各种学问,而在于培养他爱好学问的兴趣,而且在这种兴趣充分增长起来的时候,教他以研究学问的方法. ————  卢梭     如何辨识不同的观点, 老师考查的重点不在于学生 ...

  8. python 装饰器(1)

    # 装饰器,对一个函数打扮 # def foo():# print("foo")# foo# foo()# def test1():# print('-----1-----')# ...

  9. Java数据类型Stack栈、Queue队列、数组队列和循环队列的比较

    判断括号是否匹配:调用java本身 import java.util.Stack; public class Solution { public boolean isValid(String s){ ...

  10. Git推送错误Remote: User permission denied错误解决方法

    用了别的同事的电脑,推送代码,报错. 解决方法: 修改别人的密码,改成自己的账号和密码就可以了.