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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C++实验报告.docx

1、C+实验报告C+课程实验报告19 林子扬1.试定义一个类STR,实现求两个字符串的交集。两个字符串的交集是指同时属于两个字符串的字符的集合,且该集合中的字符各不相同。具体要求如下: (1)私有数据成员: char s150,s250,s050;字符串s0用于存放字符串s1和字符串s2的交集。 (2)公有成员函数: STR(char *p1,char *p2);构造函数,分别用参数p1和p2初始化成员数组s1和s2。 int isin(char *p,char c);判断字符c是否出现在字符串p中,如果是,则返回值为1,否则返回0。 void fun();求成员数组s1和s2的交集,并将结果存放

2、在成员数组s0中。提示:利用函数isin(char *,char)依次判断一个字符串中的每个字符是否包含于另一个字符串中,如果包含,且该字符不包含于成员数组s0中,则将该字符加入到成员数组s0中。 void print();按输出示例的格式输出所有数据成员。 (3)在主函数中对该类进行测试。 输出示例: 字符串1:abcdef123abc12 字符串2:acef123ace124 两个字符串的交集:acef123源程序代码:#include#includeclass STR char s050,s150,s250;public: STR(char *p1,char *p2); int isin

3、(char *p,char c); void fun(); void print();STR:STR(char *p1,char *p2) strcpy(s1,p1); strcpy(s2,p2); s00=0;int STR:isin(char *p,char c) char *p0=p; while(*p0) if(*p0+=c) return 1;定义一个类Array,实现由一个数组派生出另一个数组。派生规则如下:新数组的元素取值为原数组中相同位置元素的左、右两个相邻元素前后拼接后形成的整数(左邻元素在前,右邻元素在后)。规定最左(右)列元素的左(右)邻元素为该元素所在行的最右(左)侧的

4、元素。具体要求如下:(1)私有数据成员: int a 34; 原数组。 int b 34; 派生数组。(2) 公有成员函数 Array(int t4,int n);构造函数,利用参数t的前n行元素初始化数据成员a。 int nn(int t1,int t2);返回t1,t2拼接后形成的整数(t1在前,t2在后)。 void fun();按题意生成新数组,并将结果存放到数据成员b中。 void print();按矩阵形式输出成员数组。(3)在主函数中对该类进行测试。输出示例:原数组:41 67 34 069 24 78 5862 64 5 45派生数组:67 4134 670 34415824

5、6978 2458 78694564 625 6445 562源程序代码:#include#includeclass Array int a34; int b34;public: Array(int t4,int n); int nn(int t1,int t2); void fun(); void print();Array:Array(int t4,int n) for(int i=0;in;i+) for(int j=0;j4;j+) aij=tij;int Array:nn(int t1,int t2) int t=t2; while(t) t1*=10; t/=10; return

6、t1+t2;void Array:fun() for(int i=0;i3;i+) for(int j=0;j4;j+) int c=j-1; int d=j+1; c=c30:d; bij=nn(aic,aid);定义一个类NUM,实现将一维数组中各整数元素去掉其中相同数字后再对数组从小 到大排序。将一个整数去掉相同数字是指:如果一个整数中有相同的数字,则保留从左数起 ,第一次看到的那个数字,而将其他相同的数字去掉。例如:数字中有三个1、两个2,则去掉相同的数字后变为12345。具体要求如下: (1)私有数据成员。 •int a 5:存放需处理的数组。 (2)公有成员函数。 &#

7、8226;NUM(int t,int n):构造函数,用t初始化a,n为t的元素个数。 •void sort(int t,int n):将数组t的元素从小到大排序。 •int convert(int n):去除n中相同的数字并返回新得到的数。 •void fun():将数组a的各元素去除相同的数字后从小到大排列。要求调用函数 convert()和sort()。 •void print():输出数组a的所有元素。 (3)在主函数中对该类进行测试。 输入/输出示例(下划线部分为键盘输入): 输入5个整数:1213 65666 22313 12314

8、34435 处理前的数组为:1213 65666 22313 12314 34435 处理后的数组为:65 123 231 345 1234源程序代码:#includeclass NUM int a5;public: NUM(int t,int n); void sort(); int convert(int n); void fun(); void print();NUM:NUM(int t,int n)定义一个类STR,统计一个字符串中包含的句子数和单词数,规定单词之间以空格、”,”或”.”分隔,句子以”.”结束,具体要求如下 (1)私有数据成员char *s :指向待统计的字符串int

9、m,n: 分别记录求得的单词数和句子数 (2)公有成员函数STR(char *t): 构造函数,用参数t初始化字符串svoid fun(): 按题意统计单词数,结果存放在数据成员m中,再统计句子数,结果存放在数据成员n中 void print(): 按输出示例的格式输出统计结果 STR(): 析构函数,实现必要的功能 (3)在主函数中对该类进行测试 输出示例: 字符串:I am a student. I am twenty. I com from china. 句子数:3 单词数:11源程序代码:#include#includeclass STR char *s; int m,n;public

10、: STR(char *t); void fun(); void print(); STR() delete s;STR:STR(char *t) s=new char strlen(t)+1; strcpy(s,t);void STR:fun() char *p=s; m=0;n=0; while(*p) if(*p=.) n+; if(*p= |*p=;|*p=,|*p=.) m+; while(*p= ) p+; p+; void STR:print() cout字符串:sendl; cout句子数:nendl; cout单词数:mendl;void main() char s100;

11、(s,100); STR t(s); (); ();运行结果:5.试建立一个类PP,求出下列多项式的前n项的值。 具体要求如下:(1)私有数据成员 n:前若干项的项数。 x:存放x的值。 *p:根据n的大小动态申请存放Pn(x) 前n项的数组空间。(2)公有成员函数(int num,double x1):构造函数,初始化数据成员n和x,使p指向动态申请的数组空间。2.PP():析构函数,释放p指向的动态内存空间。 fun(int n1,double x):递归函数,用于求多项式 的第n1项。注意:将递归公式中的n用作函数参数。本函数供process函数调用。 process( ):完成求前n项

12、的工作,并将它们存放到p指向的动态数组中。 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: pp(int num,double x1); pp(); double fun(int n1,double x); void process(); void show();pp:

13、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:process() int i; for(i=0;i=n;i+) *(p+i)=fun(i,x); void pp:show() coutn=ntx=xendl; for(int i=0,m=

14、1;in;i+,m+) cout*(p+i)t; if(m%4=0)coutn; void main() int num; double x1; cout请依次输入num和x1的值numx1; pp items(num,x1); (); ();运行结果:6.试建立一个类SP,求 ,另有辅助函数power(m,n)用于求 。具体要求如下:(1)私有成员数据。 n,k:存放公式中n和k的值;(2)公有成员函数。(int n1,int k1):构造函数,初始化成员数据n和k。 power(int m, int n):求mn。 fun( ):求公式的累加和。 show( ):输出求得的结果。(3)在主

15、程序中定义对象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 m1) n=n1; k=m1;int SP: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

16、 y;void SP:show() cout前n项的和为:fun()endl;void main() int n1,k1; cout输入n和k的值n1k1; SP s(n1,k1); (); ();运行结果:7.建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。具体要求如下:(1)私有数据成员 *array:一维整型数组。 n:数组中元素的个数。(2)公有成员函数(int b,int m):构造函数,初始化成员数据。 exchange():输出平均值,并将数组中的元素按要求重新放置。 print():输出一维数组。6.MOVE():析构函数。(3)在主程序中用数据21,65,43,8

17、7,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=bx;void MOVE:exchange() float a=0; int i,*p1,*p2; for(i=0;in;i+) a+=arrayi; a/=n; cout数组的平均数为:a

18、endl; 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 array;void main() int b=21,65,43,87,12,84,44,97,32,55,n=10; MOVE ff(b,n); cout变化前数组为:endl; (); (); cout变化后数组为:endl;

19、 ();运行结果:8.定义一个类Palindrome,实现绝对回文数。设计一个算法实现对任意整型数字判断是否为绝对回文数。所谓绝对回文数,是指十进制数和二进制数均对称的数。具体要求如下:(1)私有数据成员 n:整型数字。 y: 标记是否为回文数。(2)公有成员函数 (int x) :构造函数,根据x参数初始化数据成员n,y初始化为0。 huiwen () :判断数n是否为绝对回文数。 show( ) :若该数为回文数,则在屏幕显示。(3)在主程序中定义int a,由键盘输入数字。定义一个Palindrome类对象p,用a初始化p,完成对该类的测试。源程序代码:#includeclass pal

20、indrome 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=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); (); ();运行结果:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2