理解
我不明白很多人为什么对一个时钟问题用这么多行代码,很难吗,很难吗?????????
很难么? 😵
难么? 😵
么? 😵
? 😵
人家的代码
Barry_Liu_博客的代码👇
#include <iostream>
#include <windows.h>
#include <iomanip>
using namespace std;
class clock
{
public:
clock(int h=0,int m=0,int s=0): hour(h),minute(m),second(s) {}
void run()
{
while(true)
{
show();
Sleep(1000);
move_s();
}
}
private:
int hour;
int minute;
int second;
void show()
{
system("cls");
cout<<setw(2)<<setfill('0')<<hour<<':';
cout<<setw(2)<<setfill('0')<<minute<<':';
cout<<setw(2)<<setfill('0')<<second;;
}
void move_s()
{
second++;
minute+=second/60;
second%=60;
hour+=minute/60;
minute%=60;
hour%=24;
}
};
int main()
{
clock swatch;
swatch.run();
return 0;
}
感觉很长,运行结果👇
不得不说,46行代码,太长了
不是说我吹牛我好,是因为同样一种效果,效率要快,而不是说只要弄出这种效果就可以了
如简便的方法非要弄成复杂的方法,一道应用题,很简便,而你弄得那么复杂,批卷老师很有可能扣你的分,使100分溜之其乎
不信再来举例子
LiuBo_01博客的代码👇
#include<iostream>
#include<iomanip>
#include<Windows.h>
using namespace std;
class Clock
{
public:
Clock(){};
void SetTime(int newH = 0, int newM = 0, int newS = 0);
void ShowTime();
void Run(); //Run()控制计时
private:
int hour, minute, second;
};
void Clock::SetTime(int newH, int newM, int newS) //设置时间
{
hour = newH;
minute = newM;
second = newS;
}
void Clock::ShowTime() //显示时间,在显示时间前进行判断,如果时间设置不合适,则提示错误
{
if (hour > 24 || hour<0 || minute>60 || minute<0 || second>60 || second < 0)
{
cout << "输入有误!" << endl;
exit(0);
}
else
{
cout << setw(2) << setfill('0') << hour << ":" << setw(2) << setfill('0') //<<setw(2)<<setfill('0')设置域宽为2 不够的话用字符‘0’填充
<< minute << ":" << setw(2) << setfill('0') << second << endl;
}
}
void Clock::Run() //实现计时功能
{
while (1)
{
second += 1;
if (second >= 60)
{
second -= 60;
minute += 1;
}
if (minute >= 60)
{
minute -= 60;
hour += 1;
}
if (hour >= 24)
{
hour -= 24;
}
system("cls");
ShowTime();
Sleep(1000);
}
}
int main()
{
Clock myClock; //定义时钟类对象
myClock.SetTime(23,59,55);
myClock.ShowTime();
myClock.Run();
return 0;
}
Run的效果👇
71行代码
最终的简单代码
#include<iostream>
#include<time.h>
#include<stdlib.h>
#include<windows.h>//不必建函数
using namespace std;
int main()
{
int a=0,b=0,c=0,d=0,e=0,f=0;
while(1)
{
cout<<a;
cout<<b;
cout<<":";
cout<<c;
cout<<d;
cout<<":";
cout<<e;
cout<<f;
f++;
if(f==10)
{
f=0;
e++;
}
if(e==6)
{
e=0;
d++;
}
if(d==10)
c++;
if(c==6)
b++;
if(a==2&&b==4)
{
a=0;
b=0;
c=0;
d=0;
e=0;
f=0;
}
Sleep(1000); //请问加个windows.h头文件不就行了吗?
system("cls"); //清屏
}
return 0;
}
简单不????