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

📄 calculate.h

📁 数据结构课程设计 长整数相加减 long Interge plus minus
💻 H
字号:

#include "LinkList.h" 
#include "PlusMinus.h"
#include "MultipyDivision.h"

enum{plus,minus};
bool compare(LHList<int> &firstNum,LHList<int> &secondNum)
{
	int firstCount,secondCount;
      firstCount=firstNum.getCount();
      secondCount=secondNum.getCount();
    if(firstCount>secondCount)  // |first|>|second| 
	{ 
      return true;
	}
	else if(firstCount<secondCount)  // |first|<|second| 
	{
	  return false;
	}
	else // first.count=second.count
	{
		int first,second;     
	 for(int i=0;i<firstCount;i++)
	 {
         first=firstNum.getNextValue();
         second=secondNum.getNextValue();
		 if(first!=second)
			 break;
	 }
	 if(first>=second)
	    return true;
	 else
		 return false;
	}
}


void Calculate(LHList<int> &firstNum,LHList<int> &secondNum,int  firstNumflag ,int secondNumflag,char operatorflag )
{
    char reusltflage='+';
	switch(operatorflag)
	{
	case '+':  if(firstNumflag==minus&&secondNumflag==minus)
			   {
				   reusltflage='-';
				   plusCalculate(firstNum,secondNum,reusltflage);
			   }
		       else if(firstNumflag!=minus&&secondNumflag==minus)//first>0 second<0
			     {
				     if(compare(firstNum,secondNum))   //|first|>|second|
					 { 
						 minusCalculate(firstNum,secondNum,reusltflage);
					 }
				      else// |first|<|second| 
					  {					   
				         reusltflage='-';
						 minusCalculate(secondNum,firstNum,reusltflage);  
					  }
			   }   
		       else if(firstNumflag==minus&&secondNumflag!=minus) //first<0 , second>0 
			   {
				  if(compare(firstNum,secondNum)) //|first|>|second| 
					 { 
					    reusltflage='-';				   
				        minusCalculate(firstNum,secondNum,reusltflage);					
					 }
				      else // |first|<|second| 
					  {	
						 minusCalculate(secondNum,firstNum,reusltflage);  
					  }
			   }
			   else
				   plusCalculate(firstNum,secondNum,reusltflage);
				 break;
    case '-':if(firstNumflag==minus&&secondNumflag!=minus)
			   {
				   reusltflage='-';
				   plusCalculate(firstNum,secondNum,reusltflage);
			   }
		       else if(firstNumflag!=minus&&secondNumflag==minus)
			        plusCalculate(firstNum,secondNum,reusltflage); 
		       else if(firstNumflag==minus&&secondNumflag==minus) //first<0, second>0
			   { 
				  if(compare(firstNum,secondNum))   //|first|>|second|
					 { 
					     reusltflage='-';
						 minusCalculate(firstNum,secondNum,reusltflage);
					 }
				      else// |first|<|second| 
					  {		
						 minusCalculate(secondNum,firstNum,reusltflage);  
					  }
			   }
			   else//first>0 ,second<0
			   {
				 if(compare(firstNum,secondNum)) //|first|>|second| 
					 { 					    				   
				        minusCalculate(firstNum,secondNum,reusltflage);					
					 }
				      else // |first|<|second| 
					  {
						  reusltflage='-';
						 minusCalculate(secondNum,firstNum,reusltflage);  
					  }
			   }
				 break; 
	case '*': if(firstNumflag==minus&&secondNumflag==minus) 
				  reusltflage='+';
		      else if(firstNumflag!=minus&&secondNumflag==minus)
                  reusltflage='-';
			  else if(firstNumflag==minus&&secondNumflag!=minus)
                  reusltflage='-';
		     multiplyCalculate(firstNum,secondNum,reusltflage);
		          break;
	case '/': if(firstNumflag==minus&&secondNumflag==minus) 
				  reusltflage='+';
		      else if(firstNumflag!=minus&&secondNumflag==minus)
                  reusltflage='-';
			  else if(firstNumflag==minus&&secondNumflag!=minus)
                  reusltflage='-'; 
	       	divisionCalculate(firstNum,secondNum,reusltflage); 
		       break;
	}
}

⌨️ 快捷键说明

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