求C++程序,设计类结构,模拟电子时钟的行走,在屏幕上显示一个活动时钟 30

设计类结构,模拟电子时钟的行走,在屏幕上显示一个活动时钟,要求:(1)显示日期的格式:XXXX年XX月XX日(2)显示时间的格式:XX:XX:XX。主要技术参数:(1)类... 设计类结构,模拟电子时钟的行走,在屏幕上显示一个活动时钟,要求:
(1)显示日期的格式:XXXX年XX月XX日
(2)显示时间的格式:XX:XX:XX。

主要技术参数:
(1)类的定义和使用。
(2)成员变量和成员函数的定义和使用。
(3)使用语句system("cls");实现屏幕的刷新。
要编译通过的,有结果的
展开
 我来答
魔天牙
2010-11-18 · 超过21用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:0
展开全部
// 使用了ctime
// time(NULL)返回值为64位整形,表示当前系统时间,单位:秒
// 为啥要写成类?

#include <iostream>
#include <ctime>
using namespace std;

class CDisplayTime
{
public:
// 默认刷新间隔为1秒
CDisplayTime(time_t _i64Mix = 1)
{
m_i64Mix = _i64Mix; // 初始化间隔时间
}
~CDisplayTime(void){}

// 循环刷新时间,默认持续30秒
void DisplayTime(time_t _i64Max = 30)
{
m_i64Max = _i64Max; // 初始化持续时间
m_i64TimeC = time(NULL); // 使用系统时间初始化现在时刻
m_i64TimeL = m_i64TimeC; // 使用现在时刻初始化上次时刻
m_i64TimeI = 0; // 初始化累计时间为0
// 循环显示时间
while (m_i64Max)
{
m_i64TimeC = time(NULL); // 更新现在时刻
m_i64TimeI += m_i64TimeC - m_i64TimeL; // 更新累计时间
m_i64Max -= m_i64TimeC - m_i64TimeL; // 更新持续时间
m_i64TimeL = m_i64TimeC; // 更新上次时间
// 判断是否满足刷新条件
if (m_i64TimeI >= m_i64Mix)
{
tm tmTime; // 格式化存贮时间的结构体
localtime_s(&tmTime, &m_i64TimeC); // 使用现在时刻初始化时间结构体
system("cls"); // 清屏
cout<<tmTime.tm_year+1900<<"年"<<tmTime.tm_mon+1<<"月"<<tmTime.tm_mday<<"日"<<endl;
cout<<tmTime.tm_hour<<":"<<tmTime.tm_min<<":"<<tmTime.tm_sec<<endl;
m_i64TimeI -= m_i64Mix; // 校正累计时间
}
}
}
private:
// 单位:秒
time_t m_i64TimeC; // 现在时刻,使用系统的几时时间更新
time_t m_i64TimeL; // 上次时刻,存贮上次刷新时的“现在时刻”
time_t m_i64TimeI; // 累计时间,累加“现在时刻”和“上次时刻”的差值
time_t m_i64Mix; // 间隔时间,“累计时间”大于或等于此值时允许刷新,以此限制计算频率及帧率
time_t m_i64Max; // 持续时间,DisplayTime函数的持续运行时间
};

int main()
{
time_t i64Temp; // 临时i64变量

cout<<"请输入刷新间隔(单位:秒):";
cin>>i64Temp;
CDisplayTime CDT(i64Temp);

cout<<"请输入显示持续时间(单位:秒):";
cin>>i64Temp;
CDT.DisplayTime(i64Temp);

system("pause");
return 0;
};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式