标题:类的继承与派生
只看楼主
朝闻道
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-12-28
结帖率:50%
已结贴  问题点数:10 回复次数:3 
类的继承与派生
编写一个能输入、输出学生和教师数据的程序。学生数据有编号、姓名、班号和成绩;
教师数据有编号、姓名、职称和部门。声明一个person类,作为学生数据操作类student和教师数据操作类teacher的基类。person类中含有性别、年龄等公有数据成员和Enter( ),display( )等成员函数。
要求:使用对象数组保存输入的对象。在main函数中,调用类中的成员函数录入学生或教师的信息,显示输出学生或教师的信息。
搜索更多相关主题的帖子: person display teacher 教师 
2012-10-28 20:33
zhuanjia0
Rank: 4
等 级:业余侠客
威 望:3
帖 子:86
专家分:232
注 册:2012-1-13
得分:10 
上学期有写过类似的题目,你稍加修改即可。

程序代码:
/************************************************************************/
/*2、编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、
年龄、系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将编号、
姓名、性别、年龄的输入和显示设计成一个类Persona,并作为学生类Student和教师
类Teacher的基类。                                                       */
/************************************************************************/

#include <iostream>
#include <string>
using namespace std;

class Persona
{
public:
    int Num;
    string Name;
    string Sex;
    int Age;

    void InfoSet(int Num0,string Name0,string Sex0,int Age0)
    {
        Num=Num0;
        Name=Name0;
        Sex=Sex0;
        Age=Age0;
    }

    void InfoPrint()
    {
        cout<<"编号:"<<Num<<endl;
        cout<<"姓名:"<<Name<<endl;
        cout<<"性别:"<<Sex<<endl;
        cout<<"年龄:"<<Age<<endl;
    }
};

class Student:protected Persona
{
public:
    Student(int num,string name,string sex,int age,string m,float s)
    {
        InfoSet(num,name,sex,age);
        major=m;score=s;
    }
    void StuMajorSet(string mm)
    {
        major=mm;
    }
    void StuScoreSet(float ss)
    {
        score=ss;
    }
    void StudentPrint()
    {
        InfoPrint();
        cout<<"系别:"<<major<<endl;
        cout<<"分数:"<<score<<endl;
    }
private:
    string major;
    float score;
};

class Teacher:protected Persona
{
public:
    Teacher(int num,string name,string sex,int age,string j,string d)
    {
        InfoSet(num,name,sex,age);
        job=j;department=d;
    }
    void TeachJobSet(string jj)
    {
        job=jj;
    }
    void TeachDepartSet(float dd)
    {
        department=dd;
    }
    void TeacherPrint()
    {
        InfoPrint();
        cout<<"职称:"<<job<<endl;
        cout<<"部门:"<<department<<endl;
    }
private:
    string job;
    string department;
};

int main()
{
    Student stu(1,"张三","",20,"计算机系",90);
    Teacher teach(2,"无云","",20,"讲师","计算机系");
    cout<<"/////////////////////////////"<<endl;
    stu.StudentPrint();
    cout<<"/////////////////////////////"<<endl;
    teach.TeacherPrint();
    cout<<"/////////////////////////////"<<endl;
    return 0;
}
2012-10-28 22:06
小小小火柴
Rank: 5Rank: 5
来 自:江西赣州
等 级:职业侠客
威 望:3
帖 子:141
专家分:337
注 册:2012-9-28
得分:0 
  顶下哦!

   好好学习!
2012-10-29 08:44
fangxia0716
Rank: 1
等 级:新手上路
帖 子:23
专家分:2
注 册:2012-10-25
得分:0 
学习中
2012-10-29 13:44



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




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

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