2024.10.22(周二)

news/2025/3/9 10:44:56/文章来源:https://www.cnblogs.com/Sunyiran/p/18509530

[实验任务一]:女娲造人
使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象。请用程序设计实现上述场景。
实验要求:
1.画出对应的类图;
2.提交源代码;
3.注意编程规范。

1、 类图

 


2、 源代码
#include<iostream>
#include<string>
using namespace std;
//抽象产品类——Person类
class Person{
public:
virtual void say()=0;
};
//具体产品类——Man类
class Man:public Person{
public:
void say(){
cout<<"我是一个Man"<<endl;
}
};
//具体产品类——Woman类
class Woman:public Person{
public:
void say(){
cout<<"我是一个Woman"<<endl;
}
};
//具体产品类——Robot类
class Robot:public Person{
public:
void say(){
cout<<"我是一个Robot"<<endl;
}
};
//工厂类——Nvwa类
class Nvwa{
public:
Person *producePerson(string a){
if(a.compare("M")==0){
cout<<"女娲造了一个Man"<<endl;
return new Man();
}else if(a.compare("W")==0){
cout<<"女娲造了一个Woman"<<endl;
return new Woman();
}else if(a.compare("R")==0){
cout<<"女娲造了一个Robot"<<endl;
return new Robot();
}else{
cout<<"对不起,女娲不能造这样的人"<<endl;
}
}
};
//测试类——main类
int main(){
string s;
Person *p;
Nvwa *q=new Nvwa();
cout<<"***M:男人 W:女人 R:机器人***"<<endl;
cout<<"请输入:";
cin>>s;
p=q->producePerson(s);
p->say();
return 0;
}
3、 运行截图

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/823051.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验3 c语言函数应用编程

task1:1 #include<stdio.h>2 3 char score_to_grade(int score);4 5 int main() {6 int score;7 char grade;8 9 while (scanf_s("%d",&score) != EOF) { 10 grade = score_to_grade(score); 11 printf("分数:%d,等级:%c…

JMeter JMeter-pugin-rabbitMQ消息发布插件

开发环境 RabbitMQ 3.9.16 Erlang 23.3.4.11 Apache-jmeter-5.3 Apache Maven 3.5.4 JDK 1.8.0_121 插件下载地址 https://gitee.com/ishouke/jmeter-plugin-rabbitmq/tree/master 插件使用方法 插件配置 将插件及依赖类库目录下的所有.jar 文件放到 %JMETER_HOME\lib\ext目录…

读数据工程之道:设计和构建健壮的数据系统22获取阶段考虑因素

获取阶段考虑因素1. 有边界与无边界数据 1.1. 无边界数据是现实中存在的数据,是事件发生时的数据,要么是间断的,要么是连续的、持续的和流动的 1.2. 有边界数据是跨越某种边界(如时间)对数据进行归类的一种便捷方式1.2.1. 所有的数据在有边界之前都是无边界的1.3. 长期以来…

mobian trixie 安装 docker

手机刷了 mobian 想安装 docker,记录安装过程中的一些问题 1. 更新软件包列表 sudo apt-get update2. 安装依赖包 sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release3. 添加 Docker 的官方GPG密钥 curl -fsSL https://download.docker.com/linux/…

龙哥盟-PMP-课程笔记-三-

龙哥盟 PMP 课程笔记(三) 2024PMP认证考试课程(第六版+敏捷+第七版) - P6:2.1-2.3 组织过程资产 - 慧翔天地PMP课堂 - BV1By411b7qM 运行环境阶段的课程吧。轻松加愉快,基本上听一听,没什么需要去背的东西,就这么三大块,事业环境因素和组织过程资产,然后呢说了一个组…

龙哥盟-PMP-课程笔记-十九-

龙哥盟 PMP 课程笔记(十九) 【2023敏捷认证】全新PMP考试ACP敏捷知识点精讲视频教程! - P8:06敏捷实施:在敏捷环境中交付 - PMP项目管理那些事 - BV1oP411S7xp 好,那么下面呢我们来讲一下啊,这个在敏捷环境当中的如何去交付啊。呃,那么先前的话我们也是呃讲到呢,在实施…

龙哥盟-PMP-课程笔记-四-

龙哥盟 PMP 课程笔记(四) 2024年PMP认证考试课程针对PMP新考纲最新免费零基础也能轻松听懂 - P4:PMP第4章:项目整合管理(上) - 乐凯咨询 - BV1Rj411G7gs 好各位同学晚上好,今天晚上我们一起来开始学习第四章,项目整合管理好吧,那么我们今天晚上呢,就讲项目整合管理的…

FAST-DDS源码阅读笔记(二)-DDS层

eProsima Fast DDS 提供了两种不同的API,以在不同层面上与通信服务进行交互。 主要的API是数据分发服务(DDS)数据中心化发布/订阅(DCPS)平台无关模型(PIM)API,或者简称为DDS DCPS PIM,它是由DDS 1.4规范定义的,Fast DDS 遵循该规范,由Core,Domain,Publisher,Subs…

【CodeForces训练记录】Codeforces Global Round 27

训练情况赛后反思 guessforces?结论全靠猜?逆天C题构造+大力分类讨论,这谁想得到啊? A题 我们看 \((r,c)\) 所在的行,其右边的球左移,对答案的贡献为 \(m-c\),接下来再看下面的 \(n-r\) 行的最左边的球,每个球移动到右上角对答案的贡献为 \(m\),接下来就是剩下的球往左…

蚂蚁图团队GraphRAG支持社区摘要——Token相比微软直降50%

蚂蚁图团队在DB-GPT v0.6.0版本中改进了GraphRAG框架,引入图社区摘要和混合检索,大幅降低了图索引构建成本,相比微软方案token开销降低50%。今年5月份,我们在DB-GPT v0.5.6版本发布了蚂蚁首个开源GraphRAG框架,支持了多种知识库索引底座,并在文章《Vector | Graph:蚂蚁首…

通过终端控制屏幕亮度

Ubuntu通过终端控制音量和屏幕亮度 安装DWM界面后,无法通过快捷键和任务栏来控制音量、屏幕亮度以及wifi连接,因此,我们可以通过终端来完成这些任务。 连接Wifi netui会图形化wifi界面,连接后输入密码即可 调整音量 控制亮度 转载自:https://cn.linux-console.net/?p=296…