(1)编写一个学生和教师相关数据输入和显示程序。设计三个类 person, student 和 teacher 类,其中 student 和 teacher 是由 person 类派生出来的。学生(student)数据有学号、姓名、性别、年龄、班级号和期末三门功课总分;教师(teacher)数据有职工号、姓名、性别、年龄、职称和系别。在主程序中,定义两个学生和两个教师,从键盘输入他们相关的数据,并将输入数据输出显示在屏幕上。(提示:person 类有两个公有成员函数:void input();输入学生或教师的姓名、性别和年龄;显示输出函数 void display();显示学生和教师的姓名、性别和年龄。该类中有三个私有数据成员:姓名 char name[20]、性别和年龄。Person 类定义已经给出,请设计其他两个类和主函数。 class Person { char name[20]; char gender; int age; public: Person() {} Person(char* Name,char Gender,char Age) { cout<<"Constructing "<
3条回答 默认 最新
- qfl_sdu 2021-05-26 16:06关注
代码如下,如有帮助,请采纳一下,谢谢。
#include <iostream> using namespace std; class Person { char name[20]; char gender; int age; public: Person(){memset(name,0,20);gender = 'f';age = 0;} Person(char* Name,char Gender,char Age) { cout<<"Constructing "<<endl; memset(name,0,20); memcpy(name,Name,strlen(Name)<20?strlen(Name):20); gender = Gender; age = Age; } //输入学生或教师的姓名、性别和年龄;显示输出函数 void input() { cout << "请输入姓名、性别和年龄:" ; cin >> name; cin >> gender; cin >> age; } //显示 void display() { cout << "姓名:" << name <<";性别:" << gender << ";年龄:" << age << endl; } }; class student :public Person { int xuehao; //学号 char name[20]; char gender; int age; int banji; //班级号 float score; //总分 public: student(int xh,char* nm,char gend,int ag,int bj,float sc):Person(nm,gend,ag) { xuehao = xh; banji = bj; score = sc; memset(name,0,20); memcpy(name,nm,strlen(nm)<20?strlen(nm):20); gender = gend; age = ag; } void displayStudent() { cout << "学号:" << xuehao << " ;"; cout << "姓名:" << name <<";性别:" << gender << ";年龄:" << age ; cout << ";班级号:" << banji << "总分:" << score << endl; } }; class teacher :public Person { int zhigonghao; //职工号 char name[20]; char gender; int age; char zhicheng[20];//职称 char xibie[20]; //系别 public: teacher(int id,char* nm,char gend,int ag,char* p,char* xb):Person(nm,gend,ag) { zhigonghao = id; memset(zhicheng,0,20); memcpy(zhicheng,p,strlen(p)>20?20:strlen(p)); memset(xibie,0,20); memcpy(xibie,xb,strlen(xb)>20?20:strlen(xb)); memset(name,0,20); memcpy(name,nm,strlen(nm)<20?strlen(nm):20); gender = gend; age = ag; } void displayTeacher() { cout << "职工号:" << zhigonghao << ";"; cout << "姓名:" << name <<";性别:" << gender << ";年龄:" << age ; cout <<";职称:" << zhicheng << ";系别:" << xibie << endl; } }; int main() { student stu(123,"张三",'m',22,2,89.2); teacher tea(111,"李老师",'f',44,"教授","物理系"); stu.display(); stu.displayStudent(); tea.display(); tea.displayTeacher(); //getchar(); //getchar(); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
- ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
- ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
- ¥20 腾讯企业邮箱邮件可以恢复么
- ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
- ¥15 错误 LNK2001 无法解析的外部符号
- ¥50 安装pyaudiokits失败
- ¥15 计组这些题应该咋做呀
- ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
- ¥15 让node服务器有自动加载文件的功能