(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 "<
代码如下,如有帮助,请采纳一下,谢谢。
#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;
}
#include<iostream.h>
#include<string.h>
class person {
private:
char name[50];
public:
person(char *name1 ) {
strcpy(name,mame1);
}
void Print() {
cout<<"name:"<< name<<endl;
}
};
class student:public person {
private:
int num;
public:
student(char *name1,int num1):person(name) {
num=num1;
}
void Print() {
person::print();
cout<<"number:"<<number<<endl;
}
};
class teacher:public person {
private:
char title[50];
public:
student(char *name1,char *title1):person(name) {
strcpy(title,title1);
}
void Print() {
person::print();
cout<<"title:"<<endl;
}
};
class S_teacher: public student teacher {
public:
S_teacher(char *name int num1 char *title ):person(name) student(num) teacher(title)
viod print() {
person::print();
student::print();
teacher::print();
}
};
代码大致如上,万望采纳。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632