亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? salarysys.cpp

?? 工廠設計一個簡單的當前周的工資管理信息系統
?? CPP
字號:
#include<iostream>
#include<string>
using namespace std;
/***************************
*  工資標準
***************************/

const int HWRMB=10;		//小時工每小時工資
const int PWRMB=20;		//計件工每件工資
const double CWRMBPERCENT=0.2;	//銷售員固定工資提成比例

/***************************
*   模式判斷
***************************/
enum Lable{A,B,C,D,E,F,G,H,I,J}; 

void Mode(Lable &_Lable)
{
	string str;
	cout<<"請輸入你的選擇:";
	cin>>str;
	if(str=="1")_Lable = A;
	else if(str=="2")_Lable = B;
	else if(str=="3")_Lable = C;
	else if(str=="4")_Lable = D;
	else if(str=="5")_Lable = E;
	else if(str=="6")_Lable = F;
	else if(str=="7")_Lable = G;
	else if(str=="8")_Lable = H;
	else if(str=="9")_Lable = I;
	else _Lable = J;
}



/***************************
*  雇員類
***************************/

class Employee
{
private:
	int workNo;//工號
	string firstName;
	string lastName;
public:
	Employee(int iworkNo,string cfirstName,string clastName);
	~Employee();
	virtual void Show();//顯示員工信息
	virtual double Salary()=0;//員工工資計算
	virtual void ModifySpecial()=0;//不同員工特有的參數
	void Modify(Lable _Lable);
	int RworkNo(int workno);//工號配對
};

/****************************
*   工廠類
****************************/

class Factory
{
private:
	string factoryName;
	int  employeeNum;			//包括老板
	Employee* pEmployee[1000];	// 存放工廠所有員工信息
public:
	Factory(string cfactoryName);
	~Factory();
	void AddWorker(Lable _Lable);	            //增加一個員工
	void DeleteWorker(int workno);		//刪除一個員工
	void ModifyWorker(int workno);		//修改員工信息
	void ShowInfo();					//顯示員工信息
	
	void TotalSalary();			//計算總工資
	void HighSalary();			//最高工資
	void LowSalary();			//最低工資
	void AverageSalary();		//平均工資
};

/******************************
*   派生的類
******************************/

class HourlyWorker:public Employee
{
private:
	int Time;			//小時工工作時間
public:
	HourlyWorker(int time, int workno,string firstrname,string lastname);
	void Show();		//顯示員工信息
	double Salary();
	void ModifySpecial();
};

class PieceWorker:public Employee
{
private:
	int Pieces;			//計件工計件個數
public:
	PieceWorker(int pieces, int workno,string firstrname,string lastname);
	void Show();		//顯示員工信息
	double Salary();
	void ModifySpecial();
};

class CommissionWorker:public Employee
{
private:
	int iCWRMB;			//銷售員一周銷售額
public:
	CommissionWorker(int icwrmb, int workno,string firstrname,string lastname);
	void Show();		//顯示員工信息
	double Salary();
	void ModifySpecial();
};

class Boss:public Employee
{
private:
	int Brmb;
public:
	Boss(int brmb, int workno,string firstrname,string lastname);
	void Show();		//顯示員工信息
	double Salary();
	void ModifySpecial();
};
///////////////////////////////////////////////////////////////////////

//注意:AddWorker時要提供員工的信息,包括薪水的一系列參數
/*****************************
*雇員類函數的實現
*****************************/

Employee::Employee(int iworkNum, string cfirstName, string clastName)
{
	// 最好使用成員初始化列表
	workNo = iworkNum;
	firstName = cfirstName;
	lastName = clastName;
}

Employee::~Employee()
{
}

void Employee::Show()
{
	cout<<"\n工號:"<<workNo<<"\nFirstName:"<<firstName<<"\nLastName:"<<lastName;
}

void Employee::Modify(Lable _Lable)
{
	int No;
	string first;
	string last;
	
	switch(_Lable){
	case A:
		cout<<"原來的工號:"<<workNo<<"\n輸入新的工號:";
		cin>>No;
		workNo=No;
		break;
	case B:
		cout<<"原來的FirstName:"<<firstName<<"\n輸入新的FirstName:";
		cin>>first;
		firstName=first;
		break;
	case C:
		cout<<"原來的LastName:"<<lastName<<"\n輸入新的LastName:";
		cin>>last;
		lastName=last;
		break;
	}
}

int Employee::RworkNo(int workno)
{
	if(workNo==workno)return 1;
	return 0;
}


/*****************************
*工廠類函數的實現
*****************************/

Factory::Factory(string cfactoryName)
{
	// 最好使用成員初始化列表
	cfactoryName = factoryName;
	employeeNum = 0;
	
	// 這個就在這里初始化吧,1000個元素,初始化列表要很長
	for(int i = 0; i < 1000; i++)
	{
		pEmployee[i] = NULL;
	}
}

#define SAFE_DELETE(p) {if(p) {delete p; p = NULL;}}

Factory::~Factory()
{
	// 最后要釋放掉動態申請的內存空間
	for(int i = 0; i < 1000; i++)
	{
		SAFE_DELETE(pEmployee[i]);
	}
}

void Factory::AddWorker(Lable _Lable)
{
	int workno,i=0;
	string firstname,lastname;
	int time;
	int pieces;
	int icwrmb;
	int brmb;
	
	switch(_Lable){
	case A:
		cout<<"請輸入小時工的工作時間:";
		cin>>time;
		while(time<40)
		{
			cout<<"Time<40,請重新輸入:";
			cin>>time;
		}
		cout<<"\n工號:";
		cin>>workno;
		cout<<"\n請輸入FirstName:";
		cin>>firstname;
		cout<<"\n請輸入LastName:";
		cin>>lastname;
		
		while(pEmployee[i]!=NULL)i++;
		pEmployee[i] = new HourlyWorker(time,workno,firstname,lastname);

		break;
	case B:
		cout<<"請輸計件工計件個數:";
		cin>>pieces;
		cout<<"\n工號:";
		cin>>workno;
		cout<<"\n請輸入FirstName:";
		cin>>firstname;
		cout<<"\n請輸入LastName:";
		cin>>lastname;
		
		while(pEmployee[i]!=NULL)i++;
		pEmployee[i] = new PieceWorker(pieces,workno,firstname,lastname);

		break;
	case C:
		cout<<"請輸銷售員基本工資:";
		cin>>icwrmb;
		cout<<"\n工號:";
		cin>>workno;
		cout<<"\n請輸入FirstName:";
		cin>>firstname;
		cout<<"\n請輸入LastName:";
		cin>>lastname;
		
		while(pEmployee[i]!=NULL)i++;
		pEmployee[i] = new CommissionWorker(icwrmb,workno,firstname,lastname);
		
		break;
	case D:
		cout<<"請輸入經理固定薪水:";
		cin>>brmb;
		cout<<"\n工號:";
		cin>>workno;
		cout<<"\n請輸入FirstName:";
		cin>>firstname;
		cout<<"\n請輸入LastName:";
		cin>>lastname;
		
		while(pEmployee[i]!=NULL)i++;
		pEmployee[i] = new Boss(brmb,workno,firstname,lastname);
		break;
	}
}

void Factory::DeleteWorker(int workno)
{
	int i=0;

	for(; i < 1000; i++)
	{
		// 保證員工指針的合法性
		if(pEmployee[i] && pEmployee[i]->RworkNo(workno))
		{
			break;
		}
	}
//	while(pEmployee[i]->RworkNo(workno))i++;
// 保證該員工存在,才可以刪除
	if(i < 1000)
	{
		SAFE_DELETE(pEmployee[i]);
	}
	else
	{
		cout<<"不存在這個員工";
	}
}

void Factory::ModifyWorker(int workno)
{
	int i=0;
	Lable _Lable;

	for(; i < 1000; i++)
	{
		// 保證員工指針的合法性
		if(pEmployee[i] && pEmployee[i]->RworkNo(workno))
		{
			break;
		}
	}

//	while(pEmployee[i]->RworkNo(workno))i++;
// 保證該員工存在,才可以修改
	if(i < 1000)
	{
		cout<<"----------------\n1.修改工號\n2.修改FirstName\n3.修改LastName\n4.修改工作時間或固定薪水或基本工資或工件個數\n----------------\n";
		Mode(_Lable);
		while(_Lable==J)
		{
			cout<<"選號錯誤";
			Mode(_Lable);
		}
		cout<<"\n>>>=============================<<<\n";
		if(_Lable==D)
		{
			pEmployee[i]->ModifySpecial();
		}
		else
		{
			pEmployee[i]->Modify(_Lable);
		}
	}
	else
	{
		cout<<"沒找到這個工號的員工!";
	}
}

void Factory::ShowInfo()
{
	int i=0;
//	while(pEmployee[i]!=NULL){
//		pEmployee[i]->Show();
//		i++;
//	}

	for(; i < 1000; i++)
	{
		// 保證員工指針的合法性
		if(pEmployee[i])
		{
			pEmployee[i]->Show();
			cout<<"員工報酬:"<<pEmployee[i]->Salary()<<'\n';
			cout<<"========================\n";
		}
	}
}

void Factory::TotalSalary()
{
	int i=0;
	double totalSalary=0;

	for(;i<1000;i++)
	{
		if(pEmployee[i])
		{
			totalSalary+=pEmployee[i]->Salary();
		}
	}
	cout<<"總工資:"<<totalSalary<<'\n';
}

void Factory::HighSalary()
{
	int i=0;
	double highSalary=pEmployee[i]->Salary();

	for(i=1;i<1000;i++)
	{
		if(pEmployee[i])
		{
			if(pEmployee[i]->Salary()>highSalary)
			{
				highSalary=pEmployee[i]->Salary();
			}
		}
	}
	cout<<"最高工資:"<<highSalary<<'\n';
}

void Factory::LowSalary()
{
	int i=0;
	double lowSalary=pEmployee[i]->Salary();

	for(i=1;i<1000;i++)
	{
		if(pEmployee[i])
		{
			if(pEmployee[i]->Salary()<lowSalary)
			{
				lowSalary=pEmployee[i]->Salary();
			}
		}
	}
		cout<<"最低工資"<<lowSalary<<'\n';
}

void Factory::AverageSalary()
{
	int i=0,count=0;
	double averageSalary=0;

	for(;i<1000;i++)
	{
		if(pEmployee[i])
		{
			++count;
			averageSalary+=pEmployee[i]->Salary();
		}
	}
	averageSalary=averageSalary/count;
	
	cout<<"平均工資:"<<averageSalary<<'\n';
}

/*****************************
*  派生類函數的實現
*****************************/

HourlyWorker::HourlyWorker(int time, int workno,string firstname,string lastname1):Time(time),Employee(workno,firstname,lastname1)
{
}

void HourlyWorker::Show()
{
	cout<<"========================";
	Employee::Show();
	cout<<"\n工作時間:"<<Time<<'\n';
}

double HourlyWorker::Salary()
{
	return (1.5*Time-20)*HWRMB;
}

void HourlyWorker::ModifySpecial()
{
	cout<<"請輸入新的工作時間:";
	cin>>Time;
	while(Time<40)
	{
		cout<<"Time<40,請重新輸入:";
		cin>>Time;
	}
}


///////////////////////////////////

PieceWorker::PieceWorker(int pieces,int workno,string firstname,string lastname1):Pieces(pieces),Employee(workno,firstname,lastname1)
{
}

void PieceWorker::Show()
{
	cout<<"========================";
	Employee::Show();
	cout<<"\n計件數:"<<Pieces<<'\n';
}

double PieceWorker::Salary()
{
	return PWRMB*Pieces;
}

void PieceWorker::ModifySpecial()
{
	cout<<"請輸入新的工件個數:";
	cin>>Pieces;
}

////////////////////////////////////

CommissionWorker::CommissionWorker(int icwrmb,int workno,string firstname,string lastname1):iCWRMB(icwrmb),Employee(workno,firstname,lastname1)
{
}

void CommissionWorker::Show()
{
	cout<<"========================";
	Employee::Show();
	cout<<"\n基本工資:"<<iCWRMB<<'\n';
}

double CommissionWorker::Salary()
{
	return iCWRMB*(1+CWRMBPERCENT);
}

void CommissionWorker::ModifySpecial()
{
	cout<<"請輸入新的基本工資:";
	cin>>iCWRMB;
}

////////////////////////////////////

Boss::Boss(int brmb,int workno,string firstname,string lastname1):Brmb(brmb),Employee(workno,firstname,lastname1)
{
}

void Boss::Show()
{
	cout<<"========================";
	Employee::Show();
	cout<<"\n固定工資:"<<Brmb<<'\n';
}

double Boss::Salary()
{
	return Brmb;
}

void Boss::ModifySpecial()
{
	cout<<"請輸入新的固定薪水";
	cin>>Brmb;
}


/********************************
*   主函數測試
*********************************/

int main(){
	string factoryname;
	Lable _Lable;
	cout<<"請輸入工廠的名字:";
	cin>>factoryname;
	cout<<"\n>>>=============================<<<\n";
	Factory BELL(factoryname);
	cout<<"您要做什么?\n----------------\n1.增加一名員工\n2.修改一名員工\n3.刪除一名員工\n4.顯示所有員工信息\n5.顯示總工資\n6.顯示最高工資\n7.顯示最低工資\n8.顯示平均工資\n9.EXIT\n----------------\n";
	Mode(_Lable);
	while(_Lable==J)
	{
		cout<<"選擇錯誤";
		Mode(_Lable);
	}
    cout<<"\n>>>=============================<<<\n";   
	while (I!= _Lable) {

		switch(_Lable){
			
			int no;
		case A:
			cout<<"\n----------------\n請選擇員工類型:\n1.小時工\n2.計件工\n3.銷售員\n4.經理\n----------------\n";
			Mode(_Lable);
			while(_Lable==J)
			{
				cout<<"選項錯誤";
				Mode(_Lable);
			}
			cout<<"\n>>>=============================<<<\n";
			BELL.AddWorker(_Lable);
			break;
		case B:
			cout<<"請輸入修改員工的工號:\n";
			cin>>no;
			BELL.ModifyWorker(no);
			break;
		case C:
			cout<<"請輸入刪除員工的工號:\n";
			cin>>no;
			BELL.DeleteWorker(no);
			break;
		case D:
			BELL.ShowInfo();
			break;
		case E:
			BELL.TotalSalary();
			break;
		case F:
			BELL.HighSalary();
			break;
		case G:
			BELL.LowSalary();
			break;
		case H:
			BELL.AverageSalary();
			break;
		}
		cout<<"\n>>>=============================<<<\n";
		cout<<"\n您要做什么?\n"<<"----------------\n1.增加一名員工\n2.修改一名員工\n3.刪除一名員工\n4.顯示所有員工信息.\n5.顯示總工資\n6.顯示最高工資\n7.顯示最低工資\n8.顯示平均工資\n9.EXIT\n----------------\n";
		Mode(_Lable);
		while(_Lable==J)
		{
			cout<<"選擇錯誤";
			Mode(_Lable);
		}
		cout<<"\n>>>=============================<<<\n";
	}

	return 0;
}





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合在线观看色| 久久久午夜精品| 一区二区三区日本| 91麻豆免费看片| 亚洲乱码国产乱码精品精的特点| 99精品欧美一区| 亚洲色图欧洲色图婷婷| 99国产精品国产精品久久| 亚洲精品成a人| 欧美精品在线一区二区三区| 另类中文字幕网| 久久久精品黄色| 成人激情小说网站| 国产精品第四页| 欧美日韩国产美女| 精品影院一区二区久久久| 久久综合九色综合97婷婷女人| 国产剧情一区在线| 日韩伦理免费电影| 欧美日韩一本到| 久久99精品久久久久| 亚洲国产精品二十页| 91麻豆免费观看| 午夜精品免费在线| 久久人人97超碰com| av亚洲精华国产精华| 午夜欧美视频在线观看| 国产日韩视频一区二区三区| 一本一道久久a久久精品综合蜜臀| 亚洲成人综合视频| 中文字幕二三区不卡| 欧美三级视频在线| 国产精品一区二区久激情瑜伽| 亚洲区小说区图片区qvod| 久久久一区二区三区捆绑**| 国产精品伊人色| 国产精品国产三级国产专播品爱网| 91在线看国产| 亚洲国产精品精华液网站| 日韩一级黄色大片| 成人免费毛片app| 亚洲高清免费观看高清完整版在线观看| 欧美日韩一二三| 国产精品1024久久| 久久久高清一区二区三区| 一道本成人在线| 久久成人久久鬼色| 亚洲欧洲成人精品av97| 欧美精品123区| 国产米奇在线777精品观看| 中文字幕在线免费不卡| 91.com视频| 成av人片一区二区| 日韩精品免费专区| 国产精品国产三级国产普通话三级| 欧美日韩久久久一区| 国模冰冰炮一区二区| 伊人婷婷欧美激情| 亚洲精品一区二区三区蜜桃下载| 91在线精品一区二区三区| 蜜桃av噜噜一区二区三区小说| 国产人妖乱国产精品人妖| 欧日韩精品视频| 国产精品一区二区在线播放 | 成人黄色电影在线| 亚洲欧洲制服丝袜| 亚洲一区二区三区三| 国产精品美女久久久久久久久| 日韩你懂的在线播放| 欧美日韩电影在线| 欧美视频一区二区三区| 色综合天天狠狠| 粉嫩蜜臀av国产精品网站| 久久精品国产亚洲高清剧情介绍| 一区二区三区高清在线| 国产精品美女一区二区三区| 精品欧美久久久| 91精品国产日韩91久久久久久| 色综合咪咪久久| 成人免费电影视频| 国产99精品国产| 麻豆成人在线观看| 日韩av中文在线观看| 亚洲国产成人va在线观看天堂| 国产精品国产三级国产a| 久久只精品国产| 日韩精品一区二区三区三区免费| 欧美性生交片4| 色综合亚洲欧洲| 99久久精品99国产精品| 成人在线一区二区三区| 国产在线精品一区二区三区不卡| 午夜精品久久久久久久| 亚洲制服欧美中文字幕中文字幕| 亚洲精品乱码久久久久久日本蜜臀| 欧美激情艳妇裸体舞| 国产欧美日本一区视频| 久久精品夜色噜噜亚洲aⅴ| 久久综合色播五月| 久久伊人中文字幕| 国产亚洲成年网址在线观看| 久久久亚洲午夜电影| 久久毛片高清国产| 欧美一区在线视频| 久久亚洲综合av| 国产欧美一区二区精品久导航| 久久亚洲精精品中文字幕早川悠里| 精品久久免费看| 国产日本亚洲高清| 国产精品区一区二区三区| 国产精品卡一卡二卡三| 亚洲色图一区二区| 香蕉乱码成人久久天堂爱免费| 亚洲福中文字幕伊人影院| 男人的j进女人的j一区| 蜜桃视频一区二区三区在线观看| 九九在线精品视频| 成人av在线资源网站| 色综合一区二区三区| 欧美精品在线一区二区| 精品捆绑美女sm三区| 久久精品在线观看| 一区二区三区在线观看欧美| 青青草97国产精品免费观看| 国产一区亚洲一区| 色综合久久中文综合久久97| 欧美网站一区二区| 日韩午夜电影av| 国产精品三级av在线播放| 国产精品卡一卡二| 日韩高清一区在线| 韩国成人精品a∨在线观看| 丁香婷婷综合网| 欧美在线啊v一区| 欧美不卡一区二区| 亚洲人精品午夜| 蜜桃视频第一区免费观看| av激情亚洲男人天堂| 欧美老年两性高潮| 国产亚洲婷婷免费| 亚洲一区二区欧美激情| 男人的天堂久久精品| 在线亚洲高清视频| 欧美www视频| 一区二区三区美女视频| 久久99蜜桃精品| 色国产综合视频| 久久网这里都是精品| 亚洲观看高清完整版在线观看| 国产酒店精品激情| 欧美日韩一卡二卡三卡 | 欧美xxx久久| 一二三区精品福利视频| 久88久久88久久久| 欧美日韩精品一区二区天天拍小说 | 久久久激情视频| 三级不卡在线观看| 99国产精品久| 久久尤物电影视频在线观看| 亚洲一区二区精品3399| 成人性生交大合| 精品成a人在线观看| 亚洲高清免费观看高清完整版在线观看 | 亚洲视频在线一区观看| 麻豆精品在线看| 欧美日免费三级在线| 中文字幕日韩欧美一区二区三区| 激情五月激情综合网| 欧美精品一卡两卡| 亚洲一区免费在线观看| 99久久99久久精品免费观看| 久久精品一区二区三区av| 日本怡春院一区二区| 在线免费观看不卡av| 久久久久久久国产精品影院| 亚洲成精国产精品女| 在线观看免费一区| 亚洲免费观看高清| 成人免费看片app下载| 国产亚洲成aⅴ人片在线观看| 久久国产三级精品| 欧美不卡激情三级在线观看| 一区二区三区中文免费| 国内精品视频666| 国产精品私房写真福利视频| 国产激情一区二区三区四区| 久久亚洲精品小早川怜子| 国产在线国偷精品产拍免费yy| 欧美草草影院在线视频| 精品在线观看视频| 精品日韩成人av| 久久99国产精品麻豆| 精品福利一区二区三区 | 亚洲成人av福利| 色婷婷激情综合| 一区二区三区欧美亚洲| 欧美这里有精品| 亚洲大型综合色站| 欧美一区二区三区四区视频| 奇米综合一区二区三区精品视频|