《VC++程序设计》课程实践_第1页
《VC++程序设计》课程实践_第2页
《VC++程序设计》课程实践_第3页
《VC++程序设计》课程实践_第4页
《VC++程序设计》课程实践_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、江苏科技大学课程实践报告设计题目: 程序设计(VC+)实践 设计时间 2012-2-20 至 2012-3-18 学院(系): 机械工程学院 专业班级: 机械设计制造及其自动化 学生姓名: 周权 学号 指导老师: 张晓如 2012 年 3 月18 1试建立一个类PP,求出下列多项式的前n项的值。具体要求如下:(1)私有数据成员lint n:前若干项的项数。ldouble x:存放x的值。ldouble *p:根据n的大小动态申请存放Pn(x) 前n项的数组空间。(2)公有成员函数lPP(int num,double x1):构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。lPP()

2、:析构函数,释放p指向的动态内存空间。ldouble fun(int n1,double x):递归函数,用于求多项式 的第n1项。注意:将递归公式中的n用作函数参数。本函数供process函数调用。lvoid process( ):完成求前n项的工作,并将它们存放到p指向的动态数组中。lvoid show( ):输出n和x,并将前n项以每行4个数的形式输出到屏幕上。(3) 在主函数中完成对该类的测试。先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,求出并输出多项式前num项的值。程序内容如下:#includeclas

3、s PPprivate:int n;double x;double *p;public:PP(int num,double x1);PP();double fun(int n1,double x);void process();void show();PP:PP(int num,double x1)n=num;x=x1;p=new doublen+1;PP:PP()delete p;double PP:fun(int n1,double x)pn1=(2*n1-1)*x*pn1-1-(n1-1)*pn1-2)/n1; return pn1;void PP:process()p0=1;p1=x;

4、int k=n;for(k=2;k=n;k+) fun(k,x);void PP:show()coutntxendl;for(int k=0;k=n;k+)coutpkt; if(k+1)%4=0)coutendl;void main(void)int num,x1;coutnum;coutnx1;PP items(num,x1); cess(); items.show();编译执行结果为:0.n=12x=812 81 8 95.5 126817680.4 3.70448e+006 5.48207e+0078.19069e+008 1.23283e+010 1.86653e+

5、011 2.8395e+0124.33678e+013 Press any key to continue13建立一个类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对该类进行测试。程序内容如下:# include

6、 class MOVE int array20;int n;public:MOVE (int b,int m)for(int i=0;i20;i+)arrayi=bi;n=m;void change () int b10;for(int i=0;in-3;i+) bi+3=arrayi; for (;in;i+) bi+3-n=arrayi;for(int k=0;kn;k+)arrayk=bk;void print ()for(int i=0;in;i+)coutarrayit;coutendl;void main ()int b=21,65,43,87,12,84,44,97,32,55;

7、MOVE move(b,10); move.change(); move.print ();执行结果:97 32 55 21 65 43 87 12 84 44Press any key to continue20定义一个方阵类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

8、初始化数据成员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,完成对该类的测试。程序内容如下:# include class Array int a44;public:int i,j,k,l;Array (int a14,int n)for(i=0;i4;i+)for(j=0;j4;j+)aij=a1ij;n=4;void x

9、uanzhuan() int b44;for(i=0;i4;i+)for(j=0;j4;j+)b4-1-ji=aij;for(k=0;k4;k+)for(l=0;l4;l+)akl=bkl;void show()for(i=0;i4;i+)for(j=0;j4;j+)if(aij10) cout aij ;else coutaij ;coutendl;void main() int b44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;Array test(b,4);cout原二维数组为:endl;test.show();test.xuanzhuan();cou

10、t旋转后的二维数组为:endl;test.show();编译执行结果为:原二维数组为: 1 2 3 45 6 7 89 10 11 1213 14 15 16旋转后的二维数组为: 4 8 12 16 3 7 11 15 2 6 10 14 1 5 9 13Press any key to continue30建立一个矩阵类Array,对二维数组中左下三角的全部元素(包括对角线上的元素)作如下变换:(1)若该数不是素数则保持不变;(2)若该数是素数,则用大于它的最小素数替换该数。并统计二维数组中左下三角的全部元素(包括对角线上的元素)中的素数个数。具体要求如下:(1)私有数据成员lint x44

11、:存储需要处理的二维数组的各元素值。lint count:存储左下三角元素中素数的个数。(2)公有成员函数l构造函数:进行初始化x数组和count的值。lint fun(int);判断一个数是否为素数的函数。lint encode( ):对x数组中左下三角的全部元素(包括对角线上的元素)逐一进行判断,若该数不是素数则保持不变,若该数是素数,则用大于它的最小素数替换该数。lvoid print():按行输出矩阵的值。(3)编写一个程序测试该类,说明(声明)Array对象A,将一个矩阵存入对象A中,并输出矩阵的值,使用以下测试数据:3 6 4 17 5 6 4 178 5 9 10 变换后的矩阵为

12、 8 7 9 1012 19 7 20 12 23 11 204 14 21 23 4 14 21 29 程序内容如下: #include#includeclass Arrayprivate:int x44;int count;public:Array(int b44);int fun(int);void encode();void print();Array:Array(int b44)for(int i=0;i4;i+)for(int j=0;j4;j+)xij=bij;count=0;int Array:fun(int m)for(int i=2;im;i+) if(m%i=0) ret

13、urn 0; return 1;void Array:encode() for(int i=0;i4;i+) for(int j=0;j=i;j+) if(fun(xij) count+; int k=xij+1; while(!fun(k) k+; xij=k; void Array:print()for(int i=0;i4;i+)for(int j=0;j4;j+)coutsetw(10)xij;coutendl;void main()int a44=3,6,4,17,8,5,9,10,12,19,7,20,4,14,21,23;Array test(a);cout原矩阵:endl;test.print();test.encode();cout变换后的矩阵:endl;test.print();原矩阵: 3 6 4 17 8 5 9 10 12 19 7 20 4 14 21 23变换后的矩阵: 5 6 4 17 8 7 9 10 12 23 11 20 4 14 21 29Press any key to continue31建立一个类SUM,实现m行k列矩阵与k行n列矩阵的乘积。设A为m行k列的矩阵,B为k行n列的矩阵,则C=AB。具体要求如下:con

温馨提示

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

评论

0/150

提交评论