📄 addoperator.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 + -