c++定义一个集合类,怎样用操作符重载实现交集并集运算

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 02:15:54
c++定义一个集合类,怎样用操作符重载实现交集并集运算

c++定义一个集合类,怎样用操作符重载实现交集并集运算
c++定义一个集合类,怎样用操作符重载实现交集并集运算

c++定义一个集合类,怎样用操作符重载实现交集并集运算
#include
#include
using namespace std;
template
class MySet
{
public:
MySet();
MySet(int s, const Type a[]);
MySet(const MySet &o);

void Empty();
bool IsEmpty() const;
bool IsMemberOf(const Type &m) const;
void Add(const Type &m);
Type Sub();
bool IsEqual(const MySet &o) const;
MySet operator&(const MySet &o);
MySet operator|(const MySet &o);
void Print();

private:
Type element[100];
int count;
};
template
MySet::MySet() : count(0)
{
}
template
MySet::MySet(int s, const Type a[]) : count(s)
{
for (int i = 0; i < s; ++i)
element[i] = a[i];
}
template
MySet::MySet(const MySet &o)
{
count = o.count;

for (int i = 0; i < count; ++i)
element[i] = o.element[i];
}
template
void MySet::Empty()
{
count = 0;
}
template
bool MySet::IsEmpty() const
{
return (count == 0);
}
template
bool MySet::IsEqual(const MySet &o) const
{
if ((count != o.count)
|| (IsEmpty() && !o.IsEmpty())
|| (!IsEmpty() && o.IsEmpty()))
return false;

for (int i = 0; i < count; ++i)
{
if (element[i] != o.element[i])
return false;
}

return true;
}
template
bool MySet::IsMemberOf(const Type &m) const
{
if (IsEmpty())
return false;

for (int i = 0; i < count; ++i)
{
if (element[i] == m)
return true;
}

return false;
}
template
void MySet::Add(const Type &m)
{
if (++count > 100)
return;

element[count - 1] = m;
}
template
Type MySet::Sub()
{
if (IsEmpty())
return 0;
Type temp = element[count];
--count;
return temp;
}
template
MySet MySet::operator&(const MySet &o)
{
MySet inset;
if (IsEmpty() || o.IsEmpty())
return inset;
for (int i = 0; i < count; ++i)
{
for (int j = 0; j < o.count; ++j)
if (element[i] == o.element[j] && !inset.IsMemberOf(o.element[j]))
inset.Add(element[i]);
}
return inset;
}
template
MySet MySet::operator|(const MySet &o)
{
MySet unset(count, element);
if (!IsEmpty() && o.IsEmpty())
return unset;
if (IsEmpty() && !o.IsEmpty())
return MySet(o);
for (int i = 0; i < count; ++i)
{
for (int j = 0; j < o.count; ++j)
if (element[i] != o.element[j] && !unset.IsMemberOf(o.element[j]))
unset.Add(o.element[j]);
}
return unset;
}
template
void MySet::Print()
{
for (int i = 0; i < count; ++i)
cout

c++定义一个集合类,怎样用操作符重载实现交集并集运算 定义一个复数类,实现两个复数相加.并把它显示出来.用操作符重载. 请编写一个类Complex,定义复数的加法、减法、乘法和除法运算,要求在编写该类时重载这些运算操作符,并重载I/O操作符,以便输入和输出复数;按要求写出完整的实验代码,可运行. 定义一个矩阵类,重载运算符+与*,以完成两矩阵相加与相乘运算 定义一个复数类,实部和虚部都是整数类型,用成员函数形式重载复数的“+”运算,用友元函数的形式重载 “ 这个程序要怎么写,利用运算符重载定义集合类,达到使集合的运算符合人们的习惯的目的.“借用”一批运算符,(如 *,+,-,&, (C++)定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算.定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算.参加运算的两个运算量可以都是复数类对象,也可以 Console 应用程序设计一个复数类,重载运算符 +,-.在 Main 中定义两个复数对象并用+、- 运算获取结果 设计一个复数类,重载运算符+、—.在Main中定义两个复数对象并用+、—运算获取结果. 定义一个复数类,通过重载运算符:*,/,直接实现二个复数之间的乘除运算编写一个完整的程序,测试重载运算符的正确性.要求乘法“*”用友元函数实现重载,除法“/”用成员函数实现重载.⑴ C++建立字典类!测试中!今天四点半之前要上交!急\\高手们快帮帮忙!Question :建立一个字典类,支持单词定义(word-definition)对,其功能应包括以下几个:1.(50分)重载下标操作符,支持操作 dic[ C++编程,定义一个复数类定义一个复数类,并重载运算符,以实现复数的加法与减法运算,及显示运算结果 定义一个复数类Complex,定义带有2个参数(都为缺省参数)的构造函数;重载“/”(成员函数实现);重载“ 定义一个复数类CComplex,通过重载运算符 + ,直接实现两个复数之间的加法运算.定义一个复数类CComplex,通过重载运算符”+”,直接实现两个复数之间的加法运算.运算符”+”用成员函数实现重载. 求助——定义复数类complex,重载运算符“+”的C++程序题定义一个复数类complex,重载运算符“+”,使之能用于复数的加法运算.将运算符函数重载为非成员、非友元的普通函数.编写程序,求两个复 定义一个实验室类l 私有成员为,实验室名称,实验室成员(工号、姓名、工作),采用指针动态数组方式存储实验室成员.l 重载“+”操作,表示两个实验室合并,实验室名称由两个实验室名称连 c++:定义分数类,可以对分数类对象的各种操作进行重载运算.表达式中可含有加减乘除运算符以及实型数据的运算对象,并计算出结果显示出来.程序可以直接输入数学表达式,不需要任何转换, 用C++编写程序,定义一个复数类,编写程序重载四则运算符和++、--运算符,实现复数的相关运算;