C++习题三10、11题

10.  某单位的职工工资包括基本工资Wage,岗位巾Subsidy,房租Rent,水费Waterfee,电费Elecfee,设计实现工资管理的类Salary,该类的形式如下:
class salary{
private:
double wage,subsidy,rent,waterfee,elecfee;
public:
salary(-----){初始化工资数据的各分项}
salary(){初始化工资的各分项数据为0}
void setXX (double f){xx=f;}
double getXX(){return xx;}
double realsalary()          //计算实发工资
-------
};
其中,成员函数setXX()用于设置工资的各分项数据,成员函数getXX()用于获取工资的各分项数据,XX代表Wage,Subsidy等数据成员,如Wage对应的成员函数为setWage()和getWage(). 
实发工资=Wage+Subsidy-Rent-Waterfee-elecfee
编程序完善该类的设计,并写出测试该类各成员函数的主函数main.
11. 设计工人类Worker,它具有姓名name,年龄age,工作部门Dept,工资salary等数据成员。其中,Salary使用上题上定义的类。完成Worker类的设计,并统计工人的人数,编写测试程序进行测试
// test.cpp : 定义控制台应用程序的入口点。
//
#include<iostream>
#include<string.h>
#include<string>

using namespace std;

class Salary{
private:
	double Wage,Subsidy,Rent,WaterFee,ElecFee;
	double RealSalary;
public:
	Salary(int wag=0,int s=0,int r=0,int wat=0,int ele=0){
		Wage=wag;Subsidy=s;Rent=r;WaterFee=wat;ElecFee=ele;
		RealSalary=Wage+Subsidy-Rent-WaterFee-ElecFee;
	}
	void setWage(int xx){Wage=xx;}
	void setSubsidy(int xx){Subsidy=xx;}
	void setRent(int xx){Rent=xx;}
	void setWaterFee(int xx){WaterFee=xx;}
	void setElecFee(int xx){ElecFee=xx;}
	double getWage(){return Wage;}
	double getSubsidy(){return Subsidy;}
	double getRent(){return Rent;}
	double getWaterFee(){return WaterFee;}
	double getElecFee(){return ElecFee;}
	double getRealSalary(){
		return RealSalary;
	}
};
class Worker{
private:
	static int numbers;
	char *name;
	int age;
	char *Dept;
	Salary salary;
public:
	Worker(const char* Name,int Age,const char* Department,int wag=0,int s=0,int r=0,int wat=0,int ele=0):salary(wag,s,r,wat,ele) {
		name=new char[strlen(Name)+1];
		Dept=new char[strlen(Department)+1];
		strcpy(Dept,Department);
		strcpy(name,Name);
		age=Age;
		numbers++;
	}
	void setName(const char *Name){
		name=new char[strlen(Name)+1];
		strcpy(name,Name);
	}
	void setAge(int a){
		age=a;
	}
	void setDept(const char *Department){
		Dept=new char[strlen(Department)+1];
		strcpy(Dept,Department);
	}
	void setSalary(int wag, int s, int r, int wat, int e){
		salary.setWage(wag);
		salary.setSubsidy(s);
		salary.setRent(r);
		salary.setWaterFee(wat);
		salary.setElecFee(e);
	};

	static int getNumbers(){
		return numbers;
	}
	char *getName(){
		return name;
	}
	char *getDept(){
		return Dept;
	}
	int getAge(){
		return age;
	}
	double getSalary(){
		return salary.getRealSalary();
	}
};
int Worker::numbers=0;

int main()
{

	Worker worker1("JayChen",19,"开发部",3000,1000,500,100,50);
	Worker worker2("JayChen1",19,"开发部",3000,1000,500,100,50);

	cout<<"worker1"<<endl;
	cout<<"name:      "<<worker1.getName()<<endl;
	cout<<"Department:"<<worker1.getDept()<<endl;
	cout<<"age:       "<<worker1.getAge()<<endl;
	cout<<"salary:    "<<worker1.getSalary()<<endl;

	return 0;
}
时间: 2024-12-15 19:07:41

C++习题三10、11题的相关文章

问题 1042: C语言程序设计教程(第三版)课后习题9.10

/******************************************************************** @file Main.cpp @date 2017-05-28 22:10:10 @author Zoro_Tiger @brief 问题 1042: C语言程序设计教程(第三版)课后习题9.10 http://www.dotcpp.com/oj/problem1042.html ***************************************

解决mac 10.11 以后 无法使用未签名第三驱动

解决 最新版 mac 系统 无法使用未签名第三驱动 10.12.多 我的情况是 10.11.4 Beta (15E27e) 使用绿联usb网卡不正常. 下面的命令为检测驱动是否装载的一些命令.sudo kextload /Library/Extensions/AX88772.kext 报错: failed to load - (libkern/kext) not found; check the system/kernel logs for errors or try kextutil(8).

问题 1020: C语言程序设计教程(第三版)课后习题6.10

/******************************************************************** @file Main.cpp @date 2017-5-17 17:02:42 @author Zoro_Tiger @brief 问题 1020: C语言程序设计教程(第三版)课后习题6.10 http://www.dotcpp.com/oj/problem1020.html ****************************************

多线程-线程一打印1,2,3,4,5线程二打印6,7,8,9,10,线程三打印11,12,13,14,15,...直到45结束

多线程-线程一打印1,2,3,4,5线程二打印6,7,8,9,10,线程三打印11,12,13,14,15,...知道45结束 public class Exam3{ public static void main(String[]args){ MyThread t1=new MyThread("线程一"); MyThread t2=new MyThread("线程二"); MyThread t3=new MyThread("线程三"); t1.

FOJ 10月赛题 FOJ2198~2204

A题. 发现是递推可以解决这道题,a[n]=6*a[n-1]-a[n-2].因为是求和,可以通过一个三维矩阵加速整个计算过程,主要是预处理出2^k时的矩阵,可以通过这道题 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #define LL long long 6 using namespace std; 7 8 const int

三个 编程题 :1. 回文 2. 将字符串t连接到字符串s的尾部

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

[詹兴致矩阵论习题参考解答]习题4.10

10. 设 $A,B\in M_n$ 并且 $AB$ 为 Hermite 矩阵, 则对任何酉不变范数 $$\bex \sen{AB}\leq \sen{\Re(BA)}. \eex$$ 证明: (1). 先证明 $$\bex x\prec y\ra |x|\prec_w|y|. \eex$$ 事实上, 由 $x\prec y$ 知 $$\beex \bea x&=Ay\quad\sex{A:\mbox{ 双随机矩阵}}\\ &=\sum \al_kP^ky\quad\sex{\al_k\g

操作系统概述习题三

习题三 2.批处理的主要缺点是无交互性 当计算机提供用户态和核心态时,输入/输出指令必须在核心态下执行 操作系统采用多道程序设计技术的主要原因是为了提高利用率和系统吞吐量 操作系统中,通道技术是一种硬件技术 3.用户程序设计时,使用系统调用命令,该命令经过编译后,形成若干参数和陷入指令 系统调用功能是操作系统向用户提供的接口 用户及其应用程序和应用系统是通过系统调用提供的支持和服务来使系统资源完成其操作 4.中断处理是操作系统必须提供的操作 5.用户程序在用户态下要使用特权指令而引起的中断属于访

第11题:求二叉树中节点的最大距离

欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44984331 第11题:如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两点之间边的个数.写一个程序,求一棵二叉树中相距最远的两个节点之间的距离. 树的高度是一个重要信息,然后就可以祭出递归大法了. 代码 package test011; import test004.Node; /** * Created by cq o