(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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求指导ADS低噪放设计
- ¥15 CARSIM前车变道设置
- ¥50 三种调度算法报错 有实例
- ¥15 关于#python#的问题,请各位专家解答!
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存