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

📄 polyoperate.cpp

📁 运用链表来操作多项式,实现多项式加减乘的功能
💻 CPP
字号:
#include "Polynomial.h"
#include "windows.h"
#include "string.h"
#include "conio.h"
#include "iostream.h"

//设置背景颜色和字体颜色
void SetColor(int clrText,int clrBack);

//改变输出颜色
void ChangeOutputColor(int clrText);

//动画显示文字
void AnimateOutput(char* s);

void main(void)
{
	//设置标题
	SetConsoleTitle("多项式加减乘系统");
	
	//显示欢迎信息
	MessageBox(NULL,"欢迎使用多项式加减乘系统!","热烈欢迎",MB_ICONINFORMATION);

	int nFunID;       //功能号
	int nTextClrID;   //字体颜色号
	int nBackClrID;   //背景颜色号
	int nTOBID;       //功能号

	//默认设置
	nFunID=1;
	nTextClrID=2;
	nBackClrID=0;
	nTOBID=1;

	char str[]="版本:1.0\n软件设计:陶善文\n所在单位:南京航空航天大学\nQQ:8261525\n个人主页:http://earth.prohosting.com/ahei\nEmail:ahei080210114@hotmail.com";
	char* sResult;
	Poly p1,p2;
	CPolynomial* m_pPoly;

	sResult=(char*)malloc(100);

	bool bIsExit=false;
	while(!bIsExit)
	{
		//设置颜色
    	SetColor(nTextClrID,0);
		SetColor(0,nBackClrID);

		//打印使用说明
		cout<<"-----------------使用说明-----------------"<<endl;
		cout<<"               1.多项式化简"<<endl;
		cout<<"               2.多项式相加"<<endl;
		cout<<"               3.多项式相减"<<endl;
		cout<<"               4.多项式相乘"<<endl;
		cout<<"               5.多项式打印"<<endl;
		cout<<"               6.颜色设置"<<endl;
		cout<<"               7.关于本系统"<<endl;
		cout<<"               8.退出本系统"<<endl;
		cout<<endl<<"请选择:";
		
		cin>>nFunID;
		
		switch(nFunID)
		{
		//----------------------多项式化简-------------------
		case 1:     
			m_pPoly=new(CPolynomial);
			cout<<"-----多项式化简-----"<<endl;
			cout<<"请先输入要化简的多项式:"<<endl;
			m_pPoly->CreatePoly(p1);

			ChangeOutputColor(nTextClrID);
			cout<<"你输入的多项式为:p(x)=";
			sResult=m_pPoly->PolyToSymbol(p1);
			cout<<sResult<<endl;
//			AnimateOutput(sResult);
			m_pPoly->ToBeEasy(p1);
			cout<<"化简后的多项式为:p'(x)=";			
			sResult=m_pPoly->PolyToSymbol(p1);
			cout<<sResult<<endl;
//			AnimateOutput(sResult);
			break;
		//--------------------------------------------------



		//------------------多项式相加----------------------
		case 2:     
			cout<<"-----多项式相加-----"<<endl;

			m_pPoly=new(CPolynomial);
			cout<<"请先输入多项式A:"<<endl;
			m_pPoly->CreatePoly(p1);
			cout<<endl<<"请先输入多项式B:"<<endl;
			m_pPoly->CreatePoly(p2);

			ChangeOutputColor(nTextClrID);
			cout<<"多项式A为:p1(x)=";
			sResult=m_pPoly->PolyToSymbol(p1);
			cout<<sResult<<endl;
			cout<<"多项式B为:p2(x)=";
			sResult=m_pPoly->PolyToSymbol(p2);
			cout<<sResult<<endl;
//			cout<<endl;

			m_pPoly->AddPoly(p1,p2);			
			cout<<"多项式A与多项式B的和为:p'(x)=p1(x)+p2(x)=";
			sResult=m_pPoly->PolyToSymbol(p1);
			cout<<sResult<<endl;
			break;
		//------------------------------------------------


        //-----------------多项式相减---------------------
		case 3:     
			cout<<"-----多项式相减-----"<<endl;
			m_pPoly=new(CPolynomial);
			cout<<"请先输入多项式A:"<<endl;
			m_pPoly->CreatePoly(p1);
			cout<<endl<<"请先输入多项式B:"<<endl;
			m_pPoly->CreatePoly(p2);

			ChangeOutputColor(nTextClrID);
			cout<<"多项式A为:p1(x)=";
			sResult=m_pPoly->PolyToSymbol(p1);
			cout<<sResult<<endl;
			cout<<"多项式B为:p2(x)=";
			sResult=m_pPoly->PolyToSymbol(p2);
			cout<<sResult<<endl;

			m_pPoly->SubtractPoly(p1,p2);
			
			cout<<"多项式A与多项式B的差为:p'(x)=p1(x)-p2(x)=";
			sResult=m_pPoly->PolyToSymbol(p1);
			cout<<sResult<<endl;
			break;
		//------------------------------------------------------------------



		//---------------------------多项式相乘----------------------
		case 4:    
			cout<<"-----多项式相乘-----"<<endl;

			m_pPoly=new(CPolynomial);
			cout<<"请先输入多项式A:"<<endl;
			m_pPoly->CreatePoly(p1);
			cout<<"请先输入多项式B:"<<endl;
			m_pPoly->CreatePoly(p2);

			ChangeOutputColor(nTextClrID);
			cout<<"多项式A为:p1(x)=";
			sResult=m_pPoly->PolyToSymbol(p1);
			cout<<sResult<<endl;
			cout<<"多项式B为:p2(x)=";
			sResult=m_pPoly->PolyToSymbol(p2);
			cout<<sResult<<endl;
			
			m_pPoly->MultiplyPoly(p1,p2);			
			m_pPoly->ToBeEasy(p1);

			cout<<"多项式A与多项式B的积为:p'(x)=p1(x)*p2(x)=";
			sResult=m_pPoly->PolyToSymbol(p1);
			cout<<sResult<<endl;
			break;
		//-----------------------------------------------------------



		//--------------------多项式打印-----------------------------
		case 5:   
			cout<<"-----多项式相减-----"<<endl;
			m_pPoly=new(CPolynomial);
			cout<<"请先输入要打印的多项式:"<<endl;
			m_pPoly->CreatePoly(p1);
			m_pPoly->ToBeEasy(p1);

			ChangeOutputColor(nTextClrID);
			cout<<"你要打印的多项式为:"<<endl;
			
			sResult=m_pPoly->PolyToSymbol(p1);
			cout<<sResult<<endl;
			break;
		//---------------------------------------------------



        //--------------------颜色设置-----------------------
		case 6:
			cout<<"         --------颜色设置--------"<<endl;
			cout<<"              1.设置字体颜色"<<endl;
			cout<<"              2.设置背景颜色"<<endl;
			cout<<"              3.取消"<<endl;
			cout<<"请选择:";
			cin>>nTOBID;
			switch(nTOBID)
			{
			case 1: //设置字体颜色
				cout<<"           ----设置字体颜色----"<<endl;
				cout<<"                 1.红色"<<endl;
				cout<<"                 2.绿色"<<endl;
				cout<<"                 3.蓝色"<<endl;
		    	cout<<"                 4.取消"<<endl;
	    		cout<<"请选择:";
				cin>>nTextClrID;
				SetColor(nTextClrID,0);
				break;

			case 2: //设置背景颜色
				cout<<"           ----设置背景颜色----"<<endl;
				cout<<"                 1.红色"<<endl;
				cout<<"                 2.绿色"<<endl;
				cout<<"                 3.蓝色"<<endl;
		    	cout<<"                 4.取消"<<endl;
	    		cout<<"请选择:";
				cin>>nBackClrID;
				SetColor(0,nBackClrID);
				break;
			default:
				break;
			}
			break;
        //--------------------颜色设置-----------------------


		case 7:
			//显示关于信息
			MessageBox(NULL,str,"关于多项式加减乘系统",MB_ICONINFORMATION);
			break;


		case 8:
			int ans=MessageBox(NULL,"你真的要退出吗?","退出系统",MB_ICONQUESTION | MB_YESNO);
			if(ans==IDYES)
			{
				MessageBox(NULL,"谢谢使用本系统!","谢谢使用",MB_ICONINFORMATION);
				exit(0);
			}
			break;
		}
//		if(m_pPoly)
//			delete(m_pPoly);
//			free(m_pPoly);
	}
}


//设置颜色
void SetColor(int clrText,int clrBack)
{
	HANDLE	hStdOut;
	hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);	

	switch(clrText)
	{
	case 1:
		clrText=FOREGROUND_RED;
		break;
	case 2:
		clrText=FOREGROUND_GREEN;
		break;
	case 3:
		clrText=FOREGROUND_BLUE;
		break;
	default:
		clrText=0;
	}

	switch(clrBack)
	{
	case 1:
		clrBack=BACKGROUND_RED;
		break;
	case 2:
		clrBack=BACKGROUND_GREEN;
		break;
	case 3:
		clrBack=BACKGROUND_BLUE;
		break;
	default:
		clrBack=0;
	}

	if(clrText)
		SetConsoleTextAttribute(hStdOut, clrText);
	if(clrBack)
		::SetConsoleTextAttribute(hStdOut,clrBack);
}


//改变输出颜色
void ChangeOutputColor(int clrText)
{
	switch(clrText)
	{
	case 1:
		SetColor(2,0);
		break;
	case 2:
		SetColor(1,0);
		break;
	case 3:
		SetColor(2,0);
		break;
	}
}


//动画显示文字
void AnimateOutput(char* s)
{
	int nLen=strlen(s);
	for(int i=0;i<nLen;i++)
	{
		cout<<*s++;
		Sleep(100);	
	}
}

⌨️ 快捷键说明

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