C++实例员工工资系统

简介: C++实例员工工资系统
 #include<string.h> 
 #include<assert.h>
  #include<iomanip.h> 
 class employee
{
public:
employee(const long, const char*); virtual ~employee();
const char*getname()const; const long getnumber()const; virtual double earnings()const=0; virtual void print()const;
protected:
long number; char*name;
};

employee::employee(const long k,const char*str)
{
number=k;
name=new char[strlen(str)+1]; assert(name!=0); strcpy(name,str);
}
employee::~employee()
{
delete []name;
}
const char*employee::getname()const
{
return name;
}
const long employee::getnumber()const
{
return number ;
}
void employee::print()const
{
cout<<number<<setw(16)<<name<<endl;
}

class manager:public employee
{
public:
manager(const long,const char*,double=0.0);
~manager(){};
void setmonthsalary(double); virtual double earnings()const; virtual void print()const;
private:
double monthsalary;
};
manager::manager(const long k, const char*str,double sal):employee(k,str){setmonthsalary(sal);}

void manager::setmonthsalary(double sal)
{
monthsalary=sal;
}
double manager::earnings()const
{
return monthsalary;
}
void manager::print()const
{
employee::print(); cout<<setw(16)<<"manager\n"; cout<<"\tearning$"<<monthsalary<<endl;
}




class salesmanager:public employee
{
public:
salesmanager(const long , const char*, double=0.0,double=0.0);
~salesmanager(){} void setsalary(double); void setsales(double);
virtual double earnings()const; virtual void print()const; protected:
double sales; double salary;};
salesmanager::salesmanager(const    long    k,const    char*str,double    salary1,double sales2):employee(k,str){setsalary(salary1);setsales(sales2);}
void salesmanager::setsalary(double salary1)

{
salary=salary1;
}
void salesmanager::setsales(double sales2)
{
sales=sales2;
}
double salesmanager::earnings()const
{
return salary+0.04*sales;
}
void salesmanager::print()const
{
employee::print(); cout<<setw(16)<<"salesmanager\n"; cout<<"\tsalary:    $"<<sales<<endl; cout<<"\tearnings: $"<<earnings()<<endl;
}




class hourworker:public employee
{
public:
hourworker(const long,const char*,double=0.0,int =0);
~hourworker(){} void sethour(int);
void setmoney(double);
virtual double earnings()const; virtual void print()const;
private:
double money; int hour;
};
hourworker::hourworker(const long k, const char*str,double m,int h):employee(k,str){ setmoney(m);
sethour(h);
}
void hourworker::sethour(int h)
{
hour=h;}
void hourworker::setmoney(double m)
{
money=m;
}

double hourworker::earnings()const
{
return money*hour;
}
void hourworker::print()const
{
employee::print(); cout<<setw(16)<<"hourwoker\n"; cout<<"\tworkhour: "<<hour<<endl; cout<<"\tearning: $"<<earnings()<<endl;
}




class salesman:public employee
{
public:
salesman(const long,const char*,double=0.0);
~salesman(){}
void setsales(double);
virtual double earnings()const; virtual void print()const;
private:
double sales;
};
salesman::salesman(const long k,const char* str,double s):employee(k,str){setsales(s);} void salesman::setsales(double s)
{
sales=s;
}
double salesman::earnings()const
{
return sales*0.04;
}
void salesman::print()const
{
employee::print(); cout<<setw(16)<<"salesman\n"; cout<<"\tsales:    "<<sales<<endl; cout<<"\tearning:    "<<earnings()<<endl;
}
int main()
{
manager a(61,"xiaohao",100000); a.print();

salesmanager B(10,"hao",5000,10000); B.print();
hourworker C(11,"shihao",80,5); C.print();
salesman D(90,"shihao",5000); D.print();
return 0;
}





目录
相关文章
|
2天前
|
移动开发 监控 数据可视化
通过C++实现对管理员工上网行为的数据挖掘与可视化
这篇文章介绍了如何使用C++进行员工上网行为的监控数据挖掘与可视化。首先,通过读取系统日志收集上网数据,然后进行数据分析,包括统计访问频率和识别异常行为。接着,利用数据可视化工具展示结果。最后,讨论了如何将监控数据自动提交到网站,以实现实时监控和问题响应。示例代码展示了使用Boost.Asio库创建HTTP客户端上传数据的基本过程。
99 2
|
2天前
|
设计模式 缓存 编译器
【C++ 元对象系统03】深入探索Qt反射:从原理到实践
【C++ 元对象系统03】深入探索Qt反射:从原理到实践
67 4
|
2天前
|
Linux 数据处理 C++
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(一)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
82 0
|
2天前
|
存储 Linux 测试技术
无效数据处理之道:Linux系统编程C/C++实践探索(三)
无效数据处理之道:Linux系统编程C/C++实践探索
19 0
|
2天前
|
存储 测试技术 Linux
无效数据处理之道:Linux系统编程C/C++实践探索(二)
无效数据处理之道:Linux系统编程C/C++实践探索
32 0
|
2天前
|
安全 Linux 测试技术
无效数据处理之道:Linux系统编程C/C++实践探索(一)
无效数据处理之道:Linux系统编程C/C++实践探索
72 0
|
2天前
|
XML 安全 C++
DBus类型系统以及在Qt和C++ 中的使用(二)
DBus类型系统以及在Qt和C++ 中的使用
60 0
|
2天前
|
XML 存储 Unix
DBus类型系统以及在Qt和C++ 中的使用(一)
DBus类型系统以及在Qt和C++ 中的使用
78 0
|
2天前
|
存储 Linux API
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(三)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
36 1
|
2天前
|
消息中间件 Linux 数据处理
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(二)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
41 1