C++面向对象的编程思想机器人
C++的面向对象的编程思想如下,一般情况为一个类中包含了这个对象的所有属性与函数,直接调用这个对象就可以对这个对象执行它可以使用的任何操作。
#include <iostream> class Robot
{
public:
Robot() :Battery(100){}//构造一个机器人的时候让机器人的电量值为满格
void speak();//发言函数
void charge();//充电函数
void function(int i);//选择功能函数
private:
unsigned short Battery;//电池
}; int main()
{
Robot ShaQiang;
ShaQiang.speak();
system("pause");
return 0;
} void Robot::function(int i)
{
switch (i)
{
case 1:
if (Battery < 10)
{
std::cout << "电量不够无法执行\n";
break;
}
else
{
Battery -= 10;
std::cout << "茶已沏好老板请喝!\n";
break;
}
case 2:
if (Battery < 15)
{
std::cout << "电量不够无法执行\n";
break;
}
else
{
Battery -= 15;
std::cout << "咖啡已冲泡老板请喝!\n";
break;
}
case 3:
if (Battery > 5)
{
std::cout << "待机成功\n";
break;
}
else
{
std::cout << "待机成功\n";
std::cout << "提示:电量已不足5%\n";
break;
}
default:
std::cout << "输入错误\n"; break;
}
} void Robot::speak()
{
int i = 0;
char x = '0';
while (1)
{
if (Battery < 1)
{
std::cout << "电量为0强制充电中....\n";
Battery += 30;
std::cout << "强制充电完毕目前电量为:" << Battery << std::endl;
} if (Battery <= 10)
{
std::cout << "目前电量:" << Battery << "需要充电吗?y/n\n";
std::cin >> x;
if (x == 'y' || x == 'Y')
{
charge();
}
else if (x == 'n' || x == 'N')
{
std::cout << "不执行充电\n";
}
else std::cout << "输入错误\n";
} Battery -= 1;
std::cout << "老板是要喝茶还是喝咖啡\n";
std::cout << "(1)喝茶(2)喝咖啡(3)待机:";
std::cin >> i;
function(i);
if (i == 3)
{
break;
}
}
} void Robot::charge()
{
std::cout << "目前电量为:" << this->Battery << std::endl;
if (Battery == 100)
{
std::cout << "电量已满不需要充电\n";
}
else
{
std::cout << "充电过程不会写!暂时省略!\n";
this->Battery = 100;
std::cout << "充电完成目前电量为:" << this->Battery << std::endl;
}
}
C++面向对象的编程思想机器人的更多相关文章
- IT第十九天 - 继承、接口、多态、面向对象的编程思想
IT第十九天 上午 继承 1.一般情况下,子类在继承父类时,会调用父类中的无参构造方法,即默认的构造方法:如果在父类中只写了有参的构造方法,这时如果在子类中继承时,就会出现报错,原因是子类继承父类时无 ...
- 面向对象的编程思想和Java中类的概念与设计
面向对象的编程思想学习,面向对象内容的三条主线;1.java类及类的对象2.面向对象的三大特征3.其他关键字学习内容:3.1面向对象与面向过程面向对象与面向过程在应用上的区别 Java中类的概念与设计 ...
- JS高级---面向对象的编程思想(贪吃蛇梳理)
面向对象的编程思想(贪吃蛇梳理) 模拟贪吃蛇游戏,做的项目 地图: 宽,高,背景颜色,因为小蛇和食物都是相对于地图显示的, 这里小蛇和食物都是地图的子元素, 随机位置显示, 脱离文档流的, 地图也需要 ...
- OC:面向对象的编程思想、基本的知识点总结、强,弱引用
OC 面向对象 和 面向过程 参考 面向过程:使用步骤划分功能,然后用函数一步一步的调用 面向对象:OOP (Object Oriented Programming) 使用功能来简化问题, 面向对象语 ...
- Python基础之面向对象:1、面向对象及编程思想
一.人狗大战 1.需求 用代码模拟人.狗打架的小游戏 人和狗种类不同,因此双方的属性各不相同 推导一: 人和狗各有不同属性 使用字典方式储存属性较为方便,并可储存多种属性 # 1.在字典内储存'人'属 ...
- Delphi面向对象的编程思想
第一章.建立面向对象的新思维 1.1.1历史背景 目前对象技术的前沿课题包括设计模式.分布式对象系统.和基于网络的对象应用等 目前面向对象的语言包含4个基本的分支: 1.基于Smalltalk的:包括 ...
- Javascript 面向对象的编程思想
面向对象,首先得有类的概念,没有类造不出来对象,,Javascript把函数名看成类. 其次分为不同结构层,如三层架构.MVC.MVVM. 本文根据实际项目演练,分为几个适用的结构层,如果项目不大一般 ...
- javascript中function和object的区别,以及javascript如何实现面向对象的编程思想.
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- IT第二十天 - 面向对象编程思想、抽象类、异常处理、程序操作日志记录、本周总结 ★★★
IT第二十天 上午 面向对象编程思想 1.组装电脑的设计: (1)电脑的组成:显示器+机箱 (2)机箱的组成:电源+主板+硬盘 (3)主板所包含的部件:cpu+内存+PCI接口+usb接口 (4)PC ...
随机推荐
- jvm垃圾回收策略
一.jvm堆内存的分代划分 在基于分代的内存回收策略中,堆空间通常都被划分为3个代,年轻代,年老代(或者tenured代),永久代.在年轻代中又被划分了三个小的区域,分别为:Eden(伊甸)区,S0区 ...
- 03_MySQL DQL_排序查询
#进阶3:排序查询/*语法: select 查询列表 from 表名 [where 筛选条件] order by 排序列表 [asc|desc] 特点: 1.asc升序,desc降序, 如果都不写,默 ...
- vc 导出函数/调用
loader(exe): #include "stdafx.h" #include <Windows.h> #include <stdio.h> #defi ...
- 退出Vi(m)
按ESC键 跳到命令模式,然后: :w 保存文件但不退出vi :w file 将修改另外保存到file中,不退出vi :w! 强制保存,不推出vi :wq 保存文件并退出vi :wq! 强制保存文件, ...
- redis 与session
springboot:session集中存储到redis https://www.cnblogs.com/huiy/p/6907164.html springboot处理session生命周期 htt ...
- java高级特性(2)--循序渐进地培养面向对象的思维方式
在我踏入软件行业后,一直苦于没有前辈指点.我常年困惑于两个问题:一是怎样培养面向对象设计的思维能力?二是怎样进行架构设计,有无方法? 因为我做了那么多年项目,却很少看到有漂亮的面向对象思维写出来的代码 ...
- IdentityServer4在Asp.Net Core中的应用(一)
IdentityServer4是一套身份授权以及访问控制的解决方案,专注于帮助使用.Net 技术的公司为现代应用程序建立标识和访问控制解决方案,包括单点登录.身份管理.授权和API安全. 下面我将具体 ...
- linux正则表达式回忆记录
好久没用linux grep相关正则表达式,现在简单记录下. grep简介 grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.通常grep有三种版本grep.egr ...
- 学习opencv(持续更新)
redhat安装,报错解决方法 1 升级GCC,http://mirrors.kernel.org/gnu/gcc/ 2 更换稳定版本 #!/bin/bash yum -y install gcc g ...
- 格雷码C++实现
格雷码C++实现 题目 给定一个整数n,请返回n位的格雷码,顺序从0开始,要求递归实现. 格雷码: 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code ...