标题:求一个人事资料输入输出的程序
只看楼主
zl695359890
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-3-22
结帖率:100%
已结贴  问题点数:15 回复次数:9 
求一个人事资料输入输出的程序
大家帮我看下下面的程序,因为我是自学C++的类,所以很多不懂的东西,下面的程序运行老是有错误,还麻烦帮我解释下各个部分的详细的含义,谢谢了~
#include<iostream.h>
#include<string.h>
class Person
{private:
    char    m_strName[20];
    int     m_nAge;
    int     m_nSex;
public:
    void    Register(char *name, int age, char sex);
    char*   GetName();
    int     GetAge();
    char    GetSex();
    void    ShowMe();
}
void Person::Register(char *name, int age, char sex)
{strcpy(m_strName, name);
 m_nAge=age;
 m_nSex=(sex=='m'?0:1);
}
char *Person::GetName()
{return m_strName;}
int Person::GetAge()
{return m_nAge;}
char Person::GetSex()
{return (m_nSex==0?'m':'f');}
void Person::ShowMe()
{cout<<GetName()<<'\t'<<GetAge()<<'\t'<<GetSex()<<endl;}
void main()
{char name[20], sex;
 int age;
 Person person1, person2;
 cout<<"Enter a person's name, age, sex:";
 cin>>name>>age>>sex;
 person1.Register(name, age, sex);
 cout<<"person1:\t";
 person1.ShowMe();
 person1.Register("Zhang3","19",'m');
 cout<<"person1:\t";
 person1.ShowMe();
 person2=person1;
 cout<<"person2:\t";
 person2.ShowMe();
}
搜索更多相关主题的帖子: public age void private include 
2012-05-14 08:51
zl695359890
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-3-22
得分:0 
补充:此程序的题目是:建立一个完整的人事资料输入输出程序。
2012-05-14 09:00
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
得分:10 
#include <iostream>
#include <cstring>

using namespace std;

class Person
{
private:
    char    m_strName[20];
    int     m_nAge;
    int     m_nSex;
public:
    void    Register(char *name, int age, char sex);
    char*   GetName();
    int     GetAge();
    char    GetSex();
    void    ShowMe();
}; //类结尾少分号

void Person::Register(char *name, int age, char sex)
{
    strcpy(m_strName, name);
    m_nAge=age;
    m_nSex=(sex=='m'?0:1);
}
char *Person::GetName(){return m_strName;}
int Person::GetAge(){return m_nAge;}
char Person::GetSex(){return (m_nSex==0?'m':'f');}
void Person::ShowMe()
{
    cout<<GetName()<<'\t'<<GetAge()<<'\t'<<GetSex()<<endl;
}
void main()
{
    char name[20], sex;
    int age;
    Person person1, person2;
    cout<<"Enter a person's name, age, sex:";
    cin>>name>>age>>sex;
    person1.Register(name, age, sex);
    cout<<"person1:\t";
    person1.ShowMe();
    person1.Register("Zhang3",19,'m'); //参数类型不匹配
    cout<<"person1:\t";
    person1.ShowMe();
    person2=person1;
    cout<<"person2:\t";
    person2.ShowMe();
}

我们都在路上。。。。。
2012-05-14 10:16
zl695359890
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-3-22
得分:0 
回复 3楼 hellovfp
您好,我还不是特别清楚您所说的类型不符是什么意思呢?Register中的类型不就是char ,int ,char吗?
2012-05-14 16:28
zl695359890
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-3-22
得分:0 
回复 3楼 hellovfp
哦,知道了,我知道您说的那个错误是什么了。我还想问下,就是针对这个程序,第一部分应该是类的定义,第二部分是成员函数的定义,第三部分是主函数,对吧?就是我看书上说定义类时,一般包括数据成员,成员函数,构造函数和析构函数,运算符函数,这四部分不是必须有的嘛,麻烦给讲解下类的大体框架,我初学,很多把握不好,谢谢了
2012-05-14 16:37
sunny孙
Rank: 2
等 级:论坛游民
帖 子:18
专家分:37
注 册:2011-11-4
得分:0 
回复 5楼 zl695359890
最好自己先好好看书,这种基本的知识没人愿意给你讲···
2012-05-14 20:21
liudw2
Rank: 4
等 级:业余侠客
帖 子:85
专家分:248
注 册:2011-7-31
得分:0 
这其中的小错误一堆堆啊,记得自己要规范下代码格式,养成好习惯啊
2012-05-15 22:54
liudw2
Rank: 4
等 级:业余侠客
帖 子:85
专家分:248
注 册:2011-7-31
得分:0 
#include <iostream>
#include <cstring>
using namespace std;

class Person
{
     private:
     char    m_strName[20];
     int     m_nAge;
     int     m_nSex;

     public:
     void    Register(char *name, int age, char sex);
     char*   GetName();
     int     GetAge();
     char    GetSex();
     void    ShowMe();
};

void Person::Register(char *name, int age, char sex)
{
     strcpy(m_strName, name);
     m_nAge=age;
     m_nSex=(sex=='m'?0:1);
}

char *Person::GetName()
{
     return m_strName;
}

int Person::GetAge()
{
    return m_nAge;
}

char Person::GetSex()
{
    return (m_nSex == 0) ? 'm' : 'f';
}

void Person::ShowMe()
{
    cout<<GetName()<<'\t'<<GetAge()<<'\t'<<GetSex()<<endl;
}

int main()
{
    char name[20], sex;
    int age;
    Person person1, person2;
    cout<<"Enter a person's name, age, sex:";
    cin>>name>>age>>sex;
    person1.Register(name, age, sex);
    cout<<"person1:\t";
    person1.ShowMe();
    person1.Register("Zhang3",19,'m');
    cout<<"person1:\t";
    person1.ShowMe();
    person2=person1;
    cout<<"person2:\t";
    person2.ShowMe();

    return 0;
}
2012-05-15 22:58
liudw2
Rank: 4
等 级:业余侠客
帖 子:85
专家分:248
注 册:2011-7-31
得分:5 
代码我修改好了,你自己看看吧
2012-05-15 22:59
h7033921
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2012-5-15
得分:0 
1.类少了分号
2.
void Person::Register(char *name, int age, char sex)

 person1.Register("Zhang3", "19", 'm');
2012-05-19 15:43



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




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

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