class palindrome{
int n;
int y;
public:
palindrome(int x);
void huiwen();
void show();
};
palindrome::palindrome(int x) {
n=x;
y=0;
}
void palindrome::huiwen() {
int b[20],c[50],m,i,p=0,t1=1,t2=1;
m=n;
for(i=0;m>0;m/=10)
{
p++;
b[i]=m%10;
i++;
}
for(i=0;i0;m/=2)
{
p++;
c[i]=m%2;
i++;
}
for(i=0;i
>a;
palindrome p(a);
p.huiwen();
p.show();
}
运行结果:
6(定义一个字符串类String,实现判断该字符串是否为回文字符串。所谓回文字符串,是
指该字符串左右对称。例如字符串“123321”是回文字符串。 具体要求如下:
(1)私有数据成员
char *str;
int y:标记是否为回文字符串。
(2)公有成员函数
String (char *s) :构造函数,用给定的参数s初始化数据成员str。y初始化为0。
void huiwen () :判断str所指向的字符串是否为回文字符串。
void show( ) :在屏幕上显示字符串。
(3)在主程序中定义字符串char s[]=”ababcedbaba”作为原始字符串。定义一个String
类对象test,用s初始化test,完成对该类的测试。
程序源代码
#include #include class string{
char *str;
int y;
public:
string(char *s);
void huiwen();
void show();
};
string::string(char *s) {
str=new char[strlen(s)];
strcpy(str,s);
y=0;
}
void string::huiwen() {
char *p1,*p2;
p2=p1=str;
for(int i=0;str[i];i++,p2++);
p2--;
for(;p1!=p2;p1++,p2--)
{
if(*p1!=*p2)
{y=0;break;}
else
y=1;
}
}
void string::show() {
cout<<”字符串为:”< #include class phalanx{
int(*p)[20];
int starnum;
int n;
public:
phalanx(int s,int m);
void process();
void print();
~phalanx();
};
phalanx::phalanx(int s,int m)
{
starnum=s;
n=m;
}
void phalanx::process()
{
int num=starnum;
int y=n,i,j,x;
p=new int[20][20];
for(x=0;x=0;j--)
{
p[i][j]=num;
num++;
}
}
}
void phalanx::print() {
int i,j,m=0;
for(i=0;i>s>>m;
phalanx pp(s,m);
pp.process();
pp.print();
}
运行结果
8(建立一个MATRIX,生成并显示一个螺旋方阵。螺旋方阵如下图所示,起始数置于方阵
的左上角,然后从起始数开始依次递增,按顺时针方向从外向里旋转填数而成。
具体要求如下:
(1)私有数据成员
int a[20] [20]:二维整型数组存放螺旋方阵。
int startnum:螺旋方阵的起始数。
int n:存放方针的层数。
(2)公有成员函数
MATRIX (int s, int m ):构造函数,初始化成员数据startnum和n。
void process():生成起始数为startnum的n行螺旋方阵。
void print():输出螺旋方阵。
(3)在主程序中定义MATRIX类的对象t对该类进行测试。 程序源代码
#include #include class matrix{
int a[20][20];
int starnum;
int n;
public:
matrix(int s,int m);
void process();
void print();
};
matrix::matrix(int s,int m) {
starnum=s;
n=m;
}
void matrix::process() {
int st=starnum;
int i,j,x=0,y=n;
for(;x<=(y-1)/2;x++)
{
for(i=x,j=x;j<(y-x-1);j++)
{
a[i][j]=st;
st++;
}
for(;i<(y-x-1);i++)
{
a[i][j]=st;
st++;
}
for(;j>x;j--)
{
a[i][j]=st;
st++;
}
for(;i>x;i--)
{
a[i][j]=st;
st++;
}
if(x==(y-1)/2)a[i][j]=st;
}
}
void matrix::print() {
int i,j;
for(i=0;i>s>>m;
matrix pp(s,m);
pp.process();
pp.print();
}
运行结果
9(定义一个字符串类CString,并设计一个算法对该串中各个不同字符出现的频率进行统计。具体要求如下:
(1)私有数据成员
char *str:指向要统计的字符串。
char (*p)[2]:动态分配二维空间,用以存放str所指字符串中出现的字符及其出现的次数(次数在存放时,用该数字对应的ASCII值存放;在输出次数时,输出该ASCII字符对应的ASCII值即可)。
int size:存放字符串中出现的所有不同的字符的个数。
(2)公有成员函数
CString (char *s) :根据s参数初始化数据成员str;p和size初始值为0。
void Count():p根据s所指字符串长度分配空间。然后把str所指字符串中的每个字符放入p数组中,设置每个字符的出现次数为1。根据p数组统计不同字符出现的频率,并求得size的实际大小。最后根据size的实际大小,重新分配p所指空间,并把不同字符及其出现次数重新放回p数组(提示:可以借助临时数组或指针来实现)。
void Show():屏幕显示字符串、字符串的每个字符和与之对应的次数。
~CString():释放动态分配的空间。
(3)在主程序中定义字符串char s[]=”abdabcdesffffd”。定义一个CString类对象test,用s以初始化test,完成对该类的测试。
程序源代码
#include
#include
class cstring{
char*str;
char (*p)[2];
int size;
public:
cstring(char *s);
void count();
void show();
~cstring();
};
cstring::cstring(char*s) {
p=0;
size=0;
str=s;
}
void cstring::count() {
p=new char[strlen(str)][2];
char n;
char *p1,*p2;
for(int i=0;str[i];i++)
{
n='\0';
p1=&str[i];
for(int m=0;str[m];m++)
{
p2=&str[m];
if(*p1==*p2)n++;
p2++;
}
p[i][0]=str[i];
p[i][1]=n;
}
}
void cstring::show() {
for(int i=0;i
#include
class cstring{
char *str;
char *str1;
char *str2;
int flag;
public:
cstring(char*s,char s1[],char *s2);
void replace();
void show();
~cstring();
};
cstring::cstring(char*s,char s1[],char *s2)
{
str=new char[strlen(s)+1];
str1=new char[strlen(s1)+1];
str2=new char[strlen(s2)+1];
strcpy(str,s);
strcpy(str1,s1);
strcpy(str2,s2);
flag=0;
}
void cstring::replace() {
int i,n1,n2,y=1;
for(i=0;str[i];i++)
{
if(str[i]==str1[0])
{
for(n1=i,n2=0;str1[n2];n1++,n2++)
if((str[n1]!=str1[n2])||(str[n1]=='\0'))
{
y=0;
break;
}
if(y==1)
{
char pp[100];
for(int x=0,p=i;x<(strlen(str1));p++,x++)
{
str[p]=str2[x];
}
flag=1;
}
}
}
}
void cstring::show() {
"< #include class STRING{
char str1[80];
char str2[40];
public:
STRING(char *s1,char *s2);
void process();
void print();
};
STRING::STRING(char *s1,char *s2)
{
for(int i=0;i<80;i++) str1[i]=s1[i];
for(int j=0;j<40;j++) str2[j]=s2[j];
}
void STRING::process() {
char s[40];
strcpy(s,str1);
int i=0,j=0;
while(str2[i])
{
str1[j++]=str2[i]; str1[j++]=s[i];
i++;
}
str1[j]='\0';
}
void STRING::print() {
cout<<"交叉后的字符串为:";
cout< #include
class STRING{
char str1[60];
char str2[40];
char str3[100];
public:
STRING(char *s1,char *s2); void process();
void print();
};
STRING::STRING(char *s1,char *s2)
{
for(int i=0;i<60;i++) str1[i]=s1[i];
for(int j=0;j<40;j++)
str2[j]=s2[j];
}
void STRING::process() {
int i=0,j=0,x;
while(str1[i]&&str2[i]) {
str3[j++]=str2[i];
str3[j++]=str1[i]; i++;
}
x=i;
if(str2[x]) while(str2[x]) str3[j++]=str2[x++];
if(str1[i]) while(str1[i]) str3[j++]=str1[i++];
str3[j++]='\0';
}
void STRING::print() {
cout<<"合并后的字符串为:";
cout< class MOVE{
int array[20];
int n;
public:
MOVE(int b[],int m);
void change();
void print();
};
MOVE::MOVE(int b[],int m) {
n=m;
for(int i=0;i #include class move{
char*array;
int n;
public:
move(char b[],int m);
void change();
void print();
~move();
};
move::move(char b[],int m) {
array=new char[strlen(b)+1];
n=m;
strcpy(array,b);
}
void move::change()
{
char *p;
int m=0;
p=new char[strlen(array)];
strcpy(p,array);
for(int i=0;p[i];i++)
if(p[i]<='Z'&&p[i]>='A')
array[m++]=p[i];
for(i=0;p[i];i++)
if(p[i]<='z'&&p[i]>='a')
array[m++]=p[i];
}
void move::print()
{
cout<<"改后字符串为:"<>b>>m;
move pp(b,m);
pp.change();
pp.print();
}
运行结果:
15(定义一个一维数组类Carray,并根据给定算法实现对原始一维数组进行线性变换。这里
给定的线性变换算法为:T(bx) = bT(x) + i; 其中,b为变换常量,x为变量,i为当前类中
成员数组的下标值。根据该算法,原始数组在变化后,当前数组元素的值是由常量b和i下
标来决定的。
具体要求如下:
(1)私有数据成员
int *a:指针a指向一个动态分配的原始数组。
int n:n表示该数组的大小。
int b:线性变换的常量。
(2)公有成员函数
Carray (int a[ ],int n,int x) :用给定的参数a、n和x初始化数据成员a、n和b。缺省都
设置为0。
void Transform () :根据上述变化算法,求解数组变换。
void Show( ) :在屏幕上显示数组元素。
~ Carray () :释放动态分配的空间。
(3)在主程序中定义数组int arr[ ]={1,2,3,4,5,6,7,8,9,10}作为原始数组,int b;由键盘输
入,作为线性变换的常量。定义一个Carray类对象test,用arr初始化test,完成对该类的
测试。
程序源代码
#include class carray{
int *a;
int n;
int b;
public:
carray(int a[],int n,int x);
void transform();
void show();
~carray();
};
carray::carray(int a[],int n=0,int x=0)
{
this->a=new int[n];
this->n=n;
b=x;
for(int i=0;ia[i]=a[i];
}
}
void carray::transform() {
for(int i=0;i>b;
carray test(arr,m,b);
test.transform();
test.show();
}
运行结果:
16(定义一个方阵类CMatrix,并根据给定算法实现方阵的线性变换。方阵的变换形式为:
F=W*fT
f为原始矩阵,fT为原始矩阵的转置,w为变换矩阵,这里设定为 1 0 0 1
0 1 1 0
0 1 1 0
1 0 0 1
具体要求如下:
(1)私有数据成员
int (*a)[4]:a指向方阵数组。
int w[4][4]:w为变换矩阵。
int m:m表示方阵的行和列数。
(2)公有成员函数
CMatrix (int a[][4],int m) :用给定的参数a和m 初始化数据成员a和m;对变换矩阵w
进行初始化,要求必须用循环实现。
void Transform () :根据上述变换算法,求出变换后的数组形式,存放在原始数组内。
void show( ) :在屏幕上显示数组元素。
~ CMatrix () :释放动态分配的空间。
(3)在主程序中定义数组int arr[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}作为原始数组。
定义一个CMatrix类对象test,用arr初始化test,完成对该类的测试。 程序源代码:
#include #include
class cmatrix{
int (*a)[4];
int w[4][4];
int m;
public:
cmatrix(int a[][4],int m);
void transform();
void show();
~cmatrix();
};
cmatrix::cmatrix(int a[][4],int m)
{
this->a=new int [4][4];
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
this->a[i][j]=a[i][j];
this->m=m;
for(int p=0;p<4;p++)
for(int q=0;q<4;q++)
if((p+q!=3)&&(p-q!=0))w[p][q]=0;
else w[p][q]=1;
}
void cmatrix::transform() {
int b[4][4],i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
b[i][j]=a[j][i];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
a[i][j]=w[i][0]*b[0][j]+w[i][1]*b[1][j]+w[i][2]*b[2][j]+w[i][3]*b[3][j];
}
void cmatrix::show() {
cout<<"变换后的数组是:"< class sin{
int x;
int n;
public:
sin(int x,int n);
int power(int q);
int mi(int m,int n);
int fun();
void show();
};
sin::sin(int x,int n) {
this->x=x;
this->n=n;
}
int sin::power(int q) {
for(int i=1;i<=q;i++)
q*=i;
return q;
}
int sin::mi(int m,int n) {
for(int i=1;i>x>>n;
sin test(x,n);
test.show();
}
18(试建立一个类VAR,用于求n( )个数的均方差。均方差的计算公式为 ,其中平均值
为 。
具体要求如下:
(1)私有成员数据。
double a[100]:用于存放输入的n个数。
int n:实际输入数的个数n。
(2)公有成员函数。
VAR(double x[], int n1):构造函数,初始化成员数据a和个数n。
double average(double x[], int n):求平均值,数组x具有n个元素。
void variance(double x[],int n):求均方差,数组x具有n个元素。
void show():输出求得的均方差。
(3)在主程序中定义一个对象test,对该类进行测试。 #include
class var{
double a[100];
int n;
public:
var(double x[],int n1);
double average(double x[],int n);
void variance(double x[],int n);
void show();
};
var::var(double x[],int n1) {
for(int i=0;i
#include
class array{
int a[4][4];
public:
array(int a1[][4],int n);
void xuanzhuan();
void show();
};
array::array(int a1[][4],int n) {
for(int i=0;i #include class array{
int a[4][4];
public:
array(int a1[][4],int n);
void xuanzhuan();
void show();
};
array::array(int a1[][4],int n)
{
for(int i=0;i
class Num{
int *data;
int span1,span2;
int num;
public:
Num(int n1,int n2);
int iscomposite(int x);
void process();
void print();
~Num();
};
Num::Num(int n1,int n2)
{
span1=n1;
span2=n2;
num=0;
data=new int[n2-n1]; }
int Num::iscomposite(int x)
{
for(int i=2;i>n1>>n2;
Num test(n1,n2);
test.process();
test.print();
}
22(建立一个类Saddle_point,求一个数组中的所有鞍点。提示:鞍点是这样的数组元素,其值在它所在行中为最大,在它所在列中为最小。
具体要求如下:
(1)私有数据成员
int a[4][4]:存放二维数组元素。
int b[4][4]:存放二维数组中的鞍点值。
int num:存放鞍点个数。
(2)公有成员函数
Saddle_point(int data[][4]):构造函数,用参数int data[][4]初始化数组a,,同时初始化数组b与num 的值均为0。
void process( ):求数组a所有鞍点(如果有鞍点),把它们行、列、及值相应存放在数组b中,并将求出的鞍点个数赋给num。
void print( ):输出数组a、鞍点个数,与鞍点坐标及相应值。
(3)在主程序中定义数组int b[ ][4]={2, 6, 3, 4, 5, 6, 5, 5, 5, 7, 6, 7, 1, 9, 2, 7}作为原始数组。定义一个Saddle_point类对象fun。通过fun调用成员函数完成求鞍点及输出工作。 (4)#include
(5)class var{
(6) double a[100];
(7) int n;
(8)public:
(9) var(double x[],int n1);
(10) double average(double x[],int n); (11) void variance(double x[],int n); (12) void show();
(13)};
(14)var::var(double x[],int n1)
(15){
(16) for(int i=0;i
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
是先求出两个分数
分母的最小公倍数,通分后,再求两个分子的和,最后约简结果分数的分子和分母(如果两个分数相加的结果是4/8,则必须将其约简成最简分数的形式1/2),即用分子分母的最大公约数分别除分子和分母。求m、n最大公约数的一种方法为:将m、n较小的一个数赋给变量k,然后分别用{ k,k-1,k-2,„,1}中的数(递减)去除m和n,第一个能把m和n同时除尽的数就是m和n的最大公约数。假定m、n的最大公约数是v,则它们的最小公倍数就是m*n/v。试建立一个分数类Fract,完成两个分数相加的功能。 具体要求如下:
(1)私有数据成员
int num,den :num为分子,den为分母。
(2)公有成员函数
Fract(int a=0,int b=1):构造函数,用a和b分别初始化分子num、分母den。
int ged(int m,int n):求m、n的最大公约数。此函数供成员add()函数调用。
Fract add(Fract f):将参数分数f与对象自身相加,返回约简后的分数对象。
void show( ):按照num/den的形式在屏幕上显示分数。
(3)在主程序中定义两个分数对象f1和f2,其初值分别是1/5和7/20,通过f1调用成员函数add完成f1和f2的相加,将得到的分数赋给对象f3,显示分数对象f3。 #include
class fract{
int num,den;
public:
fract(int a=0,int b=1);
int ged(int m,int n);
fract add(fract f);
void show();
};
fract::fract(int a,int b)
{
num=a;
den=b;
}
int fract::ged(int m,int n) {
for(int i=m;i>=1;i--)
if(m%i==0&&n%i==0)return i; }
fract fract::add(fract f)
{
int n,d,p,q;
p=ged(den,f.den);
d=den*f.den/p;
n=num*f.den/p+f.num*den/p;
q=ged(n,d);
Return fract(n/q,d/q);
}
void fract::show() {
cout<<"相加后的值为:"< #include #include class Num{
int data[25];
int num[10];
public:
Num();
void process();
void print();
};
Num::Num()
{
srand(time(0));
for(int i=0;i<25;i++)
data[i]=rand()%9; }
void Num::process() {
int i,x=0;
for(i=0;i<10;i++)
{
for(int m=0,n=0;m<25;m++)
if(data[m]==i) n++;
num[x++]=n;
}
}
void Num::print()
{
cout<<"随机数为:"< #include #include
class Num{
char data[25];
int num[128];
public:
Num();
void process();
void print();
};
Num::Num()
{
srand(time(0));
for(int i=0;i<25;i++)
data[i]=rand()%128;
}
void Num::process() {
int i,x=0;
for(i=1;i<=128;i++)
{
for(int m=0,n=0;m<25;m++)
if(data[m]==i) n++;
num[x++]=n;
}
}
void Num::print() {
cout<<"输出随即字符串"<0)
{
cout< #include #include
class num{
int data[25];
public:
num();
void process();
void print();
};
num::num()
{
srand(time(0));
for(int i=0;i<25;i++)
data[i]=rand()%128; }
void num::process() {
int m;
for(int i=0;i<25;i++)
for(int j=i;j<25;j++)
if(data[i]>data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
void num::print()
{
cout<<"排序后的数组为:"< class Num{
int data[10];
int prime[10];
int num;
public:
Num(int n[]);
int isprime(int x);
void process();
void print();
};
Num::Num(int n[])
{
num=0;
for(int i=0;i<10;i++)
data[i]=n[i];
}
int Num::isprime(int x) {
for(int i=2;i
class decompose{
int *a;
int *num;
int n;
public:
decompose(int m,int b[]);
void print();
void primenum();
~decompose();
};
decompose::decompose(int m,int b[])
{
n=m;
a=new int[n];
num=new int[n];
for(int i=0;i1;)
{
flag=1;
for(int m=2;m>b;
for(int i=0;i>number[i];
}
decompose test(b,number);
test.primenum();
test.print();
}
29(建立一个类SUM,输入5×5的二维数组,编写程序实现:求出两对角线上各元素的和,
求出对角线上行、列下标均为偶数的各元素的积,找出对角线上其值最大的元素以及它在数
组中的位置。
具体要求如下:
(1)私有数据成员
int array[5][5]:二维整型数组。
int s:数组array两对角线元素的和。
int a:数组array对角线上行、列下标均为偶数的各元素的积
int b,m,n:数组array对角线上其值最大的元素以及它在数组中的位置。 (2)公有成员函数
SUM(int d[5][5]):构造函数,初始化成员数据。
void process1():求二维数组两对角线元素的和。
void process2():求二维数组两对角线上行、列下标均为偶数的各元素的积。
void process3():求二维数组两对角线上其值最大的元素和它在数组中的位置。
void print():输出二维数组(每行输出5个元素)及其它所求的值。 (3)在主程序中对该类进行测试。
#include
#include
#include
class sum{
int array[5][5];
int s;
int a;
int b,m,n;
public:
sum(int d[5][5]);
void process1();
void process2();
void process3();
void print();
};
sum::sum(int d[5][5]) {
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
array[i][j]=d[i][j];
s=0;
a=1;
b=m=n=0;
}
void sum::process1() {
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
if(i==j||(i+j)==4)s+=array[i][j];
}
void sum::process2() {
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
if(i==j||(i+j)==4)
if(i%2==0&&j%2==0)
a*=array[i][j]; }
void sum::process3() {
b=array[0][0];
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
if(i==j||(i+j)==4)
if(b
class array{
int x[4][4];
int count;
public:
array(int a[4][4]);
int fun(int );
void encode();
void print();
};
array::array(int a[4][4])
{
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
x[i][j]=a[i][j];
count=0;
}
int array::fun(int num)
{
for(int i=2;i const int m=3;
const int k=4;
const int n=3;
class sum{
int a[m][k];
int b[k][n];
int (*c)[3];
public:
sum(int aa[3][4],int bb[4][3]);
~sum();
void process();
void print();
};
sum::sum(int aa[3][4],int bb[4][3])
{
int i,n;
for(i=0;i<3;i++)
for(n=0;n<4;n++)
a[i][n]=aa[i][n];
for(i=0;i<4;i++)
for(n=0;n<3;n++)
b[i][n]=bb[i][n];
c=new int[3][3]; }
sum::~sum()
{
delete []c;
}
void sum::process() {
int i,n;
for(i=0;i<3;i++)
for(n=0;n<3;n++)
c[i][n]=a[i][0]*b[0][n]+a[i][1]*b[1][n]+a[i][2]*b[2][n]+a[i][3]*b[3][n];
}
void sum::print() {
int i,n;
cout<<"输出矩阵A:"< #include class sum{
char *p[5];
public:
sum(char d[5][15]);
void process1();
void print();
};
sum::sum(char d[5][15]) {
for(int i=0;i<5;i++)
p[i]=&d[i][0];
}
void sum::process1() {
char *p1,*p2,m;
int x,n;
for(int i=0;i<5;i++)
{
p1=p2=p[i];
for(n=0;n*p2)
{
m=*p1;
*p1=*p2;
*p2=m;
}
p1++;
}
}
}
void sum::print() {
cout<<"修改后的字符串为:"< class integer_string{
int num;
char *s;
public:
integer_string(int n);
int f();
void fun();
void show();
~integer_string(); };
integer_string::integer_string(int n)
{
num=n;
}
int integer_string::f() {
int m=num,i;
for(i=0;m>0;m/=10)
i++;
return i;
}
void integer_string::fun() {
int m=num;
s=new char[f()+1];
for(int i=0;m>0;m/=10)
{
s[f()-1-i]=m%10+'0';
i++;
}
s[i]='\0';
}
void integer_string::show() {
cout<<"字符串为:"<>b;
integer_string test(b);
test.fun();
test.show();
}
34(建立一个类String_Integer,把一个字符串中的数字字符转换为正整数。 具体要求如下:
(1)私有数据成员
char *s:用动态空间存放字符串。
(2)公有成员函数
String_Integer(char *str):用参数str初始化数据成员s。
operator int():转换函数,数据成员s转换整数并返回该数。
void show():输出数据成员s。
~String_Integer():释放动态空间。
(3)在主函数中对定义的类进行测试。定义字符数组,把由键盘输入的字符串“ab12
3c00d45ef”存入数组,并用该数组初始化类String_Integer的对象test,调用show函数输出
test的数据成员s,然后把对象test赋值给整型变量n并输出,转换结果如下所示(下划线
部分是从键盘输入的内容):
请输入字符串ab12 3c00d45ef :ab12 3c00d45ef
字符串为:ab12 3c00d45ef
转换得到的整数为:1230045
#include
#include
class string_integer{
char *s;
public:
string_integer(char*str);
operator int();
void show();
~string_integer();
};
string_integer::string_integer(char*str)
{
s=new char[strlen(str)+1];
strcpy(s,str);
}
string_integer::operator int() {
int p=0;
for(int i=0;s[i];i++)
if('0'<=s[i]&&'9'>=s[i]) p=p*10+s[i]-'0';
return p;
}
void string_integer::show() {
cout<<"字符串为:"<
#include
class Union{
int *set1,len1;
int *set2,len2;
int set[20],len;
public:
Union(int *s1,int l1,int *s2,int l2);
int f(int num);
void fun();
void show();
~Union();
};
Union::Union(int *s1,int l1,int *s2,int l2)
{
set1=new int[l1];
len1=l1;
for(int i=0;i
class intersection{
int set[20];
int len;
public:
intersection(int *s,int l);
intersection();
int f(int num);
intersection operator&&(intersection t);
void show();
};
intersection::intersection(int *s,int l)
{
for(int i=0;i
#include
#include
class num{
int data[25];
public:
num();
void process();
void print();
};
num::num()
{
srand(time(0));
for(int i=0;i<25;i++)
{
data[i]=rand()%10000;
}
}
void num::process() {
int m,n,p;
for(n=0;n<25;n++)
for(m=n;m<25;m++)
if(data[n]>data[m])
{
p=data[n];
data[n]=data[m];
data[m]=p;
}
}
void num::print()
{
int n=0;
cout<<"输出排序后的数组"< #define max 100
class sample{
int a[max];
int n;
public:
sample();
friend class process;
};
sample::sample()
{
n=0;
}
class process{
public:
void getdata(sample &s);
void selectsort(sample &s);
void disp(sample &s); };
void process::getdata(sample &s)
{
cout<<"输入数字的个数"<>s.n;
for(int i=0;i>s.a[i];
}
}
void process::selectsort(sample &s)
{
int m,p;
for(int i=0;is.a[m])
{
p=s.a[i];
s.a[i]=s.a[m];
s.a[m]=p;
}
}
void process::disp(sample &s)
{
cout<<"排序后的数组为:"<