程序代码:
// example.cpp #include <iostream> using namespace std; #include <string> #include "Test.h" int main() { Test d(2004,2,30); //用个错误的,借此可以测试程序. d.input1(); d.display(); return 0; } // Test.h #include<iostream> class Test { private: int year; int month; int day; int monthArray[12]; public: Test(int y,int m,int d); void setYearMonthDay(int y,int m,int d); void judge(); //判断输入 void input1(); //输入年月日 void display(); //显示 bool isLeap(int y); //判断闰年 }; // Test.cpp #include<iostream> using namespace std; #include <string> #include "Test.h" Test::Test(int y,int m,int d) { setYearMonthDay(y,m,d); judge(); display(); cout<<endl; cout<<"-----=====以上带参方式=====以下手工输入数据方式=====-----"<<endl; cout<<endl; } void Test::setYearMonthDay(int y,int m,int d) { year=y; month=m; day=d; monthArray[0]=31; monthArray[1]=28; monthArray[2]=31; monthArray[3]=30; monthArray[4]=31; monthArray[5]=30; monthArray[6]=31; monthArray[7]=31; monthArray[8]=30; monthArray[9]=31; monthArray[10]=30; monthArray[11]=31; } void Test::display() { cout<<"输出员工的参加工作时间:"<<endl; cout<<year<<"/"<<month<<"/"<<day<<endl; } void Test::judge() //判断部分; { if (isLeap(year)) { monthArray[1]=29; } else { monthArray[1]=28; } int isRight=0; //输入错误isRight=0 do //判断月份的输入是否正确 { if (month>0 && month<=12) { isRight=1; //输入正确isRight=1 } else { cout<<"月份必须是1-12之间的整数,请重新输入:"; cin>>month; } } while (!isRight); isRight=0; //重置isRight do { if (day>0 && day<=monthArray[month-1]) { isRight=1; } else { cout<<"第"<<month<<"月的日期必须是1-"<<monthArray[month-1]<<"之间的整数,请重新输入:"; cin>>day; } } while (!isRight); } void Test::input1() //输入员工参加工作的年月日 { cout<<"输入员工的参加工作年份:"<<endl; cin>>year; cout<<"输入员工的参加工作月份:"<<endl; cin>>month; cout<<"输入员工的参加工作日期:"<<endl; cin>>day; judge(); //进入判断 } bool Test::isLeap(int testYear) //判断闰年 { return ((testYear%4==0 && testYear%100!=0) || testYear%400==0); }
一共3个文件.
[ 本帖最后由 ydown 于 2013-6-20 16:52 编辑 ]