实验内容:
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;
}