标题:一道实验题,太难了,做不出来,望高手解答
取消只看楼主
独行者123
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2008-5-1
 问题点数:0 回复次数:0 
一道实验题,太难了,做不出来,望高手解答
在VC++中建立一个Win32 Console Application工程。
实现一个 AbsCollection类,该类包含的成员有:储存元素的整型数组、标志最后一个元素位置的整型last及数组长度、用来对集合中元素进行枚举的一个成员函数,并从AbsCollection类派生出Set类。Set对象中的数组是包含零个或多个无序的非重复元素,f1.dat 、f2.dat 文件中存放初始数据元素,由Set对象构造函数打开文件读入到数组中,经过加工处理后的运算结果存入该对象的数组中,由Set 对象析构函数将数组中元素写入指定的磁盘文件中。已知AbsCollection类定义如下:
class AbsCollection{
protected:
    int *iPtr;        //指向数组的指针
    int last;        //数组最后一个元素的位置
    int Max_Size;    //数组长度
public:
    AbsCollection(){};
    AbsCollection(int size){
        Max_Size=size;
        iPtr=new int[Max_Size];
        last=-1;
    };
    ~AbsCollection(){}
    void OutSet(){
        if(last<0){
            cout<<"Empty set!"<<endl;
            return;
        }
        cout<<"The number of elements:"    <<last+1<<endl;
        for(int *ip=iPtr;ip<=iPtr+last;)
            cout<<*ip++<<”  “;
        cout<<endl;
    }
};
(1)定义Set类,编写Set类构造函数和析构函数,使它们完成打开文件读入元素到数组中和将数组中元素写入指定的f1.dat磁盘文件中;
(2)编写集合增加一个元素成员函数input(int x);(注:如果集合中已有相同的元素,则不再加入)
(3)编写删除一个元素成员函数erase(int x);
(4)编写判别元素是否属于集合的成员函数isInSet(int x);
(5)编写求两个集合交的函数成员intersection(Set &s);
(6)编写求两个集合差的成员函数;
(7)重载+运算符,用于求两个集合的并;
(8)编写集合排序的成员函数sort();(从大到小排序)
(9)重载<<运算符,用于在屏幕上输出集合元素。
搜索更多相关主题的帖子: 实验 解答 
2008-10-20 21:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-239511-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.088798 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved