怎么把一个大程序写成多文件?就以下面程序做例子,怎么把它分成多文件的,程序是对的~
#include <iostream>
#include <iomanip>
using namespace std;
class MYTIME{
public:
static bool noonFlag;
static bool IsValid(int, int, int);
MYTIME(int hour = 0, int minute = 0, int second = 0);//默认参数写在声明中(构造函数)
void Set(int);
void Set(int, int);
void Set(int, int, int);
void Get(int&, int&, int&)const;
void Hour(int);
int Hour()const;
void Minute(int);
int Minute()const;
void Second(int);
int Second()const;
void Input();
void Output()const;
private:
int hour, minute, second;
};
bool MYTIME::noonFlag = false;
bool MYTIME::IsValid(int hour, int minute, int second)
{
return (hour >= 0 && hour <= 12)&&(minute >= 0 && minute <= 60)&&(second >= 0 && second <= 60);
}
MYTIME::MYTIME(int hour, int minute, int second)
{
this->hour = hour;
this->minute = minute;
this->second = second;
if(!IsValid(hour, minute, second))
{
cout<<"不正确的参数!"<<endl;
exit(EXIT_FAILURE);
}
}
void MYTIME::Set(int hour)
{
if(hour >= 0 && hour <= 12)
{
this->hour = hour;
}
}
void MYTIME::Set(int hour, int minute)
{
if((hour >= 0 && hour <= 12) && (minute >= 0 && minute <= 60))
{
this->hour = hour;
this->minute = minute;
}
}
void MYTIME::Set(int hour, int minute, int second)
{
if(IsValid(hour, minute, second))
{
this->hour = hour;
this->minute = minute;
this->second = second;
}
else
{
cout<<"参数不正确!"<<endl;
}
}
void MYTIME::Get(int &hour, int &minute, int &second)const
{
hour = this->hour;
minute = this->minute;
second = this->second;
}
void MYTIME::Hour(int hour)
{
if(hour < 0)
{
hour = 0;
}
else if(hour > 12)
{
hour = 12;
}
this->hour = hour;
}
int MYTIME::Hour()const
{
return hour;
}
void MYTIME::Minute(int minute)
{
if(minute < 0)
{
minute = 0;
}
else if(minute > 60)
{
minute = 60;
}
this->minute = minute;
}
int MYTIME::Minute()const
{
return minute;
}
void MYTIME::Second(int second)
{
if(second < 0)
{
second = 0;
}
else if(second > 60)
{
second = 60;
}
this->second = second;
}
int MYTIME::Second()const
{
return second;
}
void MYTIME::Input()
{
char c1, c2;
while(cin>>hour>>c1>>minute>>c2>>second, !cin||!IsValid(hour, minute, second)||c1 != ':'||c1 != c2)
{
cout<<"不正确的时间,请重新输入:";
if(!cin)cin.clear();//清错误标记
cin.sync();//清缓冲区
}
}
void MYTIME::Output()const
{
cout<<setfill('0')<<setw(2)<<hour<<":"<<setfill('0')<<setw(2)<<minute<<":"<<setfill('0')<<setw(2)<<second;
if(noonFlag)
{
cout<<"(下午)";
}
}
/*int main()
{
const MYTIME a(0, 0, 0);//定义常对象时必须进行初始化
cout << "a = "; a.Output(); cout << endl;
const MYTIME b(8);
cout << "b = "; b.Output(); cout << endl;
const MYTIME c(9, 15);
cout << "c = "; c.Output(); cout << endl;
const MYTIME d(10, 30, 45);
cout << "d = "; d.Output(); cout << endl;
return 0;
}
int main()
{
MYTIME a;
cout << "a = ? "; a.Input();
cout << "a = "; a.Output(); cout << endl;
return 0;
}
int main()
{
const MYTIME a(12);
cout << "a = "; a.Output(); cout << endl;
MYTIME::noonFlag = true;
cout << "a = "; a.Output(); cout << endl;
MYTIME::noonFlag = false;
cout << "a = "; a.Output(); cout << endl;
return 0;
}
int main()
{
MYTIME a;
cout << "a = "; a.Output(); cout << endl;
a.Set(8);
cout << "a = "; a.Output(); cout << endl;
a.Set(9, 15);
cout << "a = "; a.Output(); cout << endl;
a.Set(10, 30, 45);
cout << "a = "; a.Output(); cout << endl;
a.Hour(12);
cout << "a = "; a.Output(); cout << endl;
a.Minute(50);
cout << "a = "; a.Output(); cout << endl;
a.Second(59);
cout << "a = "; a.Output(); cout << endl;
return 0;
}*/
int main()
{
const MYTIME a(12);
int hour, minute, second;
a.Get(hour, minute, second);
cout << "时: " << hour << endl;
cout << "分: " << minute << endl;
cout << "秒: " << second << endl;
cout << "时: " << a.Hour() << endl;
cout << "分: " << a.Minute() << endl;
cout << "秒: " << a.Second() << endl;
return 0;
}
#pragma once
#include?<iostream>
#include?<iomanip>
?
using?namespace?std;
?
class?MYTIME{
public:
????static?bool?noonFlag;
????static?bool?IsValid(int,?int,?int);
????MYTIME(int?hour?=?0,?int?minute?=?0,?int?second?=?0);//默认参数写在声明中(构造函数)
????void?Set(int);
????void?Set(int,?int);
????void?Set(int,?int,?int);
????void?Get(int&,?int&,?int&)const;
????void?Hour(int);
????int?Hour()const;
????void?Minute(int);
????int?Minute()const;
????void?Second(int);
????int?Second()const;
????void?Input();
????void?Output()const;
private:
????int?hour,?minute,?second;
};
#include "MyTime.h"
bool MYTIME::noonFlag = false;
bool MYTIME::IsValid(int hour, int minute, int second)
{
return (hour >= 0 && hour <= 12)&&(minute >= 0 && minute <= 60)&&(second >= 0 && second <= 60);
}
MYTIME::MYTIME(int hour, int minute, int second)
{
this->hour = hour;
this->minute = minute;
this->second = second;
if(!IsValid(hour, minute, second))
{
cout<<"不正确的参数!"<<endl;
exit(EXIT_FAILURE);
}
}
void MYTIME::Set(int hour)
{
if(hour >= 0 && hour <= 12)
{
this->hour = hour;
}
}
void MYTIME::Set(int hour, int minute)
{
if((hour >= 0 && hour <= 12) && (minute >= 0 && minute <= 60))
{
this->hour = hour;
this->minute = minute;
}
}
void MYTIME::Set(int hour, int minute, int second)
{
if(IsValid(hour, minute, second))
{
this->hour = hour;
this->minute = minute;
this->second = second;
}
else
{
cout<<"参数不正确!"<<endl;
}
}
void MYTIME::Get(int &hour, int &minute, int &second)const
{
hour = this->hour;
minute = this->minute;
second = this->second;
}
void MYTIME::Hour(int hour)
{
if(hour < 0)
{
hour = 0;
}
else if(hour > 12)
{
hour = 12;
}
this->hour = hour;
}
int MYTIME::Hour()const
{
return hour;
}
void MYTIME::Minute(int minute)
{
if(minute < 0)
{
minute = 0;
}
else if(minute > 60)
{
minute = 60;
}
this->minute = minute;
}
int MYTIME::Minute()const
{
return minute;
}
void MYTIME::Second(int second)
{
if(second < 0)
{
second = 0;
}
else if(second > 60)
{
second = 60;
}
this->second = second;
}
int MYTIME::Second()const
{
return second;
}
void MYTIME::Input()
{
char c1, c2;
while(cin>>hour>>c1>>minute>>c2>>second, !cin
[解决办法]
!IsValid(hour, minute, second)
[解决办法]
c1 != ':'
[解决办法]
c1 != c2)
{
cout<<"不正确的时间,请重新输入:";
if(!cin)cin.clear();//清错误标记
cin.sync();//清缓冲区
}
}
void MYTIME::Output()const
{
cout<<setfill('0')<<setw(2)<<hour<<":"<<setfill('0')<<setw(2)<<minute<<":"<<setfill('0')<<setw(2)<<second;
if(noonFlag)
{
cout<<"(下午)";
}
}
#include "MyTime.h"
int main()
{
const MYTIME a(12);
int hour, minute, second;
a.Get(hour, minute, second);
cout << "时: " << hour << endl;
cout << "分: " << minute << endl;
cout << "秒: " << second << endl;
cout << "时: " << a.Hour() << endl;
cout << "分: " << a.Minute() << endl;
cout << "秒: " << a.Second() << endl;
return 0;
}