题目内容

请使用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 56 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<iostream> using namespace std; const int MAXELEMENTS=100; //集合最多可拥有的元素个数 class IntegerSet{ int elem[MAXELEMENTS]; //用于存放集合元素的数组 int counter; //用于记录集合中元素个数的计数器 puhlic: IntegerSet:counter(0){} //创建一个空集合 IntegerSet(int data[],int size); //利用数组提供的数据创建一个整数集合 void add(int element); //添加一个元素到集合中 void remeve(int element); //删除集合中指定的元素 int getCountconst{return counter;} //返回集合中元素的个数 int getElement(int i)const{retum elem[i];}//返回集合中指定的元素 void showconst; }; void WriteToFile(char*); endif //main.cpp include”IntegerSet.h” include<inmanip> IntegerSet::IntegerSet(int data[],int size):counter(0){ for(int i=0;i<size;i++) add(data[i]); } } 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++; //计数器加l } void IntegerSet::remove(int element){ //***************333*************** //***************666*************** void IntegerSet::showconst{ for(int i=0;i<getCount;i++) cout<<setw(4)<<getElement(i); cout<<endl: } 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; }

查看答案
更多问题

通知的“通”是传达的意思,通报的“通”是普通的意思。()

公文如有附件,应当在正文之后,成文日期之前注明附件名称。()

纯新闻(Straight News Report),又称客观性报道,常常采用倒金字塔结构撰写。()

请使用VC6或使用【答题】菜单打开考生文件夹pr092下的工程pros2。此工程中包含一个程序文件main.cpp,其中有“部门”类Department和“职工”类Staff的定义,还有主函数main的定义。在主函数中定义了两个“职工”对象,他们属于同一部门。程序展示,当该部门改换办公室后,这两个人的办公室也同时得到改变。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为: 改换办公室前: 职工号:0789姓名:张三部门:人事处办公室:521 职工号:0513姓名:李四部门:人事处办公室:521 改换办公室后: 职工号:0789姓名:张三部门:人事处办公室:311 职工号:0513姓名:李四部门:人事处办公室:311 注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。 include<iostream> using namespace std; class Department{ //“部门”类 public: Department(const char*name,const char*office){ strcpy(this一>name,nanle); //**********found********** } const char*getNameconst{return name;}//返回部门名称 //**********found********** const char*getOfficeconst{________} //返回办公室房号 void changeOfficeTo(const char*office){ //改换为指定房号的另一个办公室 strcpy(this一>office,office); } private: char name[20];//部门名称 char office[20];//部门所在办公室房号 }; class staff{//“职工”类 public: //**********found********** Staff(const char*my—id,const char木my_name,Department&my_dept):——{ strcpy(this一>staff id,my_id); strcpy(this一>name,my_name); } const char*getlDconst{return staff_id;} const char*getNameconsl{return name;} Department getDepartmentconst{return dept;} char staff=id[10];//职工号 char name[20];//姓名 Department&dept;//所在部门 }; void showStaff(Staff&staff){ cout<<”职工号:”<<staff.getID<<””; cout<<”姓名:”<<staff.getName<<" "; cout<<”部门:”<<staff.getDepartment.getName<<" "; cout<<”办公室:”<<staff.getDepartment.getOffice<<endl; } int main{ Department dept(”人事处”,”521”); Staff Zhang(”0789”,”张三”,dept),Li(”0513”,”李四”,dept); cout<<”改换办公室前:”<<endl; showStaff(Zhang); showStaff(Li); //人事处办公室由521搬到311 //**********found********** ———————————————————————一 cout<<”改换办公室后:”<<endl; showStaff(Zhang); showStaff(Li); return 0; }

答案查题题库