
编写一个C++小程序,在线等,最好19:30前!!
定义一个元素类型为int型的一维数组类intArray:classintArray{……publicintArray(intsize);//为数组大小,所有元素初始化为0...
定义一个元素类型为int型的一维数组类intArray:
class intArray
{……
public
intArray(int size);//为数组大小,所有元素初始化为0
~intArray();
int size()const;//获取数组大小
int &operator[](int i);//获取第i个元素的引用。要求判断i是否越界,如果越界,终止程序。
intArray& operator=(intArray &a);//把数组a的所有元素复制到this数组的对应位置。
要求判断a的大小是否超出this数组的大小,如果超出,终止程序。
bool operator==(intArray &a);//当数组a与this数组的大小和对应元素相等时,返回true,否则返回false.
void enlarge(int delta);//改变数组大小,在原数组的后面增加delta个元素。并把这些元素初始化为0.
void sort();//对数组元素进行由小到大排序。
void display();//输出数组所有元素。
};
完成上面的intArray类,其接口放在intArray.h中,实现放在intArray.cpp中,编写一个测试main.cpp文件,要求测试[],=,sort三个功能 展开
class intArray
{……
public
intArray(int size);//为数组大小,所有元素初始化为0
~intArray();
int size()const;//获取数组大小
int &operator[](int i);//获取第i个元素的引用。要求判断i是否越界,如果越界,终止程序。
intArray& operator=(intArray &a);//把数组a的所有元素复制到this数组的对应位置。
要求判断a的大小是否超出this数组的大小,如果超出,终止程序。
bool operator==(intArray &a);//当数组a与this数组的大小和对应元素相等时,返回true,否则返回false.
void enlarge(int delta);//改变数组大小,在原数组的后面增加delta个元素。并把这些元素初始化为0.
void sort();//对数组元素进行由小到大排序。
void display();//输出数组所有元素。
};
完成上面的intArray类,其接口放在intArray.h中,实现放在intArray.cpp中,编写一个测试main.cpp文件,要求测试[],=,sort三个功能 展开
2个回答
展开全部
intArray.h文件
class intArray
{
public:
intArray(int size);
~intArray();
int size()const;//获取数组大小
int &operator[](int i);//获取第i个元素的引用。要求判断i是否越界,如果越界,终止程序。
intArray& operator=(intArray &a);//把数组a的所有元素复制到this数组的对应位置。要求判断a的大小是否超出this数组的大小,如果超出,终止程序。
bool operator==(intArray &a);//当数组a与this数组的大小和对应元素相等时,返回true,否则返回false.
void enlarge(int delta);//改变数组大小,在原数组的后面增加delta个元素。并把这些元素初始化为0.
void sort();//对数组元素进行由小到大排序。
void display();//输出数组所有元素。
private:
int *data;
int length;
};
intArray.cpp文件
#include <iostream>
#include <stdlib.h>
#include "intArray.h"
using namespace std;
intArray::intArray(int size)
{
data=new int[size];
length=size;
memset(data,0,size);
}
intArray::~intArray()
{
delete []data;
}
int intArray::size()const
{
return length;
}
int& intArray::operator[](int i)
{
if (i>=size())
{
exit(0);
}
return data[i];
}
intArray& intArray::operator=(intArray &a)
{
if (a.size()>size())
{
exit(0);
}
else
{
for(int i=0;i<a.size();i++)
data[i]=a.data[i];
}
return *this;
}
bool intArray::operator==(intArray &a)
{
if (a.size()==size())
{
for (int i=0;i<size();i++)
{
if (data[i]!=a.data[i])
{
return false;
}
}
return true;
}
return false;
}
void intArray::enlarge(int delta)
{
int sz=size()+delta;
delete []data;
data=new int[sz];
memset(data,0,sz);
}
void intArray::sort()
{
int temp,index;
for(int i=0;i<size()-1;i++)
{
index=i;
for (int j=i+1;j<size();j++)
{
if (data[index]>data[j])
{
index=j;
}
}
temp=data[index];
data[index]=data[i];
data[i]=temp;
}
}
void intArray::display()
{
for (int i=0;i<size();i++)
{
cout<<data[i]<<' ';
}
cout<<endl;
}
main.cpp文件
#include "intArray.h"
int main()
{
intArray ia(5);
intArray ib(5);
ia[0]=1;ia[1]=6;ia[2]=5;ia[3]=9;ia[4]=7;
ib=ia;
ib.sort();
ib.display();
return 0;
}
已经运行过可以运行。
class intArray
{
public:
intArray(int size);
~intArray();
int size()const;//获取数组大小
int &operator[](int i);//获取第i个元素的引用。要求判断i是否越界,如果越界,终止程序。
intArray& operator=(intArray &a);//把数组a的所有元素复制到this数组的对应位置。要求判断a的大小是否超出this数组的大小,如果超出,终止程序。
bool operator==(intArray &a);//当数组a与this数组的大小和对应元素相等时,返回true,否则返回false.
void enlarge(int delta);//改变数组大小,在原数组的后面增加delta个元素。并把这些元素初始化为0.
void sort();//对数组元素进行由小到大排序。
void display();//输出数组所有元素。
private:
int *data;
int length;
};
intArray.cpp文件
#include <iostream>
#include <stdlib.h>
#include "intArray.h"
using namespace std;
intArray::intArray(int size)
{
data=new int[size];
length=size;
memset(data,0,size);
}
intArray::~intArray()
{
delete []data;
}
int intArray::size()const
{
return length;
}
int& intArray::operator[](int i)
{
if (i>=size())
{
exit(0);
}
return data[i];
}
intArray& intArray::operator=(intArray &a)
{
if (a.size()>size())
{
exit(0);
}
else
{
for(int i=0;i<a.size();i++)
data[i]=a.data[i];
}
return *this;
}
bool intArray::operator==(intArray &a)
{
if (a.size()==size())
{
for (int i=0;i<size();i++)
{
if (data[i]!=a.data[i])
{
return false;
}
}
return true;
}
return false;
}
void intArray::enlarge(int delta)
{
int sz=size()+delta;
delete []data;
data=new int[sz];
memset(data,0,sz);
}
void intArray::sort()
{
int temp,index;
for(int i=0;i<size()-1;i++)
{
index=i;
for (int j=i+1;j<size();j++)
{
if (data[index]>data[j])
{
index=j;
}
}
temp=data[index];
data[index]=data[i];
data[i]=temp;
}
}
void intArray::display()
{
for (int i=0;i<size();i++)
{
cout<<data[i]<<' ';
}
cout<<endl;
}
main.cpp文件
#include "intArray.h"
int main()
{
intArray ia(5);
intArray ib(5);
ia[0]=1;ia[1]=6;ia[2]=5;ia[3]=9;ia[4]=7;
ib=ia;
ib.sort();
ib.display();
return 0;
}
已经运行过可以运行。
展开全部
// 温习.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include"stdlib.h"
#include"malloc.h"
#include"iostream"
using namespace std;
int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}
class intArray
{ int *aa,num;
public:
intArray(int size)//为数组大小,所有元素初始化为0
{int i;
aa=new int[size];
num=size;
for(i=0;i<size;i++)
aa[i]=0;
}
void f(int *a,int n)
{
int i;
num=n;
for(i=0;i<n;i++)
aa[i]=a[i];
}
~intArray()
{ delete []aa;
}
int size()//获取数组大小
{ return num;
}
int &operator [](int i)//获取第i个元素的引用。要求判断i是否越界,如果越界,终止程序。
{if(i>num-1) {cout<<"越界。"<<endl;exit(0);}
else return aa[i];
}
intArray &operator=(intArray &a)//把数组a的所有元素复制到this数组的对应位置。
//要求判断a的大小是否超出this数组的大小,如果超出,终止程序。
{
int i;
if(a.num>num) exit(0);
else
for(i=0;i<a.num;i++)
aa[i]=a.aa[i];
return a;
}
bool operator==(intArray &a)//当数组a与this数组的大小和对应元素相等时,返回true,否则返回false.
{ if(a.num==num) {
int p=1,i;
for(i=0;i<num;i++)
if(a.aa[i]!=aa[i]) {p=0;break;}
if(p==1) return true;
}
return false;
}
void enlarge(int delta)//改变数组大小,在原数组的后面增加delta个元素。并把这些元素初始化为0.
{ aa=(int *)realloc(aa,num+delta);
for(int i=num;i<num+delta;i++)
aa[i]=0;
num+=delta;
}
void sort()//对数组元素进行由小到大排序。
{
qsort(aa,num,sizeof(aa[0]),cmp);
}
void display()//输出数组所有元素。
{int i;
for(i=0;i<num;i++)
cout<<aa[i]<<endl;
}
};
int main()
{ int t[5]={1,5,2,4,3};
intArray a(5),b(5);
a.f(t,5);
b=a;
b.display();
a.sort();
b=a;
b.display();
printf("Hello World!\n");
return 0;
}
//希望对你有帮助
//
#include "stdafx.h"
#include"stdlib.h"
#include"malloc.h"
#include"iostream"
using namespace std;
int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}
class intArray
{ int *aa,num;
public:
intArray(int size)//为数组大小,所有元素初始化为0
{int i;
aa=new int[size];
num=size;
for(i=0;i<size;i++)
aa[i]=0;
}
void f(int *a,int n)
{
int i;
num=n;
for(i=0;i<n;i++)
aa[i]=a[i];
}
~intArray()
{ delete []aa;
}
int size()//获取数组大小
{ return num;
}
int &operator [](int i)//获取第i个元素的引用。要求判断i是否越界,如果越界,终止程序。
{if(i>num-1) {cout<<"越界。"<<endl;exit(0);}
else return aa[i];
}
intArray &operator=(intArray &a)//把数组a的所有元素复制到this数组的对应位置。
//要求判断a的大小是否超出this数组的大小,如果超出,终止程序。
{
int i;
if(a.num>num) exit(0);
else
for(i=0;i<a.num;i++)
aa[i]=a.aa[i];
return a;
}
bool operator==(intArray &a)//当数组a与this数组的大小和对应元素相等时,返回true,否则返回false.
{ if(a.num==num) {
int p=1,i;
for(i=0;i<num;i++)
if(a.aa[i]!=aa[i]) {p=0;break;}
if(p==1) return true;
}
return false;
}
void enlarge(int delta)//改变数组大小,在原数组的后面增加delta个元素。并把这些元素初始化为0.
{ aa=(int *)realloc(aa,num+delta);
for(int i=num;i<num+delta;i++)
aa[i]=0;
num+=delta;
}
void sort()//对数组元素进行由小到大排序。
{
qsort(aa,num,sizeof(aa[0]),cmp);
}
void display()//输出数组所有元素。
{int i;
for(i=0;i<num;i++)
cout<<aa[i]<<endl;
}
};
int main()
{ int t[5]={1,5,2,4,3};
intArray a(5),b(5);
a.f(t,5);
b=a;
b.display();
a.sort();
b=a;
b.display();
printf("Hello World!\n");
return 0;
}
//希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询