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

📄 addoperator.txt

📁 用C++编写的复数加法重载
💻 TXT
字号:
#include<iostream.h>
const int maxcard=100;
enum ErrCode{noErr,overflow};
class set{
public:
	set(void){card=0;}
	bool Member(int);
	ErrCode AddElem(int);
	void RmvElem(int);
	void Print();
	void Intersect(set *,set *);
	ErrCode Union(set *,set *);
	
private:
	int elems[maxcard];
	int card;
};
bool set::Member(int elem)
{
	for(int i=0;i<card;i++)
		if(elems[i]==elem)
			return true;
		return false;
}
ErrCode set::AddElem(int elem)
{
	for(int i=0;i<card;i++)
		if(elems[i]==elem)
			return (noErr);
		if(card<maxcard)
		{
			elems[card+1]=elem;
			return (noErr);
		}
		else
			return overflow;
}
void set::RmvElem(int elem)
{
	for(int i=0;i<card;i++)
		if(elems[i]==elem)
		{
			for(;i<card-1;i++)
				elems[i]=elems[i+1];
			card--;
		}
}
void set::Print()
{
	cout<<"{";
	for(int i=0;i<card-1;i++)
		cout<<elems[i]<<",";
	cout<<elems[card-1];
	cout<<"}"<<endl;
}
void set::Intersect(set *sp1,set*sp2)
{
	sp2->card=0;
	for(int i=0;i<card;i++)
		for(int j=0;j<sp1->card;j++)
			if(elems[i]==sp1->elems[j])
			{
				sp2->elems[sp2->card++]=elems[i];
				break;
			}
}
ErrCode set::Union(set *sp1,set *sp2)
{
	for(int i=0;i<card;i++)
		if(sp2->AddElem(elems[i])==overflow)
			return (overflow);
		return (noErr);
}
void main()
{
	int i,b;
	set s,s1,s2,s3,s4;
	for(i=0;i<10;i++)
	{
		b=s.AddElem(i);
		b=s1.AddElem(2*i);
		b=s2.AddElem(3*i);
	}
	cout<<"s=";s.Print();
	cout<<"s1=";s1.Print();
	cout<<"s2=";s2.Print();
	for(i=0;i<s;i++)
	{
		s.RmvElem(i);
		s1.RmvElem(i);
		s2.RmvElem(i);
	}
	cout<<"After RmvElem(0-4),s=";s.Print();
	cout<<"After RmvElem(0-4),s1=";s1.Print();
	cout<<"After RmvElem(0-4),s2=";s2.Print();
	s.Intersect(&s1,&s3);
	b=s.Union(&s2,&s4);
	cout<<"s3=s*s1=";s3.Print();
	cout<<"s4=s+s2=";s4.Print();
}






⌨️ 快捷键说明

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