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<<\改后字符串为:\}
move::~move() { delete []array; }
void main() { char b[1000]; int m; cout<<\输入字符串和字符串个数\ cin>>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
carray::carray(int a[],int n=0,int x=0) { this->a=new int[n]; this->n=n; b=x; for(int i=0;i
void carray::transform() { for(int i=0;i void carray::show() { cout<<\变换后的数组为:\ for(int i=0;i cout< carray::~carray() { delete []a; } void main() { int arr[]={1,2,3,4,5,6,7,8,9,10}; int m=10,b; cout<<\输入线性变换常量\ cin>>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 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<<\变换后的数组是:\ for(int i=0;i<4;i++) { for(int j=0;j<4;j++) cout< } } cmatrix::~cmatrix() { delete []a; } void main() { int arr[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int m=4; cmatrix test(arr,m); test.transform(); test.show(); } 运行结果: 17.定义一个类SIN,求 具体要求如下: (1)私有成员数据。 ? int x:输入公式中x的值,求sin(x)。 ? int n:输入公式中n的值。 (2)公有成员函数。 ? SIN(int x, int n ):构造函数,用于初始化x和n的值。 ? int power( int q):求q!的值。 ? int mi( int m,int n):求 的值。 ? int fun( ):用于求SIN(X)的值。 ? void show( ):输出求得的结果。 (3)在主程序中定义对象test,对该类进行测试。 #include sin(int x,int n); int power(int q); int mi(int m,int n); int fun(); void show();