//Created by Arc on 2020/5/23
////
//// Created by snnnow on 2020/5/20.
////
//面向对象的程序设计-期中测试
// 根据题目实现求职中心应用程序。
//1.求职者对“求职中心”的职位需求信息非常关心,很想跟踪“求职中心”中职位需求信息的变化。因此,“求职中心”会让求职者把个人信息登记下来。
// 当出现新的职位需求时,“求职中心”会通知全体求职者,而求职者会根据不同的职位需求做出不同的响应:应聘或忽略。
//2.编写程序,模拟求职者在“求职中心”进行登记,“求职中心”发布职位需求信息,求职者决定是否应聘的过程。
//(1)定义“求职中心”类JobCenter,其成员变量可以保存所有的求职者;
//(2)定义求职者类JobSeeker,定义2种不同类型的求职者对象,应届大学毕业生Student类和有工作经验的求职者Experienced类,并在“求职中心”中进行注册登记;
//(3)“求职中心”发布新的职位需求信息,并及时通知所有注册过的求职者。
//(4)求职者能够自动接收信息,并做出响应:应聘或忽略。
//(5)应届大学毕业生做出应聘的响应之前,还必须先进行自我审核:绩点(GPA)不低于2.5分才可以毕业和参加应聘;否则,不能参加应聘。
//3.题目要求
//(1)创建新的工程项目Findjob;
//(2)为每个类编写单独的头文件和源文件,例如JobCenter.h和JobCenter.cpp;
//(3)主程序对应的源文件名为Findjob.cpp,里面包含main()函数。
//4.编写程序并测试。可以自由扩展程序。
//class JobCenter {
//public:
// void addStudent(Student *pStudent); // 添加学生求职者
// void addExperienced(Experienced *pExperienced); // 添加有工作经验求职者
// void publishMessage(const string &message); // 发布职位需求信息
// void notifyJobSeekers(); // 通知所有的求职者,让他们接收职位需求信息
//private:
// string message; // 职位需求信息
// ········ // 其他属性
// int numJobSeeker; // 当前求职者的数量
// Student *studentsList[100]; // 指针数组,保存Student对象的指针
// Experienced *experiencedList[100]; // 指针数组,保存Experienced对象的指针
//};
//class JobSeeker {
//public:
// JobSeeker(const string &name, int age);
// void answerPhone(const string &message); // 接收职位需求信息
//protected:
// string name; //名字
// int age; //年龄
//};
//class Student: public JobSeeker { // 应届大学毕业生
//public:
// Student(const string &name, int age, double GPA, JobCenter *,...); // 在求职中心登记
// void answerPhone(const string &message);
//};
//class Experienced: public JobSeeker { // 有工作经验的求职者
//public:
// Experienced(const string &name, int age, JobCenter *jobCenter);
// void answerPhone(const string &message); // 如果是程序员的工作,就应聘
//};
//
//int main() {
// JobCenter *jobCenter = new JobCenter(); // 创建“求职中心”
//
// // 创建求职者,并在求职中心登记
// Student *zhang = new Student("小张", 22, 3.3, jobCenter);
// Experienced *wang = new Experienced("小王", 30, jobCenter);
// Student *li = new Student("小李", 21, 2.4, jobCenter);
//
// // 求职中心发布职位需求信息,并通知全体求职者
// jobCenter->publishMessage("腾辉公司需要10个C++程序员。");
// jobCenter-> notifyJobSeekers();
// cout << endl;
//
// jobCenter->publishMessage("海景公司需要8个动画设计师。");
// jobCenter-> notifyJobSeekers();
// cout << endl;
//
// jobCenter->publishMessage("仁海公司需要9个电工。");
// jobCenter-> notifyJobSeekers();
// cout << endl;
//
// delete li;
// ...... // 其他代码,完成收尾工作
//}
//9.程序执行完毕后,命令行窗口显示的结果:
//求职中心成立了
//
// 发布招聘信息:腾辉公司需要10个C++程序员。
//
//通知所有求职者...
// 我叫小张,我是一名毕业生,我收到了招聘信息:腾辉公司需要10个C++程序员。可以应聘。
//我叫小王,我有工作经验,待遇要好。我收到了招聘信息:腾辉公司需要10个C++程序员。可以应聘。
//我叫小李,我是一名毕业生,我收到了招聘信息:腾辉公司需要10个C++程序员。无法毕业,不能应聘。
//
//发布招聘信息:海景公司需要8个动画设计师。
//
//通知所有求职者...
// 我叫小张,我是一名毕业生,我收到了招聘信息:海景公司需要8个动画设计师。可以应聘。
//我叫小王,我有工作经验,待遇要好。我收到了招聘信息:海景公司需要8个动画设计师。工作不合适,不应聘。
//我叫小李,我是一名毕业生,我收到了招聘信息:海景公司需要8个动画设计师。无法毕业,不能应聘。
//
//
//发布招聘信息:仁海公司需要9个电工。
//
//通知所有求职者...
// 我叫小张,我是一名毕业生,我收到了招聘信息:仁海公司需要9个电工。可以应聘。
//我叫小王,我有工作经验,待遇要好。我收到了招聘信息:仁海公司需要9个电工。工作不合适,不应聘。
//我叫小李,我是一名毕业生,我收到了招聘信息:仁海公司需要9个电工。无法毕业,不能应聘。
//
//求职中心关闭了
//
//
//
//
//
// 提示:采用下面的方法判断一个字符串中是否含有指定的子串。
//if (str1.find(str2) != string::npos) {
//cout << "found!" << endl;
//}
////
#include <bits/stdc++.h>
using namespace std;
class JobSeeker;
class JobCenter {
public:
void addseeker(JobSeeker *seek); // 添加学生求职者
//void addExperienced(Experienced *pExperienced); // 添加有工作经验求职者
void publishMessage(const string &message); // 发布职位需求信息
void notifyJobSeekers(); // 通知所有的求职者,让他们接收职位需求信息 string messageorg; // 职位需求信息 JobSeeker *seeker[]; // 指针数组,保存Student对象的指针
// Experienced *experiencedList[100]; // 指针数组,保存Experienced对象的指针
int num=;// 当前求职者的数量
}; class JobSeeker {
public:
// JobSeeker(const string &name, int age);
virtual void answerPhone(const string &message)=; // 接收职位需求信息
void printall(JobCenter *centerr); string name; //名字
int age; //年龄
int ok;
int who=;
}; class Student: public JobSeeker { // 应届大学毕业生
public:
Student(const string &name, int age, double GPA):name(name),age(age),GPA(GPA){
JobSeeker::name=name;
JobSeeker::age=age; whoo(); }; // 在求职中心登记
void answerPhone(const string &message); string name;
int age;
double GPA;
int who=;
void whoo(); }; class Experienced: public JobSeeker { // 有工作经验的求职者
public:
Experienced(const string &name, int age):name(name),age(age){
JobSeeker::name=name;
JobSeeker::age=age;
whoo();
};
void answerPhone(const string &message); // 如果是程序员的工作,就应聘
string name;
int age; int who=;
void whoo();
//void printall();
};
//
void JobCenter::addseeker(JobSeeker *seek){
seeker[num++]=seek;
} void JobCenter::publishMessage(const string &message){
messageorg=message;
cout<<"发布招聘信息:"<<messageorg;
cout<<endl;
}
void JobCenter::notifyJobSeekers() {
cout<<"通知所有求职者..."; }
void Student::answerPhone(const string &message) {
if(GPA<2.5)
ok=;
else ok=;
JobSeeker::ok=ok;
return; }
void Experienced::answerPhone(const string &message) {
string a="程序员";
if (message.find(a) != string::npos) { //cout << "found!" << endl;
ok=;
JobSeeker::ok=ok;
return ;
}
ok=;
JobSeeker::ok=ok;
return ;
}
void Experienced::whoo(){
JobSeeker::who=;
}
void Student::whoo() {
JobSeeker::who=; } void JobSeeker::printall(JobCenter* centerr){
cout<<"我是"<<name<<",";
if(who==){
cout<<"我是一名毕业生,"; } else
cout<<"我有工作经验,待遇要好,";
cout<<"我收到了一个招聘通知:";
cout<<centerr->messageorg;
//cout<<"我觉得";
if(ok==){
cout<<"可以应聘."; }
else{
if(who==) { cout << "无法毕业,不能应聘.";
} else{
cout<<"工作不合适,不应聘.";
}
} } int main() {
JobCenter *jobCenter = new JobCenter(); // 创建“求职中心”
cout<<"求职中心成立了"<<endl; // 创建求职者,并在求职中心登记
Student *zhang = new Student("小张", , 3.3);
JobSeeker *wang = new Experienced("小王", );
Student *li = new Student("小李", , 2.4);
jobCenter->addseeker(zhang);
jobCenter->addseeker(wang);
jobCenter->addseeker(li);
//cout<<"ok"<<endl;
// zhang->answerPhone(jobCenter->messageorg);
// wang->answerPhone(jobCenter->messageorg);
// li->answerPhone(jobCenter->messageorg);
// cout<<zhang->ok<<endl;
// cout<<wang->ok<<endl;
// cout<<li->ok<<endl;
// cout<<"who"<<endl;
// cout<<zhang->who<<endl;
// cout<<wang->who<<endl;
// cout<<li->who<<endl;
// 求职中心发布职位需求信息,并通知全体求职者
cout << endl;
cout<<"发布招聘信息:";
jobCenter->publishMessage("腾辉公司需要10个c++程序员。");
cout << endl;
jobCenter->notifyJobSeekers();
cout << endl;
//
for (int i = ; i < jobCenter->num; ++i) {
jobCenter->seeker[i]->answerPhone(jobCenter->messageorg);
jobCenter->seeker[i]->printall(jobCenter);
cout << endl; }
cout << endl;
//
cout<<"发布招聘信息:";
jobCenter->publishMessage("海景公司需要8个动画设计师。");
cout << endl;
jobCenter->notifyJobSeekers();
cout << endl;
for (int i = ; i < jobCenter->num; ++i) {
jobCenter->seeker[i]->answerPhone(jobCenter->messageorg);
jobCenter->seeker[i]->printall(jobCenter);
cout << endl; }
cout << endl;
//
cout<<"发布招聘信息:";
jobCenter->publishMessage("仁海公司需要9个电工。");
cout << endl;
jobCenter->notifyJobSeekers();
cout << endl;
for (int i = ; i < jobCenter->num; ++i) {
jobCenter->seeker[i]->answerPhone(jobCenter->messageorg);
jobCenter->seeker[i]->printall(jobCenter);
cout << endl; }
cout << endl;
for (int j = ; j < jobCenter->num; ++j) {
delete jobCenter->seeker[j];
jobCenter->num--; // 防止空指针访问 }
cout<<"\n"<<"求职中心关门了"<<endl;
return ; }

对xty dl标点符号级的指出错误表示十分的感谢!!!!!!!

cpp求职的更多相关文章

  1. 使用“Cocos引擎”创建的cpp工程如何在VS中调试Cocos2d-x源码

    前段时间Cocos2d-x更新了一个Cocos引擎,这是一个集合源码,IDE,Studio这一家老小的整合包,我们可以使用这个Cocos引擎来创建我们的项目. 在Cocos2d-x被整合到Cocos引 ...

  2. Json CPP 中文支持与入门示例

    在每一个Json Cpp自带*.cpp文件头加上: #include "stdafx.h" 将Json Cpp对自带的头文件的引用修改为单引号方式,例如json_reader.cp ...

  3. cpp 调用python

    在用cpp调用python时, 出现致命错误: no module named site  ,  原因解释器在搜索路径下没有找到python库.可以在调用Py_Initialize前,调用 Py_Se ...

  4. nginx+fastcgi+c/cpp

    参考:http://github.tiankonguse.com/blog/2015/01/19/cgi-nginx-three/ 跟着做了一遍,然后根据记忆写的,不清楚有没错漏步骤,希望多多评论多多 ...

  5. APM程序分析-ArduCopter.cpp

    该文件是APM的主文件. #define SCHED_TASK(func, rate_hz, max_time_micros) SCHED_TASK_CLASS(Copter, &copter ...

  6. APM程序分析-AC_WPNav.cpp

    APM程序分析 主程序在ArduCopter.cpp的loop()函数. /// advance_wp_target_along_track - move target location along ...

  7. Dev Cpp 输出中文字符问题

    最近 c++ 上机作业,vc++6.0 挂了没法用,只好用 Dev Cpp 先顶替一下,然而在遇到输出中文字符的时候出现了乱码的情况,但这种情况又非常诡异.于是简单了解了一下写成此博客. [写在前面] ...

  8. 【整理】待毕业.Net码农就业求职储备

    声明:本文题目来源于互联网,仅供即将从学校毕业的.Net码农(当然,我本人也是菜逼一个)学习之用.当然,学习了这些题目不一定会拿到offer,但是针对就业求职做些针对性的准备也是不错的.此外,除了技术 ...

  9. [转]9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路

    1,简介 毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾. 首先说说我拿到的offer情况: 微软,3面->终面,搞定 百度,3面->终面,口头of ...

随机推荐

  1. 洛谷 P6136 【【模板】普通平衡树(数据加强版)】

    爱死替罪羊树了 这种暴力的数据结构爱死了.什么?!你还不知道替罪羊树?那就看看这篇博客这篇博客吧.替罪羊树就是当不平衡时,拍扁重建,然后就平衡了.想切这道题,要先把普通平衡树那道题做了(这篇博客讲了的 ...

  2. 安装pymysql模块及使用

    安装pymysql模块: https://www.cnblogs.com/Eva-J/articles/9772614.html file--settings for New Projects---P ...

  3. Spring Security(一) —— Architecture Overview

    摘要: 原创出处 https://www.cnkirito.moe/spring-security-1/ 「老徐」欢迎转载,保留摘要,谢谢! 1 核心组件 一直以来我都想写一写Spring Secur ...

  4. CentOS7 安装rz和sz命令,安装netstat

    yum install lrzsz CentOS7 安装netstat命令 yum install net-tools

  5. Java1.7的HashMap源码分析-面试必备技能

    HashMap是现在用的最多的map,HashMap的源码可以说是面试必备技能,今天我们试着分析一下jdk1.7下的源码. 先说结论:数组加链表 一.先看整体的数据结构 首先我们注意到数据是存放在一个 ...

  6. HDU 5961 传递 题解

    题目 我们称一个有向图G是 传递的,当且仅当对任意三个不同的顶点a,,若G中有 一条边从a到b且有一条边从b到c ,则G中同样有一条边从a到c. 我们称图G是一个 竞赛图,当且仅当它是一个有向图且它的 ...

  7. Emergency Evacuation 题解

    The Japanese government plans to increase the number of inbound tourists to forty million in the yea ...

  8. Linux多任务编程之六:编写多进程程序及其代码(转)

    来源:CSDN  作者:王文松  转自Linux公社 ------------------------------------------------------------------------- ...

  9. day51 作业

    用html搭建一个注册页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  10. JVM 专题十二:运行时数据区(七)对象的实例化内存布局与访问定位

    1. 对象的实例化 1.1 创建对象的方式 new 最常见的方式 变形1 : Xxx的静态方法 变形2 : XxBuilder/XxoxFactory的静态方法 Class的newInstance() ...