小程序运算
『壹』 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:可无限拓展,较高的自由度,适用于一些功能复杂、对交互、设计有要求的应用,用户可更加方便的长期使用
微信小程序:触手可及,用完即走,开发较为简单,但必须依赖于微信很难进行扩展延伸,即功能受限于微信提供的接口,适用于功能单一、低频的应用
APP:全称为移动应用程序(mobile application),是设计给只能手机、平板电脑等设备运行的一种应用程序,目前主流的移动设备操作系统为Android和iOS,距离2018年发布已超过十年。
微信小程序:是一种不需要下载安装即可使用的应用,用户通过微信扫一扫或搜一搜即可打开,2017年1月正式上线。
APP:面对所有智能手机用户,2017年智能手机用户为26亿。
微信小程序:面对所有微信用户,微信日活超过8亿。
APP:固定在桌面上,随时可用
微信小程序:按照最近使用时间倒序排列,使用时需进行扫码/查找
APP:需要从应用商店下载所对应的安装包,才可使用
微信小程序:通过微信扫描二维码/扫面小程序码/搜索即可进入小程序直接使用
APP:可实现较为完整的功能
微信小程序:因受限于平台仅可实现部分功能,一般小程序功能都较为单一
APP:需要针对不同手机进行适配
微信小程序:一次开发可适配所有手机
APP:开发成本高,开发周期较长
微信小程序:开发成本低,平台已提供较多的接口供使用,开发周期短
APP:中国2017年上线APP为500万左右
微信小程序:上线小程序数量58万
如果细分的话也可以从以下几点来说
1、起源
2、用户群体
3、使用
4、下载
5、功能
6、适配
7、开发周期
8、市场
二,小程序是如何做出来的,
下面我们来看看小程序如何制作。
方法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 脚本文件来处理用户的操作。
如果使用模板功能,一键生成制作使用,花点就制作一个小程序了,是不是很方便。
最后,我想说的是,用对一个工具,选对一种方法,远远比重复的操作来得高效