首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中包含了类IntegerSet和主函数main的定义。一个IntegerSet对象就是一个整数的集合,其中包含0个或多个无重复的整数;为了便于进行集合操作,这些整数按升序存放在成员
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中包含了类IntegerSet和主函数main的定义。一个IntegerSet对象就是一个整数的集合,其中包含0个或多个无重复的整数;为了便于进行集合操作,这些整数按升序存放在成员
admin
2020-05-14
81
问题
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中包含了类IntegerSet和主函数main的定义。一个IntegerSet对象就是一个整数的集合,其中包含0个或多个无重复的整数;为了便于进行集合操作,这些整数按升序存放在成员数组elem的前若干单元中。成员函数add的作用是将一个元素添加到集合中(如果集合中不存在该元素),成员函数remove从集合中删除指定的元素(如果集合中存在该元素)。请编写成员函数remove。在main函数中给出了一组测试数据,此时程序的正确输出结果应为:
2 3 4 5 27 28 31 66 75
2 3 4 5 6 27 28 31 66 75
2 3 4 5 6 19 27 28 31 66 75
3 4 5 6 19 27 28 31 66 75
3 4 5 6 19 27 28 31 66 75
要求:
补充编制的内容写在“//**********333**********”与“//**********666**********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数WriteToFile已经编译为obj文件,并且在本程序中调用。
//IntegorSet.h
#ifndef INTEGERSET
#define INTEGERSET
#include
using namespace std;
const int MAXELEMENTS:100:
//集合最多可拥有的元素个数
class IntegerSet{
int elem[MAXELEMENTS];
//用于存放集合元素的数组
int counter;//用于记录集合中元素个数的计数器
public:
IntegerSet():counter(0){}
//创建一个空集合
IntegerSet(int data[],int size);
//利用数组提供的数据创建一个整数集合
void add(int element);
//添加一个元素到集合中
void remove(int element);
//删除集合中指定的元素
int getCount()const{return counter;}
//返回集合中元素的个数
int getElement(int i)const{return elem
;}//返回集合中指定的元素
void show()eonst:
};
void WriteToFile(char*);
#endif
//main.cpp
#include"IntegerSet.h"
#include
IntegerSet::IntegerSet(int data[],int size):counter(0){
for(int i:0;i
add(data
);
}
void IntegerSet::add(int element){
int j;
//从后往前寻找第一个小于等于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(int k=counter;k>J;k--)
elem[k]=elem[k-1];
elem[j]=element;//将element插入到该位置
counter++; //计数器加1
}
void IntegerSet::remove(int element){
//**********333**********
//**********666**********
}
void IntegerSet::show()const{
for(int i=0;i
cout<
cout<
}
int main(){
int d[]={5,28,2,4,5,3,2,75,27,66,31};
IntegerSet s(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("");
return 0;
}
选项
答案
for(int i=0;i
解析
主要考查考生对有序数组的掌握,题目要求成员函数remove从集合中删除指定的元素(如果集合中存在该元素)。遍历数组elem中的元素,找出与形参element相等的元素,并将其删除,每删除一个元素,即将该元素之后的每个元素前移一位,如果不存在与形参element相等的元素则没有操作。使用下标i遍历数组,if语句判断是否与element相等。
转载请注明原文地址:https://kaotiyun.com/show/Sc8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
重载输入流运算符>>必须使用的原型为()。
一个函数为void f(int,char ch=’a’),另一个函数为void f(int),则它们( )。
下列程序的输出结果是 #include<iostream.h> voidmain() {inta[3],i,j,k=2; for(i=0;i<3;i++)a[i]=i; for(i=0;i<k;i++) for
模板是实现代码重用机制的一种工具,其中使一个函数可以定义成对许多不同数据类型完成同一个任务的是指【】模板。
下列关于运算符重载的描述中,正确的是
在数据库管理系统提供的数据功能中,负责数据的完整性、安全性的定义功能的是()。
请指出程序片段的语法错误______。
两个或两个以上模块之间关联的紧密程度称为
C++语言提供的基本控制结构可以分为3种类型:顺序结构、【】和循环结构。
A、 B、 C、 D、 B数据库设计阶段主要包括需求分析、概念设计、逻辑设计和物理设计。其中逻辑设计的主要工作是将E.R图转换为关系模式。
随机试题
IamspeakingnotasaBriton,notasaEuropean,notasamemberofawesterndemocracy,【C1】______.Theworldisfullofconf
对风湿病具有诊断意义的病变是
慢性支气管炎患者发生通气和换气功能障碍的病变基础是
关于世界各国宪法实施保障体制,下列说法错误的是哪一或哪些选项?()
建设项目总承包有多种形式,如设计和施工任务综合的承包,设计、采购和施工任务综合的承包,它们的项目管理都属于( )的项目管理。
准确无误地填写进出口货物报关单和报关数据的预录入,陪同海关查验,对货物进行税则归类、计算税费、缴纳税费、提货、提供报关事宜咨询服务等项工作,是属于下列()单位的基本业务范围。
个人信用贷款无需办理任何担保手续,风险成本相对高,但银行操作成本低,所以,银行在核定贷款利率时,通常较担保贷款利率低。()
下图中的立体图形①是由立体图形②、③和④组合而成,下列哪一项能够填入问号处?
单击“电子表格”按钮,然后按照题目要求完成下面的操作。注意:以下的文件必须保存在考生文件夹下。期末考试结束了,初三(14)班的班主任助理王老师需要对本班学生的各科考试成绩进行统计,按照下列要求完成该班的成绩统计工作。分别将各科的“学期成绩”引
Overthepastfewyears,theyoungmanhas______(表现出了一名优秀经理的潜质)
最新回复
(
0
)