当前位置:编程学习 > C/C++ >>

c++编程题 类与对象

试建立一个类Worker用于描述职工,具体要求如下:
(1)私有数据成员
unsigned int id: 职工号。
char name[11]:姓名
float salary: 工资。(有一符号常量为工资最低值,设为2000)
int level: 技术等级(1~20级),1级为最低,每个等级差别200元
(2)公有成员函数
Worker ( ):构造函数,初始化数据成员为默认值(自动生成职工号,姓名为空,工资默认最低)。
Worker (…):构造函数(自己定义参数),用参数初始化数据成员。参数有各个数据成员。
void setName(...): 设置职工姓名
void infoList( ): 输出职工的各项信息。
void setLevel(...): 修改技术等级level的值。每增加一个等级工作增加200元。
(3)static变量total计算工资总数和函数Average()计算平均工资。
(4)在主程序中定义N(=5)个Worker对象作为测试数据,完成对Worker类和程序的测试。

答案:

#include <iostream.h>
#include <string>
class Worker{
private: //1)私有数据成员
 unsigned int id;//: 职工号。
 char name[11];//:姓名
 float salary;//: 工资。(有一符号常量为工资最低值,设为2000)
 int level;//: 技术等级(1~20级),1级为最低,每个等级差别200元
public://(2)公有成员函数
 Worker()//构造函数,初始化数据成员为默认值(自动生成职工号,姓名为空,工资默认最低)。
 {
  id = 0;
  strcpy(name,"");
  salary = 2000;
  level = 1;
 }
 Worker(unsigned ID, char *na, float sal, int lev)//构造函数(自己定义参数),用参数初始化数据成员。参数有各个数据成员。
 {
  id = ID;
  strcpy(name, na);
  salary = sal;
  level = lev;
 }
 void setName(char *strname)//: 设置职工姓名
 {
  strcpy(name,strname);
 }
 void infoList()//: 输出职工的各项信息。
 {
  cout << "-----------------------------------" << endl
    << "职工号:" << id << endl
    << "姓名:" << name << endl
    << "工资:" << salary << endl
    << "技术等级:" << level << endl
    << "----------------------------------" << endl;
 }
 void setLevel(int lev)//: 修改技术等级level的值。每增加一个等级工资增加200元。
 {
  level = lev;
  salary = 2000 + lev * 200;
 }
 float getSalary()
 {
  return salary;
 }
};
//(3)static变量total计算工资总数和函数Average()计算平均工资。
static float total;
float Average(int n)
{
 return (total / n);
}
//(4)在主程序中定义N(=5)个Worker对象作为测试数据,完成对Worker类和程序的测试。
int main()
{
 const int N = 5;
 int i;
 Worker worker[N];
 worker[0]=Worker(1,"andy",2000,1);
 worker[1]=Worker(2,"steven",3000,6);
 worker[2]=Worker(3,"kobe",2600,4);
 worker[3]=Worker(4,"Ganett",5000,16);
 worker[4]=Worker(5,"Baney",5400,18);
 for (i = 0; i < N; i++)
 {
  worker[i].infoList();
  total += worker[i].getSalary();
 }
 cout << "平均工资是:" << Average(N) << endl;
 return 0;
}

 


//VisualStudio2010亲测可用 #include<iostream>usingnamespacestd; classCircle{public: Circle(doubler=0):radius(r){} doubleArea(){return3.14*radius*radius;} frienddoublePerimeter(constCircle

上一个:跪求C++编程的计算器一个。
下一个:C++编程题目,求高手

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,