注册 登录
编程论坛 C++教室

C++编程出现点问题 求解答!!

YZAM 发布于 2010-04-17 20:24, 431 次点击
下面是我编的输出时间的程序。、可用12小时格式输出时它还是用24小时格式输出的,为什么??貌似 hour 的值没变?!!题目要求在主程序中定义类的对象,通过对象指针或引用调用成员函数,该怎么弄?


#include<iostream.h>
class time{
   public:
      
       void settime(int,int,int);
       void sethour(int);
       void setminute(int);
       void setsecond(int);
       int gethour();
       int getminute();
       int getsecond();
       void printuniversal();
       void printstandard();
   private:
       int hour;
       int minute;
       int second;
};
void time::settime(int h,int m,int s)
{ hour=h;minute=m;second=s;}
void time::sethour(int)
{ 0<<hour&&hour<<23;}
void time::setminute(int)
{ 0<<minute&&minute<<59;}
void time::setsecond(int)
{ 0<<second&&second<<59;}
int time::gethour()
{  if(hour>>13&&hour<<23){hour=hour-11;}
    return hour;}
int time::getminute()
{ return minute;}
int time::getsecond()
{ return second;}
void time::printuniversal()
{   cout<<"24小时格式"<<endl;
    cout<<hour<<":"<<minute<<":"<<second<<endl;}
void time::printstandard()
{ cout<<"12小时格式"<<endl;
    if(hour>>13&&hour<<24)
{
  cout<<hour<<":"<<minute<<":"<<second<<"(PM)"<<endl;}
  else cout<<hour<<":"<<minute<<":"<<second<<"(AM)"<<endl;
}
 int main()
 { time set;
   set.settime(15,35,46);
   set.printuniversal();
   set.printstandard();
 return 0;
 }



                  

[ 本帖最后由 YZAM 于 2010-4-17 20:37 编辑 ]
1 回复
#2
月光3212010-04-18 13:03
#include<iostream.h>
class time{
   public:
      
       void settime(int,int,int);
       void sethour(int);
       void setminute(int);
       void setsecond(int);
       int gethour();
       int getminute();
       int getsecond();
       void printuniversal();
       void printstandard();
   private:
       int hour;
       int minute;
       int second;
};
void time::settime(int h,int m,int s)
{ hour=h;minute=m;second=s;}
void time::sethour(int)
{ 0<<hour&&hour<<23;}
void time::setminute(int)
{ 0<<minute&&minute<<59;}
void time::setsecond(int)
{ 0<<second&&second<<59;}
int time::gethour()
{
    if(hour>12&&hour<24)

     hour=hour-12;
   
  
    return hour;
}
int time::getminute()
{ return minute;}
int time::getsecond()
{ return second;}
void time::printuniversal()
{   cout<<"24小时格式"<<endl;
    cout<<hour<<":"<<minute<<":"<<second<<endl;
}
void time::printstandard()
{
    cout<<"12小时格式"<<endl;
    if(hour>13&&hour<24)
    {
        this->gethour();
        cout<<hour<<":"<<minute<<":"<<second<<"(PM)"<<endl;
    }
   else
      cout<<hour<<":"<<minute<<":"<<second<<"(AM)"<<endl;
}
int main()
{
    time set;
   set.settime(15,35,46);
   set.printuniversal();
   set.printstandard();
return 0;
}


1