⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 caculator_未解决十进制以外的数值输入和计算问题.java

📁 Java 语言实现的计算器
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
		else if(e.getSource() == b_add)		{			if(deng==0)//如果已经有2个数和1个运算符,则先把它算出来			{				done();			}			marks[mark]=1;//加	        start=0;		    state=mark*2;			deng=0;					}		else if(e.getSource() == b_sub)		{			if(deng==0)//如果已经有2个数和1个运算符,则先把它算出来			{				done();			}			marks[mark]=2;//减	        start=0;		    state=mark*2;			deng=0;		}		else if(e.getSource() == b_mul)		{			if(deng==0)//如果已经有2个数和1个运算符,则先把它算出来			{				done();			}			marks[mark]=3;//乘	        start=0;		    state=mark*2;			deng=0;		}		else if(e.getSource() == b_div)		{			if(deng==0)//如果已经有2个数和1个运算符,则先把它算出来			{				done();			}			marks[mark]=4;//除	        start=0;		    state=mark*2;			deng=0;		}		//输出结果事件###########################################		else if(e.getSource() == b_deng)//按'='时		{			done();//四则运算函数		}		//其他操作运算符事件#######################################		else if(e.getSource() == b_sqrt)		{			d[state]=Math.sqrt(d[state]);			t[state]=String.valueOf(d[state]);			t_show.setText(t[state]);		}		else if(e.getSource() == b_dao)//按'1/x'时		{			d[state]=1/d[state];			t[state]=String.valueOf(d[state]);			t_show.setText(t[state]);		}		else if(e.getSource() == b_sign)//按'+/-'时		{			if (d[state]<0) 			{				t[state] = t[state].substring(1, t[state].length());			}			else 			{				t[state] = "-"+t[state];			}			t_show.setText(t[state]);			d[state] = Double.parseDouble(t[state]);		}		else if(e.getSource() == b_100)//按'%'时		{			if(state==1||state==3)			{				t[1]="0";			    d[1]=0;			    start=0;				t_show.setText("0");			}			else			{				d[state]=d[state]*d[state-1]/100.0;				t[state]=String.valueOf(d[state]);				t_show.setText(t[state]);			}		}		//科学运算符###########################################		else if(e.getSource() == b_pi)//按pi时		{			clear();//清除当前			input("3.1415926535897932384626433832795");		}		else if(e.getSource() == b_k1)//按(时		{			if(k1==5)			{				JOptionPane.showMessageDialog(this,"对不起!括号最多可使用5次!","警告提示",JOptionPane.WARNING_MESSAGE);			}			else			{		    	clear();//清除当前		    	t_show.setText("(");		    	k1++;		    	mark=k1+1;		    	state=2*mark-1;		    	t_K.setText("(="+String.valueOf(k1));			}		}		else if(e.getSource() == b_k2)//按)时		{			if (k1 == 0)			{				t_show.setText("error!");				start=0;			}			else			{				if(deng == 0)//如果已经有2个数和1个运算符,则先把它算出来				{		    		done();					deng=0;				}	    		deng=0;				k1--;				k2++;				d[2*(mark-1)]=d[2*mark-1];				t[2*(mark-1)]=t[2*mark-1];				d[2*mark-1]=d[2*mark]=0;				t[2*mark-1]=t[2*mark]="0";				marks[mark]=0;				mark=k1+1;				state=2*mark;				if (k1==0)					t_K.setText(" — ");				else					t_K.setText("(="+String.valueOf(k1));			}		}		else if(e.getSource() == b_x2)//按x^2时		{			d[state]=d[state]*d[state];			t[state]=String.valueOf(d[state]);			t_show.setText(t[state]);		}		else if(e.getSource() == b_x3)//按x^3时		{			d[state]=d[state]*d[state]*d[state];			t[state]=String.valueOf(d[state]);			t_show.setText(t[state]);		}		else if(e.getSource() == b_xy)//按x^y时		{			if(deng==0)//如果已经有2个数和1个运算符,则先把它算出来			{				done();			}			marks[mark]=5;//x^y	        start=0;		    state=mark*2;			deng=0;		}		else if(e.getSource() == b_n)//按n!时		{			t[state]=n(t[state]);			d[state]=Double.parseDouble(t[state]);			t[state]=String.valueOf(d[state]);			t_show.setText(t[state]);		}		else if(e.getSource() == b_ln)//按ln时		{			d[state]=Math.log(d[state]);			t[state]=String.valueOf(d[state]);			t_show.setText(t[state]);		}		else if(e.getSource() == b_log)//按log时		{			d[state]=Math.log(d[state])/Math.log(10);			t[state]=String.valueOf(d[state]);			t_show.setText(t[state]);		}		else if(e.getSource() == b_sin)//按sin时		{			if (radio==1)				d[state]=Math.sin(d[state]/180*pi);			else				d[state]=Math.sin(d[state]);			d[state]=op(d[state]);//精化结果			t[state]=String.valueOf(d[state]);			t_show.setText(t[state]);		}		else if(e.getSource() == b_cos)//按cos时		{			if (radio==1)				d[state]=Math.cos(d[state]/180*pi);			else				d[state]=Math.cos(d[state]);			d[state]=op(d[state]);//精化结果			t[state]=String.valueOf(d[state]);			t_show.setText(t[state]);		}		else if(e.getSource() == b_tan)//按tan时		{			if (radio==1)				d[state]=Math.tan(d[state]/180*pi);			else				d[state]=Math.tan(d[state]);			d[state]=op(d[state]);//精化结果			t[state]=String.valueOf(d[state]);			t_show.setText(t[state]);		}	}	public void keyPressed(KeyEvent e)	{		if(e.getKeyCode()==KeyEvent.VK_0 ||e.getKeyCode()==KeyEvent.VK_NUMPAD0)		{			input("0");		}		else if(e.getKeyCode()==KeyEvent.VK_1||e.getKeyCode()==KeyEvent.VK_NUMPAD1)		{			input("1");		}		else if(e.getKeyCode()==KeyEvent.VK_2||e.getKeyCode()==KeyEvent.VK_NUMPAD2)		{			input("2");		}		else if(e.getKeyCode()==KeyEvent.VK_3||e.getKeyCode()==KeyEvent.VK_NUMPAD3)		{			input("3");		}		else if(e.getKeyCode()==KeyEvent.VK_4||e.getKeyCode()==KeyEvent.VK_NUMPAD4)		{			input("4");		}		else if(e.getKeyCode()==KeyEvent.VK_5||e.getKeyCode()==KeyEvent.VK_NUMPAD5)		{			input("5");		}		else if(e.getKeyCode()==KeyEvent.VK_6||e.getKeyCode()==KeyEvent.VK_NUMPAD6)		{			input("6");		}		else if(e.getKeyCode()==KeyEvent.VK_7||e.getKeyCode()==KeyEvent.VK_NUMPAD7)		{			input("7");		}		else if(e.getKeyCode()==KeyEvent.VK_8||e.getKeyCode()==KeyEvent.VK_NUMPAD8)		{			input("8");		}		else if(e.getKeyCode()==KeyEvent.VK_9||e.getKeyCode()==KeyEvent.VK_NUMPAD9)		{			input("9");		}		else if(e.getKeyCode()==KeyEvent.VK_PERIOD)		{			input(".");		}	}	public void keyTyped(KeyEvent e)	{	}	public void keyReleased(KeyEvent e)	{	}	public void itemStateChanged(ItemEvent e)	{		if(e.getSource()==j)		{			radio=1;		}		else		{			radio=2;		}	}}//***************---------[对话框类]---------****************class Dialog extends JDialog{	JTextArea b;	Dialog(JFrame j,String s1,String s2,int x,int y)	{		super(j,s1,true);		setBounds(200,200,x,y);		setResizable(false);		Container con=getContentPane();		b = new JTextArea();		b.setBounds(20,20,x-40,y-30);		b.setLineWrap(true);		b.setText(s2);		b.setEditable(false);		con.setLayout(new FlowLayout());		con.add(b);		validate();		setVisible(true);	}}	//***************----------Main()------------****************class caculator{	public static void main(String args[])	{		Window win = new Window("标准型计算器",1);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -