首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中包含了类IntegerSet和主函数main的定义。一个IntegerSet对象就是一个整数的集合,其中包含0个或多个无重复的整数;为了便于集合操作,这些整数按升序存放在成员数组
请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中包含了类IntegerSet和主函数main的定义。一个IntegerSet对象就是一个整数的集合,其中包含0个或多个无重复的整数;为了便于集合操作,这些整数按升序存放在成员数组
admin
2015-06-27
59
问题
请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中包含了类IntegerSet和主函数main的定义。一个IntegerSet对象就是一个整数的集合,其中包含0个或多个无重复的整数;为了便于集合操作,这些整数按升序存放在成员数组elem的前若干单元中。成员函数add将一个元素添加到集合中(如果集合中不存在该元素),成员函数remove从集合中删除指定的元素(如果集合中存在该元素)。请编写成员函数remove。在main函数中给出了一组测试数据,此时程序的正确输出结果应为:
23452728316675
234562728316675
23456192728316675
3456192728316675
3456192728316675
要求:
补充编制的内容写在//**********333**********与//**********666**********两行之间。不得修改程序的其他部分。
注意:
程序最后已经将结果输出到文件out.dat中。输出函数WriteToFile已经编译为obj文件,并且在本程序中调用。
#include"IntegerSet.h"
#include
IntegerSet::IntegerSet(intdata[],intsize):counter(0){
for(inti=0;i
add(data
);
}
voidIntegerSet::add(intelement){
intj;
//从后往前寻找第一个小于等于element的元素
for(j=counter;j>0;j--)
if(element>=elem[j-1])
break;
//如果找到的是等于element的元素,说明要添加的元素已经存在,直接返回
if(j>0)
if(element==elem[j-1])return;
//如果找到的是小于element的元素,j就是要添加的位置
//该元素及其后面的元素依次后移,腾出插入位置
for(intk=counter;k>j;k--)elem[k]=elem[k—1];
elem[j]=element;//将element插入到该位置
counter++;//计数器加1
}
voidIntegerSet::remove(intelement){
//********333********
//********666********
}
voidIntegerSet::show()const{
for(inti=0;i
cout<
cout<
}
intmain(){
intd[]={5,28,2,4,5,3,2,75,27,66,31);
IntegerSets(d,11);S.show();
s.add(6);s.show();
s.add(19);s.show();
s.remove(2);s.show();
s.add(4);s.show();
WriteToFile("C:\\test\\");
return0;
}
roj3\IntegerSet.h
{}ifndefINTEGERSET
#defineINTEGERSET
#include
usingnamespacestd;
constintMAXELEMENTS=100;//集合最多可拥有的元素个数
classIntegerSet{
intelem[MAXELEMENTS];//用于存放集合元素的数组
intcounter;//用于记录集合中元素个数的计数器
public:
IntegerSet():counter(0){}//创建一个空集合
IntegerSet(intdata[],intSize);
//利用数组提供的数据创建一个整数集合
voidadd(intelement);//添加一个元素到集合中
voidremove(intelement);//删除集合中指定的元素
intgetCount()const{returncounter;}//返回集合中元素的个数
intgetElement(inti)const{returnelem
;}//返回集合中指定的元素
voidshow()const;
};
voidWriteToFile(char*);
#endif
选项
答案
intj,k; for(j=0;j
=counter||element!=elem[j]) { return; } for(k=j;k
解析
主要考查考生对对象处理的掌握,函数remove的功能是将IntegerSet类中数组成员elem包含的值等于element的元素删除。由add函数可知,数组elem的元素添加进来时是有序的,所以首先从前往后遍历数组,查找第一个不小于element的元素,如果元素下标不小于counter或者找到的元素不等于element,说明该数组中没有值等于element的元素,返回即可;否则说明元素下标合法且元素值等于element,设该元素下标为j,将该元素后面的所有元素依次前移一位,相当于删除了elem[j],最后需要更新counter值。
转载请注明原文地址:https://kaotiyun.com/show/7DNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
已知n是一个int型变量,下列语句中错误的是______。
要定义数组A,使得其中每个元素的数据依次为:3、9、4、8、0、0、0,错误的定义语句是______。
设有以下定义和程序:#include<iostream.h>classA1{public:voidshow1(){cout<<"classA1"<<endl;}};classA2:
系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。
以下不能正确定义二维数组的选项是()。
带有虚基类的多层派生类,构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化______。
在数据库系统中,把具有以下特征中之______两个特征的数据模型称为网状模型。
软件生命周期是指______的过程。
下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶元素在stack[top-1)中,在下面横线处填上适当语句,完成栈类模板的定义。template<classT>class
下列关于顺序存储结构叙述中错误的是()。
随机试题
切割修理车身梁、车门槛板、A立柱、B立柱,均采用__________。
肺结核术后继续抗结核治疗至少需要多长时间()
A.透脓散B.瓜蒌牛蒡汤C.龙胆泻肝汤D.四妙汤加味E.托里消毒散治疗乳痈溃后热退身凉,肿痛渐消,应首选
施工组织设计完成后,按专用条款的约定,将施工进度计划和施工方案说明报送()审批。
耙吸式挖泥船的施工方法依泥浆处理方式的不同可分为()。
以下关于速动比率的说法中,错误的是()。
水俣病和痛痛病分别由()过量而引起。
阅读下面的文字,回答下列问题。玛雅人是中美洲的土著居民,曾经拥有与大河流域的古代文明同样高度发达的文明。大约从公元300年起,玛雅文明进入了被称为“古典期”的鼎盛时期。公元800年起,古典期玛雅文明到达了它的顶峰,随后发生了不可思议的崩溃。在此后
根据下列材料回答下列问题。2008年以来,世界经济增长速度全面放缓。2008年美国前三季度GDP环比分别增长O.9%、2.8%和下降0.5%;欧元区第一季度GDP环比增长0.7%,第二季度和第三季度均下降0.2%;日本第一季度GDP环比增长O.6%
对于一个一直以来学习成绩很差的学生,当在一次考试中取得较好的成绩时,教师引导其进行合适的归因,下列选项能取得最佳教学效果的归因是()。
最新回复
(
0
)