关于一个C++的问题 /*定义一个时钟类CLOCK,设计成员函数SETALARM(int hour,int minut,int second)设置
/*定义一个时钟类CLOCK,设计成员函数SETALARM(inthour,intminut,intsecond)设置响铃时间;用RUN()成员函数模拟时钟运行,当运行到...
/*定义一个时钟类CLOCK,设计成员函数SETALARM(int hour,int minut,int second)设置
响铃时间;用RUN()成员函数模拟时钟运行,当运行到相铃时间时提示响铃*/
/*我自己编的在下面但是有问题 在那个RUN()函数那里出现了问题 ,总体没有错误,估计是run()函数的循环 有点点问题 得到的结果是 10:36:61 而我设置的闹铃时间是10:35:12 不知道怎么回事 求高人帮忙改一改 并解释一下 谢谢诶*/
#include<iostream>
using namespace std;
class CLOCK{
private:
int chour;int cminute;int csecond;int hour;int minute;int second;
public:
CLOCK(int = 0,int = 0,int = 0);
void SETALARM(int ,int ,int );
void RUN();
void SHOWTIME();
};
CLOCK::CLOCK(int chour,int cminute,int csecond)
{
this->chour=chour;
this->cminute=cminute;
this->csecond=csecond;
}
void CLOCK::SETALARM(const int hour,const int minute,const int second)
{
this->hour=hour;
this->minute=minute;
this->second=second;
}
void CLOCK::RUN()
{
for(;chour<=hour;chour++)
{
for(;cminute<=60;cminute++)
{
for(;csecond<=60;csecond++);
}
}
for(cminute=0;cminute<=minute;cminute++)
{
for(csecond=0;csecond<=60;csecond++);
}
for(;csecond<=second;csecond++)
if(chour==hour&&cminute==minute&&csecond==second)
cout<<"the time to!!!get up!!the time is:"<<hour<<":"<<minute<<":"<<second<<endl;
}
void CLOCK::SHOWTIME()
{
cout<<chour<<":"<<cminute<<":"<<csecond<<endl;
}
void main()
{
CLOCK time(8,21,14);
time.SHOWTIME();
time.SETALARM(10,35,12);
time.RUN();
time.SHOWTIME();
} 展开
响铃时间;用RUN()成员函数模拟时钟运行,当运行到相铃时间时提示响铃*/
/*我自己编的在下面但是有问题 在那个RUN()函数那里出现了问题 ,总体没有错误,估计是run()函数的循环 有点点问题 得到的结果是 10:36:61 而我设置的闹铃时间是10:35:12 不知道怎么回事 求高人帮忙改一改 并解释一下 谢谢诶*/
#include<iostream>
using namespace std;
class CLOCK{
private:
int chour;int cminute;int csecond;int hour;int minute;int second;
public:
CLOCK(int = 0,int = 0,int = 0);
void SETALARM(int ,int ,int );
void RUN();
void SHOWTIME();
};
CLOCK::CLOCK(int chour,int cminute,int csecond)
{
this->chour=chour;
this->cminute=cminute;
this->csecond=csecond;
}
void CLOCK::SETALARM(const int hour,const int minute,const int second)
{
this->hour=hour;
this->minute=minute;
this->second=second;
}
void CLOCK::RUN()
{
for(;chour<=hour;chour++)
{
for(;cminute<=60;cminute++)
{
for(;csecond<=60;csecond++);
}
}
for(cminute=0;cminute<=minute;cminute++)
{
for(csecond=0;csecond<=60;csecond++);
}
for(;csecond<=second;csecond++)
if(chour==hour&&cminute==minute&&csecond==second)
cout<<"the time to!!!get up!!the time is:"<<hour<<":"<<minute<<":"<<second<<endl;
}
void CLOCK::SHOWTIME()
{
cout<<chour<<":"<<cminute<<":"<<csecond<<endl;
}
void main()
{
CLOCK time(8,21,14);
time.SHOWTIME();
time.SETALARM(10,35,12);
time.RUN();
time.SHOWTIME();
} 展开
2个回答
展开全部
for(;chour< hour;chour++) //应改为<, 如果=的话,会再次执行chour++变为11点了,下同
{
for(;cminute< 60;cminute++)
{
for(;csecond< 60;csecond++);
}
}
for(cminute=0;cminute<minute;cminute++)
{
for(csecond=0;csecond<60;csecond++);
}
for(csecond=0;csecond<=second;csecond++)
//你应该初始化csecond, 因为分钟到了后,秒从0开始;
if(chour==hour&&cminute==minute&&csecond==second)
cout<<"the time to!!!get up!!the time is:"<<hour<<":"<<minute<<":"<<second<<endl;
{
for(;cminute< 60;cminute++)
{
for(;csecond< 60;csecond++);
}
}
for(cminute=0;cminute<minute;cminute++)
{
for(csecond=0;csecond<60;csecond++);
}
for(csecond=0;csecond<=second;csecond++)
//你应该初始化csecond, 因为分钟到了后,秒从0开始;
if(chour==hour&&cminute==minute&&csecond==second)
cout<<"the time to!!!get up!!the time is:"<<hour<<":"<<minute<<":"<<second<<endl;
追问
呃 不对呀~~ 我改了 但是IF语句的那个cout不显示啊·· 就是说 时间走了之后 没有走到与闹钟的时分秒对应·· 所以就没有显示 我想知道要怎么改才能让它走到对应到闹钟的时分秒··
追答
可以输出啊,for(csecond=0;csecond<=second;csecond++) 里的等号加上没?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询