面向对象的程序设计范例.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象的程序设计范例

【题目】试定义一个类Array,将一个数组中绝对值最大的m个元素提取出来按其绝对值的大小降序放入另一数组中(设数组中各元素的绝对值互不相同)。要求原数组中的元素的顺序保持不变。具体要求如下: (1)私有数据成员 int *p, n; p为数组的首地址,n为数组元素的个数。 (2)公有成员函数 Array(int *a=0, int k=0); 构造函数,用数组a的k个元素初始化数据成员p,用k初始化数据成员n。 void fun(int t[], int m); 将数组p中绝对值最大的m个元素提取出来并存放在参数t中,并且将t中的元素按其绝对值从大到小排序。 ~ Array ( ); 析构函数,撤销所占用的动态存储空间。 void print(); 输出数组的所有元素。 (3)在主函数中对类Array进行测试。首先定义一个数组并初始化,利用该数组生成一个Array类型的对象。再定义另一数组,用成员函数fun()按要求提取出相应的数据存放到该数组并在主函数中输出。 参考答案: #includeiostream.h #includestdlib.h class Array{ int *p, n; public: Array(int *t, int m) { n=m; p=new int[n]; for(int i=0; in; i++) p[i]=t[i]; } void fun(int t[],int m) { int *tmp=new int [n]; for(int i=0; in; i++) tmp[i]=p[i]; for(i=0; in-1; i++) for(int j=i+1; jn; j++) if(abs(tmp[i])abs(tmp[j])){ int t1=tmp[i]; tmp[i]=tmp[j]; tmp[j]=t1; } for(i=0; im; i++) t[i]=tmp[i]; delete []tmp; } void print() { for(int i=0; in; i++) coutp[i]\t; coutendl; } ~Array() { delete []p; } }; void main() { int a[10]={8,3,7,9,2,4,6,1,0,-1},b[5]; Array test1(a,10); test1.fun(b,5); cout数组:; test1.print(); cout其中绝对值最大的5个元素为: ; for(int i=0; i5; i++) coutb[i]\t; coutendl; } 【题目】定义一个类String,求两个字符串的交集。具体要求如下: (1)私有数据成员 char *s, *t; 存储两个字符串。 char str[50]; 储存s和t的交集(即公共字符)。 (2)公有成员函数 String(char * s1, char *t1); 构造函数,用s1初始化s,t1初始化t。 ~String(); 析构函数,释放占用的动态存储空间。 int fun1(char *str, char ch); 判断字符串str是否包含字符ch,若包含,返回1,否则,返回0。 char *fun2(char *str); 删除字符串str中的重复字符,只保留第一个字符,并将结果返回。 void fun(); 按题目要求获取s和t中的所有公共字符,并把它们存储在str中。算法要求:先调用函数fun2( ), 删除字符串s中的重复字符,然后通过调用函数fun1()依次判断s中的每个字符是否包含在字符串t中,如果包含,则将该字符加入到数组strf中。 void print(); 输出字符串s和t以及所求得的所有公共字符。 (3)在主函数中对该类进行测试。 参考答案: #include iostream.h #include string.h class String{ char *s, char *t; char str[50]; public: String(char *s1, char *t1) { s=new char[strlen(s1)+1]; t=new char[strlen(t1)+1]; strcpy(s, s1); strcpy(t, t1); } ~String() { delete []s; delete []t; } int fun1(char *str, char ch)

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档