计算机程序设计实践(VC++).doc_第1页
计算机程序设计实践(VC++).doc_第2页
计算机程序设计实践(VC++).doc_第3页
计算机程序设计实践(VC++).doc_第4页
计算机程序设计实践(VC++).doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江苏科技大学课程实践报告设计题目: 计算机程序设计实践(VC+) 设计时间: 2015. 3.2 至 2015. 3.9 学 院: 数 理 学 院 专业班级: 13 级 信 息 与 计 算 科 学 1 班 学生姓名: 邢 耀 光 学号 1340501123 指导老师: 於 跃 成 2015 年 5 月 31 日 一、 实践任务7建立一个类PHALANX,生成并显示一个折叠方阵。折叠方阵如下图所示。折叠方阵的生成过程为起始数置于方阵的左上角,然后从起始数开始递增,依次折叠构成方阵。具体要求如下: 1 1 2 1 2 5 10 3 4 4 3 6 11 9 8 7 12 16 15 14 13(1)私有数据成员lint (*p)20:指向按照折叠规律存放方阵的二维整型数组。lint startnum:折叠方阵的起始数。lint n:存放方针的层数。(2)公有成员函数lPHALANX (int s, int m ):构造函数,初始化成员数据。lvoid process():生成起始数为startnum的n行方阵。lvoid print():输出折叠方阵。l PHALANX( ):析构函数。(3)在主程序中对该类进行测试。程序源代码:#include#includeclass PHALANXint(*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 int2020;for(x=0;xy;x+)for(i=0,j=x;i=0;j-)pij=num;num+;void PHALANX:print()int i,j,m=0;for(i=0;in;i+)for(j=0;jn;j+)coutsetw(5)pij;coutn;PHALANX:PHALANX()delete p;void main() int s,m;cout输入s和m的值sm;PHALANX text(s,m);cess();text.print();程序运行结果为:实践小结:本体难度主要在折叠方阵的构造上。需要细心和仔细才不会出错。13建立一个类MOVE,对数组中元素进行循环换位,即每个元素后移三位,最后三个元素移到最前面。具体要求如下:(1)私有数据成员lint array20:一维整型数组。lint n:数组中元素的个数。(2)公有成员函数lMOVE(int b,int m):构造函数,初始化成员数据。lvoid change():进行循环换位。lvoid print():输出一维数组。(3)在主程序中用数据21,65,43,87,12,84,44,97,32,55对该类进行测试。程序源代码:#includeclass MOVEint array20;int n;public:MOVE (int b,int m)n=m;for(int i=0;i=0;i-)arrayi+3=arrayi;array0=t3;array1=t2;array2=t1;void print()for(int i=0;in;i+)coutarrayit;void main()int a20=21,65,43,87,12,84,44,97,32,55;MOVE text(a,10);text.change();text.print(); 程序运行结果为:实践小结:本体难度主要在数组中元素的循环换位。尤其是后三位元素的循环。15定义一个一维数组类Carray,并根据给定算法实现对原始一维数组进行线性变换。这里给定的线性变换算法为:T(bx) = bT(x) + i; 其中,b为变换常量,x为变量,i为当前类中成员数组的下标值。根据该算法,原始数组在变化后,当前数组元素的值是由常量b和i下标来决定的。具体要求如下: (1)私有数据成员 lint *a:指针a指向一个动态分配的原始数组。lint n:n表示该数组的大小。lint b:线性变换的常量。 (2)公有成员函数lCarray (int a ,int n,int x) :用给定的参数a、n和x初始化数据成员a、n和b。缺省都设置为0。lvoid Transform () :根据上述变化算法,求解数组变换。lvoid Show( ) :在屏幕上显示数组元素。l Carray () :释放动态分配的空间。(3)在主程序中定义数组int arr =1,2,3,4,5,6,7,8,9,10作为原始数组,int b;由键盘输入,作为线性变换的常量。定义一个Carray类对象test,用arr初始化test,完成对该类的测试。程序源代码:#includeclass Carrayint *a;int n;int b;public:Carray(int a,int n,int x)this-a=new intn;this-n=n;b=x;for(int i=0;iai=ai;void Transform()for(int i=0;in;i+)ai=b*ai+i;void Show()cout输出变换后的数组。endl;for(int i=0;in;i+)coutait;coutendl;Carray()delete a;void main()int arr=1,2,3,4,5,6,7,8,9,10;int b,m=10;cout从键盘中输入b的值。b;Carray text(arr,m,b);text.Transform();text.Show();程序运行结果为:实践小结:本体难度主要在数组的变化。16定义一个方阵类CMatrix,并根据给定算法实现方阵的线性变换。方阵的变换形式为:F=W*fTf为原始矩阵,fT为原始矩阵的转置,w为变换矩阵,这里设定为1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 具体要求如下: (1)私有数据成员 lint (*a)4:a指向方阵数组。lint w44:w为变换矩阵。lint m:m表示方阵的行和列数。 (2)公有成员函数lCMatrix (int a4,int m) :用给定的参数a和m 初始化数据成员a和m;对变换矩阵w进行初始化,要求必须用循环实现。lvoid Transform () :根据上述变换算法,求出变换后的数组形式,存放在原始数组内。lvoid show( ) :在屏幕上显示数组元素。l CMatrix () :释放动态分配的空间。(3) 在主程序中定义数组int arr4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16作为原始数组。定义一个CMatrix类对象test,用arr初始化test,完成对该类的测试。程序源代码:#include#includeclass CMatrixint (*a)4;int w45;int m;public:CMatrix(int a4,int m)this-a=new int44;for(int i=0;i4;i+)for(int j=0;jaij=aij;this-m=m;for(int p=0;p4;p+)for(int q=0;q4;q+)if(p+q!=3)&(p-q!=0)wpq=0;else wpq=1;void Transform()int b44,i,j;for(i=0;i4;i+)for(j=0;j4;j+)bij=aij; for(i=0;i4;i+)for(j=0;j4;j+)aij=wi0*b0j+wi1*b1j+wi2*b2j+wi3*b3j;void show()cout变换后的数组是endl;for(int i=0;i4;i+)for(int j=0;j4;j+)coutsetw(8)aij;coutendl;CMatrix();void main()int arr4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;int m=4;CMatrix text(arr,m);text.Transform();text.show();程序运行结果为:实践小结:本体难度主要在数组之间的变化。18试建立一个类VAR,用于求n( )个数的均方差。均方差的计算公式为 ,其中平均值为 。具体要求如下:(1)私有成员数据。ldouble a100:用于存放输入的n个数。lint n:实际输入数的个数n。(2)公有成员函数。lVAR(double x, int n1):构造函数,初始化成员数据a和个数n。ldouble average(double x, int n):求平均值,数组x具有n个元素。lvoid variance(double x,int n):求均方差,数组x具有n个元素。lvoid show():输出求得的均方差。(3) 在主程序中定义一个对象test,对该类进行测试。程序源代码:#includeclass VARdouble a100;int n;public:VAR(double x,int n1)n=n1;for(int i=0;in;i+)ai=xi;double average(double x,int n)double ave=0;for(int i=0;in;i+)ave=ave+xi;ave=ave/n;return ave;void variance(double x,int n)double d=0;for(int i=0;in;i+)d=d+(xi-average(x,n)*(xi-average(x,n);d=d/n;cout输出方差为;dendl;void show()cout输出平均值为:average(a,n)endl;variance(a,n);void main()double b100=1,2,3,4,5,6,7,8,9,10; intm=10;VAR test(b,m);test.show();程序运行结果为:实践小结:本体难度主要在与把平均值和方差公式转换为C+语言。20定义一个方阵类Array,实现对方阵进行逆时针90度旋转。如图所示。 1 2 3 4 4 8 12 16 5 6 7 8 3 7 11 15 9 10 11 12 2 6 10 14 13 14 15 16 1 5 9 13具体要求如下: (1)私有数据成员 lint a44:用于存放方阵。 (2)公有成员函数lArray (int a14,int n) :构造函数,用给定的参数a1初始化数据成员a。lvoid xuanzhuan ( ) :实现对方阵a进行逆时针90度的旋转。lvoid show( ) :在屏幕上显示数组元素。(3) 在主程序中定义数组int b 4=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16作为原始数组。定义一个Array类对象test,用b初始化test,完成对该类的测试。程序源代码:#includeclass Arrayint a44;public:Array(int a14,int n)for(int i=0;in;i+)for(int j=0;jn;j+)aij=a1ij;void xuanzhuan()int c44;for(int i=0;i4;i+)f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论