江苏科技大学计算机课程实践VC++.doc
课程实践报告
设计题目:计算机程序设计实践(VC++)
设计实践:2013-09-23至2013-09-29
学院:电信学院
专业班级:测控技术与仪器
学生姓名:朱永海 学号:1240308133
指导老师:
2013年9月
实验一
一 实践任务
定义一个方阵类CMatrix,并根据给定算法实现仿真的线性变换。仿真的变换的形式为:
F=W* f^T
f为原始矩阵,f^T为原始矩阵的位置,w为变换矩阵,这里设定为
1 0 0 1
0 1 1 0
0 1 1 0
1 0 0 1
具体要求如下:
私有数据成员
Int(*a)[4]:a指向方阵变数。
Int w[4][4]: w为变换矩阵。
Int m: m便是方阵的行和列数。
(2) 公有成员函数
Cmatrix (int a[][4],int m) :用给定的参数a和m初始化数据成员m ;对变换矩阵w进行初始化,要求必须用循环实现。
Void Transform ( ):根据上数变换算法,求出变换后的数组形式,存放在原始数组内。
Void show ( ):在屏幕上显示数组元素。
~CMatrix():释放动态分配的空间。
在主程序中定义数组 int arr[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}作为原始数组。 一个Cmatrix类对象test,用arr初始化test,完成该类的测试。
二 系统设计
类的描述与定义
# include
class CMatrix{
int (*a)[4];
int w[4][4];
int m;
public:
CMatrix(int a[][4],int m);
void Transform();
void show();
~CMatrix(){delete [m]a;}
};
主要成员函数定义
Cmatrix函数定义
CMatrix::CMatrix(int a[][4],int m)
{
this->m=m;
this->a=new int[this->m][4];
for(int i=0;im;i++)
for(int j=0;jm;j++)
this->a[i][j]=a[i][j];
for(i=0;i<4;i++)
for(int j=0;j<4;j++)
if(i+j==3||j==i)
w[i][j]=1;
else w[i][j]=0;
}
Transform函数定义
void CMatrix::Transform()
{
int (*b)[4];
b=new int[m][4];
for(int i=0;i
for(int j=i;j
{
b[j][i]=a[i][j];
b[i][j]=a[j][i];
}
for( i=0;i
for(int j=0;j
{
a[i][j]=0;
for(int k=0;k
a[i][j]+=w[i][k]*b[k][j];
}
for( i=0;i
{
for(int j=0;j
cout<
cout<
}
delete [m]b;
}
show函数定义
void CMatrix::show()
{
cout<
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
cout<
cout<
}
cout<
for( i=0;i
{
for(int j=0;j
cout<
cout<
}
}
主函数定义
void main()
{
int arr[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
CMatrix test(arr,4);
test.Transfo