PDA

View Full Version : مشکل در نوشتن کلاسی برای time



paradise_human
سه شنبه 14 اردیبهشت 1389, 19:13 عصر
سلام .
مشکل این برنامه رو میتونید رفع کنید ؟

#include<iostream>
#include<conio.h>
using namespace std;
class Time
{
private:
int hour;
int minute;
int second;
public:
Time(int);
void set_time(int,int,int);
void print_time();
void reset();
void convert_to_standard();

}
Time::Time(int x=0)
{
minute=x;
hour=x;
second=x;
}
void Time::set_time(int h,int m,int s)
{
hour=(h<24&&h>=0)?h:0;
if(minute<0)
minute=0;
if(second<0)
second=0;
if(minute>60&&hour<24)
{ minute-=60;
hour++;
}
if(second>60&&minute<60)
{
second-=60;
minute++;
}
}
void Time::print_time()
{
cout<<hour<<":"<<minute<<":"<<second<<endl;
}
void Time::reset()
{
minute=hour=second=0;
}
void Time::convert_to_standard()
{
if(hour==0||hour==12)
cout<<12;
else
cout<<hour%12;
cout<<":"<<minute<<":"<<second;
if(hour<12)
cout<<"AM";
else
cout<<"PM";
}
void main()
{
int h,m,s;
cout<<"please enter hour :";
cin>>h;
cout<<"please enter minute :";
cin>>m;
cout<<"please enter second :";
cin>>s;
Time x;
x.set_time(h,m,s);
cout<<"Do you want to show the time in standard mode ?(y/n) :"<<endl;
cout<<"If you want to reset the time please enter (r):";
switch(getch())
{
case 'y':
x.convert_to_standard();
break;
case 'n':
x.print_time();
break;
case 'r':
x.reset();
break;


}
}


ممنون.

paradise_human
سه شنبه 14 اردیبهشت 1389, 23:51 عصر
#include<iostream>
#include<conio.h>
using namespace std;
class Time
{
private:
int hour;
int minute;
int second;
public:
Time();
Time(int x);
void set_time(int,int,int);
void print_time();
void reset();
void convert_to_standard();

};
Time::Time()
{
minute=0;
hour=0;
second=0;
}
Time::Time(int x)
{
minute=x;
hour=x;
second=x;
}
void Time::set_time(int h,int m,int s)
{
hour=(h<24&&h>=0)?h:0;
if(minute<0)
minute=0;
if(second<0)
second=0;
if(minute>60&&hour<24)
{ minute-=60;
hour++;
}
if(second>60&&minute<60)
{
second-=60;
minute++;
}
}
void Time::print_time()
{
cout<<hour<<":"<<minute<<":"<<second<<endl;
}
void Time::reset()
{
minute=hour=second=0;
}
void Time::convert_to_standard()
{
if(hour==0||hour==12)
cout<<12;
else
cout<<hour%12;
cout<<":"<<minute<<":"<<second;
if(hour<12)
cout<<"AM";
else
cout<<"PM";
}
void main()
{
int h,m,s;
cout<<"please enter hour :";
cin>>h;
cout<<"please enter minute :";
cin>>m;
cout<<"please enter second :";
cin>>s;
Time x(0);
x.set_time(h,m,s);
cout<<"Do you want to show the time in standard mode ?(y/n) :"<<endl;
cout<<"If you want to reset the time please enter (r):";
switch(getch())
{
case 'y':
x.convert_to_standard();
break;
case 'n':
x.print_time();
break;
case 'r':
x.reset();
break;


}
}

راستی آخر تعریف کلاستون گذاشتن سمیکلن (;) یادتون رفته بود .
آره مشکلش فقط همین سمی کالن آخری بود :گیج: