标题:我是名大一新手,请问哪位人才能帮我修改下使这个人员类变的更高大上的样子 ...
只看楼主
小林阿三
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-6-24
结帖率:0
已结贴  问题点数:20 回复次数:2 
我是名大一新手,请问哪位人才能帮我修改下使这个人员类变的更高大上的样子~~
我是名大一新手,请问哪位人才能帮我修改下使这个人员类变的更高大上的样子~~
本人不才, 期末设计只能写成这样,哪位帮我修饰一下
#include <iostream>
using namespace std;                          
/*  定义基类员工类Temployee */
class Temployee    //基类声明
{  
protected:       //保护成员
int ID;           //编号   
char *Name;    //姓名      
public:          //公有函数成员
void regist(int id, char *name);
void display( );    //显示员工信息
};
  void Temployee :: regist(int id, char *name)
  {
      ID = id;
      Name = name;
  }
  void Temployee :: display()
  {
      cout << " 编号 " << " 姓 名 " << endl;
      cout << ID << " " << Name << endl;
  }
  /*  定义派生经理类Tmanager  */
  class Tmanager : protected Temployee   
  {  
    private:               
     float Accum;    //固定月薪
     char *Grade;    //职务
    public:               
     void set_pay(int id, char *name, char *grade, float monthpay);  
       void display();  //显示员工信息
  };
  void Tmanager :: set_pay(int id, char *name, char *grade, float monthpay)
  {
      regist(id, name);   
      Grade = grade;
      Accum = monthpay;
  }
  void Tmanager :: display()
  {
   cout << " 编号 " << " 姓 名 " << " 职务 " << " 工资 " << endl;
      cout << ID << " " << Name << " " << Grade << " " << Accum << endl;
  }
  /*  定义派生销售人员类Tsale  */
  class Tsale : protected Temployee        
  {  
    private:               
       char *Grade;       //职务
     double commrate;   //按销售额提取报酬百分比
       double sales;      //当月销售额
       float Accum;       //计算工资
   public:               
      void set_pay(int id, char *name, char *grade, double commrate, double sales);
      void display();    //显示员工信息
 };
  void Tsale :: set_pay(int id, char *name, char *grade,
                        double commrate, double sales)
  {
      regist(id, name);   
      Grade = grade;
      this->commrate = commrate;
      this->sales = sales;
      Accum = commrate * sales;
  }
  void Tsale :: display()
  {
    cout << " 编号 " << " 姓 名 " << " 职务 " << " 销售提成 "
           << " 销售额 " << " 工资 " << endl;
      cout << ID << " " << Name << " " << Grade << " " << commrate
           << " " << sales << " " << Accum << endl;
  }
   int  main()
  {      
    Temployee epy1;
    Temployee epy2;
    epy1.regist(1001, "张大山");
    epy2.regist(1002, "李明全");
    epy1.display();
   epy2.display();
    Tmanager mana1;
   mana1.set_pay(1001, "张大山", "经理", 8000);
   mana1.display();
  Tsale sale1;
    sale1.set_pay(1002, "李明全", "销售员", 0.20, 30000);
    sale1.display();
  }

  

[ 本帖最后由 小林阿三 于 2014-6-24 21:46 编辑 ]
搜索更多相关主题的帖子: display include public 人才 信息 
2014-06-24 12:01
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:20 
void  Student::set_in(int id,int grade)
void Teacher::set_into(int hs,char*zc)
这样写当真没问题吗?会不会需要写成
void Person::Student::set_in(int id,int grade)
void Person::Teacher::set_into(int hs,char*zc)
只是我猜的,自己也没有试过。
2014-06-24 14:15
小林阿三
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-6-24
得分:0 
回复 2 楼 yangfrancis
谢啦 ,问题已经搞定。
2014-06-24 21:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-433309-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.137067 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved