⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 工资管理系统.cpp

📁 简单的成绩管理系统 大一主要学习了C和C++
💻 CPP
字号:
#include<iostream.h>
#include<string.h>
#include<stdlib.h>        //包含清屏、退出程序函数。
#include<fstream.h>       //备份数据
#include<windows.h>

class Employee
{
public:
	friend class worker;
	void shanchu() {*name=*sex=0;number=age=0;}
	Employee() {next=0;}
	virtual void print()=0;
	void input()
	{
		cout<<"员工号:"<<"              "                                          
			<<"姓名:"<<"               "                  
			<<"性别:"<<"               "                               
			<<"年龄:"<<endl;
		cin>>number>>name>>sex>>age;  /*说明此处没用setw()函数,只用空格符号分开来。所以------*/
	}		
protected:                  //不能使用私有成员
	int number,age;
	char name[20],sex[10];
	Employee *next;		 
};


class technician:virtual public Employee
{
public:
	technician() {}
    virtual	void shanchu() {*name=*sex=0;number=age=hour=0;pay1=0;}
	void wage() { pay1=100*hour;}
	virtual void print()
	{
		wage();
		cout<<"技术员员工号:"<<number<<"     "
			<<"姓名:"<<name<<"     "
			<<"性别:"<<sex<<"   "
			<<"年龄:"<<age<<"   "
			<<"工资:"<<pay1<<endl;
	}
	void input()
	{
		Employee::input();
		cout<<"工作时间(以小时计算)"<<endl;
		cin>>hour;
	}
protected:
	int hour,pay1;
};


class manager:virtual public Employee
{
public:
	friend class SM;
    manager() {}
    virtual	void shanchu() {*name=*sex=0;number=age=month=0;pay2=0;}
	void  wage() {pay2=800*month;}
	virtual void print()
	{
		wage();
		cout<<"经理的员工号:"<<number<<"     "		    
		    <<"姓名:"<<name<<"     "
		    <<"性别:"<<sex<<"   "
			<<"年龄:"<<age<<"   "
            <<"工资:"<<pay2<<endl;
	}
	void input()
	{
		Employee::input();
		cout<<"工作时间(以月份计算)"<<endl;
		cin>>month;
	}
protected:
	int month,pay2;
};


class seller:virtual Employee
{
public:
	friend class SM;
	seller() {}
    virtual	void shanchu() 
	{*name=*sex=0;number=age=0;salesvolume=pay3=0;} //salesvolume表示销售额
	void wage() {pay3=salesvolume*0.04;}
	void input()
	{
		Employee::input();
		cout<<"销售额为(以人民币计算)"<<endl;
		cin>>salesvolume;
	}
	virtual void print()
	{
		pay3=salesvolume*0.04;
		cout<<"销售员员工号:"<<number<<"     "
		<<"姓名:"<<name<<"     "
		<<"性别:"<<sex<<"  "
		<<"年龄:"<<age<<"  "
		<<"工资:"<<pay3<<endl;
}
protected:
	double salesvolume, pay3;
};


class SM:public manager,public seller
{
public:
	friend class worker;
	SM() {}
    virtual	void shanchu() {*name=*sex=0;number=age=0;total=pay4=0;}
	void wage()
	{  

		pay4=5000+(total)*0.005;
	}
	void input()
	{
		Employee::input();
		cout<<"销售总额为(以人民币计算):"<<endl;    //要用get_sum()*/
		cin>>total;
	}
    virtual void print()
	{
		wage();
		cout<<"销售经理员工号:"<<number<<"     "		   		   
		    <<"姓名:"<<name<<"    "
			<<"性别:"<<sex<<"   "
			<<"年龄:"<<age<<"   "
			<<"工资:"<<pay4<<endl;}
protected:
	double total,pay4;
};


class worker
{
     public:
		technician *pa;
		seller *pb;
		manager *pc;
		SM *pd;
     	Employee *p;
		Employee *p1; /* int number,age,hour,month;salemoney;char *name,*sex; 重复定义*/
		worker()
		{
			Employee *p=new technician;p1=p;
		}
		void add();
		void output();      //不能用print() 二义性
		void find();
		void change();
		void del();        //不能使用关键字delete
		void save();
};
		
void worker::add()
{
	int a;
	Employee *p=p1;
	while(p->next)
		p=p->next;
	cout<<"请选择您所想输入员工的岗位代码,再进行操作.谢谢合作!"<<endl;
	cout<<"1.技术员 2.销售员 3.经理 4.销售经理"<<endl;
	cin>>a;
	switch(a)
	{
	case 1:
		cout<<"技术员数据:"<<endl;
		pa=new technician; 
		pa->input(); 
		p->next=pa;
		break;
	case 2: 
		cout<<"销售员数据:"<<endl;	
		pb=new seller;
		pb->input();
		p->next=pb;
		break;
	case 3:   
		cout<<"经理数据:"<<endl;
		pc=new manager;
		pc->input();
		p->next=pc;
		break;
	case 4:  
		cout<<"销售经理数据:"<<endl;
		pd=new SM;
		pd->input();
		p->next=pd;
		break;
	default:
		cout<<"对不起!你所选的操作错误,请重新做作!"<<endl;
	}

}

void worker::output()
{
	Employee  *p=p1;
	if(!p)
	{
		cout<<"无职工记录或者记录已清除!"<<endl;
        return;
	}
	while(p) 
	{
		p->print();
		p=p->next;
	}
}

void worker::find()
{
	Employee *p=p1;
	if(!p)
	{
		cout<<"无职工记录或者记录已清除!"<<endl;
        return;
	}
	cout<<"请输入该员工的员工号:"<<endl;
	int b;
    cin>>b;
	for(p;p=p->next;)
	{
		if(p->number==b)
		{
			cout<<"您好,该员工已找到."<<endl;
			p->print();
			break;
		}
    }
	if(!p)
	{
		cout<<"对不起!无该员工数据,请重新操作."<<endl;
   }
}

void worker::change()
{
	Employee *p=p1;
	if(!p)
	{
		cout<<"无职工记录或者记录已清除!"<<endl;
        return;
	}
	cout<<"请输入该员工的员工号:"<<endl;
    int c;
    cin>>c;
    for(p;p=p->next;)
    { 
		if(p->number==c)
		{
			cout<<"该员工的原数据是"<<endl;
			p->print();
			cout<<"请输入你想修改的数据"<<endl;
			p->input();
			cout<<"恭喜您,修改成功!"<<endl;
			break;
		}
   }
	if(!p)
	{
		cout<<"对不起!无该员工数据,请重新操作."<<endl;
	}
}

void worker::del()
{
	Employee *p=p1;
	if(!p)
	{
		cout<<"无职工记录或者记录已清除!"<<endl;
        return;
	}
	cout<<"请输入该员工的员工号:"<<endl;
	int d;
    cin>>d;
	for(p;p=p->next;)
	{
		if(p->number==d)
		{
			cout<<"您好,删除成功!"<<endl;
			p->shanchu();
			break;
		}
    }
	if(!p)
	{
		cout<<"对不起!无该员工数据,请重新操作."<<endl;
   }
}

void worker::save()
{
	char sh;
	ifstream f1("F:\\ccx1.cpp");
	if(!f1)
	{
		cout<<"cannot openf1for input";
		abort();
	}
	ofstream f2("F:\\ccx.cpp");
	if(!f2)
	{
		cout<<"cannot open f2 output";
		abort();
	}
	while(f1.get(sh))
		f2.put(sh);
	f1.close();
	f2.close();
	cout<<"您好,您的数据已成功备份在F盘ccx.cpp文件中"<<endl;
}


void main()
{ 
MessageBox(0,"欢迎使用本程序!!"," ",0);   //包含在#include<windows.h>头文件里
cout<<"请输入密码(plaese input the pass word):"<<endl;
	int e;
	cin>>e;
	if(e==19871121)
	{
		cout<<"          ********欢迎进入本公司工资管理系统******          "<<endl;   
		worker w;  
		int f=1;
		while(f)
		{
			cout<<"以下是菜单选项,请选择!"<<endl;
		    cout<<"1.输入成员数据"<<endl;
		    cout<<"2.输出成员数据"<<endl;
		    cout<<"3.查找成员数据"<<endl;
		    cout<<"4.修改成员数据"<<endl;
		    cout<<"5.删除成员数据"<<endl;
		    cout<<"6.清屏成员数据"<<endl;
		    cout<<"7.备份成员数据"<<endl;
		    cout<<"8.退出程序"<<endl;
		    int g;
			cin>>g;
			switch(g)
			{
			case 1:
				w.add();
				break;
		    case 2:   
			    w.output();
			    break;
		    case 3:   
			    w.find();
			    break;
		    case 4:   
			    w.change();
			    break;
		    case 5:
			    w.del();
			    break;
		    case 6:
			    system("cls");
			    break;
		    case 7:
			    w.save();
			    break;
		    case 8:   
			    exit(1);	
		    default:
			    cout<<"对不起!你所选的操作错误,请重新做作!"<<endl;
			}
		}
	}
	else
	{
		cout<<"密码错误,系统将自动关闭!"<<endl;
		exit(1);
	}
}

	


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -