ImageVerifierCode 换一换
格式:DOCX , 页数:108 ,大小:621.70KB ,
资源ID:9589089      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9589089.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VC课程实践正确答案 1.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VC课程实践正确答案 1.docx

1、VC 课程实践正确答案 1江苏科技大学 课程实践报告设计题目: 程序设计(VC+)实践 设计时间: 至 学 院: 专业班级: 学生姓名: 学号 指导老师: 1试建立一个类PP,求出下列多项式的前n项的值。 具体要求如下:(1)私有数据成员l int n:前若干项的项数。l double x:存放x的值。l double *p:根据n的大小动态申请存放Pn(x) 前n项的数组空间。(2)公有成员函数l PP(int num,double x1):构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。l PP():析构函数,释放p指向的动态内存空间。l double fun(int n1,d

2、ouble x):递归函数,用于求多项式 的第n1项。注意:将递归公式中的n用作函数参数。本函数供process函数调用。l void process( ):完成求前n项的工作,并将它们存放到p指向的动态数组中。l void show( ):输出n和x,并将前n项以每行4个数的形式输出到屏幕上。(3) 在主函数中完成对该类的测试。先输入num和x1,并定义一个PP类的对象items,用num和x1初始化items的成员n和x,调用items的成员函数,求出并输出多项式前num项的值。程序源代码#includeclass pp int n; double x; double *p;public:

3、 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 doublenum+1;pp:pp() delete p;double pp:fun(int n1,double x) if(n1=0)return 1; if(n1=1)return x; if(n11)return (2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x)/n1;void pp:proces

4、s() int i; for(i=0;i=n;i+) *(p+i)=fun(i,x); void pp:show() coutn=ntx=xendl; for(int i=0,m=1;in;i+,m+) cout*(p+i)t; if(m%4=0)coutn; void main() int num; double x1; coutput in num and x1numx1; pp items(num,x1); items.process(); items.show(); 运行结果2试建立一个类SP,求 ,另有辅助函数power(m,n)用于求 。具体要求如下:(1)私有成员数据。l int

5、 n,k:存放公式中n和k的值;(2)公有成员函数。l SP(int n1,int k1):构造函数,初始化成员数据n和k。l int power(int m, int n):求mn。l int fun( ):求公式的累加和。l void show( ):输出求得的结果。(3)在主程序中定义对象s,对该类进行测试。程序源代码#includeclass SP int n,k;public: SP(int n1,int k1); int power(int m,int n); int fun(); void show();SP:SP(int n1,int k1) n=n1; k=k1;int SP

6、:power(int m,int n) int i; if(n=0)return 1; else for(i=1;in;i+) m*=m; return m;int SP:fun() int y=0,x; for(x=1;x=n;x+) y+=power(x,k); return y;void SP:show() cout前n项的和为:fun()endl;void main() int n1,k1; cout输入n1和k1的值n1k1; SP s(n1,k1); s.fun(); s.show();运行结果:3建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的

7、元素放到数组的右边。具体要求如下:(1)私有数据成员l float array20:一维整型数组。l int n:数组中元素的个数。(2)公有成员函数l MOVE(float b,int m):构造函数,初始化成员数据。l void average():输出平均值,并将数组中的元素按要求重新放置。l void print():输出一维数组。(3)在主程序中用数据1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3对该类进行测试。程序源代码#includeclass MOVE float array20; int n;public: MOVE(float b,int m); voi

8、d average(); void print();MOVE:MOVE(float b,int m) int i; n=m; for(i=0;im;i+) arrayi=bi;void MOVE:average() int i,x; float a=0; for(i=0;in;i+) a+=arrayi; a/=n; cout平均值为aendl; float ff20; for(i=0,x=0;in;i+) if(arrayia) ffx=arrayi; x+; for(i=0;ia) ffx=arrayi; x+; for(i=0;in;i+) arrayi=ffi;void MOVE:pr

9、int() int q,p=1; for(q=0;qn;q+) coutarrayqt; if(p%5=0)coutn; p+; void main() float b=1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3; int m=9; MOVE aa(b,m); aa.average(); aa.print();运行结果4建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。具体要求如下:(1)私有数据成员l int *array:一维整型数组。l int n:数组中元素的个数。(2)公有成员函数l MOVE(int b,int m):构造函数,初始化成员数据。l

10、void exchange():输出平均值,并将数组中的元素按要求重新放置。l void print():输出一维数组。l MOVE():析构函数。(3)在主程序中用数据21,65,43,87,12,84,44,97,32,55对该类进行测试。程序源代码#includeclass MOVE int *array; int n;public: MOVE(int b,int m); void exchange(); void print(); MOVE();MOVE:MOVE(int b,int m) n=m; array=new intn; for(int x=0;xn;x+) arrayx=b

11、x;void MOVE:exchange() float a=0; int i,*p1,*p2; for(i=0;in;i+) a+=arrayi; a/=n; coutThe average of the number is:aendl; p1=p2=&array0; for(i=0;in;i+) if(arrayi*p2)p2=&arrayi; i=*p1; *p1=*p2; *p2=i; void MOVE:print() int i,num=1; for(i=0;in;i+) coutarrayit; if(num%5=0)coutn; num+; MOVE:MOVE()delete

12、array;void main() int b=21,65,43,87,12,84,44,97,32,55,n=10; MOVE ff(b,n); ff.exchange(); ff.print();运行结果5定义一个类Palindrome,实现绝对回文数。设计一个算法实现对任意整型数字判断是否为绝对回文数。所谓绝对回文数,是指十进制数和二进制数均对称的数。具体要求如下:(1)私有数据成员 l int n:整型数字。l int y: 标记是否为回文数。(2)公有成员函数l Palindrome (int x) :构造函数,根据x参数初始化数据成员n,y初始化为0。l void huiwen (

13、) :判断数n是否为绝对回文数。l void show( ) :若该数为回文数,则在屏幕显示。 (3)在主程序中定义int a,由键盘输入数字。定义一个Palindrome类对象p,用a初始化p,完成对该类的测试。程序源代码#includeclass palindrome int n; int y;public: palindrome(int x); void huiwen(); void show();palindrome:palindrome(int x) n=x; y=0;void palindrome:huiwen() int b20,c50,m,i,p=0,t1=1,t2=1; m=

14、n; for(i=0;m0;m/=10) p+; bi=m%10; i+; for(i=0;i0;m/=2) p+; ci=m%2; i+; for(i=0;ip;i+) if(ci!=cp-i-1) t2=0; break; if(t1&t2)y=1;void palindrome:show() if(y=0)cout该数不是回文数!endl; else cout该回文数是:nendl;void main() int a; cout输入a的值a; palindrome p(a); p.huiwen(); p.show();运行结果:6定义一个字符串类String,实现判断该字符串是否为回文字

15、符串。所谓回文字符串,是指该字符串左右对称。例如字符串“123321”是回文字符串。具体要求如下: (1)私有数据成员 l char *str; l int y:标记是否为回文字符串。 (2)公有成员函数l String (char *s) :构造函数,用给定的参数s初始化数据成员str。y初始化为0。l void huiwen () :判断str所指向的字符串是否为回文字符串。l void show( ) :在屏幕上显示字符串。(3)在主程序中定义字符串char s=”ababcedbaba”作为原始字符串。定义一个String类对象test,用s初始化test,完成对该类的测试。程序源代码

16、#include#includeclass string char *str; int y;public: string(char *s); void huiwen(); void show();string:string(char *s) str=new charstrlen(s); strcpy(str,s); y=0;void string:huiwen() char *p1,*p2; p2=p1=str; for(int i=0;stri;i+,p2+); p2-; for(;p1!=p2;p1+,p2-) if(*p1!=*p2) y=0;break; else y=1; void

17、string:show() cout”字符串为:”strendl; if(y=0)cout字符串不是回文数!endl; else coutyendl;void main() char s=ababcedbaba; string test(s); test.huiwen(); test.show();运行结果:7建立一个类PHALANX,生成并显示一个折叠方阵。折叠方阵如下图所示。折叠方阵的生成过程为:起始数置于方阵的左上角,然后从起始数开始递增,依次折叠构成方阵。 具体要求如下:(1)私有数据成员l int (*p)20:指向按照折叠规律存放方阵的二维整型数组。l int startnum:折

18、叠方阵的起始数。l int n:存放方针的层数。(2)公有成员函数l PHALANX (int s, int m ):构造函数,初始化成员数据。l void process():生成起始数为startnum的n行方阵。l void print():输出折叠方阵。l PHALANX( ):析构函数。(3)在主程序中对该类进行测试。程序源代码#include#includeclass phalanx int(*p)20; int starnum; int n;public: phalanx(int s,int m); void process(); void print(); phalanx();

19、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; c

20、out输入s和m的值sm; phalanx pp(s,m); pp.process(); pp.print();运行结果8建立一个MATRIX,生成并显示一个螺旋方阵。螺旋方阵如下图所示,起始数置于方阵的左上角,然后从起始数开始依次递增,按顺时针方向从外向里旋转填数而成。 具体要求如下:(1)私有数据成员l int a20 20:二维整型数组存放螺旋方阵。l int startnum:螺旋方阵的起始数。l int n:存放方针的层数。(2)公有成员函数l MATRIX (int s, int m ):构造函数,初始化成员数据startnum和n。l void process():生成起始数为s

21、tartnum的n行螺旋方阵。l void print():输出螺旋方阵。(3)在主程序中定义MATRIX类的对象t对该类进行测试。程序源代码#include#includeclass matrix int a2020; int starnum; int n;public: matrix(int s,int m); void process(); void print();matrix:matrix(int s,int m) starnum=s; n=m;void matrix:process() int st=starnum; int i,j,x=0,y=n; for(;x=(y-1)/2;

22、x+) for(i=x,j=x;j(y-x-1);j+) aij=st; st+; for(;ix;j-) aij=st; st+; for(;ix;i-) aij=st; st+; if(x=(y-1)/2)aij=st; void matrix:print() int i,j; for(i=0;in;i+) for(j=0;jn;j+) coutsetw(8)aij; coutn; void main() int s,m; cout输入s和m的值sm; matrix pp(s,m); pp.process(); pp.print();运行结果9定义一个字符串类CString,并设计一个算法

23、对该串中各个不同字符出现的频率进行统计。具体要求如下: (1)私有数据成员 l char *str:指向要统计的字符串。l char (*p)2:动态分配二维空间,用以存放str所指字符串中出现的字符及其出现的次数(次数在存放时,用该数字对应的ASCII值存放;在输出次数时,输出该ASCII字符对应的ASCII值即可)。l int size:存放字符串中出现的所有不同的字符的个数。 (2)公有成员函数l CString (char *s) :根据s参数初始化数据成员str;p和size初始值为0。l void Count():p根据s所指字符串长度分配空间。然后把str所指字符串中的每个字符放

24、入p数组中,设置每个字符的出现次数为1。根据p数组统计不同字符出现的频率,并求得size的实际大小。最后根据size的实际大小,重新分配p所指空间,并把不同字符及其出现次数重新放回p数组(提示:可以借助临时数组或指针来实现)。l void Show():屏幕显示字符串、字符串的每个字符和与之对应的次数。l CString():释放动态分配的空间。(3)在主程序中定义字符串char s=”abdabcdesffffd”。定义一个CString类对象test,用s以初始化test,完成对该类的测试。程序源代码#include#includeclass cstring char*str; char

25、(*p)2; int size;public: cstring(char *s); void count(); void show(); cstring();cstring:cstring(char*s) p=0; size=0; str=s;void cstring:count() p=new charstrlen(str)2; char n; char *p1,*p2; for(int i=0;stri;i+) n=0; p1=&stri; for(int m=0;strm;m+) p2=&strm; if(*p1=*p2)n+; p2+; pi0=stri; pi1=n; void cstring:show() for(int i=0;istrlen(str);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1