用C++编写相关程序1

实验内容:
1、编写一个学生和教师数据输入和显示程序,学生数据有编号,姓名,班级和成绩,教师数据有编号,姓名,职称和部门。要求将编号,姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师数据操作类teacher的基类。
2、合理设计student类、 teacher类以及主函数,完成输入多个学生和教师的信息并显示。

下面的代码是通过重载输入输出符来实现的,也可通过函数的方式。

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

class person
{
public:
    string id;
    string name;
public:
    friend istream& operator >>(istream& is,person &p)
    {
        is >> p.id >> p.name;
        return is;
    }
    friend ostream& operator <<(ostream& os,person& p)
    {
        os << "id:" << p.id << ",name:" << p.name;
        return os;
    }
};


class Student:public person
{
public:
    int grade; //班级
    float score;//成绩
public:
    friend istream& operator >>(istream& is,Student& stu)
    {
        is >> stu.id >> stu.name >> stu.grade >> stu.score;
        return is;
    }
    friend ostream& operator <<(ostream& os,Student& stu)
    {
        os << "id:" << stu.id << ",name:" << stu.name << ",grade:" << stu.grade << ",score:" << stu.score;
        return os;
    }
};

class teacher :public person
{
public:
    string pro; //职称
    string partment; //部门
public:
    friend istream& operator >>(istream& is,teacher& t)
    {
        is >> t.id >> t.name >> t.pro >> t.partment;
        return is;
    }
    friend ostream& operator <<(ostream& os,teacher& t)
    {
        os << "id:" << t.id << ",name:" << t.name << ",pro:" << t.pro << ",partment:" << t.partment;
        return os;
    }
};


int main()
{
    Student s1, s2;
    teacher t1, t2;
    cout << "请输入学生1的编号、姓名、班级和成绩:";
    cin >> s1;
    cout << "学生1的信息如下:";
    cout << s1 << endl;

    cout << "请输入学生2的编号、姓名、班级和成绩:";
    cin >> s2;
    cout << "学生2的信息如下:";
    cout << s2 << endl;

    cout << "请输入教师1的编号、姓名、职称和部门:";
    cin >> t1;
    cout << "教师1的信息如下:";
    cout << t1 << endl;

    cout << "请输入教师2的编号、姓名、职称和部门:";
    cin >> t2;
    cout << "教师1的信息如下:";
    cout << t2 << endl;
    return 0;
}

代码如下:

person{
    private:
    int number;
    string name;
    public:
        person(int num,string na)
        {
            number=num;
            name=na;
        }
        void print()
        {
            cout<<number<<' '<<name<<' ';
        }
};
class student:public person{
    private:
        string  classd;
        float grade;
        public:
            student( int num,string na,string c,float gra ):person(num,na)
            {
                 classd=c;
                 grade=gra;
            }
            void print1()
        {
                cout<<classd<<' '<<grade<<endl;
            }
};
class teacher:public person{
    private:
        string zhicheng;
        string sdept;
        public:
        teacher(int num,string na,string zhi,string sd):person(num,na)
        {
            zhicheng=zhi;
            sdept=sd;
        }
        void print2()
    {
        cout<<zhicheng<<' '<<sdept<<endl;
        }
};
int main()
{
    cout<<"学生数据:"<<endl;
    student s1(2001,"小李","计算机类2006班",80);
    s1.person::print() ;
    s1.print1() ;
    cout<<"老师数据:"<<endl; 
    teacher t1(2002,"老刘","数学老师","数学系");
    t1.person::print() ;
    t1.print2() ;
    return 0; 
}

img


有帮助的话采纳一下哦!