引入:小菜一天的工作状态,上午状态好,效率高。中午犯困想睡觉,下午逐渐恢复精神,开始疯狂赶进度。 这就是状态跟随时间的变化。
一、工作状态变化-函数版
main.cpp
#include<iostream>
using namespace std;
static int Hour = 0; // 时间
static bool WorkFinished = false; // 任务完成标记
static void WriteProgrtam()
{
if (Hour < 12 && Hour >= 8)
{
cout << "当前时间: " << Hour << ",上午工作,精神百倍。" << endl;
}
else if (Hour >= 12 && Hour < 13)
{
cout << "当前时间: " << Hour << ",又饿又困,需要午休。" << endl;
}
else if (Hour >= 13 && Hour < 17)
{
cout << "当前时间: " << Hour << ",下午状态不错,继续努力。" << endl;
}
else
{
if (WorkFinished)
{
cout << "当前时间: " << Hour << ", 任务完成,下班回家!" << endl;
}
else
{
if (Hour < 21)
{
cout << "当前时间: " << Hour << ",加班吧,疲劳至极。" << endl;
}
else
{
cout << "当前时间: " << Hour << ",不行了,睡觉。" << endl;
}
}
}
}
int main()
{
Hour = 9;
WriteProgrtam();
Hour = 10;
WriteProgrtam();
Hour = 11;
WriteProgrtam();
Hour = 12;
WriteProgrtam();
Hour = 13;
WriteProgrtam();
Hour = 14;
WriteProgrtam();
Hour = 17;
WriteProgrtam();
WorkFinished = true;
WriteProgrtam();
WorkFinished = false;
Hour = 19;
WriteProgrtam();
Hour = 22;
WriteProgrtam();
system("pause");
return 0;
}
运行结果:
很粗糙的实现,根本不是面向对象编程的思想。
二、工作状态-分类版
设置一个工作类,其中Hour以及workFinished是该类的属性。writePrograme是该类的一个方法。
Work.h
#pragma once
#include<iostream>
using namespace std;
class Work
{
private:
int Hour = 0;
bool WorkFinished = false;
public:
void writeProgram();
void setHour(int Hour);
int getHour();
void setWorkFinished(bool WorkFinished);
bool getWorkFinished();
};
Work.cpp
#include "Work.h"
void Work::writeProgram()
{
if (this->Hour < 12 && this->Hour >= 8)
{
cout << "当前时间: " << this->Hour << ",上午工作,精神百倍。" << endl;
}
else if (this->Hour >= 12 && this->Hour < 13)
{
cout << "当前时间: " << this->Hour << ",又饿又困,需要午休。" << endl;
}
else if (this->Hour >= 13 && this->Hour < 17)
{
cout << "当前时间: " << this->Hour << ",下午状态不错,继续努力。" << endl;
}
else
{
if (WorkFinished)
{
cout << "当前时间: " << this->Hour << ", 任务完成,下班回家!" << endl;
}
else
{
if (this->Hour < 21)
{
cout << "当前时间: " << this->Hour << ",