C++ 輸入多個學生和老師信息,並顯示出來

我們,有的時候希望,用戶動態的輸入學生和老師信息,然後再顯示出來。
那麼,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 李老師 博士 科研室
運行結果如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章