① 求一个java编辑的计算器小程序,最好带详细讲解的,瞎转的就算了。感激不尽
import java.awt.*;
import java.awt.event.*;
class CalcAppDemo extends Frame{
private TextField t_result;
private Panel p_main;//主面板
private Panel p_num;//数字面板
private Panel p_oper;//操作符面板
private Panel p_show;//显示面板
private Button b_num[];//数字按钮
private Button b_oper[];//操作符按钮
public CalcAppDemo(String title){
setTitle(title);
t_result = new TextField("0.0",21);
p_main = new Panel();
p_num = new Panel();
p_oper = new Panel();
p_show = new Panel();
p_main.setLayout(new BorderLayout());
p_num.setLayout(new GridLayout(4,3,1,1));
p_oper.setLayout(new GridLayout(4,2,1,1));
b_num = new Button[12];
for(int i = 0;i < 9;i++){
b_num[i] = new Button(new Integer(i+1).toString());
}
b_num[9] = new Button("0");
b_num[10] = new Button("cls");
b_num[11] = new Button(".");
for(int i = 0;i < 12;i++){
p_num.add(b_num[i]);
}
b_oper = new Button[8];
b_oper[0] = new Button("+");
b_oper[1] = new Button("-");
b_oper[2] = new Button("*");
b_oper[3] = new Button("/");
b_oper[4] = new Button("pow");
b_oper[5] = new Button("sqrt");
b_oper[6] = new Button("+/-");
b_oper[7] = new Button("=");
for(int i = 0;i < 8;i++){
p_oper.add(b_oper[i]);
}
t_result.setEditable(false);
p_show.add(t_result,BorderLayout.NORTH); //文本框在显示面板的北边
p_main.add(p_show,BorderLayout.NORTH); //显示面板在主面板备租上的北边
p_main.add(p_num,BorderLayout.WEST);
p_main.add(p_oper,BorderLayout.EAST); //操作符面板在主面板上的东边
this.add(p_main,BorderLayout.CENTER); //主面板在框架(主窗口)的中间
setSize(400,400);
setResizable(false);
pack();
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
ButtonListener bl = new ButtonListener(); //监听器对象
for(int i=0;i<12;i++){
b_num[i].addActionListener(bl); //注册监仿型兆听器租悄
}
for(int i = 0;i < 8;i++){
b_oper[i].addActionListener(bl);
}
}
class ButtonListener implements ActionListener { //监听器类是内部类
private String lastOp; //存储上一次操作符
private String strVal; //存储数字对应的字符串
private double total; //总数
private double number; //存储新输入的数
private boolean firsttime;//判断是否第一次按下的是操作符按钮
private boolean operatorPressed;//判断是否已经按过操作符按钮
ButtonListener( ){
firsttime = true;
strVal = "";
}
//事件处理器
public void actionPerformed( ActionEvent e ){
String s = ((Button)e.getSource()).getLabel().trim();
if(Character.isDigit(s.charAt(0))){ //判断是操作数还是操作符
handleNumber(s);
}else{
calculate(s); //计算
}
}
//判断是一元操作符还是二元操作符,并根据操作符类型做计算
void calculate( String op ){
operatorPressed = true;
if(firsttime&&!isUnary(op)){
total = getNumberOnDisplay();
firsttime = false;
}
if (isUnary(op)){
handleUnaryOp(op);
}
else if (lastOp != null){
handleBinaryOp(lastOp);
}
if (!isUnary(op)){ //存储上一次按下的操作符
lastOp = op;
}
}
//判断是否是一元操作符
boolean isUnary(String s){
return s.equals( "=" )
|| s.equals( "cls" )
|| s.equals( "sqrt" )
|| s.equals( "+/-" )
|| s.equals( "." );
}
//处理一元操作符
void handleUnaryOp( String op ){
if ( op.equals( "+/-" ) ){
//将显示框中的数字取反
number = negate(getNumberOnDisplay()+"");
t_result.setText("");
t_result.setText( number + "");
return;
}else if (op.equals(".")){
handleDecPoint();
return;
}else if(op.equals("sqrt")){
number = Math.sqrt(getNumberOnDisplay());
t_result.setText("");
t_result.setText(number+"");
return;
}else if(op.equals("=")){
//在按下"="前已经按下一个二元运算符
if(lastOp!=null&&!isUnary(lastOp)){
handleBinaryOp(lastOp);
}
lastOp=null;
firsttime=true;
return;
}else{
clear();
}
}
//处理二元运算符
void handleBinaryOp(String op){
if(op.equals("+")){
total += number;
}else if(op.equals("-")){
total -= number;
}else if(op.equals("*")){
total *= number;
}else if(op.equals("/")){
try{ //异常处理
total /=number;
}catch(ArithmeticException ae){ }
}else if(op.equals("pow"))
total=Math.pow(total,number);
// t_result.setText("");
lastOp = null;
// strVal = "";
number = 0;
t_result.setText(total+"");
}
//该方法用于处理数字按钮
void handleNumber(String s){
if (!operatorPressed){ //连接按下的数字按钮的值
strVal+=s;
}
else{ //当按下操作符按钮时,清除strVal并存储输入的第一个数值
operatorPressed = false;
strVal = s;
}
//将strVal转换为double
number=new Double(strVal).doubleValue();
t_result.setText("");
t_result.setText(strVal);
}
//该方法用于按下"."按钮
void handleDecPoint(){
operatorPressed = false;
//如果该字符串中无".",放置一个"."在字符串末尾
if ( strVal.indexOf( "." ) < 0 ) {
strVal+=".";
}
t_result.setText("");
t_result.setText( strVal );
}
//该方法用于将一个数求反
double negate( String s ){
operatorPressed = false;
//如果是一个整数,去掉小数点后面的0
if ( number == ( int ) number ){
s = s.substring(0, s.indexOf( "." ) );
}
//如果无"-"增加在该数的前面
if ( s.indexOf( "-" ) < 0 ){
strVal = "-"+s;
}
else{//如果有"-"则去掉
strVal = s.substring( 1 );
}
return new Double( strVal ).doubleValue();
}
//将显示框中的值转换为Double
double getNumberOnDisplay() {
return new Double(t_result.getText()).doubleValue();
}
//清除屏幕并设置所有的标识
void clear(){
firsttime = true;
lastOp = null;
strVal = "";
total = 0;
number = 0;
t_result.setText("0");
}
}
public static void main(String args[]){
CalcAppDemo c = new CalcAppDemo("简单的计算器程序");
c.setVisible(true);
}
}
//这是我以前写的,参考一下吧
② 微信小程序 加法计算器
1、新建目录calc
2、pages加上
"pages/calc/calc",
3、 calc.wxml
<view class="container">
<input placeholder="老码被加数" bindinput="bindInput1" />
<input placeholder="加数" bindinput="bindInput2" />
<button type="primary" bindtap="bindAdd">计算</button>
<input placeholder="侍蠢哪结果" value="{{result}}" disabled />
</view>
4、calc.wxss
/* pages/calc/calc.wxss */
.container{
justify-content: flex-start;
padding: 30rpx 0;
}
.container input{
background-color: #eee;
border-radius:3px;
text-align:left;
width:720rpx;
height:100rpx;
line-height:100rpx;
margin:20rpx;
}
.container button{
width:80%;
}
5、calc.json
{
"navigationBarBackgroundColor":"#00ff00",
"navigationBarTitleText":"加法计算器",
"navigationBarTextStyle"档毁:"white",
"usingComponents": {}
}
6、calc.js
// pages/calc/calc.js
Page({
/**
③ 用C语言编一个简单的计算器小程序
你说的是 vc 还是 tc 啊???
其他的运算:
#include <stdio.h>
int add(int x,int y) {return x+y;}
int sub(int x,int y) {return x-y;}
int mul(int x,int y) {return x*y;}
int div(int x,int y) {return x/y;}
int (*func[])()={add,sub,mul,div};
int num,curch;
char chtbl[]="+-*/()=";
char corch[]="+-*/()=0123456789";
int getach() {
int i;
while(1) {
curch=getchar();
if(curch==EOF) return -1;
for(i=0;corch[i]&&curch!=corch[i];i++);
if(i<strlen(corch)) break;
}
return curch;
}
int getid() {
int i;
if(curch>='0'&&curch<='9') {
for(num=0;curch>='0'&&curch<='9';getach()) num=10*num+curch-'0';
return -1;
}
else {
for(i=0;chtbl[i];i++) if(chtbl[i]==curch) break;
if(i<=5) getach();
return i;
}
}
int cal() {
int x1,x2,x3,op1,op2,i;
i=getid();
if(i==4) x1=cal(); else x1=num;
op1=getid();
if(op1>=5) return x1;
i=getid();
if(i==4) x2=cal(); else x2=num;
op2=getid();
while(op2<=4) {
i=getid();
if(i==4) x3=cal(); else x3=num;
if((op1/2==0)&&(op2/2==1)) x2=(*func[op2])(x2,x3);
else {
x1=(*func[op1])(x1,x2);
x2=x3;
op1=op2;
}
op2=getid();
}
return (*func[op1])(x1,x2);
}
void main(void) {
int value;
printf("Please input an expression:\n");
getach();
while(curch!='=') {
value=cal();
printf("The result is:%d\n",value);
printf("Please input an expression:\n");
getach();
}
}
只能 + - * /
④ java:编写一个计算器小程序,要求可以做加减乘除运算
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener{
private static final long serialVersionUID = 8199443193151152362L;
private JButton bto_s=new JButton("sqrt"),bto_zf=new JButton("+/-"),bto_ce=new JButton("CE"),bto_c=new JButton("C"),bto_7=new JButton("7"),
bto_8=new JButton("8"),bto_9=new JButton("9"),bto_chu=new JButton("/"),bto_4=new JButton("4"),bto_5=new JButton("5"),
bto_6=new JButton("6"),bto_cheng=new JButton("*"),bto_1=new JButton("1"),bto_2=new JButton("2"),bto_3=new JButton("3"),
bto_jian=new JButton("-"),bto_0=new JButton("0"),bto_dian=new JButton("."),bto_deng=new JButton("="),bto_jia=new JButton("+");
JButton button[]={bto_s,bto_zf,bto_ce,bto_c,bto_7,bto_8,bto_9,bto_chu,bto_4,bto_5,bto_6,bto_cheng,bto_1,bto_2,bto_3,bto_jian,
bto_0,bto_dian,bto_deng,bto_jia};
private JTextField text_double;// = new JTextField("0");
private String operator = "="; //当前运算的运算符
private boolean firstDigit = true; // 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字
private double resultNum = 0.0; // 计算的中间结果
private boolean operateValidFlag = true; //判断操作是否合法
public Calculator()
{
super("Calculator");
this.setBounds(300, 300, 300, 300);
this.setResizable(false);
this.setBackground(Color.orange);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.getContentPane().setLayout(new BorderLayout());//设置布局
text_double=new JTextField("0",20);//设置文本区
text_double.setHorizontalAlignment(JTextField.RIGHT);//设置水平对齐方式未右对齐
this.getContentPane().add(text_double,BorderLayout.NORTH);//将文本区添加到Content北部
JPanel panel=new JPanel(new GridLayout(5,4));//在内容窗口添加一个网格布局
this.getContentPane().add(panel);//添加panel面板
for(int i=0;i<button.length;i++)//在面板上添加按钮
panel.add(button[i]);
for(int i=0;i<button.length;i++)
button[i].addActionListener(this);//为按钮注册
text_double.setEditable(false);//文本框不可编辑
text_double.addActionListener(this);//
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)//
{
String c= e.getActionCommand();//返回与此动作相关的命令字符串。
System.out.println("##########command is "+c);
if(c.equals("C")){
handleC(); //用户按了“C”键
}
else if (c.equals("CE")) // 用户按了"CE"键
{
text_double.setText("0");
}
else if ("0123456789.".indexOf(c) >= 0) // 用户按了数字键或者小数点键
{
handleNumber(c); // handlezero(zero);
} else //用户按了运算符键
{
handleOperator(c);
}
}
private void handleC() // 初始化计算器的各种值
{
text_double.setText("0");
firstDigit = true;
operator = "=";
}
private void handleNumber(String button) {
if (firstDigit)//输入的第一个数字
{
text_double.setText(button);
} else if ((button.equals(".")) && (text_double.getText().indexOf(".") < 0))//输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面
//如果字符串参数作为一个子字符串在此对象中出现,则返回第一个这种子字符串的第一个字符的索引;如果它不作为一个子字符串出现,则返回 -1
{
text_double.setText(text_double.getText() + ".");
} else if (!button.equals("."))// 如果输入的不是小数点,则将数字附在结果文本框的后面
{
text_double.setText(text_double.getText() + button);
}
// 以后输入的肯定不是第一个数字了
firstDigit = false;
}
private void handleOperator(String button) {
if (operator.equals("/")) {
// 除法运算
// 如果当前结果文本框中的值等于0
if (getNumberFromText() == 0.0){
// 操作不合法
operateValidFlag = false;
text_double.setText("除数不能为零");
} else {
resultNum /= getNumberFromText();
}
} else if (operator.equals("+")){
// 加法运算
resultNum += getNumberFromText();
} else if (operator.equals("-")){
// 减法运算
resultNum -= getNumberFromText();
} else if (operator.equals("*")){
// 乘法运算
resultNum *= getNumberFromText();
} else if (operator.equals("sqrt")) {
// 平方根运算
if(getNumberFromText()<0){
operateValidFlag = false;
text_double.setText("被开方数不能为负数");}
else
resultNum = Math.sqrt(resultNum);
}
else if (operator.equals("+/-")){
// 正数负数运算
resultNum = resultNum * (-1);
} else if (operator.equals("=")){
// 赋值运算
resultNum = getNumberFromText();
}
if (operateValidFlag) {
// 双精度浮点数的运算
long t1;
double t2;
t1 = (long) resultNum;
t2 = resultNum - t1;
if (t2 == 0) {
text_double.setText(String.valueOf(t1));
} else {
text_double.setText(String.valueOf(resultNum));
}
}
operator = button; //运算符等于用户按的按钮
firstDigit = true;
operateValidFlag = true;
}
private double getNumberFromText() //从结果的文本框获取数字
{
double result = 0;
try {
result = Double.valueOf(text_double.getText()).doubleValue(); // ValueOf()返回表示指定的 double 值的 Double 实例
} catch (NumberFormatException e){
}
return result;
}
public static void main(final String[] args) {
new Calculator();
}
}
⑤ 如何用JAVA语言编写计算器小程序
具体代码如下:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Calculator extends JFrame implements ActionListener {
private JFrame jf;
private JButton[] allButtons;
private JButton clearButton;
private JTextField jtf;
public Calculator() {
//对图形组件实例化
jf=new JFrame("任静的计茄斗算器1.0:JAVA版");
jf.addWindowListener(new WindowAdapter(){
public void windowClosing(){
System.exit(0);
}
});
allButtons=new JButton[16];
clearButton=new JButton("清除");
jtf=new JTextField(25);
jtf.setEditable(false);
String str="123+456-789*0.=/";
for(int i=0;i<allButtons.length;i++){
allButtons[i]=new JButton(str.substring(i,i+1));
}
}
public void init(){
//完成布局
jf.setLayout(new BorderLayout());
JPanel northPanel=new JPanel();
JPanel centerPanel=new JPanel();
JPanel southPanel=new JPanel();
northPanel.setLayout(new FlowLayout());
centerPanel.setLayout(new GridLayout(4,4));
southPanel.setLayout(new FlowLayout());
northPanel.add(jtf);
for(int i=0;i<16;i++){
centerPanel.add(allButtons[i]);
}
southPanel.add(clearButton);
jf.add(northPanel,BorderLayout.NORTH);
jf.add(centerPanel,BorderLayout.CENTER);
jf.add(southPanel,BorderLayout.SOUTH);
addEventHandler();
}
//添加事件监听
public void addEventHandler(){
jtf.addActionListener(this);
for(int i=0;i<allButtons.length;i++){
allButtons[i].addActionListener(this);
}
clearButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Calculator.this.jtf.setText("");
}
});
}
//事件槐纳乱处理
public void actionPerformed(ActionEvent e) {
//在这里完成事件处理 使计算器可以运行
String action=e.getActionCommand();
if(action=="+"||action=="-"||action=="*"||action=="/"){
}
}
public void setFontAndColor(){
Font f=new Font("铅档宋体",Font.BOLD,24);
jtf.setFont(f);
jtf.setBackground(new Color(0x8f,0xa0,0xfb));
for(int i=0;i<16;i++){
allButtons[i].setFont(f);
allButtons[i].setForeground(Color.RED);
}
}
public void showMe(){
init();
setFontAndColor();
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args){
new Calculator().showMe();
}
}
⑥ 求java编写的租金计算器小程序
importjava.awt.Container;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.FocusAdapter;
importjava.awt.event.FocusEvent;
importjava.sql.Date;
importjava.util.Calendar;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JTextField;
publicclassZuJinextendsJFrame{
/**
*(结束日期-开始日期)÷30×月租金+业务费用+其他费用=总费用
〔(结束日期-开始日期)÷30×月租金+业务费用+其他费用〕÷合租人员=平均费用
需要弹出一个租金计算器对话框分为租金计算信息与租金计算结果两部分
*/
publicZuJin(){
Containerc=getContentPane();
c.setLayout(newGridLayout(5,4));
JLabelj1=newJLabel("开始日期");
c.add(j1);
JTextFieldjt1=newJTextField(10);
c.add(jt1);
JLabelj2=newJLabel("结束敏埋日期");
c.add(j2);
JTextFieldjt2=newJTextField("");
c.add(jt2);
JLabelj3=newJLabel("月租金(元)");
c.add(j3);
JTextFieldjt3=newJTextField(5);
c.add(jt3);
JLabelj4=newJLabel("业务费(元)");
c.add(j4);
JTextFieldjt4=newJTextField(5);
c.add(jt4);
JLabelj5=newJLabel("其他费用(元)");
c.add(j5);
JTextFieldjt5=newJTextField(5);
c.add(jt5);
JLabelj6=newJLabel("合租人员数量");
c.add(j6);
JTextFieldjt6=newJTextField(3);
c.add(jt6);
JLabelj7=newJLabel("总费用(元)");
c.add(j7);
JTextFieldjt7=newJTextField(5);
jt7.setEditable(false);
c.add(jt7);
JLabelj8=newJLabel("平均费用(元)");
c.add(j8);
JTextFieldjt8=newJTextField(5);
jt8.setEditable(false);
c.add(jt8);
JButtonjb1=newJButton("计算");
c.add(jb1);
jt1.addFocusListener(newFocusAdapter()
{
@Override
publicvoidfocusGained(FocusEvente)
{
if(jt1.getText().equals("格式为:0000-00-00")){
jt1.setText("");
}
}
@Override
publicvoidfocusLost(FocusEvente)
{
if(jt1.getText().equals("")){
jt1.setText("格式为:0000-00-00");
}
桥册蚂}
});
jt2.addFocusListener(newFocusAdapter()
{
姿侍@Override
publicvoidfocusGained(FocusEvente)
{
if(jt2.getText().equals("格式为:0000-00-00")){
jt2.setText("");
}
}
@Override
publicvoidfocusLost(FocusEvente)
{
if(jt2.getText().equals("")){
jt2.setText("格式为:0000-00-00");
}
}
});
jb1.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
Dated1=Date.valueOf(jt1.getText());//开始日期
Dated2=Date.valueOf(jt2.getText());//结束日期
Calendarc1=Calendar.getInstance();
c1.setTime(d1);
Calendarc2=Calendar.getInstance();
c2.setTime(d2);
intday1=c1.get(Calendar.DAY_OF_YEAR);
intday2=c2.get(Calendar.DAY_OF_YEAR);
intdays=day2-day1;
doublemoney1=Double.valueOf(jt3.getText());//月租金
doublemoney2=Double.valueOf(jt4.getText());//业务费
doublemoney3=Double.valueOf(jt5.getText());//其他费用
intman=Integer.valueOf(jt6.getText());//人数
doublemoney4=days/30*money1+money2+money3;
doublemoney5=0.0;
if(man!=0){
money5=money4/man;
}
else{
money5=money4;
}
jt7.setText(String.valueOf(money4));
jt8.setText(String.valueOf(money5));
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(400,400,500,300);
setVisible(true);
setTitle("租金计算器");
}
publicstaticvoidmain(String[]args){
ZuJinzj=newZuJin();
}
}
丑是丑了点 用还是可以用的。
⑦ C#中怎么编写代码设计一个简单的计算器,在文本框中,显示输入值和计算结果,用命令按钮做为数字键和
做简单了 很容改纯易.就是获取文本值.获取按钮的文本,进行执行.将结果写入文本框用Text属性核蔽咐即可.但这样只能聊以自慰吧.没人要的. 如果以维护.你需要吧所有方法抽象出并肆一个接口来,每个接口中存放一种功能方法.建设相应实现方法.用一个来集成这些接口.这样当每次需要升级时,增加接口和实现方法就行了,无需可更改现有方法.
⑧ 怎样用Python语言编一个小程序
编写 Python 小程序的皮册方法燃握宏主要分为以下几步:
安装 Python:在编写 Python 程序之前,需要在计算机上安装 Python。Python 官网提供了下载安装程序皮辩的链接,可以根据操作系统版本下载安装程序。
编写代码:可以使用任何文本编辑器编写 Python 代码。代码的具体内容根据程序的需求来决定,可以包括各种 Python 原生语法、内置函数、第三方库等等。
运行程序:可以使用 Python 解释器来运行 Python 程序。在终端或命令行界面输入 python 文件名.py 即可执行程序。
下面是一个简单的示例程序:
⑨ 微信上的小程序 怎么做一个计算器
小程序就是一套类似的css+js+html的包装,会前段的设计就问题不大,html+css做计算器的界面,js写逻辑,具体请参考小程序开发教程