计算器:

 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. python 爬虫简化树状图

  2. Android UiAutomator2.0

    一.环境搭建 JDK(java环境).SDK(adb appt环境),这两个已经不想再叙述了直接看详见--> android studio 安装,下载地址:https://developer.a ...

  3. Redis事务概念

    redis事务与监控 Author:SimpleWu GitHub-redis 在redis中它的事务与批处理非常相似 Redis中的事务(transaction)是一组命令的集合.事务同命令一样都是 ...

  4. python并发编程之进程池,线程池,协程

    需要注意一下不能无限的开进程,不能无限的开线程最常用的就是开进程池,开线程池.其中回调函数非常重要回调函数其实可以作为一种编程思想,谁好了谁就去掉 只要你用并发,就会有锁的问题,但是你不能一直去自己加 ...

  5. laravel 视图

    在实际开发中,除了 API 路由返回指定格式数据对象外,大部分 Web 路由返回的都是视图,以便实现更加复杂的页面交互,我们在前面已经看到过了视图的定义方式: return view('以.分隔的视图 ...

  6. Deal with Warning: mysqli::__construct(): (HY000/2002)

    1.安装XAMPP之后,如果之前安装过MySQL或者 apache,启动XAMPP中的响应的服务的时候回出现报错, 出错的原因,具体看报错的原因,如果是端口占用,在配置中修改端口号,如果是提示 “Fo ...

  7. python网络爬虫笔记(二)

    一.函数调用的默认设置 1.def enroll(name,grnder,age=4,city='Shanghai'): print (''name:',name) print (''gender', ...

  8. python函数之各种器

    一: 装饰器 1:装饰器模板 def wrapper(func): def inner(*args,**kwargs): ret =func(*args,**kwargs) return ret re ...

  9. ServerSocket实现超简单HTTP服务器

    1.相关知识简介 HTTP协议 HTTP是常用的应用层协议之一,是面向文本的协议.HTTP报文传输基于TCP协议,TCP协议包含头部与数据部分,而HTTP则是包含在TCP协议的数据部分,如下图 HTT ...

  10. Python推荐系统库--Surprise实战

    一.使用movieLens数据集 from surprise import KNNBasic, SVD from surprise import Dataset from surprise impor ...