求助一道入门级C++题目

问题描述:

求助一道入门级C++题目
1.设Δ是集合A上的二元运算,如果对于集合A中的任意元素a和b,都有aΔb=c,且c∈A,则称二元运算Δ对于集合A是封闭的.现有一数组a,假定其数组元素构成集合A.试建立一个类DATA,判断求余运算“%”对集合A是否封闭.即判断数组中的任意两个元素a[i]和a[j],当a[j]不等于0时,a[i]除以a[j]所得余数仍然属于集合A.具体要求如下:
(1)私有数据成员
l int *a ; 整数指针,指向动态分配的数组空间
l int n ; 数组中元素个数
(2)公有成员函数
l DATA(int t[ ],int n1) ; 构造函数,用n1初始化n,并根据n动态生成数组a,用t数组对a数组初始化.
l int belong(int a[ ],int n,int x) ; 判断x的值是否在数组a中,如果在返回1,否则返回0.
l void fun( ) ; 判断求余运算%对本对象是否封闭,如果封闭,输出“封闭”.如果不封闭,则输出“不封闭”,同时输出第一个不满足条件的a[i]和a[j].
l void print( ) ; 输出成员数据的值.
l DATA( ) ; 析构函数,完成必要的功能.
(3)在主函数中对该类进行测试.先定义两个整型数组d1和d2,分别具有9个元素和8个元素,两个数组的值分别是{1,3,22,4,15,2,7,5,0}和{1,3,8,4,6,7,5,0}.然后用这两个数组初始化两个DATA类的对象test1和test2,测试并输出结果.正确的运行结果如下:
集合:1 3 22 4 15 2 7 5 0
封闭
集合:1 3 8 4 6 7 5 0
不封闭:8 3

#include <iostream>using namespace std;class DATA{    private:        int *a;     ...