「java计算器下载」JAVA计算器

博主:adminadmin 2022-12-14 10:54:08 72

本篇文章给大家谈谈java计算器下载,以及JAVA计算器对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java 计算器

在一个文本框里输入算式,点击按钮(计算按钮)

用文本框的getText();方法获取输入的算式字符串赋值到一个变量里(假设为text)

然后 用if判断

// 储存结果

int result;

// 运算符所在位置

int index;

/*

读取+号在这个字符串中所在的位置赋值给变量index,同时判断index是不是大于0(意思是这个字符串中有没有+号)

*/

if((index=text.indexOf("+"))0){

String a=text.substring(0, index-1);

String b=text.substring(index+1, text.length()-1);

result=Integer.pareInt(a) + Integer.pareInt(b);

}else if((index=text.indexOf("-"))0){

String a=text.substring(0, index-1);

String b=text.substring(index+1, text.length()-1);

result=Integer.pareInt(a) - Integer.pareInt(b);

}else if ...

依次 +,-,*,/

这种的只能做简单运算 要做复杂运算很麻烦

要用到堆栈,不要用堆栈也行 用迭代方法 加上很复杂的算法也能实现

// 按优先级最高的依次往下找

int index;

// 用于储存更变后的算式

ListString list=new ArratListString();

// 判断是否存在括号

if((index=text.indexOf("("))0){

int index2;

// 循环查找结尾括号

for(int i=index; itext.length();i++){

if((index2=text.indexOf(")"))0){

break;

}

}

// 按运算优先级 拆分原有复杂算式为多个简单算式

list.add(text.substring(index+1, index2-1));

// 更新原有的算式,提取出来的部分则由字符x代替

text=text.substring(0, index-1) + "x" + text.subString(index2+1, text.length()-1);

}

// 查找*号

if((index=text.indexOf("*"))0){

String text2=text.substring(0, index-1);

int index1,index2;

// 循环查找要相乘的2个数的第一个起始

for(int i=index-1; i=0;i--){

if(text.charAt(i) == '+' || text.charAt(i) == '-' || text.charAt(i) == '*' || text.charAt(i) == '/'){

// 去掉开头运算符

index1=i+1;

break;

}else{

index1=0;

break;

}

}

// 循环查找要相乘的2个书的第二个结尾

for(int i=index+1; i=text.length(); i++){

if(text.charAt(i) == '+' || text.charAt(i) == '-' || text.charAt(i) == '*' || text.charAt(i) == '/'){

// 去掉结尾运算符

index2=i-1;

break;

}else{

index2=text.length();

break;

}

}

list.add(text.substring(index1, index2));

text.substring(0, index1-1) + text.substring(index2+1, text.length-1);

}

......

+,-,*,/ 都要写一个判断,并且最重要的是每一个判断都要迭代, 比如取括号的 要把带括号的算式取干净了 才能进行下一步 取*号

最后复杂算式都转换为按优先级排列的简单算式了 下面我想不用我再说了吧 你应该知道怎么做了。

求一个java 计算器,支持键盘输入的代码,最好有注释

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

//while(true){

Scanner sc = new Scanner(System.in);

System.out.println(jisuan(sc.next()));

}

private static float jisuan(String cont){

List arryList = new ArrayList();

char[] str = cont.toCharArray();

Character astr;

String s = "";

for(int i=0;istr.length;i++){

astr = str[i];

if(astr=='+'||astr=='-'||astr=='*'||astr=='/'||astr=='=')

{

arryList.add(s);

s="";

if(astr!='='){

arryList.add(astr.toString());

}

}else{

s += astr;

}

}

float count = 0;

List jjlist = chengchuModel(arryList);

String ssf = "";

String var1 = "";

String var2 = "";

if(jjlist.size()=3){

for(int i=1;ijjlist.size();i=i+2){ //jjlist中就只有加减法了

ssf = (String)jjlist.get(i); // 获得jjlist中的加法或减法字符进行判断

var2 = (String)jjlist.get(i+1);

if(i==1){ //判断第一个运算符是加号还是减号,两个情况下的运行也是不同的

var1 = (String)jjlist.get(i-1); //只有第一次加减的时候才会去取前一个数字进行运算

if(ssf.trim().equals("-")){

count = Float.parseFloat(var1) - Float.parseFloat(var2);

}else{

count = Float.parseFloat(var1) + Float.parseFloat(var2);

}

}else{

if(ssf.trim().equals("-")){

count = count - Float.parseFloat(var2);

}else{

count = count + Float.parseFloat(var2);

}

}

}

}else{

count = Float.parseFloat(jjlist.get(0).toString());

}

return count;

}

private static boolean checkstr(String str){

if(!str.trim().equals("*")!str.trim().equals("/"))

return true;

return false;

}

private static boolean cheng(String str){

if(str.trim().equals("*"))

return true;

return false;

}

private static boolean chu(String str){

if(str.trim().equals("/"))

return true;

return false;

}

private static List chengchuModel(List list){ //将输入的算术的所有乘除法算出来只剩下加减法

String var1 ="";

String var2 ="";

String var3 ="";

for(int i=1;ilist.size();i=i+2){

var1 = (String)list.get(i-1);

var2 = (String)list.get(i);

var3 = (String)list.get(i+1);

if(!checkstr(var2)){

if(cheng(var2)){

list.set(i-1, String.valueOf((Float.parseFloat(var1)*Float.parseFloat(var3))));

list.remove(i);

list.remove(i);

i = i-2;

//

}else if(chu(var2)){

list.set(i-1, String.valueOf((Float.parseFloat(var1)/Float.parseFloat(var3))));

list.remove(i);

list.remove(i);

i = i-2;

}

}

}

return list;

}

}

测试:

输入:33-6*5+7/4=

结果:4.75

用java编得计算器程序软件和源代码

java计算器源程序

java计算器

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

class calculation extends JFrame

{public calculation() /*构造方法*/

{super("计数器");

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

initTextPanel(); /*文本框*/

initControlPanel(); /*控制键*/

initKeyPanel(); /*数字和运算符*/

Container pane = getContentPane();

pane.setLayout(new BorderLayout());

pane.add(TextPanel,BorderLayout.NORTH);

pane.add(ControlPanel,BorderLayout.CENTER);

pane.add(KeyPanel,BorderLayout.SOUTH);

pack();

try

{UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

}

catch(Exception ex)

{;} /*设置Windons观感*/

SwingUtilities.updateComponentTreeUI(this);

setResizable(false);

setVisible(true);

}

private void initTextPanel() /*设置文本框*/

{ TextPanel=new JPanel();

TextPanel.setLayout(new FlowLayout());

Resultarea =new JTextField("0",25);

Resultarea.setEditable(false); /*设置不可编辑*/

Color color=Color.white;

Resultarea.setBackground(color); /*颜色*/

Resultarea.setHorizontalAlignment(JTextField.RIGHT); /*设置显示位置*/

TextPanel.add(Resultarea);

}

private void initControlPanel() /*设置控制键*/

{ControlPanel=new JPanel();

ControlPanel.setLayout(new GridLayout(1,3,4,4));

JButton b1=new JButton("Backspace"); /*Backspace键*/

b1.setFont(font1);

b1.addActionListener(new ActionListener()

{public void actionPerformed(ActionEvent e)

{String s1=Resultarea.getText();

int l=s1.length();

Resultarea.setText(s1.substring(0 ,l-1));

}

});

ControlPanel.add(b1);

JButton b2=new JButton("CE"); /*CE键*/

b2.setFont(font1);

b2.addActionListener(new ActionListener()

{public void actionPerformed(ActionEvent e)

{Resultarea.setText("0");

isNew=true;

}

});

ControlPanel.add(b2);

JButton b3=new JButton("C"); /*C键*/

b3.setFont(font1);

b3.addActionListener(new ActionListener()

{public void actionPerformed(ActionEvent e)

{Resultarea.setText("0");

pnum="";

operation="";

isNew=true;

}

});

ControlPanel.add(b3);

}

private void initKeyPanel() /*设置数字键和运算符键*/

{String key[] = {"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="};

KeyPanel = new JPanel();

KeyPanel.setLayout(new GridLayout(4,5,4,4));

for(int i=0;i20;i++)

{String label = key[i];

JButton b = new JButton(label);

b.setActionCommand(key[i]);

b.setFont(font2);

KeyPanel.add(b);

b.addActionListener(new ActionListener() /*无名监听器*/

{public void actionPerformed(ActionEvent e)

{Key_actionPerformed(e);

}

});

}

}

public void Key_actionPerformed(ActionEvent e) /*数字键和运算符键无名监听器*/

{String s=(e.getActionCommand());

String st=Resultarea.getText();

if(s.equals("0")) /*输入数为0*/

{if(st.equals("0"))

return;

else

{if(!isNew)

Resultarea.setText(st+"0");

else

Resultarea.setText("0");

}

isNew=false;

return;

}

if(s.equals("+/-")) /*输入数为+/-*/

{double k=Double.parseDouble(st);

{if(k!=0)

display(-k);

}

return;

}

if(s.equals("1")||s.equals("2")||s.equals("3")||s.equals("4")||s.equals("5")||s.equals("6")||s.equals("7")||s.equals("8")||s.equals("9")) /*输入1-9*/

{if(!isNew)

Resultarea.setText(st+s);

else

{ Resultarea.setText(s);

isNew=false;

}

return;

}

if(s.equals(".")) /*输入小数点*/

{if(Resultarea.getText().indexOf(".")==-1) /*不存在小数点*/

{if(isNew)

{Resultarea.setText("0.");

isNew=false;

}

else

Resultarea.setText(st+".");

}

return;

}

isNew=true; /*按下运算符,输入新的数*/

if(s.equals("="))

{compute(s);

operation="";

}

else

{if(s.equals("+")||s.equals("-")||s.equals("*")||s.equals("/")) /*二目运算符号*/

{if(operation.equals(""))

{pnum=Resultarea.getText();

operation=s;

}

else

compute(s);

}

else /*一目运算*/

{Count count1=new Count(Double.parseDouble(st));

if(s.equals("sqrt"))

{

display(count1.sqrt());

}

else

{if(s.equals("1/x"))

{if(st.equals("0"))

{Resultarea.setText("除数不能为0.");

operation="";

pnum="";

}

else

display(count1.reciprocal()); /*求倒数*/

}

else

display(Double.parseDouble(st)/100); /*输入%,使当前显示的值除于100*/

}

}

}

}

private void compute(String s)

{if(s.equals("="))

{if(operation.equals(""))

return;

}

double data1=Double.parseDouble(pnum);

double data2=Double.parseDouble(Resultarea.getText());

Count count2=new Count(data1,data2); /*加减乘除计算*/

if(operation.equals("+"))

display((count2.plus()));

else

{if(operation.equals("-"))

display((count2.minus()));

else

{if(operation.equals("*"))

display((count2.multiply()));

else

if(operation.equals("/"))

{if(data2==0)

{Resultarea.setText("除数不能为0");

operation="";

pnum="";

return;

}

else

display((count2.divide()));

}

}

}

operation=""; /*符号为当前符*/

pnum=Resultarea.getText();/*运算数为当前文本数*/

}

public void display(double result) /*显示输出方法*/

{int a=(int)result;

if(a==result)

Resultarea.setText(String.valueOf(a));

else

Resultarea.setText(String.valueOf(result));

if(Resultarea.getText().equals("NaN"))

Resultarea.setText("输入函数无效");

}

private JPanel TextPanel; /*文本框棉板*/

private JTextField Resultarea; /*文本框*/

private JPanel ControlPanel; /*控制键键面板*/

private JPanel KeyPanel; /*数字键和运算符键面板*/

private Font font1=new Font("Dialog",0, 10); /*控制键字体*/

private Font font2 = new Font("Dialog",0,10); /*数字键和符号键字体*/

private String pnum=""; /*前操作数*/

private boolean isNew=true; /*控制是否是新数*/

private String operation=""; /*运算符*/

}

class tester /*测试类*/

{

public static void main(String[] args)

{

new calculation();

}

}

求JAVA编写的 简易计算器程序,附上注释

1、首先准备好软件即eclipse和java,下载安装完成后打开eclipse。

2、点击左上角的file 新建一个project。

3、给project取一个名字,其他的选项都是默认然后点击finish。

4、接下来是新建一个class。

5、在给class取名字的时候注意用英文名的首字母要大写。完成后点击finish。

6、这就是开始写代码的工作台,将代码写在绿字下。

7、这就是第一个hello world程序。

java计算器程序 附带说明书

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.lang.Math;

public class Calculator implements ActionListener{

JFrame f;

JPanel pa[]=new JPanel[6];

JLabel lb;

JTextField ta;

JButton bt[]=new JButton[22];

public Calculator(){

f=new JFrame("计算器小程序");

Container cp=f.getContentPane();

f.setVisible(true);

f.setSize(400,400);

cp.setLayout(new GridLayout(2,1));

pa[0]=new JPanel(new GridLayout(3,1));

cp.add(pa[0]);

pa[1]=new JPanel(new GridLayout(1,2));

pa[2]=new JPanel(new GridLayout(1,2));

cp.add(pa[2]);

pa[3]=new JPanel(new GridLayout(4,3));

pa[2].add(pa[3]);

pa[4]=new JPanel(new GridLayout(4,2));

pa[2].add(pa[4]);

lb=new JLabel("计算器");

pa[0].add(lb);

ta=new JTextField();

pa[0].add(ta);

pa[0].add(pa[1]);

for(int j=0;j=9;j++){

String m=""+j;

bt[j]=new JButton(m);

bt[j].addActionListener(this);

pa[3].add(bt[j]);

}

bt[10]=new JButton("+");

bt[10].addActionListener(this);

pa[3].add(bt[10]);

bt[11]=new JButton("-");

bt[11].addActionListener(this);

pa[3].add(bt[11]);

bt[12]=new JButton("Backspace");

bt[12].addActionListener(this);

pa[1].add(bt[12]);

bt[13]=new JButton("清空");

bt[13].addActionListener(this);

pa[1].add(bt[13]);

bt[14]=new JButton("/");

bt[15]=new JButton("sqrt");

bt[16]=new JButton("*");

bt[17]=new JButton("+/-");

bt[18]=new JButton("pow");

bt[19]=new JButton("1/x");

bt[20]=new JButton(".");

bt[21]=new JButton("=");

for(int j=14;j=21;j++) {

bt[j].addActionListener(this);

pa[4].add(bt[j]);

}

f.addWindowListener(new WinLis());

}

public void actionPerformed(ActionEvent e){

for(int i=0;i=9;i++){

if(e.getSource()==bt[i]){

String n=ta.getText();

String m=n+i;

ta.setText(m);

}

}

if(e.getSource()==bt[10]){

String m=ta.getText();

ta.setText(m+"+");

}

if(e.getSource()==bt[11]){

String m=ta.getText();

ta.setText(m+"-");

}

if(e.getSource()==bt[12]){

String m=ta.getText();

int n=m.length();

if(n=2){

String c=m.substring(0,n-1);

ta.setText(c);

}

else

ta.setText("");

}

if(e.getSource()==bt[13]){

ta.setText("0");

}

if(e.getSource()==bt[14]){

String m,c;

m=ta.getText();

c=m+"/";

ta.setText(c);

}

if(e.getSource()==bt[15]){

String m=ta.getText();

double n=Double.parseDouble(m);

double s=Math.sqrt(n);

String ss=""+s;

int sn=ss.indexOf('.');

String cs=ss.substring(sn+1);

int len=cs.length();

if(len1){

ta.setText(ss);

}

else{

String st=""+cs.charAt(0);

int it=Integer.parseInt(st);

if(it0)

ta.setText(ss);

else

ta.setText(ss.substring(0,sn));

}

}

if(e.getSource()==bt[16]){

String m=ta.getText();

ta.setText(m+"*");

}

if(e.getSource()==bt[17]){

String m=ta.getText();

String mm;

int b=m.indexOf('-');

if(b!=-1){

mm=m.substring(1);

ta.setText(mm);

}

else{

mm=m;

ta.setText("-"+mm);

}

}

if(e.getSource()==bt[18]){

String m=ta.getText();

double n=Double.parseDouble(m);

double s=Math.pow(n,2);

String ss=""+s;

int sn=ss.indexOf('.');

String cs=ss.substring(sn+1);

int len=cs.length();

if(len1){

ta.setText(ss);

}

else{

String st=""+cs.charAt(0);

int it=Integer.parseInt(st);

if(it0)

ta.setText(ss);

else

ta.setText(ss.substring(0,sn));

}

}

if(e.getSource()==bt[19]){

}

if(e.getSource()==bt[20]){

String m=ta.getText();

int nm=m.indexOf(".");

/*if(nm==-1){

ta.setText(m+".");

}*/

ta.setText(m+".");

}

if(e.getSource()==bt[21]){

String m=ta.getText();

int a=m.indexOf('+');

int p=m.indexOf('.');

if(a!=-1){

if(p==-1){

int s=Integer.parseInt(m.substring(0,a))+Integer.parseInt(m.substring(a+1));

ta.setText(""+s);

}

else{

double ds=Double.parseDouble(m.substring(0,a))+Double.parseDouble(m.substring(a+1));

ta.setText(""+ds);

}

}

int b=m.indexOf('-');

String bb=""+m.charAt(0);

String bm=m.substring(b+1);

int bn=bm.indexOf('-');

if(b!=-1){

if(bb=="-"bn!=-1){

if(p==-1){

int s=Integer.parseInt(m.substring(1,bn))+Integer.parseInt(m.substring(bn+1));

ta.setText("-"+s);

}

else{

double ds=Double.parseDouble(m.substring(1,bn))+Double.parseDouble(m.substring(bn+1));

ta.setText("-"+ds);

}

}

if(b=1bn==-1){

if(p==-1){

int s=Integer.parseInt(m.substring(0,b))-Integer.parseInt(m.substring(b+1));

ta.setText(""+s);

}

else{

double ds=Double.parseDouble(m.substring(0,b))-Double.parseDouble(m.substring(b+1));

ta.setText(""+ds);

}

}

}

int c=m.indexOf('*');

if(c!=-1){

int s1=Integer.parseInt(m.substring(0,c));

int s2=Integer.parseInt(m.substring(c+1));

int s=s1*s2;

ta.setText(""+s);

}

int d=m.indexOf('/');

if(d!=-1){

int s1=Integer.parseInt(m.substring(0,d));

int s2=Integer.parseInt(m.substring(d+1));

if(s2==0){

ta.setText("除以零公式无效");

}

else{

double s=s1/s2;

ta.setText(""+s);

}

}

}

}

class WinLis extends WindowAdapter{

public void windowClosing(WindowEvent e){

System.exit(0);

}

}

public static void main(String[] args){

new Calculator();

}

}

我也学java没多长时间,写了一个这样的程序,有许多地方还需要完善,希望可以帮助你一下,没写注释,我觉得你查一书就能看明白的

关于java计算器下载和JAVA计算器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-14,除非注明,否则均为首码项目网原创文章,转载请注明出处。