| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1394 人关注过本帖
标题:[求助]我很笨,求助一个简单的题目!
只看楼主 加入收藏
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
 问题点数:0 回复次数:12 
[求助]我很笨,求助一个简单的题目!
已经Employee和HourlyWorker类的定义和main()函数,请补充完成该程序,使之可以正确运行并得到结果如下:  王大明的周薪是$400.00

#include <iostream.h>
class Employee
{
public:
    Employee(const char *);
    void print();
    ~Employee();
private:
    char *name
};

class HourlyWorker : public Employee
{
public:
    HourlyWorker( const char*, double, double);
    double getPay();        //计算并返回每周的薪水
    void print();                //打印姓名和周薪
private:
    double wage;            //每小时的薪水
    double hours;           //每周工作的小时数        
};
int main()
{
    HourlyWorker h("王大明", 40.0, 10.00);
    h.print();
    return 0;
}
搜索更多相关主题的帖子: 姓名 private include public double 
2005-05-20 09:44
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 

此题目不能改main函数里面,只需要将函数的定义部分补全即可,我自己做了一下,但是知道有很多错误的地方,请大家指出我错处的地方,并请告诉我原因.以便小弟以后注意. #include <iostream.h> #include <string.h> class Employee { public: Employee(const char *); void print(); ~Employee(); private: char *name };

class HourlyWorker : public Employee { public: HourlyWorker( const char*, double, double); double getPay(); //计算并返回每周的薪水 void print(); //打印姓名和周薪 private: double wage; //每小时的薪水 double hours; //每周工作的小时数 };

Employee::Employee(const char *t_name) { name = new char[strlen(t_name)+1]; name = t_name; }

Employee::~Employee() { delete []name; }

Employee::void print() { cout<<name; }

HourlyWorker::HourlyWorker(const char* t_name, double x, double s) { t_name = //不知勒饫锏某A縯_name,是不是已经在基类里面赋值了, wage = s; hours = x; }

HourlyWorker::double getPay() { return (wage*hours); }

HourlyWorker::void print() { cout<<name; cout<<"的周薪是:"; cout<<getPay(); } HourlyWorker::~HourlyWorker() { //不知道该析构函数应该做什么? } int main() { HourlyWorker h("王大明", 40.0, 10.00); h.print(); return 0; }

[此贴子已经被作者于2005-5-20 10:08:12编辑过]


学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2005-05-20 10:04
Antigloss
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2004-12-30
收藏
得分:0 

//已经Employee和HourlyWorker类的定义和main()函数,请补充完成该程序, //使之可以正确运行并得到结果如下: 王大明的周薪是$400.00 //VC++6.0编译通过

#include <iostream.h>

class Employee { public: Employee(const char *n) { name = n; } void print() { cout<<name; } ~Employee() {} private: const char *name; };

class HourlyWorker : public Employee { public: HourlyWorker(const char *n, double w, double h) : Employee(n) { wage = w; hours = h; } //计算并返回每周的薪水 double getPay() { return (wage*hours); } //打印姓名和周薪 void print() { Employee::print(); cout<<"周薪$"<<getPay()<<endl; } private: double wage; //每小时的薪水 double hours; //每周工作的小时数 }; int main() { HourlyWorker h("王大明", 40.0, 10.00); h.print(); return 0; }

2005-05-20 12:04
Antigloss
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2004-12-30
收藏
得分:0 
建议楼主好好复习一下指针的知识。
发现很多人对指针是一知半解。指针很重要,一定要弄懂!
另外,为了更好的封装性,double getPay() 最好弄成私有成员。
2005-05-20 12:09
hu_sir
Rank: 1
等 级:新手上路
帖 子:208
专家分:0
注 册:2004-4-29
收藏
得分:0 

#include <iostream.h> class Employee { public: Employee(char* p):name(p){} virtual void print(){cout<<name;} ~Employee(){} protected: char *name; };

class HourlyWorker : public Employee { public: HourlyWorker(char* q, double a, double b):Employee(q),wage(a),hours(b){} double getPay(){return (wage*hours);} //计算并返回每周的薪水 void print(){ cout<<name; cout<<"'money is:"; cout<<getPay();} //打印姓名和周薪 private: double wage; //每小时的薪水 double hours; //每周工作的小时数 }; int main() { HourlyWorker h("wangdaming",40.0,10.00); h.print(); return 0; }

[此贴子已经被作者于2005-5-20 14:19:18编辑过]

2005-05-20 14:17
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 
HourlyWorker(const char *n, double w, double h) : Employee(n) { wage = w,  hours = h; }
HourlyWorker(char* q, double a, double b) : Employee(q), wage(a), hours(b) {}

还能这样传参数啊,我不知道,没有学过,在书上也没有见过。

学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2005-05-21 07:59
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 
HourlyWorker(const char *n, double w, double h) : Employee(n) { wage = w,  hours = h; }
 记起来了,这一句是指定先调用基类的哪个构造函数。

学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2005-05-21 10:42
hu_sir
Rank: 1
等 级:新手上路
帖 子:208
专家分:0
注 册:2004-4-29
收藏
得分:0 
参数列表传递参数没有学过?

不会吧?
2005-05-21 10:46
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 
HourlyWorker(const char *n, double w, double h) : Employee(n) { wage = w,  hours = h; }
HourlyWorker(char* q, double a, double b) : Employee(q), wage(a), hours(b) {}

能够告诉我这两种调用的方法的区别在哪里啊,意义有什么不同,上面一种能够理解,但是下面的方法有点不能理解了。

学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2005-05-21 11:30
zsh0435
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-5-21
收藏
得分:0 
以下是引用当当在2005-5-21 11:30:57的发言: HourlyWorker(const char *n, double w, double h) : Employee(n) { wage = w, hours = h; } HourlyWorker(char* q, double a, double b) : Employee(q), wage(a), hours(b) {} 能够告诉我这两种调用的方法的区别在哪里啊,意义有什么不同,上面一种能够理解,但是下面的方法有点不能理解了。

#include <iostream.h> #include<string.h> class Employee { public: Employee(const char *name1); void print(); ~Employee(); private: char *name; }; Employee::Employee(const char *name1) { name=new char[strlen(name1)+1]; strcpy(name,name1); } Employee::~Employee() { delete name; } void Employee::print() { cout<<"姓名:"<<name<<endl; }

class HourlyWorker : public Employee { public: HourlyWorker( const char *name, double wage, double hours); double getPay(); //计算并返回每周的薪水 void print(); //打印姓名和周薪 private: double wage; //每小时的薪水 double hours; //每周工作的小时数 }; HourlyWorker::HourlyWorker(const char *name, double wage, double hours) :Employee(name) { this->wage=wage; this->hours=hours; } double HourlyWorker::getPay() { return (wage*hours); } void HourlyWorker::print() { Employee::print; cout<<"年龄:"<<wage<<"/n"<<"周薪是:"<<getPay()<<endl; } int main() { HourlyWorker h("王大明", 40.0, 10.00); h.print(); return 0; } 两种方法没有什么区别,只不过第一个形参里的char *n是常指针。初始化后就不能再指向其它地址了!

[此贴子已经被作者于2005-5-21 12:16:47编辑过]


人生就是一个程序! 人降生到这个世间就是主函数的开始。 我们生活中的每个部分都是程序中的一段代码。 在调用不同的函数。
2005-05-21 12:10
快速回复:[求助]我很笨,求助一个简单的题目!
数据加载中...
 
   



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

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