案例
真题
(2024年上半年)
试题一(25分)
阅读下列说明,回答问题1至问题2,将解答填入答题纸的对应栏内。
【说明】
【说明】
现要求实现一个能够自动生成求职简历的程序。简历的基本内容包括求职者的姓名、性别、年龄及工作经历等。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。
现采用原型(Prototype)模式来实现上述要求,得到如图5-1所示的类图。

【C++代码】
#include<string>
using namespace std;
class Cloneable {
public;
(1) ;
};
class WorkExperience:public Cloneable { //工作经历
private;
string workDate;
string company;
public;
Cloneable* Clone(){
(2) ;
obj->workDate=this->workDate;
obj->company=this->company;
return obj;
}
//其余代码省略
};
class Resume:public Cloneable { //简历
private;
string name; string sex; string age;
WorkExperience* work;
Resume(WorkExperience* work){
this->work= (3) ;
}
public;
Resume(string name){ /* 实现略 */ }
void SetPersonallnfo(string sex, string age;){ /* 实现略 */ }
void SetWorkExperience(string workDate, string company){ /* 实现略 */ }
Cloneable* Clone(){
(4) ;
obj->name=this->name;
obj->sex=this->sex;
obj->age=this->age;
return obj;
}
};
int main(){
Resume *a=new Resume(“张三”);
a->SetPersonallnfo(“男”,“29”);
a->SetWorkExperience(“1998~2000”,“XXX公司”);
Resume *b= (5) ;
b->SetWorkExperience(“2001~2006”,“YYY公司”);
return 0;
}
【问题1】
阅读下列说明和C++代码,将应填入(n) 处的字句写在答题纸的对应栏内。
阅读下列说明,回答问题1至问题2,将解答填入答题纸的对应栏内。
【说明】
【说明】
现要求实现一个能够自动生成求职简历的程序。简历的基本内容包括求职者的姓名、性别、年龄及工作经历等。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。
现采用原型(Prototype)模式来实现上述要求,得到如图5-1所示的类图。

【C++代码】
#include<string>
using namespace std;
class Cloneable {
public;
(1) ;
};
class WorkExperience:public Cloneable { //工作经历
private;
string workDate;
string company;
public;
Cloneable* Clone(){
(2) ;
obj->workDate=this->workDate;
obj->company=this->company;
return obj;
}
//其余代码省略
};
class Resume:public Cloneable { //简历
private;
string name; string sex; string age;
WorkExperience* work;
Resume(WorkExperience* work){
this->work= (3) ;
}
public;
Resume(string name){ /* 实现略 */ }
void SetPersonallnfo(string sex, string age;){ /* 实现略 */ }
void SetWorkExperience(string workDate, string company){ /* 实现略 */ }
Cloneable* Clone(){
(4) ;
obj->name=this->name;
obj->sex=this->sex;
obj->age=this->age;
return obj;
}
};
int main(){
Resume *a=new Resume(“张三”);
a->SetPersonallnfo(“男”,“29”);
a->SetWorkExperience(“1998~2000”,“XXX公司”);
Resume *b= (5) ;
b->SetWorkExperience(“2001~2006”,“YYY公司”);
return 0;
}
【问题1】
阅读下列说明和C++代码,将应填入(n) 处的字句写在答题纸的对应栏内。