第 1 頁(yè):選擇題 |
第 6 頁(yè):基本操作題 |
第 7 頁(yè):簡(jiǎn)單應(yīng)用題 |
第 8 頁(yè):綜合應(yīng)用題 |
四、綜合應(yīng)用題
43請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾proj3下的工程proj3,其中包含了類(lèi)IntegerSet和主函數(shù)main的定義。一個(gè)IntegerSet對(duì)象就是一個(gè)整數(shù)的集合,其中包含0個(gè)或多個(gè)無(wú)重復(fù)的整數(shù);為了便于進(jìn)行集合操作,這些整數(shù)按升序存放在成員數(shù)組elem的前若干單元中。成員函數(shù)add的作用是將一個(gè)元素添加到集合中(如果集合中不存在該元素),成員函數(shù)remove從集合中刪除指定的元素(如果集合中存在該元素)。請(qǐng)編寫(xiě)成員函數(shù)remove。在main函數(shù)中給出了一組測(cè)試數(shù)據(jù),此時(shí)程序的正確輸出結(jié)果應(yīng)為:
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
要求:
補(bǔ)充編制的內(nèi)容寫(xiě)在“//***********333***********”與“//***********666***********”之間,不得修改程序的其他部分。
注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)writeToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。
//IntegorSet.h
#ifndef INTEGERSET
#define INTEGERSET
#include
using namespace std;
const int MAXELEMENTS=100;
//集合最多可擁有的元素個(gè)數(shù)
class IntegerSet{
int elem[MAXELEMENTS];
//用于存放集合元素的數(shù)組
int counter; //用于記錄集合中元素個(gè)數(shù)的計(jì)數(shù)器
puhlic:
IntegerSet():counter(0){}
//創(chuàng)建一個(gè)空集合
IntegerSet(int data[],int size);
//利用數(shù)組提供的數(shù)據(jù)創(chuàng)建一個(gè)整數(shù)集合
void add(int element);
//添加一個(gè)元素到集合中
void remeve(int element);
//刪除集合中指定的元素
int getCount()const{return counter;}
//返回集合中元素的個(gè)數(shù)
int getElement(int i)const{retum elem[i];}//返回集合中指定的元素
void show()const;
};
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[i]);
}
}
void IntegerSet::add(int element){
int j;
//從后往前尋找第一個(gè)小于等于element的元素
for(j=counter;j>0;j-)
if(element>=elem[j一1])break;
//如果找到的是等于element的元素,說(shuō)明要添加的元素已經(jīng)存在,直接返回
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++; //計(jì)數(shù)器加l
}
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
//遍歷整個(gè)集合(數(shù)組elem)
if(element==elem[i])
//女il果element等于elem[i]
{
for(intj=i;j
//從i開(kāi)始遍歷集合elem
etem[j]=elem[j+1];
//把elemi i+1]賦值給elem[j]
counter--;//elem長(zhǎng)度自減
re|urn;//返吲
相關(guān)推薦:
2015計(jì)算機(jī)二級(jí)《公共基礎(chǔ)知識(shí)》精選選擇題90道
2015年計(jì)算機(jī)二級(jí)《C語(yǔ)言》考前押題密卷匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |