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;
}





目录
相关文章
|
6月前
|
存储 算法 安全
企业员工数据泄露防范策略:基于 C++ 语言的布隆过滤器算法剖析[如何防止员工泄密]
企业运营过程中,防范员工泄密是信息安全领域的核心议题。员工泄密可能致使企业核心数据、商业机密等关键资产的流失,进而给企业造成严重损失。为应对这一挑战,借助恰当的数据结构与算法成为强化信息防护的有效路径。本文专注于 C++ 语言中的布隆过滤器算法,深入探究其在防范员工泄密场景中的应用。
113 8
|
7月前
|
存储 监控 算法
员工屏幕监控系统之 C++ 图像差分算法
在现代企业管理中,员工屏幕监控系统至关重要。本文探讨了其中常用的图像差分算法,该算法通过比较相邻两帧图像的像素差异,检测屏幕内容变化,如应用程序切换等。文中提供了C++实现代码,并介绍了其在实时监控、异常行为检测和数据压缩等方面的应用,展示了其实现简单、效率高的特点。
169 15
|
算法 C语言 C++
C++语言学习指南:从新手到高手,一文带你领略系统编程的巅峰技艺!
【8月更文挑战第22天】C++由Bjarne Stroustrup于1985年创立,凭借卓越性能与灵活性,在系统编程、游戏开发等领域占据重要地位。它继承了C语言的高效性,并引入面向对象编程,使代码更模块化易管理。C++支持基本语法如变量声明与控制结构;通过`iostream`库实现输入输出;利用类与对象实现面向对象编程;提供模板增强代码复用性;具备异常处理机制确保程序健壮性;C++11引入现代化特性简化编程;标准模板库(STL)支持高效编程;多线程支持利用多核优势。虽然学习曲线陡峭,但掌握后可开启高性能编程大门。随着新标准如C++20的发展,C++持续演进,提供更多开发可能性。
195 0
|
存储 C++
C++类的实例:Stock(股票)类。
C++类的实例:Stock(股票)类。
184 1
|
9月前
|
算法 安全 C++
用 C++ 算法控制员工上网的软件,关键逻辑是啥?来深度解读下
在企业信息化管理中,控制员工上网的软件成为保障网络秩序与提升办公效率的关键工具。该软件基于C++语言,融合红黑树、令牌桶和滑动窗口等算法,实现网址精准过滤、流量均衡分配及异常连接监测。通过高效的数据结构与算法设计,确保企业网络资源优化配置与安全防护升级,同时尊重员工权益,助力企业数字化发展。
142 4
|
C++
【C++案例】一个项目掌握C++基础-通讯录管理系统
这篇文章通过一个通讯录管理系统的C++项目案例,详细介绍了如何使用C++实现添加、显示、删除、查找、修改和清空联系人等功能。
207 3
|
存储 数据可视化 C++
【C++】C++-学生考试题库管理系统(源码)
本系统设计了一个选题管理流程,包括读取题目信息、随机抽取题目、保存及查询选题结果等功能。使用 `readProjects` 从文件读取题目信息,`drawProject` 随机抽取未选中的题目,`saveSelection` 保存选题结果至文件,`querySelection` 查询并显示所有选题结果。主函数提供菜单界面,支持学生信息输入、抽题及结果查询。关注【测试开发自动化】公众号,回复“题库”获取源码。
138 1
|
Rust 安全 C++
系统编程的未来之战:Rust能否撼动C++的王座?
【8月更文挑战第31天】Rust与C++:现代系统编程的新选择。C++长期主导系统编程,但内存安全问题频发。Rust以安全性为核心,通过所有权和生命周期概念避免内存泄漏和野指针等问题。Rust在编译时确保内存安全,简化并发编程,其生态系统虽不及C++成熟,但发展迅速,为现代系统编程提供了新选择。未来有望看到更多Rust驱动的系统级应用。
250 1
|
安全 编译器 C++
C++一分钟之-模板元编程实例:类型 traits
【7月更文挑战第15天】C++的模板元编程利用编译时计算提升性能,类型traits是其中的关键,用于查询和修改类型信息。文章探讨了如何使用和避免过度复杂化、误用模板特化及依赖特定编译器的问题。示例展示了`is_same`类型trait的实现,用于检查类型相等。通过`add_pointer`和`remove_reference`等traits,可以构建更复杂的类型转换逻辑。类型traits增强了代码效率和安全性,是深入C++编程的必备工具。
197 12
|
C++
使用 QML 类型系统注册 C++ 类型
使用 QML 类型系统注册 C++ 类型
426 0