C++ 输入多个学生和老师信息,并显示出来

版权声明:转载请注明博主地址 https://blog.csdn.net/weixin_43885417/article/details/85781891

我们,有的时候希望,用户动态的输入学生和老师信息,然后再显示出来。
那么,C++如何实现呢?
下面,我们开始代码实现:

#include<iostream>
#include<cstring>
using namespace std;
/**
学生和老师的信息录入	
*/
class Person{
//数据成员	
private:
	string ID;                            //ID号码 
	string name;                          //名字 
public:
	Person(string sendID, string sendName){
	    ID   = sendID;
	    name = sendName;
	}
	//给数据成员赋用户输入的值 
	void initPersonData(string sendID, string sendName){
		ID   = sendID;
		name = sendName;
	} 
	//获取名字 
	string getName(){
	    return name;
	}
	//获取ID号码 
	string getID(){
	    return ID;
	}
};
class Student : public Person{
//学生类私有数据成员
private:
	string classnum;                      //学生班级 
	int    grade;                         //学生成绩 
public:
	static int studentCount;              //学生总人数 
	//学生类构造函数 
	Student(string sendClassNum = "", int sendGrade = 0, string ID = "", string name = "") : Person(ID, name){
	    classnum = sendClassNum;
        grade    = sendGrade;
        studentCount++;                   //每实例化一个学生——>学生总人数 + 1 
	}
	//给学生类的数据成员赋用户输入的值 
	void initStudnetData(string ID, string name, string sendClassNum, int sendGrade){
		classnum = sendClassNum;
		grade    = sendGrade;
		initPersonData(ID, name);         //调用父类(Person类),设置用户输入的值
	}
	//显示学生信息 
	void print(){
		cout<<Person::getID()<<"\t\t"<<Person::getName()<<"\t"<<classnum<<"\t\t"<<grade<<endl; 
	}
};               
class Teacher : public Person{
//老师类私有数据成员	
private:
	string titleName;                     //老师职称 
	string department;                    //老师所在部门 
public: 
	static int teacherCount ;             //老师总人数 
	//老师类构造函数 
	Teacher(string sendtitle = "",string sendDepartment = "",string ID = "", string name = "") : Person(ID, name){
        titleName  = sendtitle;
        department = sendDepartment;
        teacherCount ++;                  //每实例化一个老师——>老师总人数 + 1 
	}
	//给老师类的数据成员,赋用户输入的值 
	void initTeacherData(string ID, string name, string sendTitleName, string sendDepartment){
		titleName  = sendTitleName;
		department = sendDepartment;
		initPersonData(ID, name);         //调用父类(Person类),设置用户输入的值
	}
	//显示老师基本信息 
	void print(){
	    cout<<Person::getID()<<"\t\t"<<Person::getName()<<"\t\t"<<titleName<<"\t\t"<<department<<endl;  
	}	
};
int Student::studentCount = 0;            //学生总人数——>静态变量初始化 
int Teacher::teacherCount = 0;            //老师总人数——>静态变量初始化 
int main(){
	int i;                                //定义循环变量 
    string name;                          //姓名 
    string ID;						      //ID号码 
    int grade;                            //学生成绩 
    string department;                    //老师所在部门 
    string titleName;                     //老师职称 
    string classNumber;                   //学生所在班级 
    //创建对象数组,实例化学生类对象=====>数量为三
    Student stu[3] = {
		Student(),
		Student(),
		Student()
	};
	//创建对象数组,实例化老师类对象=====>数量为三
	Teacher tea[3] = {
		Teacher(),
		Teacher(),
		Teacher()
	};
    //接收学生数据 
    cout<<"请输入三个学生的信息:"<<endl;
    for(i = 0; i < 3; i++){
    	cin>>ID>>name>>classNumber>>grade;                       //接收用户输入的学生信息
    	stu[i].initStudnetData(ID, name, classNumber, grade);    //设置用户输入的学生数据 
    }	
    //接收老师数据 
    cout<<"请输入三位老师的信息:"<<endl;
    for(i = 0; i < 3; i++){
    	cin>>ID>>name>>titleName>>department;                    //接收用户输入的老师信息 
    	tea[i].initTeacherData(ID, name, titleName, department); //设置用户输入的学生数据 
    }
    //打印学生信息 
    cout<<"学生总人数为:"<<Student::studentCount<<"人"<<endl; 
    cout<<"-----------------------------学生名单-----------------------------"<<endl;
    cout<<"学号\t\t"<<"姓名\t\t"<<"班级\t\t"<<"成绩"<<endl; 
	for(i = 0; i < 3; i++){
		stu[i].print();
	} 
	//打印老师信息 
	cout<<"老师总人数为:"<<Teacher::teacherCount <<"人"<<endl;
	cout<<"-----------------------------老师名单-----------------------------"<<endl;
	cout<<"教工号\t\t"<<"姓名\t\t"<<"职称\t\t"<<"部门"<<endl; 
	for(i = 0; i < 3; i++){
		tea[i].print();
	}
	return 0;
}

测试数据 :
学生数据:
111 上官帝文 计算161 100
110 上官瑞谦 计算162 99
109 诸葛中天 计算163 98
老师数据:
666 张老师 教授 数学研究室
888 王老师 副教授 办公室
555 李老师 博士 科研室
运行结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43885417/article/details/85781891