在公司里面,程序猿经常有一堆todolist要做,而这些todolist是产品经理分配给他们的。但是当程序员遇到不懂技术的产品狗时,就悲剧了。产品经理经常修改他们的todolist,比如:添加,减少他们的todolist。
请设计一个类CodeMonkey ,表示程序猿,另一个类ProductDog,表示产品经理。
CodeMonkey类有私有成员 name,todolist。
构造函数初始化姓名和todolist,公有函数 int sizeof_todolist(), 来自ProductDog类的友元函数 add_todolist(CodeMonkey&,int),reduce_todolist(CodeMonkey& , int);
ProductDog类有公有函数 add_todolist(CodeMonkey&,int),reduce_todolist(CodeMonkey& , int)
Input Specification
每个测试文件包含一组测试用例,对于每个测试用例,第一行输入 n (1<= n <= 10^6)表示有n个程序员,接下去n行,每行为: name x 表示名为name的程序员的todolist的长度为x。 接下去一行 m (1<=m<=10^6),表示产品经理分配任务的次数。 接下去m行,每行为 name opt x , opt 为 0 表示名为name的程序猿的todolist增加x,opt为 1 表示减少x。 输入数据保证合法性。
Output Specification
对于每个程序员,请输出 name x,x表示最终的todolist长度。按输入顺序输出。
Sample Input:
3
Jack 1
Luck 2
Tom 3
4
Tom 0 100
Luck 0 50
Jack 0 25
Tom 1 50
Sample Output:
Jack 26
Luck 52
Tom 53

#include<iostream>
using namespace std;
class CodeMonkey;    //先给个类头不然定义add reduce函数会出错
class ProductDog{public:void add_todolist(CodeMonkey&,int);  //Dog可用加减函数void reduce_todolist(CodeMonkey&,int);
};
class CodeMonkey{private:string name;int todolist;public:CodeMonkey(string s1="s",int a=0):name(s1),todolist(a){};  //构造函数void set(string s1,int temp);int sizeof_todolist();    //返回todolist大小friend void ProductDog::add_todolist(CodeMonkey&,int );  //记得不要漏了ProductDogfriend void ProductDog::reduce_todolist(CodeMonkey&,int) ;
};
void CodeMonkey::set(string s1,int temp){name=s1;todolist=temp;
}int CodeMonkey::sizeof_todolist(){return todolist;
}
void ProductDog::add_todolist(CodeMonkey& S1,int k){S1.todolist+=k;
}
void ProductDog::reduce_todolist(CodeMonkey& S1,int k){S1.todolist-=k;
}
int main(){int n,m;     //n表示程序员数,m表示产品狗的操作数cin>>n;string s;string s2[n];   //保存程序员名字方便搜索int temp;CodeMonkey b[n];ProductDog Dog;   //一定要定义出来一个对象来使用add reduce两个函数 它们在外面不能直接调用for(int i=0;i<n;i++){cin>>s;s2[i]=s;cin>>temp;b[i].set(s,temp);}cin>>m;int flag;for(int i=0;i<m;i++){cin>>s>>flag>>temp;for(int j=0;j<n;j++){if(s==s2[j]&&flag==0){Dog.add_todolist(b[j],temp);}else if(s==s2[j]&&flag==1){Dog.reduce_todolist(b[j],temp);}}}for(int i=0;i<n;i++){cout<<s2[i]<<" "<<b[i].sizeof_todolist()<<endl;}return 0;
}

PTA:程序猿和产品狗(c++ 友元)相关推荐

  1. 1019. 程序猿和产品狗

    在公司里面,程序猿经常有一堆todolist要做,而这些todolist是产品经理分配给他们的.但是当程序员遇到不懂技术的产品狗时,就悲剧了.产品经理经常修改他们的todolist,比如:添加,减少他 ...

  2. 程序猿到产品狗的迅速转换

    从猿到狗的进化,已经慢慢脱离了人类了. 给大家说说我为什么转产品吧,其实可能和很多人想法不同,和之前的程序员交流,有一部分人会认为产品是一个很好的职位.为啥这么说呢,产品一般是对所在的项目对各个方面了 ...

  3. 小游戏“程序猿大战产品*那啥”

    致大神"浅墨",毛星云,网名「浅墨」,微软MVP,<Windows游戏编程之从零开始>作者. 不知还有多少人记得, 2021-12-13,知名游戏开发大神毛星云(网名「 ...

  4. 防止程序猿和前端狗打架的几条约定

    一个项目或者产品的出生,往往包含需求.开发.测试再到生产,不是前端一个人在战斗,而是一个团队,少则3-4人,多则十几人,那么问题来了,开发人员需要遵守哪些约定,才能不让程序猿和前端狗不打起来呢?    ...

  5. 从Java程序猿到产品经理

    作为一个程序猿,也许我是真的不太适合,思前想后,有一方面现实的压力,也有一部分内心的挣扎,最后选择change.我转行做产品也有相当长的一段时间了.其实在这段时间学习中,也对程序猿和产品经理这两个岗位 ...

  6. 不服来战!这才是产品汪与程序猿撕逼的正确方式

    问题背景:当你的产品内测时,这时候程序员看着那个功能或者交互很不爽,开始各种吐槽,紧接着一群程序员开始吐槽,有多不爽,有多鸡肋,有多麽....balabala..你该怎么办?(@PMCAFF会员CSQ ...

  7. 做为一名IT新人,必了解程序员与产品经理的恩怨情仇

    近日<产品经理和程序员打起来了>的消息被疯传. 通过这事件,我们需要了解与反思,产品经理与软件开发程序员到底应该如何配合,如何有效的合作,才达到共赢的状态? 何以至于要拔刀相向,兵戎相见? ...

  8. 30 个跟程序猿有关的成语

    猿来如此 指程序员通过调试终于找到 BUG 所在. 功成猿满 指项目大获成功,老板开始觉得程序猿人数太多,工作不够饱和. 左右逢猿 指需求评审会时,前后左右都是程序猿,舌战群猿,以一敌多的场面. 花好 ...

  9. OSChina 娱乐弹弹弹——程序猿专属幽默

    2019独角兽企业重金招聘Python工程师标准>>> 以下是关于程序员的一些笑话,据说看懂的人都还在加班中. 0.  老婆给当程序员的老公打电话:下班顺路买十个包子,如果看到卖西瓜 ...

最新文章

  1. mysql中的存储过程和函数
  2. 交换与路由技术课程期末上机测试题目二
  3. Python学习笔记:Day1-2 开发环境搭建
  4. springboot html压缩,springboot 请求响应压缩
  5. (1)Uni-App入门
  6. Node.js 的第一个 demo 和本地服务器配置
  7. 观点|通过短生命周期和最小权限原则保护软件供应链安全
  8. Rayeager PX2 不能进入烧写模式解决方案
  9. hive内置函数_Hive Query生命周期 —— 钩子(Hook)函数篇
  10. C语言 — 转义字符
  11. 《XHTML》pdf
  12. 机虚拟磁盘附加到计算机上,Hyper-V 怎样拷贝文件至虚拟硬盘并附加到虚拟机上...
  13. 密码学基础部分大归纳(密码学发展史,对称、非对称密码算法,数字签名、数字证书)
  14. cas4实现sso(一)cas简介
  15. 证券知识库:股票——基础概念
  16. linux 主机名称修改
  17. 永磁材料介绍和ANSYS Workbench永磁体仿真
  18. .fla文件的链接类在.swf中的体现
  19. 怎么写好你的求职信!
  20. 界面设计的八条黄金法则

热门文章

  1. redhat6.5 centos6.5 FusionCompute下VNC花屏
  2. 喷墨打印机连续纸彩色实时绘图方法
  3. C#往excel中插入特殊符号——HSSFRichTextString
  4. jsp大学生心理测评管理系统
  5. 7-5求解田忌赛马问题
  6. 使用Python Django开发web应用15 缓存
  7. 程序员最新赚钱指南!
  8. 如何深入学习Django?
  9. 计算机组老师颁奖词,奖励优秀学年组、教师颁奖词
  10. java excel打印_Java如何设置电子表格的打印区域?