cpp求职

时间:2020-05-23 15:54:59   收藏:0   阅读:70
  1 //
  2 // Created by snnnow on 2020/5/20.
  3 //
  4 /*1.求职者对“求职中心”的职位需求信息非常关心,很想跟踪“求职中心”中职位需求信息的变化。“求职中心”让求职者把个人信息登记下来。当出现新的职位需求时,“求职中心”会通知全体求职者,而求职者会根据不同的职位需求做出不同的响应:应聘或忽略。
  5 2.编写程序,模拟求职者在“求职中心”进行登记,“求职中心”发布职位需求信息,求职者决定是否应聘的过程。
  6 (1)定义“求职中心”类JobCenter,其成员变量可以保存所有的求职者;
  7 (2)定义求职者类JobSeeker,定义2种不同类型的求职者对象,应届大学毕业生Student类和有工作经验的求职者Experienced类,并在“求职中心”中进行注册登记;
  8 (3)“求职中心”发布新的职位需求信息,并及时通知所有注册过的求职者。
  9 (4)求职者能够自动接收信息,并做出响应:应聘或忽略。
 10 (5)应届大学毕业生做出应聘的响应之前,还必须先经过学校(University)的审核:绩点(GPA)不低于2.5分才允许毕业和参加应聘;成绩低于2.5分就必须留级一年,不能参加应聘。
 11 3.题目要求
 12 (1)创建新的工程项目Findjob;
 13 (2)为每个类编写单独的头文件和源文件,例如JobCenter.h和JobCenter.cpp;
 14 (3)主程序对应的源文件名为Findjob.cpp,里面包含main()函数。
 15 4.编写程序并测试。可以自由扩展程序。
 16 class JobCenter {
 17 public:
 18     void addStudent(Student *pStudent);                    // 添加学生求职者
 19     void addExperienced(Experienced *pExperienced);        // 添加有工作经验求职者
 20     void publishMessage(const string &message);            // 发布职位需求信息
 21     void notifyJobSeekers();        // 通知所有的求职者,让他们接收职位需求信息
 22 private:
 23     string message;        // 职位需求信息
 24     ········        // 其他属性
 25     int numJobSeeker;        // 当前求职者的数量
 26     Student *studentsList[100];            // 指针数组,保存Student对象的指针
 27     Experienced *experiencedList[100];    // 指针数组,保存Experienced对象的指针
 28 };
 29 class JobSeeker {
 30 public:
 31     JobSeeker(const string &name, int age);
 32     void answerPhone(const string &message); // 接收职位需求信息
 33 protected:
 34     string name;            //名字
 35     int age;            //年龄
 36 };
 37 class Student: public JobSeeker { // 应届大学毕业生
 38 public:
 39     Student(const string &name, int age, double GPA, JobCenter *,...); // 在求职中心登记
 40     void answerPhone(const string &message);
 41 };
 42 class Experienced: public JobSeeker { // 有工作经验的求职者
 43 public:
 44     Experienced(const string &name, int age, JobCenter *jobCenter);
 45     void answerPhone(const string &message);        // 如果是程序员的工作,就应聘
 46 };
 47 class University { // 应届大学毕业生所在的大学
 48 public:
 49     University(const string &name);
 50     ...examine(......);            // 学校审核应届大学生是否能够按时毕业。自己定义
 51 private:
 52 string name;        // 学校名称
 53 };
 54 
 55 int main() {
 56     JobCenter *jobCenter = new JobCenter();    // 创建“求职中心”
 57     University ouc("中国海洋大学");
 58 
 59     // 创建求职者,并在求职中心登记
 60     Student *zhang = new Student("小张", 22, 3.3, jobCenter); 
 61     Experienced *wang = new Experienced("小王", 30, jobCenter);
 62     Student *li = new Student("小李", 21, 2.4, jobCenter);
 63 
 64     // 求职中心发布职位需求信息,并通知全体求职者
 65     jobCenter->publishMessage("腾辉公司需要10个C++程序员。");
 66     jobCenter-> notifyJobSeekers();
 67     cout << endl;
 68 
 69     jobCenter->publishMessage("海景公司需要8个动画设计师。");
 70     jobCenter-> notifyJobSeekers();
 71     cout << endl;
 72 
 73     jobCenter->publishMessage("仁海公司需要9个电工。");
 74     jobCenter-> notifyJobSeekers();
 75     cout << endl;
 76 
 77     delete li;
 78     ......  // 其他代码,完成收尾工作
 79 }
 80 9.程序执行完毕后,命令行窗口显示的结果:
 81 求职中心成立了
 82 
 83 发布招聘信息:腾辉公司需要10个C++程序员。
 84 
 85 通知所有求职者...
 86 我叫小张,我是一名毕业生,我收到了招聘信息:腾辉公司需要10个C++程序员。可以应聘。
 87 我叫小王,我有工作经验,待遇要好。我收到了招聘信息:腾辉公司需要10个C++程序员。可以应聘。
 88 我叫小李,我是一名毕业生,我收到了招聘信息:腾辉公司需要10个C++程序员。无法毕业,不能应聘。
 89 
 90 发布招聘信息:海景公司需要8个动画设计师。
 91 
 92 通知所有求职者...
 93 我叫小张,我是一名毕业生,我收到了招聘信息:海景公司需要8个动画设计师。可以应聘。
 94 我叫小王,我有工作经验,待遇要好。我收到了招聘信息:海景公司需要8个动画设计师。工作不合适,不应聘。
 95 我叫小李,我是一名毕业生,我收到了招聘信息:海景公司需要8个动画设计师。无法毕业,不能应聘。
 96 
 97 
 98 发布招聘信息:仁海公司需要9个电工。
 99 
100 通知所有求职者...
101 我叫小张,我是一名毕业生,我收到了招聘信息:仁海公司需要9个电工。可以应聘。
102 我叫小王,我有工作经验,待遇要好。我收到了招聘信息:仁海公司需要9个电工。工作不合适,不应聘。
103 我叫小李,我是一名毕业生,我收到了招聘信息:仁海公司需要9个电工。无法毕业,不能应聘。
104 
105 求职中心关闭了
106 
107 提示:采用下面的方法判断一个字符串中是否含有指定的子串。
108 if (str1.find(str2) != string::npos) {
109     cout << "found!" << endl;
110 }
111 
112 */ 
113 #include <bits/stdc++.h>
114 using namespace std;
115 class JobSeeker;
116 class JobCenter {
117 public:
118     void addseeker(JobSeeker *seek);                    // 添加学生求职者
119     //void addExperienced(Experienced *pExperienced);        // 添加有工作经验求职者
120     void publishMessage(const string &message);            // 发布职位需求信息
121     void notifyJobSeekers();        // 通知所有的求职者,让他们接收职位需求信息
122 
123     string messageorg;        // 职位需求信息
124 
125 
126     JobSeeker *seeker[100];            // 指针数组,保存Student对象的指针
127    // Experienced *experiencedList[100];    // 指针数组,保存Experienced对象的指针
128    int num=0;// 当前求职者的数量
129 };
130 
131 
132 class JobSeeker {
133 public:
134    // JobSeeker(const string &name, int age);
135    virtual  void answerPhone(const string &message)=0; // 接收职位需求信息
136     void printall(JobCenter *centerr);
137 
138 
139     string name;            //名字
140     int age;            //年龄
141     int ok;
142     int who=0;
143 };
144 
145 
146 class Student: public JobSeeker { // 应届大学毕业生
147 public:
148     Student(const string &name, int age, double GPA):name(name),age(age),GPA(GPA){
149         JobSeeker::name=name;
150         JobSeeker::age=age;
151 
152        whoo();
153 
154     }; // 在求职中心登记
155     void answerPhone(const string &message);
156     double GPA;
157     string name;
158     int age;
159     int who=1;
160     void whoo();
161 
162 };
163 
164 
165 class Experienced: public JobSeeker { // 有工作经验的求职者
166 public:
167     Experienced(const string &name, int age):name(name),age(age){
168         JobSeeker::name=name;
169         JobSeeker::age=age;
170         whoo();
171     };
172     void answerPhone(const string &message);        // 如果是程序员的工作,就应聘
173     int age;
174     string name;
175     int who=2;
176     void whoo();
177     //void printall();
178 };
179 //
180 void JobCenter::addseeker(JobSeeker *seek){
181     seeker[num++]=seek;
182 }
183 
184 void JobCenter::publishMessage(const string &message){
185     messageorg=message;
186     cout<<"发布招聘信息:"<<messageorg;
187     cout<<endl;
188 }
189 void JobCenter::notifyJobSeekers() {
190     cout<<"notify all the seekers"<<endl;
191 
192 }
193 void Student::answerPhone(const string &message) {
194     if(GPA<2.5)
195         ok=0;
196     else ok=1;
197     JobSeeker::ok=ok;
198     return;
199 
200 
201 }
202 void Experienced::answerPhone(const string &message) {
203     string a="c++";
204     if (message.find(a) != string::npos) {
205 
206     //cout << "found!" << endl;
207     ok=1;
208     JobSeeker::ok=ok;
209     return ;
210     }
211     ok=0;
212     JobSeeker::ok=ok;
213     return ;
214 }
215 void Experienced::whoo(){
216     JobSeeker::who=2;
217 }
218 void Student::whoo() {
219     JobSeeker::who=1;
220 
221 }
222 
223 void JobSeeker::printall(JobCenter* centerr){
224     cout<<"I‘m"<<name<<",";
225     if(who==1){
226         cout<<"我是一名毕业生,";
227 
228     } else
229         cout<<"我有工作经验,待遇要好,";
230     cout<<"我收到了一个招聘通知:";
231     cout<<centerr->messageorg;
232     cout<<"我觉得";
233     if(ok==1){
234         cout<<"可以应聘."<<endl;
235 
236     }
237     else{
238         if(who==1) {
239 
240             cout << "无法毕业,不能应聘" << endl;
241         } else{
242             cout<<"工作不合适,不去应聘";
243         }
244     }
245 
246 
247 }
248 
249 int main() {
250     JobCenter *jobCenter = new JobCenter();    // 创建“求职中心”
251     cout<<"求职中心成立了"<<endl;
252 
253     // 创建求职者,并在求职中心登记
254     Student *zhang = new Student("小张", 22, 3.3);
255     JobSeeker *wang = new Experienced("小王", 30);
256     Student *li = new Student("小李", 21, 2.4);
257     jobCenter->addseeker(zhang);
258     jobCenter->addseeker(wang);
259     jobCenter->addseeker(li);
260     //cout<<"ok"<<endl;
261 //    zhang->answerPhone(jobCenter->messageorg);
262 //    wang->answerPhone(jobCenter->messageorg);
263 //    li->answerPhone(jobCenter->messageorg);
264 //    cout<<zhang->ok<<endl;
265 //    cout<<wang->ok<<endl;
266 //    cout<<li->ok<<endl;
267 //    cout<<"who"<<endl;
268 //    cout<<zhang->who<<endl;
269 //    cout<<wang->who<<endl;
270 //    cout<<li->who<<endl;
271     // 求职中心发布职位需求信息,并通知全体求职者
272     cout << endl;
273     cout<<"发布招聘信息:";
274     jobCenter->publishMessage("腾辉公司需要10个c++程序员。");
275     cout << endl;
276     jobCenter->notifyJobSeekers();
277     cout << endl;
278 //
279     for (int i = 0; i < jobCenter->num; ++i) {
280         jobCenter->seeker[i]->answerPhone(jobCenter->messageorg);
281         jobCenter->seeker[i]->printall(jobCenter);
282 
283 
284     }
285 //    cout << endl;
286 //
287     cout<<"发布招聘信息:";
288     jobCenter->publishMessage("海景公司需要8个动画设计师。");
289     cout << endl;
290     jobCenter->notifyJobSeekers();
291     cout << endl;
292     for (int i = 0; i < jobCenter->num; ++i) {
293         jobCenter->seeker[i]->answerPhone(jobCenter->messageorg);
294         jobCenter->seeker[i]->printall(jobCenter);
295 
296 
297     }
298    cout << endl;
299 //
300     cout<<"发布招聘信息:";
301     jobCenter->publishMessage("仁海公司需要9个电工。");
302     cout << endl;
303     jobCenter->notifyJobSeekers();
304     cout << endl;
305     for (int i = 0; i < jobCenter->num; ++i) {
306         jobCenter->seeker[i]->answerPhone(jobCenter->messageorg);
307         jobCenter->seeker[i]->printall(jobCenter);
308 
309 
310     }
311   cout << endl;
312     for (int j = 0; j < jobCenter->num; ++j) {
313         delete jobCenter->seeker[j];
314         
315 
316     }
317 
318 }

最后,对xty dl 对我标点符号级别的指出错误表示不尽感激!

原文:https://www.cnblogs.com/zhmlzhml/p/12942701.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!