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)