| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1115 人关注过本帖
标题:类的继承问题
只看楼主 加入收藏
liu200909
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:56
专家分:54
注 册:2009-9-20
结帖率:60%
收藏
已结贴  问题点数:0 回复次数:10 
类的继承问题
要求设计一个基类:Person,作为学生类Student、教师类Teacher的基类,学生类中有编号、姓名、班号、成绩,
其中班号和成绩的输入和显示在Student中实现,教师数据中有编号、姓名、职称、部门,其中职称和部门的输入和显示
在Teacher类中实现,下面给出基类的成员:
Person类:
       private:
             int  no; //编号
             char name[10]; //姓名
       public:
             void input();//编号和姓名的输入
             void diaplay();//编号和姓名的输出


请各位高手帮帮忙啊  谢谢了!
搜索更多相关主题的帖子: 继承 
2009-12-26 16:29
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:4 
Person
2009-12-26 17:15
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
收藏
得分:8 
/*要求设计一个基类:Person,作为学生类Student、教师类Teacher的基类,学生类中有编号、姓名、班号、成绩,
其中班号和成绩的输入和显示在Student中实现,教师数据中有编号、姓名、职称、部门,其中职称和部门的输入和显示
在Teacher类中实现,下面给出基类的成员:
Person类:
       private:
             int  no; //编号
             char name[10]; //姓名
       public:
             void input();//编号和姓名的输入
             void diaplay();//编号和姓名的输出
*/


#include<iostream>
#define maxsize 10

using namespace std;
class person
{
private:
    int  no; //编号
    char name[maxsize]; //姓名
public:
    person()//编号和姓名的输入
    {
        cout<<"执行构造函数person"<<endl;
        cout<<"请输入编号:"<<endl;
        cin>>no;
        cout<<"请输入姓名:"<<endl;
        cin>>name;
    }
    void ashow()//编号和姓名的输出
    {
        cout<<"您输入的编号:"<<endl;
        cout<<no;
        cout<<"您输入的姓名:"<<endl;
        cout<<name;
    }
};

class student:public person
{
private:
    char num[maxsize]; //班号
    int  score;//分数
public:
    student():person()
    {
        cout<<"执行构造函数student"<<endl;
        cout<<"请输入班号:"<<endl;
        cin>>num;
        cout<<"请输入分数:"<<endl;
        cin>>score;
    }
    void bshow()
    {
        ashow();
        cout<<"您输入班号:"<<endl;
        cout<<num;
        cout<<"您输入分数:"<<endl;
        cout<<score;
    }
};

class teacher:public person
{
private:
    char title[maxsize];//   职称
    char department[maxsize]; //部门
public:
    teacher():person()
    {
        cout<<"执行构造函数teacher"<<endl;
        cout<<"请输入职称:"<<endl;
        cin>>title;
        cout<<"请输入部门:"<<endl;
        cin>>department;
    }
    void cshow()
    {
        ashow();
        cout<<"您输入的职位:"<<endl;
        cout<<title;
        cout<<"您输入的部门:"<<endl;
        cout<<department;
    }
};

void main()
{
    person p1();
    p1.ashow();
    cout<<"/////////////////////////////////////////////"<<endl;
    cout<<"/////////////////////////////////////////////"<<endl;
    cout<<"------------------------学生资料------------------------"<<endl;
    student s1();
    s1.bshow();
    cout<<"/////////////////////////////////////////////"<<endl;
    cout<<"/////////////////////////////////////////////"<<endl;
    cout<<"------------------------老师资料------------------------"<<endl;
    teacher t1();
    t1.cshow();
}


我写了下不过有点问题,我也不知道,想请教其他人············
2009-12-26 17:41
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
收藏
得分:2 
正确解答是:
/*要求设计一个基类:Person,作为学生类Student、教师类Teacher的基类,学生类中有编号、姓名、班号、成绩,
其中班号和成绩的输入和显示在Student中实现,教师数据中有编号、姓名、职称、部门,其中职称和部门的输入和显示
在Teacher类中实现,下面给出基类的成员:
Person类:
       private:
             int  no; //编号
             char name[10]; //姓名
       public:
             void input();//编号和姓名的输入
             void diaplay();//编号和姓名的输出
*/


#include<iostream>
#define maxsize 10

using namespace std;
class person
{
private:
    int  no; //编号
    char name[maxsize]; //姓名
public:
    person()//编号和姓名的输入
    {
        cout<<"执行构造函数person"<<endl;
        cout<<"请输入编号:"<<endl;
        cin>>no;
        cout<<"请输入姓名:"<<endl;
        cin>>name;
    }
    void ashow()//编号和姓名的输出
    {
        cout<<"您输入的编号:"<<endl;
        cout<<no;
        cout<<"您输入的姓名:"<<endl;
        cout<<name;
    }
};

class student:public person
{
private:
    char num[maxsize]; //班号
    int  score;//分数
public:
    student():person()
    {
        cout<<"执行构造函数student"<<endl;
        cout<<"请输入班号:"<<endl;
        cin>>num;
        cout<<"请输入分数:"<<endl;
        cin>>score;
    }
    void bshow()
    {
        ashow();
        cout<<"您输入班号:"<<endl;
        cout<<num;
        cout<<"您输入分数:"<<endl;
        cout<<score;
    }
};

class teacher:public person
{
private:
    char title[maxsize];//   职称
    char department[maxsize]; //部门
public:
    teacher():person()
    {
        cout<<"执行构造函数teacher"<<endl;
        cout<<"请输入职称:"<<endl;
        cin>>title;
        cout<<"请输入部门:"<<endl;
        cin>>department;
    }
    void cshow()
    {
        ashow();
        cout<<"您输入的职位:"<<endl;
        cout<<title;
        cout<<"您输入的部门:"<<endl;
        cout<<department;
    }
};

void main()
{
    cout<<"/////////////////////////////////////////////"<<endl;
    cout<<"//////////////////////////////////////////////"<<endl;
    person p1;
    p1.ashow();
    cout<<endl;
    cout<<"/////////////////////////////////////////////"<<endl;
    cout<<"/////////////////////////////////////////////"<<endl;
    cout<<"------------------------学生资料------------------------"<<endl;
    student s1;
    s1.bshow();
    cout<<endl;
    cout<<"/////////////////////////////////////////////"<<endl;
    cout<<"/////////////////////////////////////////////"<<endl;
    cout<<"------------------------老师资料------------------------"<<endl;
    teacher t1;
    t1.cshow();
    cout<<endl;
}
2009-12-26 18:07
liu200909
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:56
专家分:54
注 册:2009-9-20
收藏
得分:0 
回复 4楼 guchao2009
楼上回答的不错,但是有点问题的是,不符合题目的要求,要求用input()函数来输入要输入的数据,没有说明用构造函数,
请楼上的兄弟再帮忙看哈!谢谢!
2009-12-26 20:56
wlsj
Rank: 2
等 级:论坛游民
帖 子:49
专家分:28
注 册:2009-5-18
收藏
得分:2 
菜鸟,学习了
2009-12-26 21:38
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 
那么多code    都错了
2009-12-27 16:17
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
收藏
得分:4 
为什么非不要构造函数呢?
既然用到了类建议用构造函数。
如果不用你自己先仿造四楼的我写下,格式是一样的。
不懂在问!!!!!


版主四楼的哪个地方的代码错了希望指出····Thank you!
2009-12-27 17:15
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 
也不能说你不对。
不过觉得出这个题目不怎么好。


#include "stdafx.h"
/*
 * 要求设计一个基类:Person,作为学生类Student、教师类Teacher的基类,学生类中有编号、姓名、班号、成绩,
 * 其中班号和成绩的输入和显示在Student中实现,教师数据中有编号、姓名、职称、部门,其中职称和部门的输入和显示
 * 在Teacher类中实现,下面给出基类的成员:
 * Person类:
       private:
             int  no; //编号
             char name[10]; //姓名
       public:
             void input();//编号和姓名的输入
             void diaplay();//编号和姓名的输出
 */

#include <iostream>
using namespace std;
class Person
{
public:   
    char name[20];
    int  m_id;
    Person()
    {
        memset(name,0,20);
        m_id = 0;
    }
    ~Person()
    {
        memset(name,0,20);
    }
    virtual void input()
    {
        
        cin >> name; cin >> m_id;
    }
    virtual void display()
    {
        cout << name << m_id <<endl;
    }
   
};
class Student :public Person
{
private:

    int  classNum;
    float score;
public:
    Student():classNum(0),score(0.0)
    {

    }
    void input()
    {
        Person::input();
        cin >> classNum >> score;
    }

    void display()
    {
        Person::display();
        cout <<classNum <<score <<endl;

    }


};
class Teacher: public Person
{
private:
    char title[20];
    char door[20];
public:
    Teacher()
    {
        memset(title, 0, 20);
        memset(door, 0, 20);
    }
    ~Teacher()
    {
        memset(title, 0, 20);
        memset(door, 0, 20);

    }
    void input()
    {
        Person::input();
        cin >> title ;
        cin >> door;
    }

    void display()
    {
        Person::display();
        cout <<title <<door<<endl;

    }

};


int _tmain(int argc, _TCHAR* argv[])
{
    Student wnag;

    wnag.display();
    while (1);
   
   
    return 0;
}

2009-12-28 09:18
liu200909
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:56
专家分:54
注 册:2009-9-20
收藏
得分:0 
回复 8楼 guchao2009
要安照题目的要求来啊,兄弟们!!题目是这样的,没有办法啊!!!!
2009-12-28 11:16
快速回复:类的继承问题
数据加载中...
 
   



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

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