『壹』 java:编写一个计算器小程序,要求可以做加减乘除运算

kankan我的

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.math.BigDecimal;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class TestCalc implements ActionListener {
JFrame jf = new JFrame("计算器");
JPanel jp = new JPanel();
JTextField jtf = new JTextField("0.", 200);
JButton[] jb = new JButton[20];
private int tag = 0;
private double a;
private double b;
private String operator;
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();

public TestCalc() {

jf.add(jtf, BorderLayout.NORTH);
// jtf.requestFocus();
jtf.setEditable(false);
jtf.setCaretPosition(jtf.getText().length() - 1);
jf.add(jp);
jp.setLayout(new GridLayout(5, 4, 4, 4));
String[] str = { "Back", "CE", "C", "+", "7", "8", "9", "-", "4", "5",
"6", "*", "1", "2", "3", "/", "0", "+/-", ".", "=" };
int i = 0;
for (i = 0; i < str.length; i++) {
jb[i] = new JButton(str[i]);

jp.add(jb[i]);
jb[i].addActionListener(this);
}

jf.setSize(300, 240);
// jf.setLocation(300,200);
jf.setLocationRelativeTo(null);
jf.setVisible(true);
// jf.pack();//自动调整大小;
jf.setResizable(false);// 不允许别人调大小;
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {

TestCalc tc = new TestCalc();

}

public void actionPerformed(ActionEvent e) {

String command = e.getActionCommand();
if (command.matches("^[[0-9].]$")) {
if (tag == 0) {
sb1.append(command);
jtf.setText(sb1.substring(0));
} else {
sb2.append(command);
jtf.setText(sb2.substring(0));
}

} else if (command.matches("^[-/*+]$")) {
tag = 1;
operator = command;

} else {
if (command.matches("=")) {
String str1 = sb1.substring(0);
String str2 = sb2.substring(0);
if (str1 == null) {
a = 0.0;
} else {
a = Double.parseDouble(str1);
}
if (str2 == null) {
b = 0.0;
} else {
b = Double.parseDouble(str2);
}

if (operator.equals("+")) {
jtf.setText("" + (a + b));
} else if (operator.equals("-")) {
BigDecimal bd1 = new BigDecimal(Double.toString(a)); // 必须使用String做参数才可以精确运算
BigDecimal bd2 = new BigDecimal(Double.toString(b));
Double yu1 = bd1.subtract(bd2).doubleValue();
jtf.setText("" + (yu1));
} else if (operator.equals("*")) {
jtf.setText("" + (a * b));
} else if (operator.equals("/")) {
BigDecimal bd1 = new BigDecimal(Double.toString(a)); // 必须使用String做参数才可以精确运算
BigDecimal bd2 = new BigDecimal(Double.toString(b));
Double yu1 = bd1.divide(bd2).doubleValue();
jtf.setText("" + yu1);
}
tag = 0;
sb1.delete(0, sb1.length());
sb2.delete(0, sb2.length());
} else if (command.matches("C")) {
tag = 0;
sb1.delete(0, sb1.length());
sb2.delete(0, sb2.length());
jtf.setText("0.");
jtf.setCaretPosition(jtf.getText().length() - 1);
} else if (command.matches("CE")) {
tag = 0;
sb2.delete(0, sb2.length());
jtf.setText(sb1.substring(0));
} else if (command.matches("Back")) {//Back功能键的实现;
if (tag == 0) {
sb1.deleteCharAt(sb1.length() - 1);
jtf.setText(sb1.substring(0));
} else {
sb2.deleteCharAt(sb2.length() - 1);
jtf.setText(sb2.substring(0));
}

} else if (command.matches("\\+/-")) {
if (tag == 0) {
if(sb1.substring(0,1).equals("-")){
sb1.replace(0,1,"+");
}else{
sb1.insert(0, "-");
}

jtf.setText(sb1.substring(0));
} else {
if(sb2.substring(0,1).equals("-")){
sb2.replace(0,1,"+");
}else{
sb2.insert(0, "-");
}
jtf.setText(sb2.substring(0));
}

}else {

}
}
}

}

『贰』 小程序是怎么做出来的和APP有什么区别

一、小程序和APP有什么区别

商机,我觉得小程序或是APP都需要一个好的点子+超强的执行力+运气,但是小程序在微信中更易传播、用户进入门槛更低。

只要小程序有意思、有新意很有可能能获取井喷式的用户增长,比如之前的朋友印象、工具类的传图识字等等。

区别的话主要是:

  • APP:可无限拓展,较高的自由度,适用于一些功能复杂、对交互、设计有要求的应用,用户可更加方便的长期使用

  • 微信小程序:触手可及,用完即走,开发较为简单,但必须依赖于微信很难进行扩展延伸,即功能受限于微信提供的接口,适用于功能单一、低频的应用

  • 如果细分的话也可以从以下几点来说

    1、起源

  • APP:全称为移动应用程序(mobile application),是设计给只能手机、平板电脑等设备运行的一种应用程序,目前主流的移动设备操作系统为Android和iOS,距离2018年发布已超过十年。

  • 微信小程序:是一种不需要下载安装即可使用的应用,用户通过微信扫一扫或搜一搜即可打开,2017年1月正式上线。

  • 2、用户群体

  • APP:面对所有智能手机用户,2017年智能手机用户为26亿。

  • 微信小程序:面对所有微信用户,微信日活超过8亿。

  • 3、使用

  • APP:固定在桌面上,随时可用

  • 微信小程序:按照最近使用时间倒序排列,使用时需进行扫码/查找

  • 4、下载

  • APP:需要从应用商店下载所对应的安装包,才可使用

  • 微信小程序:通过微信扫描二维码/扫面小程序码/搜索即可进入小程序直接使用

  • 5、功能

  • APP:可实现较为完整的功能

  • 微信小程序:因受限于平台仅可实现部分功能,一般小程序功能都较为单一

  • 6、适配

  • APP:需要针对不同手机进行适配

  • 微信小程序:一次开发可适配所有手机

  • 7、开发周期

  • APP:开发成本高,开发周期较长

  • 微信小程序:开发成本低,平台已提供较多的接口供使用,开发周期短

  • 8、市场

  • APP:中国2017年上线APP为500万左右

  • 微信小程序:上线小程序数量58万

二,小程序是如何做出来的,

下面我们来看看小程序如何制作。

方法1、微信官方简易教程

我们先来看看微信官网给出的简易教程。

起步基础,注册小程序帐号之后,需要安装开发工具,然后在官方开发工具里面输入代码制作。

基础代码构成:

JSON 配置:

我们可以看到在项目的根目录有一个 app.json 和 project.config.json,此外在 pages/logs 目录下还有一个 logs.json,我们依次来说明一下他们的用途。小程序配置 app.json,app.json 是对当前小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间、底部 tab 等

WXML 模板:

从事过网页编程的人知道,网页编程采用的是 HTML + CSS + JS 这样的组合,其中 HTML 是用来描述当前这个页面的结构,CSS 用来描述页面的样子,JS 通常是用来处理这个页面和用户的交互。

WXSS 样式:

WXSS 具有 CSS 大部分的特性,小程序在 WXSS 也做了一些扩充和修改。新增了尺寸单位。在写 CSS 样式时,开发者需要考虑到手机设备的屏幕会有不同的宽度和设备像素比,采用一些技巧来换算一些像素单位。WXSS 在底层支持新的尺寸单位 rpx ,开发者可以免去换算的烦恼,只要交给小程序底层来换算即可,由于换算采用的浮点数运算,所以运算结果会和预期结果有一点点偏差。提供了全局的样式和局部样式。和前边 app.json, page.json 的概念相同,你可以写一个 app.wxss 作为全局样式,会作用于当前小程序的所有页面,局部页面样式 page.wxss 仅对当前页面生效。此外 WXSS 仅支持部分 CSS 选择器

JS 交互逻辑:

一个服务仅仅只有界面展示是不够的,还需要和用户做交互:响应用户的点击、获取用户的位置等等。在小程序里边,我们就通过编写 JS 脚本文件来处理用户的操作。

如果使用模板功能,一键生成制作使用,花点就制作一个小程序了,是不是很方便。

最后,我想说的是,用对一个工具,选对一种方法,远远比重复的操作来得高效