第五题
2010年07月07日
课程设计题目、要求:
设计一个通用数组类(主要针对数值型数据),设计相关成员以完成对数组的常用操作(如元素的添加、删除、访问、查找及数组排序等),并对>>、>的重载。还有排序。
运行结果与分析:
运行结果:
1 2 3 4 5 6 7 8 9 0 (注:创建数组类aa,赋值0 到9,把第一个删了,就从1,到9了。)
0 0 1 3 5 6 7 8 9 99(注:把aa赋值给bb,然后bb做了修改后排序,用cout>aa)
3 4 5 6 9 1 2 3 5 6 (注:输出aa)
越界了,小弟弟!请按任意键继续. . . (注:有越界提示的)
总结(收获与体会):
再次学习了一下运算符重载,> 重载要设置友元类。
参考文献:无
源程序:在Dev C++中运行!!!!在V C++6.0运行会出现这样的错误提示:error C2593: 'operator
using namespace std;
class IntArray
{
public:
int *data;
int _size;
friend istream &operator >>(istream &,IntArray&);
friend ostream & operator new int[_size];
}
~IntArray() //析构
{
delete []data;
}
int &operator[](int i) //查找,修改和添加,因为返回引用
{
if(i_size-1) //越界检查
{
coutdelete []data;
system("pause");
exit(2);
}
return data;
}
int size()const
{
return _size;
}
void _delete(int i) //删除下表所在元素
{
if(i_size-1) //越界检查
{
coutdelete []data;
system("pause");
exit(2);
}
for(int k=i;koperator=(IntArray &n) //重载=
{
int i=0;
int k=0;
if(_size!=n._size)
{
coutdelete []data;
delete []n.data ;
system("pause");
exit(2);
}
for(int j=0;jdata[j]) k=j;
}
if(k!=i)
{
int t=data;
data=data[k];
data[k]=t;
}
}
}
};
istream & operator>>(istream &is,IntArray &n)
{
int i=0;
while(i>n.data;
i++;
}
return is;
}
ostream & operator >aa;
cout<<aa;
bb._delete(10);
system("pause");
return 1;
}
2010年07月07日
课程设计题目、要求:
设计一个通用数组类(主要针对数值型数据),设计相关成员以完成对数组的常用操作(如元素的添加、删除、访问、查找及数组排序等),并对>>、>的重载。还有排序。
运行结果与分析:
运行结果:
1 2 3 4 5 6 7 8 9 0 (注:创建数组类aa,赋值0 到9,把第一个删了,就从1,到9了。)
0 0 1 3 5 6 7 8 9 99(注:把aa赋值给bb,然后bb做了修改后排序,用cout>aa)
3 4 5 6 9 1 2 3 5 6 (注:输出aa)
越界了,小弟弟!请按任意键继续. . . (注:有越界提示的)
总结(收获与体会):
再次学习了一下运算符重载,> 重载要设置友元类。
参考文献:无
源程序:在Dev C++中运行!!!!在V C++6.0运行会出现这样的错误提示:error C2593: 'operator
using namespace std;
class IntArray
{
public:
int *data;
int _size;
friend istream &operator >>(istream &,IntArray&);
friend ostream & operator new int[_size];
}
~IntArray() //析构
{
delete []data;
}
int &operator[](int i) //查找,修改和添加,因为返回引用
{
if(i_size-1) //越界检查
{
coutdelete []data;
system("pause");
exit(2);
}
return data;
}
int size()const
{
return _size;
}
void _delete(int i) //删除下表所在元素
{
if(i_size-1) //越界检查
{
coutdelete []data;
system("pause");
exit(2);
}
for(int k=i;koperator=(IntArray &n) //重载=
{
int i=0;
int k=0;
if(_size!=n._size)
{
coutdelete []data;
delete []n.data ;
system("pause");
exit(2);
}
for(int j=0;jdata[j]) k=j;
}
if(k!=i)
{
int t=data;
data=data[k];
data[k]=t;
}
}
}
};
istream & operator>>(istream &is,IntArray &n)
{
int i=0;
while(i>n.data;
i++;
}
return is;
}
ostream & operator >aa;
cout<<aa;
bb._delete(10);
system("pause");
return 1;
}