| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 548 人关注过本帖
标题:急!帮我看下类组合程序,那里错了
只看楼主 加入收藏
大罗
Rank: 1
来 自:江西省上饶市
等 级:新手上路
帖 子:8
专家分:0
注 册:2009-10-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
急!帮我看下类组合程序,那里错了

急!帮我看下我的c++程序那里错了
题目是:
   设计一个用于人事管理的“人员”类。由于考虑到通用性,这里只抽象出所有类型人员都具有的属性:编号 性别 出生日期 身份证号等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录用和显示。要求包括:构造函数和析构函数,拷贝函数,内联成员函数,带默认形参值的成员函数,类的组合。

  下面是我写的 ,我不知道错在哪里?帮我看下。说下错的原因。谢谢!

#include <iostream>
using namespace std;
class birthday
{
public:
    birthday(int y=1990,int m=1,int d=1)
    {
        year=y;  month=m;  day=d;
        cout<<"birthday构造函数被调用"<<endl;
    }
    birthday(birthday &b);
    ~birthday(){}
    void getyear(int y){year=y;}
    void getmonth(int m){  month=m;}
    void gety(int d){ day=d;}
    int  getyear(){ return year;}
    int getmonth(){ return month;}
    int getday(){return day;}
private:
    int year;
    int month; int day;
};

birthday::birthday(birthday &b)
{
    year=b.year;
    month=b.month ;
    day=b.day ;
    cout<<"birhtday拷贝函数被调用"<<endl;
}

class employ
{
public:
    int getindiviualempNo();
    char getg();
    double getid();
    void getbirth();
    void getbirt()
    {
        cout<<birth.getyear()<<"年"<<birth.getmonth()<<"月"<<birth.getday()<<"日"<<" ";
    }
private:
    double id; char s[10]; long NO;
    birthday birth;
};


int employ::getindiviualempNo ()
{
    cout<<"请输入:编号 ";
    cin>>NO;
    return NO;
}

char employ::getg ()
{

    cout<<" 性别 ";
    cin>>s;
    return s;
}

double employ::getid ()
{
    cout<<" 身份证号 ";
    cin>>id;
    return id;
}

void employ::getbirt ()
{
    cout<<" 出生日期 ";
    int x,y,z;
    cin>>x>y>>z;
    birth.getyear(x);        
    birth.getmonth(y);
    birth.getday(z);

}


void main()
{
    birthday birt;
    employ employ[4];
    for(int i=0;i<=3;i++)
    {
       employ[i].getindiviualempNo();
       employ[i].getg();
       employ[i].getid();
       employ[i].getbirth();
     }

     cout<<"    编号   "<<"  性别  "<<"    出生日期    "<<"    身份证号   "<<endl;
     for(int i=0;i<=3;i++)
    {
       cout<<employ[i].getindiviualempNo()<<"  ";
       cout<<employ[i].getg()<<"  ";
       employ[i].getbirt;
       cout<<employ[i].getid()<<"  ";
       cout<<endl;
      
     }
}


   











[ 本帖最后由 大罗 于 2009-11-2 18:53 编辑 ]
搜索更多相关主题的帖子: include 身份证号 出生日期 public 
2009-11-02 16:55
qlc00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:157
专家分:540
注 册:2007-11-26
收藏
得分:0 
我发现你的程序里面很多地方都不正确!
你的employ没有构造函数,而且你也没有一个用于输出的函数!
void employ::birth ()
{
    cout<<" 出生日期 ";
    int x,y,z;
    cin>>x>y>>z;
    birth.getyear(x);        
    birth.getmonth(y);
    birth.getday(z);

}
这个函数中的红色部分的也不能那样调用啊,你在类中就没有申明它带参数,你这里怎么可能带参数也输出?反正错误是挺多的啊!

Anything is possible!
2009-11-02 18:19
大罗
Rank: 1
来 自:江西省上饶市
等 级:新手上路
帖 子:8
专家分:0
注 册:2009-10-13
收藏
得分:0 

void getyear(int y){year=y;}
    void getmonth(int m){  month=m;}
    void gety(int d){ day=d;}

这个不是 申明了带参数吗?
2009-11-02 18:50
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:20 
#include <iostream>
using namespace std;

class birthday
{
public:
    birthday(int y=1990,int m=1,int d=1)
    {
        year=y;  month=m;  day=d;
        cout<<"birthday构造函数被调用"<<endl;
    }
    birthday(birthday &b);
    ~birthday(){}
    void setyear(int y){year=y;}
    void setmonth(int m){  month=m;}
    void setday(int d){ day=d;}
    int  getyear(){ return year;}
    int getmonth(){ return month;}
    int getday(){return day;}
private:
    int year;
    int month; int day;
};

birthday::birthday(birthday &b)
{
    year=b.year;
    month=b.month ;
    day=b.day ;
    cout<<"birhtday拷贝函数被调用"<<endl;
}

class employ
{
public:
    int getindiviualempNo();
    char* getg();
    double getid();
    void getbirth();
    void getbirt()
    {
        cout<<birth.getyear()<<"年"<<birth.getmonth()<<"月"<<birth.getday()<<"日"<<" ";
    }
private:
    double id; char s[10]; long NO;
    birthday birth;
};


int employ::getindiviualempNo()
{
    cout<<"请输入:编号 ";
    cin>>NO;
    return NO;
}

char* employ::getg()
{

    cout<<" 性别 ";
    cin>>s;
    return s;
}

double employ::getid()
{
    cout<<" 身份证号 ";
    cin>>id;
    return id;
}

void employ::getbirth()
{
    cout<<" 出生日期 ";
    int x,y,z;
    cin>>x>>y>>z;
    birth.setyear(x);        
    birth.setmonth(y);
    birth.setday(z);
}


void main()
{
    birthday birt;
    employ employ[4];
    int i;
    for(i=0;i<=3;i++)
    {
       employ[i].getindiviualempNo();
       employ[i].getg();
       employ[i].getid();
       employ[i].getbirth();
     }

     cout<<"    编号   "<<"  性别  "<<"    出生日期    "<<"    身份证号   "<<endl;
     for(i=0;i<=3;i++)
    {
       cout<<employ[i].getindiviualempNo()<<"  ";
       cout<<employ[i].getg()<<"  ";
       employ[i].getbirt;
       cout<<employ[i].getid()<<"  ";
       cout<<endl;
      
     }
}

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-11-02 19:09
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:0 
程序代码:
void getyear(int y){year=y;}
    void getmonth(int m){  month=m;}
    void gety(int d){ day=d;}
    int  getyear(){ return year;}
    int getmonth(){ return month;}
    int getday(){return day;}

我把它改成下面这样了:
程序代码:
void setyear(int y){year=y;}
    void setmonth(int m){  month=m;}
    void setday(int d){ day=d;}
    int  getyear(){ return year;}
    int getmonth(){ return month;}
    int getday(){return day;}

void getbirth();
void getbirt()
像这样的函数名,最好做下修改,否则让人看的稀里糊涂的。



你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-11-02 19:12
大罗
Rank: 1
来 自:江西省上饶市
等 级:新手上路
帖 子:8
专家分:0
注 册:2009-10-13
收藏
得分:0 
谢谢
我是刚学的类组合
还有好多的不懂啊
2009-11-02 19:20
大罗
Rank: 1
来 自:江西省上饶市
等 级:新手上路
帖 子:8
专家分:0
注 册:2009-10-13
收藏
得分:0 
如果我在employ类
用默认的构造函数
那该怎么的写啊
2009-11-02 19:24
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:0 
回复 7楼 大罗
默认构造器在你没有写任何构造器的时候,编译器自动给你添加上去。

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-11-02 19:58
大罗
Rank: 1
来 自:江西省上饶市
等 级:新手上路
帖 子:8
专家分:0
注 册:2009-10-13
收藏
得分:0 


那我想自己写个
带默认形参的构造函数怎么的写
就 在empliy类写
2009-11-02 20:36
快速回复:急!帮我看下类组合程序,那里错了
数据加载中...
 
   



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

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