// Begin person.h#ifndef PERSON_H#define PERSON_H class Person{ public: Person(); ~Person();}; class Teacher:public Person // 教师类{ public: Teacher(); void personsetting(); // 人员信息 ~Teacher(); void displayStatus(); // 显示人员信息 private: int techgrade; // 教师职称 int staffroom; // 教研室 char *name; // 姓名 int teacher; // 教师编号 static int teacherNo; // 教师编号目前最大值}; class Bigstudent:public Person // 大学生类{ public: Bigstudent(); void personsetting(); // 人员信息 ~Bigstudent(); float studentenglish(); // 大学生英语成绩 float studentmath(); // 学生数学成绩 void displayStatus(); // 显示人员信息 private: char *sex; // 性别 int classroom; // 班级 char *name; // 姓名 float Enggrade; // 大学生英语成绩 float Gaograde; // 大学生高数成绩 int bigstudent; // 大学生编号 static int bigstudentNo; // 大学生编号目前最大值 static float fullEnggrade; // 大学生英语总成绩 static float fullGaograde; // 大学生数学总成绩}; class Midstudent:public Person // 中学生类{ public: Midstudent(); void personsetting(); // 人员信息 ~Midstudent(); float midstudentmath(); // 学生数学成绩 void displayStatus(); // 显示人员信息 private: char *sex; // 性别 int classroom; // 班级 char *name; // 姓名 float midmathgrade; // 中学生高数成绩 int midstudent; // 中学生编号 static int midstudentNo; // 中学生编号目前最大值 static float fullmidgrade; // 中学生数学总成绩};#endif// End person.h // person.cpp#include <iostream>#include <string>#include "person.h"using namespace std; int Teacher::teacherNo=1000; // 教师编号基数为1000(起始编号)int Bigstudent::bigstudentNo=2000; // 大学生编号基数为2000(起始编号)int Midstudent::midstudentNo=3000; // 中学生编号基数为3000(起始编号)float Bigstudent::fullEnggrade=0.0; // 大学生英语总成绩起始为0.0分float Bigstudent::fullGaograde=0.0; // 大学生数学总成绩起始为0.0分float Midstudent::fullmidgrade=0.0; // 中学生数学总成绩起始为0.0分 Person::Person(){} Person::~Person(){} Teacher::Teacher(){} void Teacher::personsetting(){ char namestr[50]; // 输入人员存放在namestr中 cout<<"请输入教师的姓名:"; cin>>namestr; name=new char[strlen(namestr)+1]; // 动态申请用于存放姓名的内存空间 strcpy(name,namestr); // 将临时存放的姓名复制到name cout<<endl; cout<<"请输入教师职称(级): "; cin>>techgrade; cout<<endl; cout<<"请输入教师所在教研室: "; cin>>staffroom; cout<<endl; teacher=teacherNo++; // 新输入教师,其编号为目前最大编号加1} Teacher::~Teacher(){} void Teacher::displayStatus(){ cout<<"教师的姓名是 "<<name<<" 编号 "<<teacher <<",级别是 "<<techgrade<<" 级,"<<"所在教研室 " <<staffroom<<" 室。"<<endl; delete []name;} Bigstudent::Bigstudent(){} void Bigstudent::personsetting(){ char namestr[50]; // 输入人员存放在namestr中 cout<<"请输入大学生的姓名:"; cin>>namestr; name=new char[strlen(namestr)+1]; // 动态申请用于存放姓名的内存空间 strcpy(name,namestr); // 将临时存放的姓名复制到name cout<<endl; char bigsex[10]; cout<<"请输入大学生性别: "; cin>>bigsex; sex=new char[strlen(bigsex)+1]; strcpy(sex,bigsex); cout<<endl; cout<<"请输入大学生所在班级: "; cin>>classroom; cout<<endl; cout<<"请输入大学生英语成绩: "; cin>>Enggrade; cout<<endl; cout<<"请输入大学生数学成绩: "; cin>>Gaograde; cout<<endl; bigstudent=bigstudentNo++; // 新输入大学生,其编号为目前最大编号加1 fullEnggrade+=Enggrade; fullGaograde+=Gaograde;} Bigstudent::~Bigstudent(){} float Bigstudent::studentenglish() // 大学生英语总成绩统计{ cout<<"大学生英语总成绩是:"<<fullEnggrade<<endl<<endl;} float Bigstudent::studentmath() // 大学生数学总成绩统计{ cout<<"大学生数学总成绩是:"<<fullGaograde<<endl;} void Bigstudent::displayStatus(){ cout<<"大学生姓名是 "<<name<<" 编号 "<<bigstudent <<" 性别 "<<sex<<",所在班级 "<<classroom<< " 班,"<<"其英语成绩是 "<<Enggrade<<endl<<",其高数成绩是 " <<Gaograde<<endl; delete []name; delete []sex;} Midstudent::Midstudent(){} void Midstudent::personsetting(){ char namestr[50]; // 输入人员存放在namestr中 cout<<"请输入中学生的姓名:"; cin>>namestr; name=new char[strlen(namestr)+1]; // 动态申请用于存放姓名的内存空间 strcpy(name,namestr); // 将临时存放的姓名复制到name cout<<endl; char bigsex[10]; cout<<"请输入中学生性别: "; cin>>bigsex; sex=new char[strlen(bigsex)+1]; strcpy(sex,bigsex); cout<<endl; cout<<"请输入中学生所在班级: "; cin>>classroom; cout<<endl; cout<<"请输入中学生数学成绩: "; cin>>midmathgrade; cout<<endl; midstudent=midstudentNo++; // 新输入中学生,其编号为目前最大编号加1 fullmidgrade+=midmathgrade;} Midstudent::~Midstudent(){} float Midstudent::midstudentmath() // 中学生总数学成绩{ cout<<"中学生数学总成绩是:"<<fullmidgrade<<endl;} void Midstudent::displayStatus(){ cout<<"中学生姓名是 "<<name<<" 编号 "<<midstudent <<" 性别 "<<sex<<",所在班级 "<<classroom<< " 班,"<<"其数学成绩是 "<<midmathgrade<<endl; delete []name; delete []sex;} // personmain.cpp#include <iostream>#include <string>#include "person.h"using namespace std; int main(){ int teaamount; // 教师人数 int bigamount; // 大学生人数 int midamount; // 中学生人数 int i,j,a; cout<<"请输入教师人数:"; cin>>teaamount; cout<<endl; cout<<"请输入大学生人数:"; cin>>bigamount; cout<<endl; cout<<"请输入中学生人数:"; cin>>midamount; cout<<endl; Teacher t1[100]; // 教师数组 Teacher *t2; // 教师指针 Bigstudent b1[1000]; // 大学生数组 Bigstudent *b2; // 大学生指针 Midstudent m1[1000]; // 中学生数组 Midstudent *m2; // 中学生指针 t2=t1; b2=b1; m2=m1; for(i=0;i<teaamount;i++) { t2[i].personsetting(); // 设置教师信息 } for(i=0;i<bigamount;i++) { b2[i].personsetting(); // 设置大学生信息 } for(i=0;i<midamount;i++) { m2[i].personsetting(); // 设置中学生信息 } for(i=0;i<teaamount;i++) { t2[i].displayStatus(); // 显示教师信息 cout<<endl; } for(j=0;j<bigamount;j++) { b2[j].displayStatus(); // 显示信息 cout<<endl; } b2[j].studentmath(); // 大学生数学总成绩 b2[j].studentenglish(); // 大学生英语总成绩 for(a=0;a<midamount;a++) { m2[a].displayStatus(); // 显示信息 cout<<endl; } m2[a].midstudentmath(); // 中学生数学成绩 system("pause");} // End personmain.cpp

评论