- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)
您可能关注的文档
- Less_12创建索引.ppt
- 图解20个iPhone5新功能臆想.doc
- 物探专业学测井1.ppt
- GPRS无线产品系列.doc
- 甲亢病机等相关内容.doc
- 青岛版五年级科学期末测试.doc
- 钢铁产品的生命周期评价简介.doc
- 地测防治水资料明细及更新周期表.doc
- 天一阳光城一期工程招标文件.doc
- hibernate+spring整合步骤.doc
- 制动系统的特点项目一58课件.pptx
- 直接工程费价外运杂费填料费铁路工程施工组织与概预算78课件.pptx
- 主备用控制中心的切换LCF300型25课件.pptx
- 智能交通系统的相关技术任务三车辆自动驾驶技术王怡安徽交通6.pptx
- 智能交通监控系统任务三城市交通诱导系统诱导系统的组成王怡安.pptx
- 智能交通监控系统任务二城市交通监控系统王怡安徽交通67课件.pptx
- 直升机的特点和分类空气动力学基础与飞行原理86课件.ppt
- 直升机的飞行性能空气动力学基础与飞行原理67课件.ppt
- 职业形象塑造3职业教育国际邮轮乘务管理专业教学化妆与形象设.pptx
- 轴向拉压杆件的线应变和胡克定律张亚琴河北交通52课件.pptx
最近下载
- 基于智能化技术的供水管网漏点判定与修复管理模式.pptx
- 2023-2024学年沪科版(2019)高中信息技术必修二第三单元项目五《规划并连接数字家庭系统的网络——组建小型信息系统网络(一)》说课稿.docx VIP
- 北京市城镇供水厂生产安全事故隐患目录.pdf VIP
- 业主委员会委员候选人推荐表.docx VIP
- NB-T35003-2023水电工程水情自动测报系统技术规范.pdf VIP
- 2025年高考英语陕西卷含解析及答案.docx VIP
- 2025年管道直饮水项目可行性研究报告.docx
- 地理信息安全在线培训考试题目完整版答案.docx
- 幼儿园区域活动的实施策略.pptx
- 10kV及以下变电所设计规范.pdf VIP
文档评论(0)