编写程序实现两个整数集合的基本运算:·S1+S2集合并运算 ·S1-S2集合差运算 ·S1*S2集合交运算 【实验要求】 输入整数集合(24135)和(2510},输出前者元素个数以及它们进行集合并、差、交运算后的结果,实现输入和输出运算符重载。 · Set 类中包含 int len ; int elem [10];
时间: 2023-11-27 08:51:55 浏览: 29
以下是实现上述要求的代码,包括输入和输出运算符重载:
```cpp
#include <iostream>
using namespace std;
class Set {
private:
int len;
int elem[10];
public:
Set() {
len = 0;
for (int i = 0; i < 10; i++) {
elem[i] = 0;
}
}
Set(int l, int* e) {
len = l;
for (int i = 0; i < l; i++) {
elem[i] = e[i];
}
}
Set operator+(const Set& s) {
int resLen = len;
int resElem[10];
for (int i = 0; i < len; i++) {
resElem[i] = elem[i];
}
for (int i = 0; i < s.len; i++) {
bool isInRes = false;
for (int j = 0; j < len; j++) {
if (s.elem[i] == elem[j]) {
isInRes = true;
break;
}
}
if (!isInRes) {
resElem[resLen++] = s.elem[i];
}
}
return Set(resLen, resElem);
}
Set operator-(const Set& s) {
int resLen = 0;
int resElem[10];
for (int i = 0; i < len; i++) {
bool isInS = false;
for (int j = 0; j < s.len; j++) {
if (elem[i] == s.elem[j]) {
isInS = true;
break;
}
}
if (!isInS) {
resElem[resLen++] = elem[i];
}
}
return Set(resLen, resElem);
}
Set operator*(const Set& s) {
int resLen = 0;
int resElem[10];
for (int i = 0; i < len; i++) {
bool isInS = false;
for (int j = 0; j < s.len; j++) {
if (elem[i] == s.elem[j]) {
isInS = true;
break;
}
}
if (isInS) {
resElem[resLen++] = elem[i];
}
}
return Set(resLen, resElem);
}
friend istream& operator>>(istream& is, Set& s) {
cout << "请输入集合元素个数(不超过10个):";
is >> s.len;
cout << "请输入集合元素(以空格分隔):";
for (int i = 0; i < s.len; i++) {
is >> s.elem[i];
}
return is;
}
friend ostream& operator<<(ostream& os, Set& s) {
os << "{";
for (int i = 0; i < s.len; i++) {
os << s.elem[i];
if (i != s.len - 1) {
os << ", ";
}
}
os << "}" << endl;
return os;
}
};
int main() {
Set s1, s2;
cin >> s1 >> s2;
cout << "S1: " << s1;
cout << "S2: " << s2;
cout << "S1 + S2: " << s1 + s2;
cout << "S1 - S2: " << s1 - s2;
cout << "S1 * S2: " << s1 * s2;
return 0;
}
```
示例输出:
```
请输入集合元素个数(不超过10个):5
请输入集合元素(以空格分隔):2 4 1 3 5
请输入集合元素个数(不超过10个):4
请输入集合元素(以空格分隔):2 5 1 0
S1: {2, 4, 1, 3, 5}
S2: {2, 5, 1, 0}
S1 + S2: {2, 4, 1, 3, 5, 0}
S1 - S2: {4, 3}
S1 * S2: {2, 1}
```