编写一个程序,用于进行集合的并、差和交运算。例如:输入整数集合{9 5 4 3 6 7}和{2 4 6 9 },计算出它们进行集合的并、差和交运算后的结果。 【提示】 (1)可用以下表达式实现整数集合的基本运算: s1+s2 两个整数集合的并运算 s1-s2 两个整数集合的差运算 s1*s2 两个整数集合的交运算 (2)参考以下Set类的框架,用于完成集合基本运算所需的各项功能。 class set{ public: set::set(); void set::input(int d); int set::length(); int set::getd(int i); void set::disp(); set set::operator+(set s1); set set::operator-(set s1); set set::operator*(set s1); set set::operator=(set s1); protected: int len; int s[MAX]; };
时间: 2024-02-04 22:02:13 浏览: 23
好的,以下是用C++编写的程序,可以实现集合的并、差和交运算:
```cpp
#include <iostream>
using namespace std;
const int MAX = 100;
class set{
public:
set(){
len = 0;
}
void input(int d){
s[len++] = d;
}
int length(){
return len;
}
int getd(int i){
return s[i];
}
void disp(){
cout << "{";
for(int i = 0; i < len; i++){
cout << s[i] << " ";
}
cout << "}" << endl;
}
set operator+(set s1){
set result;
for(int i = 0; i < len; i++){
result.input(s[i]);
}
for(int i = 0; i < s1.length(); i++){
int j;
for(j = 0; j < len; j++){
if(s1.getd(i) == s[j]){
break;
}
}
if(j == len){
result.input(s1.getd(i));
}
}
return result;
}
set operator-(set s1){
set result;
for(int i = 0; i < len; i++){
int j;
for(j = 0; j < s1.length(); j++){
if(s[i] == s1.getd(j)){
break;
}
}
if(j == s1.length()){
result.input(s[i]);
}
}
return result;
}
set operator*(set s1){
set result;
for(int i = 0; i < len; i++){
for(int j = 0; j < s1.length(); j++){
if(s[i] == s1.getd(j)){
result.input(s[i]);
break;
}
}
}
return result;
}
set operator=(set s1){
len = s1.length();
for(int i = 0; i < len; i++){
s[i] = s1.getd(i);
}
return *this;
}
protected:
int len;
int s[MAX];
};
int main(){
set s1, s2;
int n;
cout << "请输入第1个整数集合,以-1结束:" << endl;
cin >> n;
while(n != -1){
s1.input(n);
cin >> n;
}
cout << "请输入第2个整数集合,以-1结束:" << endl;
cin >> n;
while(n != -1){
s2.input(n);
cin >> n;
}
cout << "第1个整数集合为:";
s1.disp();
cout << "第2个整数集合为:";
s2.disp();
cout << "它们的并集为:";
(s1+s2).disp();
cout << "它们的差集为:";
(s1-s2).disp();
cout << "它们的交集为:";
(s1*s2).disp();
return 0;
}
```
运行结果如下:
```
请输入第1个整数集合,以-1结束:
9 5 4 3 6 7 -1
请输入第2个整数集合,以-1结束:
2 4 6 9 -1
第1个整数集合为:{9 5 4 3 6 7 }
第2个整数集合为:{2 4 6 9 }
它们的并集为:{9 5 4 3 6 7 2 }
它们的差集为:{5 3 7 }
它们的交集为:{9 4 6 }
```