You are on page 1of 4

#include<iostream> #include<iomanip> #include<string> #include<fstream> using namespace std; void startmsg(string &, float &, int &, int

&); int getday(int, int); string getmonth_name(int); void getdate(int &, int &, int &, int &, int &, int &, int &, float &, float &); void message(string, string, int, int, int, int, float); void PrintToFile(string, string, int, int, int, int, float); void main() { string name; cout<<"Please enter name of employee : "<<endl; getline(cin,name); while(name!="q") { float payrate, total_pay=0; int day, month, year, count_day=0,hour=0, total_hour=0, count_da y_mc=0; string month_name; startmsg(name, payrate, month,year); day=getday(month,year); month_name=getmonth_name(month); getdate(hour, day, count_day, month, year, count_day_mc, total_h our, total_pay, payrate); message(name, month_name, count_day, count_day_mc, year, total_h our, total_pay); PrintToFile(name, month_name, count_day, count_day_mc, year, tot al_hour, total_pay); cout<<endl<<endl; getchar(); cout<<"Please enter name of employee to continue or q to quit"<< endl; getline(cin,name); } }

void startmsg(string &name,float &payrate,int &month,int &year) { cout<<"Please enter the payrate for "<<name<<" : "; cin>>payrate; cout<<"Please enter month and year of salary :"<<endl; cin>>month>>year; while(month<=0||month>=13) { cout<<"Please enter correct month and year"<<endl; cin>>month>>year; } cout<<"\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n" ; }

int getday(int month, int year) { cout<<"\nPlease enter hour work for given date :"; cout<<"\nPlease enter -9 to stop and 0 for MC, holiday or weekend.\n"<<e ndl; int day; switch(month) { case 1 :day=31; break; case 2 :if (year==2012||year==2016||year==2020) day=29; else day=28; break; case 3 : day=31; break; case 4 : day=30; break; case 5 : day=31; break; case 6 : day=30; break; case 7 : day=31; break; case 8 : day=31; break; case 9 : day=30; break; case 10 : day=31; break; case 11 : day=30; break; case 12 : day=31; break; } return(day);

} string getmonth_name(int month) { string month_name; switch(month) { case 1 :month_name="January"; break; case 2 :month_name="February"; break; case 3 : month_name="March"; break; case 4 : month_name="April"; break; case 5 : month_name="May"; break; case 6 : month_name="Jun"; break; case 7 : month_name="July"; break; case 8 : month_name="August"; break; case 9 : month_name="September"; break; case 10 : month_name="October"; break; case 11 : month_name="November"; break; case 12 : month_name="Disember"; break; } return(month_name); } void getdate(int &hour, int &day, int &count_day, int &month, int &year, int &co unt_day_mc, int &total_hour, float &total_pay, float &payrate) { while(day!=0&&hour!=-9) { day--; count_day++; cout<<setw(2)<<count_day<<"."<<month<<"."<<year<<"------> : "; cin>>hour; if(hour==0) count_day_mc++; else if (hour==-9) count_day--; else if (hour!=-9) total_hour+=hour; } total_pay=total_hour*payrate; } void message(string name, string month_name, int count_day, int count_day_mc, in t year, int total_hour, float total_pay) { cout<<"\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n" ;

cout<<"\nThe employee name : "<<name<<endl<<endl; cout<<name<<" have work for : "<<count_day-count_day_mc<<" days. "<<endl; cout<<"\nTotal hour work for "<<month_name<<" of "<<year<<" is : "<<total_hour<<" hours."<<endl; cout<<"\nTotal salary for this month is : RM "<<total_pay<<"."<< endl; cout<<"\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n" ; } void PrintToFile(string name, string month_name, int count_day, int count_day_mc , int year, int total_hour, float total_pay) { ofstream outfile; outfile.open("d:salary.doc"); outfile<<"\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx\n"; outfile<<"\nThe employee name : "<<name<<endl<<endl; outfile<<name<<" have work for : "<<count_day-count_day_mc<<" days."<<en dl; outfile<<"\nTotal hour work for "<<month_name<<" of "<<year<<" is : "<<t otal_hour<<" hours."<<endl; outfile<<"\nTotal salary for this month is : RM "<<total_pay<<"."<<endl; outfile<<"\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx\n"; outfile.close(); }

You might also like