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

📄 changeexpression.h

📁 VC6.0环境下的多项式计算
💻 H
字号:
#ifndef CHANGEEXPRESSION_H_
#define CHANGEEXPRESSION_H_

/*
	把原栈 stackList1 转换成栈 stackList2
*/
void changeStack(stackList<char> & stackList1 ,stackList<float> & stackList2)
{
	//一个进行数字处理时用的中介栈
	stackList<char> number ;
	stackList<char> number1 ;
	
	float count=0 ,i ,agency,count1 = 0 ,length;
	char c ;
	while( stackList1.getLength() != 0)
	{
		//如果是 非 . 符号 则直接把它放进栈stackList2
		if((stackList1.getType() == 1) && (stackList1.getTop() != '.'))
		{
			stackList2.push(stackList1.getTop());
			stackList1.pop();
			stackList2.setType(1) ;
		}
		else
		{		/* 
				*如果是数字则把它提出并保存到栈number 当提取结束进行运算回复原来的数
				* 例子 :3 2 + 5 = 
				* 当恢复 32 时 需要先把 2 取出 然后进栈 number 然后把3取出进栈number
				* 然后根据栈number 的长用 for 循环进行运算
			*/
			while(stackList1.getType() != 1)
			{
				c = stackList1.getTop() ;
				number.push(c);
				number.setType(0);
				stackList1.pop();
				if(stackList1.getLength() == 0)
					break;
			}
			//如果是小数在 . 分开进行两次运算
			
			//计算小数部分
			if((stackList1.getType() == 1)&&(stackList1.getTop() == '.'))
			{
				length = number.getLength() ;
				for(i = 1 ; i<= length; i++ )//求数值
				{
					agency =  number.getTop() ;
					agency = agency - 48 ;
					count += agency*pow(10 ,i/(-1)) ;
					number.pop() ;
				}
				//把 . 符号去除
				stackList1.pop() ;

				//计算小数部分
				while(stackList1.getType() != 1)
				{
					c = stackList1.getTop() ;
					number1.push(c);
					number1.setType(0);
					stackList1.pop();
					if(stackList1.getLength() == 0)
						break;
				}
				for(i = number1.getLength() ; i>0 ; i-- )//求数值
				{
					agency =  number1.getTop() ;
					agency = agency - 48 ;
					count1 += agency*pow(10 ,i-1) ;
					number1.pop() ;
				}
				count += count1 ;
			}
			//如果不是小数进行一次运算 根据栈长计算
			else
			{
				for(i = number.getLength() ; i>0 ; i-- )//求数值
				{
					agency =  number.getTop() ;
					agency = agency - 48 ;
					count += agency*pow(10 ,i-1) ;
					number.pop() ;
				}
			}
			stackList2.push(count);
			stackList2.setType(0) ;
			count = 0 ;
			count1 = 0 ;
		}
	} 
	
}

#endif

⌨️ 快捷键说明

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