vbiman
جمعه 23 اردیبهشت 1390, 19:16 عصر
با سلام
من مساله زیر رو حل کردم و برنامه اش رو با Class نوشتم ولی برحسب ثانیه فقط جواب میده ولی دوستانم میگن جواب نهایی اشتباه هستش میشه کمکم کنین تا کد رو اصلاح کنم .
مساله :برنامهای بنویسید که سال تولد کاربر و سال فعلی را از ورودی خوانده، مشخص کند که او چند سال، چند ماه، چند روز، چند ساعت، چند دقیقه و چند ثانیه عمر کرده است. اینم کدی نوشتم :
#include <iostream.h>
#include <conio.h>
class time {
public:
void stime();
// void setTime(int, int, int);
// void printMilitary();
// void printStandard();
private:
int h;
int m;
int s;
};
//********************
void time::stime( )
{
int yn,mn,dn,yb,mb,db;
int tashkhiseMah,btashkhiseMah;
cout<<"enter Year(y)/Month(m)/Day(d) now:";
cin>>yn>>mn>>dn;
cout<<"Now, enter Year(y)/Month(m)/Day(d) of your birthday:";
cin>>yb>>mb>>db;
int year=yn-yb;
int TkabiseKabise=year/4;
int SalToSec=(((year*365)+TkabiseKabise)*24);
cout<<"\n"<<SalToSec;
//0000000000000000000000000000
if(mn<=6){tashkhiseMah=31;}else if(mn>6 && mn<12){tashkhiseMah=30;} else if(mn==12){tashkhiseMah=29;}else{cout<<"Error to reciceve month!!";};
int monthNow=((mn*tashkhiseMah)*24);
if(mb<=6){btashkhiseMah=31;}else if(mb>6 && mb<12){btashkhiseMah=30;} else if(mb==12){btashkhiseMah=29;}else{cout<<"Error to recice month!!";};
int monthBirthday=((mb*btashkhiseMah)*24);
int MonthToSec;
if(monthNow>=monthBirthday){
MonthToSec=monthNow-monthBirthday;}
else{
MonthToSec=monthBirthday-monthNow;
cout<<"\n"<<MonthToSec;
}
//0000000000000000000000000000
int dayNow=(dn*24);
int dayBirhday=(db*24);
long int SecToSec;
if(dayNow>=dayBirhday){
SecToSec=dayNow-dayBirhday;}
else{
SecToSec=dayBirhday-dayNow;
}
cout<<"\n"<<SecToSec;
//Total Secound of your birthday
long int p=SalToSec+MonthToSec+SecToSec;
long int SecoundBirthday=p*3600;
cout<<"\nYour Date of birthday to secound: "<<SecoundBirthday;
}
//**************
int main()
{
clrscr();
time t1;
t1.stime();
getch();
return 0;
}
من مساله زیر رو حل کردم و برنامه اش رو با Class نوشتم ولی برحسب ثانیه فقط جواب میده ولی دوستانم میگن جواب نهایی اشتباه هستش میشه کمکم کنین تا کد رو اصلاح کنم .
مساله :برنامهای بنویسید که سال تولد کاربر و سال فعلی را از ورودی خوانده، مشخص کند که او چند سال، چند ماه، چند روز، چند ساعت، چند دقیقه و چند ثانیه عمر کرده است. اینم کدی نوشتم :
#include <iostream.h>
#include <conio.h>
class time {
public:
void stime();
// void setTime(int, int, int);
// void printMilitary();
// void printStandard();
private:
int h;
int m;
int s;
};
//********************
void time::stime( )
{
int yn,mn,dn,yb,mb,db;
int tashkhiseMah,btashkhiseMah;
cout<<"enter Year(y)/Month(m)/Day(d) now:";
cin>>yn>>mn>>dn;
cout<<"Now, enter Year(y)/Month(m)/Day(d) of your birthday:";
cin>>yb>>mb>>db;
int year=yn-yb;
int TkabiseKabise=year/4;
int SalToSec=(((year*365)+TkabiseKabise)*24);
cout<<"\n"<<SalToSec;
//0000000000000000000000000000
if(mn<=6){tashkhiseMah=31;}else if(mn>6 && mn<12){tashkhiseMah=30;} else if(mn==12){tashkhiseMah=29;}else{cout<<"Error to reciceve month!!";};
int monthNow=((mn*tashkhiseMah)*24);
if(mb<=6){btashkhiseMah=31;}else if(mb>6 && mb<12){btashkhiseMah=30;} else if(mb==12){btashkhiseMah=29;}else{cout<<"Error to recice month!!";};
int monthBirthday=((mb*btashkhiseMah)*24);
int MonthToSec;
if(monthNow>=monthBirthday){
MonthToSec=monthNow-monthBirthday;}
else{
MonthToSec=monthBirthday-monthNow;
cout<<"\n"<<MonthToSec;
}
//0000000000000000000000000000
int dayNow=(dn*24);
int dayBirhday=(db*24);
long int SecToSec;
if(dayNow>=dayBirhday){
SecToSec=dayNow-dayBirhday;}
else{
SecToSec=dayBirhday-dayNow;
}
cout<<"\n"<<SecToSec;
//Total Secound of your birthday
long int p=SalToSec+MonthToSec+SecToSec;
long int SecoundBirthday=p*3600;
cout<<"\nYour Date of birthday to secound: "<<SecoundBirthday;
}
//**************
int main()
{
clrscr();
time t1;
t1.stime();
getch();
return 0;
}