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

📄 jisuanqi.java

📁 JAVA 实现的一个计算器,是很好的学习教材,仅供新手,老鸟就不要看了
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	     		    	String unusual=String.valueOf(result);
	     		    	
	    		    	存储链表.clear();
			    	
		    	    	if(unusual.equals("Infinity"))
			        	{
			     	    	String s="除数不能为零。";
			    	    	resultshow.setText(s);
			        	}
			        	else
			        	{
                            存储链表.add(""+result);
                            存储链表.add(label);
                            resultshow.setText(""+result);
			        	}
			    	}
		    	}
	    		catch(Exception ee)
		    	{
		    		ee.toString();
		    	}
	    	}
     	}
    	else if(e.getSource()==等号)     
    	//获得鼠标单击等号按钮,鼠标单击等号后,链表节点变为1,也就是说链表中只有一个数据
    	{
	    	按下等号=true;
	    	
    		//System.out.println(存储链表.size());         //测试链表内元数个数
		
	    	if(存储链表.size()==1 || 存储链表.size()==2)
	    	{
	    		String num=(String)存储链表.getFirst();
	    		double result=Double.parseDouble(num);
	    		
	    		存储链表.clear();
	    		存储链表.add(""+result);
	    		resultshow.setText(""+result);
    		}
	    	else if(存储链表.size()==3)
	    	{
	     		String num1=(String)存储链表.getFirst();
	    		String num2=(String)存储链表.getLast();
	    		String sign=(String)存储链表.get(1);
			
	    		try
	    		{
	    			double number1=Double.parseDouble(num1);
	    			double number2=Double.parseDouble(num2);
	    			double result=0;
		    		
		    		result=result(sign,number1,number2,result);
		    		String unusual=String.valueOf(result);
		    		
	     			存储链表.clear();
				
		    		if(unusual.equals("Infinity"))
	    			{
	    				String s="除数不能为零。";
	    				
			    		resultshow.setText(s);
		    		}
		    		else
		    		{
                        存储链表.add(""+result);
                        resultshow.setText(""+result);
		    		}			
		    	}
	    		catch(Exception ee)
	    		{
	    			ee.toString();
	    		}
	    	}
    	}
    	else if(e.getSource()==小数点)        //获得鼠标单击小数点按钮
    	{
	    	if(存储链表.size()==0)
	    	{
	        	if(!(resultshow.getText().equals("除数不能为零。")))
	        	{
	        		String s="0.";         
	     		
	        		存储链表.add(s);
	        		resultshow.setText(s);    //在链表节点为0时,在编辑框中显示"0."
     	    	}
	    	}
	     	else if(存储链表.size()==1)
	    	{
	    		if(按下等号==true)
	    		{
		        	String s="0.";
				
		    		存储链表.clear();
		        	存储链表.add(s);
		        	resultshow.setText(s);    //在按下等号后紧接着按小数点,在编辑框中显示"0."
	     		}
	    		else
	    		{
	    	    	String point=小数点.getLabel();
		        	String num=(String)存储链表.getFirst();
		        	String s=null;
		    	
		        	if(num.indexOf(point)==-1)
	     	    	{
		        		s=num.concat(point);
		        	}
		        	else
		        	{
		         		s=num;
		        	}
		      	
	        		存储链表.set(0,s);
	        		resultshow.setText(s);
	    		}
     		}
	    	else if(存储链表.size()==2)
	    	{
	    		String s="0.";            
	    		//由于是节点2,所以在按运算符号(+ , - , * , /)其中之一后,紧接着按小数点,在编辑框中显示"0."
	    		
		    	存储链表.add(s);
		    	resultshow.setText(s);
	    	}
    		else if(存储链表.size()==3)
    		{
	    		String point=小数点.getLabel();
	    		String num=(String)存储链表.getLast();
	    		String s=null;
			
	    		if(num.indexOf(point)==-1)
	    		{
	    			s=num.concat(point);
	    		}
	    		else
	    		{
	    			s=num;
	    		}
	    		存储链表.set(2,s);
	     		resultshow.setText(s);
	    	}
    	}
    	else if(e.getSource()==退格)      //获得鼠标单击退格按钮
    	{
    		if(存储链表.size()==1 || 存储链表.size()==3)     
    		{
    			String num=null;
   			
		    	if(存储链表.size()==1)    //根据节点数选择要取出的不同节点位置的数据
	    		{
					num=(String)存储链表.getFirst();    
	    		}
	     		else
	    		{
	    			num=(String)存储链表.getLast();
	    		}
			
	    		if(!(存储链表.size()==1 && 按下等号==true))  //根据windows的计算器,在按了等号后,退格没用
	    		{
	        		if(num.length()>=1)
	    	    	{
		    	    	num=num.substring(0,num.length()-1);
			    	
	    		    	存储链表.set(存储链表.size()-1,num);
			    	
	    		    	if(num.equals(""))    //判断取出的节点的数据是否变为空字符串
	    		    	{
	    	     			存储链表.removeLast();
	    	    		}
		    		
	    	    		resultshow.setText(num);
	    	    	}
	    		}
	    	}
    	}
    	else if(e.getSource()==正负号)   //获得鼠标单击正负号按钮,必须先有数字数据,不然没代码回应
    	{
    		if(存储链表.size()==1 || 存储链表.size()==3)
    		{
	    		String number1=null;
	    		
	    		if(存储链表.size()==1)
	    		{
	    			number1=(String)存储链表.getFirst();
	    			//取出链表中的节点1的数据,这个数据必为数字
	    		}
	    		else
	    		{
	    			number1=(String)存储链表.getLast();
	    			//取出链表中的节点3的数据,这个数据必为数字
	    		}
	    		
	    		try
    			{
	    			double d=Double.parseDouble(number1);
	    			d=-1*d;
		    		String s=String.valueOf(d);
				
		    		存储链表.set(存储链表.size()-1,s);
		    		resultshow.setText(s);
		    	}
		    	catch(Exception ee)
		    	{
		    		ee.toString();
		    	}
	    	}
		}
		else if(e.getSource()==倒数)      //获得鼠标单击倒数按钮
		{
			String number1=null;
			
			if(存储链表.size()==3)
			{
				number1=(String)存储链表.getLast();
				//取出链表中的节点3的数据,这个数据必为数字
			}
			else
			{
				number1=(String)存储链表.getFirst();
				//取出链表中的节点1的数据,这个数据必为数字
			}
			    
			try
			{
				double d=Double.parseDouble(number1);
				d=1.0/d;
				String s=String.valueOf(d);
				
				if(存储链表.size()==3)
				{
					存储链表.set(2,s);
				}
				else
				{
					存储链表.set(0,s);
				}
				resultshow.setText(s);
			}
			catch(Exception ee)
			{
				ee.toString();
			}
			
		}
		else if(e.getSource()==清零)    //获得鼠标单击清零按钮
		{
			resultshow.setText("0");
			存储链表.clear();
		}
	}
	
	public double result(String sign,double number1,double number2,double result)
	{
		if(sign.equals("+"))
	 	{
		    result=number1+number2;
		}
		else if(sign.equals("-"))
		{
		    result=number1-number2;
		}
		else if(sign.equals("*"))
		{
		    result=number1*number2;
		}
		else if(sign.equals("/"))
		{
		  	result=number1/number2;	
		}
		return result;
	}
	
	public static void main(String [] args)
	{
		new JiSuanQi();
	}
}

⌨️ 快捷键说明

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