找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 755|回复: 6

[求助]该程序有一个错误,怎么改?

[复制链接]
发表于 2009-11-5 00:25:02 | 显示全部楼层 |阅读模式 IP:江苏扬州
class employee //基类
{
protected:
char *name; //姓名
int individualEmpNo; //个人编号
int grade;//级别
float accumPay; //月薪总额
static int employeeNo; //本公司职员编号目前最大值
public:
employee(); //构造函数
~employee(); //析构函数
virtual void pay()=0; //计算月薪函数(纯虚函数)
virtual void promote(int increment=0);//升级函数(虚函数)
virtual void displayStatus()=0; //显示人员信息(纯虚函数)
};
class technician:public employee //兼职技术人员类
{
private:
float hourlyRate;//每小时酬金
int workHours;//当月工作时数
public:
technician();//构造函数
void promote(int); //升级函数
void pay(); //计算月薪函数
void displayStatus(); //显示人员信息
};
class salesman:virtual public employee //兼职推销员类
{
protected:
float CommRate; //按销售额提取酬金的百分比
float sales;//当月销售额
public:
salesman();//构造函数
void promote(int); //升级函数
void pay();//计算月薪函数
void displayStatus(); //显示人员信息
};
class manager:virtual public employee //经理类
{
protected:
float monthlyPay; //固定月薪数
public:
manager();//构造函数
void promote(int);//升级函数
void pay(); //计算月薪函数
void displayStatus(); //显示人员信息
};
class salesmanager:public manager,public salesman //销售经理类
{
public:
salesmanager();//构造函数
void promote(int); //升级函数 '
void pay();//计算月薪函数
void displayStatus();//显示人员信息
};
//empfunc.cpp
#include <iostream.h>
#include <string.h>
#include "employee.h"
int employee::employeeNo=1000;//员工编号基数为1000
employee::employee()
{
char namestr[50];//输人雇员姓名时首先临时存放在namestr中
cout<<"请输入下一个雇员的姓名:";
cin>>namestr;
name=newchar[strlen(namestr)+1]; //动态申请用于存放姓名的内存空间
strcpy(name,namestr);//将临时存放的姓名复制到name
individualEmpNo=employeeNo++;//新输入的员工,其编号为目前最大编号加l
grade=1;//级别初值为l
accumPay=0.0; //月薪总额初值为0
}
employee::~employee()
{
delete []name;//在析构函数中删除为存放姓名动态分配的内存空间
}
void employee::promote(int increment)
{
grade+=increment;//升级,提升的级数由increment指定
}
technician::technician()
{
hourlyRate=100; //每小时酬金100元
}
void technician::promote(int)
{
employee::promote(2); //调用基类的升级函数,升2级
}
void technician::pay()
{
cout<<"请输入"<<name<<"本月的工作时数:";
cin>>workHours;
accumPay=hourlyRate*workHours;//计算月薪,按小时计酬
cout<<"兼职技术人员"<<name<<"编号:"
<<individualEmpNo <<"本月工资:"<<accumPay<<endl;
}
void technician::displayStatus()
{
cout<<"兼职技术人员"<<name<<"编号:"
<<individualEmpNo<<"级别为:"<<grade
<<"级,已付本月工资:"<<accumPay<<endl;
}
salesman::salesman()
{
CommRate=0.04; //销售提成比例4%
}
void salesman::promote(int)
{
employee::promote(0);//调用基类的升级函数,升0级
}
void salseman::pay()
{
cout<<"请输人"<<name<<"本月的销售额:";
cin>>sales;
accumPay=sales*CommRate; //月薪二销售提成
cout<<"推销员"<<name<<"编号:"<<individualEmpNo
<<"本月工资:"<<accumPay<<endl;
}
void salesman::displaystatus()
{
cout<<"推销员"<<name<<"编号:"<<individualEmpNo
<<"级别为"<<grade<<"级,已付本月工资:"
<<accumPay<<endl;
}
manager::manager()
{
monthlyPay=8000; //固定月薪8000元
}
void manager::promote(int)
{
employee::promote(3); //调用基类的升级函数,升3级
}
void manager::pay()
{
accumPay=monthlyPay://月薪总额即固定月薪数
cout<<"经理"<<name<<"编号:"<<individualEmpNo
<<"本月工资:"<<accumPay<<endl;
}
void manager::displayStatus()
{
cout<<"经理"<<name<<"编号:"<<individualEmpNo
<<"级别为"<<grade<<"级,已付本月工资:"
<<accumPay<<endl;
}
salesmanager::salesmanager()
{
monthlyPay=5000;
commRate=0.005;
}
void salesmanager::promote(int)
{
employee::promote(2); //调用基类的升级函数,升2级
}
void salesmanager::pay()
{
cout<<"请输入"<<employee::name
<<"所管辖部门本月的销售总额:";
cin>>sales;
accumPay=monthlyPay+CommRate*sales; //月薪二固定月薪+销售提成
cout<<"销售经理"<<name<<"编号:"<<individualEmpNo
<<"本月工资:"<<accumPay<<endl;
}
void salesmanager::displayStatus()
{
cout<<"销售经理"<<name<<"编号:"<<individualEmpNo
<<"级别为"<<grade<<"级,已付本月工资:"
<<accumPay<<endl;
}

//8-7.cpp
#include <iostream.h>
#include "employee.h"
int main( )
{
manager m1;
technician t1;
salesmanager sm1;
salesman s1;
employee *emp[4]={&m1,&tl,&sml,&s1};//用指针数组的各元素存放各对象的地址
int i;
for(i=0;i<4;i++)
{ /*依次调用各派生类对象的成员函数,完成各自不同的升
级、计算月薪、显示信息功能。*/
emp[i]->promote();
emp[i]->pay();
emp[i]->displayStatus();
}
return O;
}

错误提示:F:\C程序\源程序\课程设计.cpp(64) : fatal error C1083: Cannot open include file: 'employee.h': No such file or directory
请问如何改正??谢谢!!
发表于 2009-11-5 00:25:04 | 显示全部楼层 IP:江苏扬州
1、里面有好多细节没注意,如大小写
2、构造函数的继承还存在问题
回复

使用道具 举报

发表于 2009-11-5 00:25:07 | 显示全部楼层 IP:江苏扬州
F:\C程序\源程序\课程设计.cpp(64) : fatal error C1083: Cannot open include file: 'employee.h': No such file or directory


翻译一下你就知道了:
无法打开文件:'emplyee.h':文件不存在
回复

使用道具 举报

发表于 2009-11-5 00:25:09 | 显示全部楼层 IP:江苏扬州
或许从http://bbs.bc-cn.net/viewthread.php?tid=113706 可以找到你要的答案。
回复

使用道具 举报

发表于 2009-11-5 00:25:11 | 显示全部楼层 IP:江苏扬州
#ifndef EMPLOYEE_H
#define EMPLOYEE_H
class employee //基类
{
protected:
char *name; //姓名
int individualEmpNo; //个人编号
int grade;//级别
float accumPay; //月薪总额
static int employeeNo; //本公司职员编号目前最大值
public:
employee(); //构造函数
~employee(); //析构函数
virtual void pay()=0; //计算月薪函数(纯虚函数)
virtual void promote(int increment=0);//升级函数(虚函数)
virtual void displayStatus()=0; //显示人员信息(纯虚函数)
};
class technician:public employee //兼职技术人员类
{
private:
float hourlyRate;//每小时酬金
int workHours;//当月工作时数
public:
technician();//构造函数
void promote(int); //升级函数
void pay(); //计算月薪函数
void displayStatus(); //显示人员信息
};
class salesman:virtual public employee //兼职推销员类
{
protected:
float CommRate; //按销售额提取酬金的百分比
float sales;//当月销售额
public:
salesman();//构造函数
void promote(int); //升级函数
void pay();//计算月薪函数
void displayStatus(); //显示人员信息
};
class manager:virtual public employee //经理类
{
protected:
float monthlyPay; //固定月薪数
public:
manager();//构造函数
void promote(int);//升级函数
void pay(); //计算月薪函数
void displayStatus(); //显示人员信息
};
class salesmanager:public manager,public salesman //销售经理类
{
public:
salesmanager();//构造函数
void promote(int); //升级函数 '
void pay();//计算月薪函数
void displayStatus();//显示人员信息
};
#endif

#include <iostream.h>
#include <string.h>
#include "employee.h"
int employee::employeeNo=1000;//员工编号基数为1000
employee::employee()
{
char namestr[50];//输人雇员姓名时首先临时存放在namestr中
cout<<"请输入下一个雇员的姓名:";
cin>>namestr;
name=new char[strlen(namestr)+1]; //动态申请用于存放姓名的内存空间
strcpy(name,namestr);//将临时存放的姓名复制到name
individualEmpNo=employeeNo++;//新输入的员工,其编号为目前最大编号加l
grade=1;//级别初值为l
accumPay=0.0; //月薪总额初值为0
}
employee::~employee()
{
delete []name;//在析构函数中删除为存放姓名动态分配的内存空间
}
void employee::promote(int increment)
{
grade+=increment;//升级,提升的级数由increment指定
}
technician::technician()
{
hourlyRate=100; //每小时酬金100元
}
void technician::promote(int)
{
employee::promote(2); //调用基类的升级函数,升2级
}
void technician::pay()
{
cout<<"请输入"<<name<<"本月的工作时数:";
cin>>workHours;
accumPay=hourlyRate*workHours;//计算月薪,按小时计酬
cout<<"兼职技术人员"<<name<<"编号:"
<<individualEmpNo <<"本月工资:"<<accumPay<<endl;
}
void technician::displayStatus()
{
cout<<"兼职技术人员"<<name<<"编号:"
<<individualEmpNo<<"级别为:"<<grade
<<"级,已付本月工资:"<<accumPay<<endl;
}
salesman::salesman()
{
CommRate=float(0.04); //销售提成比例4%
}
void salesman::promote(int)
{
employee::promote(0);//调用基类的升级函数,升0级
}
void salesman::pay()
{
cout<<"请输人"<<name<<"本月的销售额:";
cin>>sales;
accumPay=sales*CommRate; //月薪二销售提成
cout<<"推销员"<<name<<"编号:"<<individualEmpNo
<<"本月工资:"<<accumPay<<endl;
}
void salesman::displayStatus()
{
cout<<"推销员"<<name<<"编号:"<<individualEmpNo
<<"级别为"<<grade<<"级,已付本月工资:"
<<accumPay<<endl;
}
manager::manager()
{
monthlyPay=8000; //固定月薪8000元
}
void manager::promote(int)
{
employee::promote(3); //调用基类的升级函数,升3级
}
void manager::pay()
{
accumPay=monthlyPay;//月薪总额即固定月薪数
cout<<"经理"<<name<<"编号:"<<individualEmpNo
<<"本月工资:"<<accumPay<<endl;
}
void manager::displayStatus()
{
cout<<"经理"<<name<<"编号:"<<individualEmpNo
<<"级别为"<<grade<<"级,已付本月工资:"
<<accumPay<<endl;
}
salesmanager::salesmanager()
{
monthlyPay=5000;
CommRate=0.005f;
}
void salesmanager::promote(int)
{
employee::promote(2); //调用基类的升级函数,升2级
}
void salesmanager::pay()
{
cout<<"请输入"<<employee::name
<<"所管辖部门本月的销售总额:";
cin>>sales;
accumPay=monthlyPay+CommRate*sales; //月薪二固定月薪+销售提成
cout<<"销售经理"<<name<<"编号:"<<individualEmpNo
<<"本月工资:"<<accumPay<<endl;
}
void salesmanager::displayStatus()
{
cout<<"销售经理"<<name<<"编号:"<<individualEmpNo
<<"级别为"<<grade<<"级,已付本月工资:"
<<accumPay<<endl;
}


#include <iostream.h>
#include "employee.h"
int main( )
{
manager m1;
technician t1;
salesmanager sm1;
salesman s1;
employee * emp[4]={&m1,&t1,&sm1,&s1};//用指针数组的各元素存放各对象的地址
int i;
for(i=0;i<4;i++)
{
emp[i]->promote();
emp[i]->pay();
emp[i]->displayStatus();
}
return 0;
}
回复

使用道具 举报

发表于 2009-11-5 00:25:13 | 显示全部楼层 IP:江苏扬州
楼上的在"employee.h"文件尾要加     #endif
回复

使用道具 举报

发表于 2009-11-5 00:25:16 | 显示全部楼层 IP:江苏扬州
//employee.h
#ifndef EMPLOYEE_H
#define EMPLOYEE_H
class employee //基类
{
protected:
char *name; //姓名
int individualEmpNo; //个人编号
int grade;//级别
float accumPay; //月薪总额
static int employeeNo; //本公司职员编号目前最大值
public:
employee(); //构造函数
~employee(); //析构函数
virtual void pay()=0; //计算月薪函数(纯虚函数)
virtual void promote(int increment=0);//升级函数(虚函数)
virtual void displayStatus()=0; //显示人员信息(纯虚函数)
};
class technician:public employee //兼职技术人员类
{
private:
float hourlyRate;//每小时酬金
int workHours;//当月工作时数
public:
technician();//构造函数
void promote(int); //升级函数
void pay(); //计算月薪函数
void displayStatus(); //显示人员信息
};
class salesman:virtual public employee //兼职推销员类
{
protected:
float CommRate; //按销售额提取酬金的百分比
float sales;//当月销售额
public:
salesman();//构造函数
void promote(int); //升级函数
void pay();//计算月薪函数
void displayStatus(); //显示人员信息
};
class manager:virtual public employee //经理类
{
protected:
float monthlyPay; //固定月薪数
public:
manager();//构造函数
void promote(int);//升级函数
void pay(); //计算月薪函数
void displayStatus(); //显示人员信息
};
class salesmanager:public manager,public salesman //销售经理类
{
public:
salesmanager();//构造函数
void promote(int); //升级函数 '
void pay();//计算月薪函数
void displayStatus();//显示人员信息
};
#endif
//main.cpp
#include <iostream.h>
#include <string.h>
#include "employee.h"
int employee::employeeNo=1000;//员工编号基数为1000
employee::employee()
{
char namestr[50];//输人雇员姓名时首先临时存放在namestr中
cout<<"请输入下一个雇员的姓名:";
cin>>namestr;
name=new char[strlen(namestr)+1]; //动态申请用于存放姓名的内存空间
strcpy(name,namestr);//将临时存放的姓名复制到name
individualEmpNo=employeeNo++;//新输入的员工,其编号为目前最大编号加l
grade=1;//级别初值为l
accumPay=0.0; //月薪总额初值为0
}
employee::~employee()
{
delete []name;//在析构函数中删除为存放姓名动态分配的内存空间
}
void employee::promote(int increment)
{
grade+=increment;//升级,提升的级数由increment指定
}
technician::technician()
{
hourlyRate=100; //每小时酬金100元
}
void technician::promote(int)
{
employee::promote(2); //调用基类的升级函数,升2级
}
void technician::pay()
{
cout<<"请输入"<<name<<"本月的工作时数:";
cin>>workHours;
accumPay=hourlyRate*workHours;//计算月薪,按小时计酬
cout<<"兼职技术人员"<<name<<"编号:"
<<individualEmpNo <<"本月工资:"<<accumPay<<endl;
}
void technician::displayStatus()
{
cout<<"兼职技术人员"<<name<<"编号:"
<<individualEmpNo<<"级别为:"<<grade
<<"级,已付本月工资:"<<accumPay<<endl;
}
salesman::salesman()
{
CommRate=float(0.04); //销售提成比例4%
}
void salesman::promote(int)
{
employee::promote(0);//调用基类的升级函数,升0级
}
void salesman::pay()
{
cout<<"请输人"<<name<<"本月的销售额:";
cin>>sales;
accumPay=sales*CommRate; //月薪二销售提成
cout<<"推销员"<<name<<"编号:"<<individualEmpNo
<<"本月工资:"<<accumPay<<endl;
}
void salesman::displayStatus()
{
cout<<"推销员"<<name<<"编号:"<<individualEmpNo
<<"级别为"<<grade<<"级,已付本月工资:"
<<accumPay<<endl;
}
manager::manager()
{
monthlyPay=8000; //固定月薪8000元
}
void manager::promote(int)
{
employee::promote(3); //调用基类的升级函数,升3级
}
void manager::pay()
{
accumPay=monthlyPay;//月薪总额即固定月薪数
cout<<"经理"<<name<<"编号:"<<individualEmpNo
<<"本月工资:"<<accumPay<<endl;
}
void manager::displayStatus()
{
cout<<"经理"<<name<<"编号:"<<individualEmpNo
<<"级别为"<<grade<<"级,已付本月工资:"
<<accumPay<<endl;
}
salesmanager::salesmanager()
{
monthlyPay=5000;
CommRate=0.005f;
}
void salesmanager::promote(int)
{
employee::promote(2); //调用基类的升级函数,升2级
}
void salesmanager::pay()
{
cout<<"请输入"<<employee::name
<<"所管辖部门本月的销售总额:";
cin>>sales;
accumPay=monthlyPay+CommRate*sales; //月薪二固定月薪+销售提成
cout<<"销售经理"<<name<<"编号:"<<individualEmpNo
<<"本月工资:"<<accumPay<<endl;
}
void salesmanager::displayStatus()
{
cout<<"销售经理"<<name<<"编号:"<<individualEmpNo
<<"级别为"<<grade<<"级,已付本月工资:"
<<accumPay<<endl;
}


int main( )
{
manager m1;
technician t1;
salesmanager sm1;
salesman s1;
employee * emp[4]={&m1,&t1,&sm1,&s1};//用指针数组的各元素存放各对象的地址
int i;
for(i=0;i<4;i++)
{
emp[i]->promote();
emp[i]->pay();
emp[i]->displayStatus();
}
return 0;
}
这样也行.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 07:36 , Processed in 0.258585 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表