導航:首頁 > 軟體知識 > 如何寫小程序計算器

如何寫小程序計算器

發布時間:2023-05-15 23:42:38

① 求一個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寫邏輯,具體請參考小程序開發教程

閱讀全文

與如何寫小程序計算器相關的資料

熱點內容
企業信息主管職責有哪些 瀏覽:339
代理手機一般在什麼地方進貨 瀏覽:378
黃金代理黃金加盟費多少錢 瀏覽:751
快遞物流多久沒信息可以投訴 瀏覽:646
女孩說還要等多久回信息 瀏覽:15
小游戲有哪些產品 瀏覽:321
不到30歲學什麼技術好 瀏覽:346
招標代理公司如何辦理執照 瀏覽:9
二手摩託交易平台哪個靠譜 瀏覽:80
美國通用的技術有哪些 瀏覽:37
女孩子學什麼技術好找工作 瀏覽:800
購房中的技術問題有哪些 瀏覽:544
數據傳輸過量什麼意思 瀏覽:382
農產品上行做什麼工作 瀏覽:532
隆回縣新木材市場在哪裡 瀏覽:310
連江哪裡有字畫鑒定交易 瀏覽:694
電動伸縮門調試程序多少錢 瀏覽:445
市場主體如何做到自律 瀏覽:355
想做五菱代理怎麼做 瀏覽:492
新聞頭條信息如何顯示 瀏覽:631