资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
江苏科技大学课程实践报告设计题目: 计算机程序设计实践(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);text.process();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
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号