您好,登錄后才能下訂單哦!
這篇文章主要介紹了怎么用C++代碼實現學校人員管理系統的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么用C++代碼實現學校人員管理系統文章都會有所收獲,下面我們一起來看看吧。
學校人員管理系統
1、建立一個學校類,在其中定義按照姓名增加人員的增加函數,刪除人員的刪除的函數和查詢函數(以姓名為準)。
2、建立一個人員基類,要具有姓名和性別屬性,并有輸出函數(可定義為虛函數)。
3、建立一個員工類和一個學生類,均由人員類繼承而來。要求:可以輸出員工類(學生類)對象的屬性(如:姓名、性別和工作證號碼或學生學號),分別寫出它們的輸出函數的具體實現。
4、重載“>>”,實現用cin為員工類、學生類和在職學生類對象賦值。(選做)
5、編寫main()主函數,測試上述功能,并以菜單方式實現對各種人員的增加、刪除和查詢(以姓名為線索)。
6、程序應采用多文件結構。
7、vs2019編譯
head.h頭文件函數聲明
/*頭文件Head.h,聲名所有需要的函數或者系統頭文件*/ //系統頭文件 #include<iostream> #include<string> using namespace std; //全局變量 extern int p ;//保存人類個數 extern int Re;//保存當前學生所在位數 extern int Rs;//保存當前員工所在位數 extern int s ;//保存學生個數 extern int e ;//保存員工個數 //全局類數組的聲明 extern int maxEmployee; extern int maxStudent; extern Employee* employee; extern Student* student; //人類聲明 class Person { private: string name;//姓名 string sex;//性別 int age;//年齡 string status;//身份 void init();//初始化函數 public: void setPerson();//調用初始化函數 void setStatus(string);//設置身份 string getName();//獲取人的名字 string getStatus();//獲取人的身份 static void setP(int);//當前添加第幾個人 static void setRs(int);//當前添加第幾個學生 static void setRe(int);//當前添加第幾個員工 static int getRe();//獲取Re static int getRs();//獲取Rs static int getP();//獲取p virtual void show();//虛函數 }; //學校類 class school { private: //增加人員 static bool addPerson(); //刪除人員 static bool deletePerson(); //查詢人員 static Person queryPerson(); public: static bool getAdd(); static bool getDel(); static Person getQue(); }; //學生類 class Student :public Person { private: string StudentNumber; string StudentDormitory; public: //構造函數 Student(); // >>重載 friend istream& operator >> (istream& i, Student& p); static int getTotal(); static void setTotal(int); string getStuId(); void show(); }; //員工類 class Employee : public Person { private: string EmployeeNumber; string EmployeeDormitory; public: Employee(); friend istream& operator >> (istream& i, Employee& p); static int getTotal(); static void setTotal(int); string getEpyId(); void show(); }; //main 函數里的函數聲明 void view(); bool doSwitch(char n); extern char n; char Cin();
Remain.cpp文件實現頭文件
#include"Head.h" //引用全局變量 int p = 0; int s = 0; int e = 0; int Re = 0; int Rs = 0; int maxEmployee = 1000; int maxStudent = 1000; Employee* employee = new Employee[maxEmployee]; Student* student = new Student[maxStudent]; char n; /*人類*/ //人初始化函數 void Person::init() { cout << "姓名:" << endl; cin >> name; cout << "性別:" << endl; cin >> sex; cout << "年齡:" << endl; cin >> age; } // void Person::setPerson() { init(); } // string Person::getName() { return name; } void Person::setP(int i) { p = p + i; } int Person::getP() { return p; } void Person::setStatus(string s) { status = s; } string Person::getStatus() { return status; } void Person::setRs(int j) { Rs = j; } void Person::setRe(int j) { Re = j; } int Person::getRs() { return Rs; } int Person::getRe() { return Re; } //人類show函數 void Person::show() { cout << "姓名:" << name << "\t" << "性別:" << sex << "\t" << "年齡:" << age << "\t" << "工作:" << status << "\t"; } //員工 //空參構造 Employee::Employee(){} void Employee::show() { cout << "工號:" << EmployeeNumber << "\t" << "宿舍:" << EmployeeDormitory << endl; } int Employee::getTotal() { return e; } void Employee::setTotal(int i) { e = e + i; } string Employee::getEpyId() { return EmployeeNumber; } //員工>>重載 istream& operator >> (istream& i, Employee& p) { p.setPerson(); cout << "工號:" << endl; i >> p.EmployeeNumber; cout << "宿舍:" << endl; i >> p.EmployeeDormitory; return i; } //學生 Student::Student(){} void Student::show() { cout << "學號:" << this->StudentNumber << "\t" << "宿舍:" << this->StudentDormitory << endl; } int Student::getTotal() { return s; } void Student::setTotal(int i) { s = s + i; } string Student::getStuId() { return StudentNumber; } //學生>>重載 istream& operator >> (istream& i, Student& p) { p.setPerson(); cout << "學號:" << endl; i >> p.StudentNumber; cout << "宿舍:" << endl; i >> p.StudentDormitory; return i; } /*添加 */ bool school::addPerson() { int n; cin >> n; if (n != 1 && n != 2) return false; if (n == 2) { Student t; cin >> t; t.setStatus("學生"); student[Student::getTotal()] = t; Student::setTotal(1); Person::setP(1); return true; } if (n == 1) { Employee e; cin >> e; e.setStatus("員工"); employee[Employee::getTotal()] = e; Employee::setTotal(1); Person::setP(1); return true; } return false; } bool school::getAdd() { return addPerson(); } /*刪除員工和學生,刪除對象*/ bool delS() { cout << "請輸入你要刪除的學生學號!" << endl; string s; cin >> s; int Sl = Student::getTotal(); for (int i = 0; i < Sl; i++) { if (s == student[i].getStuId()) { //所有數組元素前移 for (int j = i; j < Sl; j++) { student[j] = student[j + 1]; } Student::setTotal(-1); return true; } } return false; } bool delE() { cout << "請輸入你要刪除的員工工號!" << endl; string s; cin >> s; int El = Employee::getTotal(); for (int i = 0; i < El; i++) { if (s == employee[i].getEpyId()) { //所有數組元素前移 for (int j = i; j < El; j++) { employee[j] = employee[j + 1]; } Employee::setTotal(-1); return true; } } return false; } bool school::deletePerson() { int n; cin >> n; if (n != 1 && n != 2) return false; if (n == 1) { return delS(); } else return delE(); return false; } bool school::getDel() { return deletePerson(); } //查詢 Person school::queryPerson() { string s; cin >> s; Person p; for (int j = 0; j < Student::getTotal(); j++) { if (s == student[j].getName()) { student[j].setRs(j); p = (Person)student[j]; break; } } for (int j = 0; j < Employee::getTotal(); j++) { if (s == employee[j].getName()) { employee[j].setRe(j); p=(Person)employee[j]; break; } } return p; } Person school::getQue(){ return queryPerson(); } //菜單 bool doSwitch(char n) { if (n == '#')return false; switch (n) { case '1': cout << "----請說明你要添加的人員種類1.員工,2.學生------" << endl; if (school::getAdd()) cout << "添加成功!" << endl; else cout << "添加失敗!" << endl; break; case '2': cout << "----請說明你要刪除的人員種類1.學生,2.員工------" << endl; if (school::getDel())cout << "刪除成功!"<<endl; else cout << "刪除失敗" << endl; break; case '3': cout << "請輸入你要查詢人的名字:" << endl; Person p = school::getQue(); string s = p.getStatus(); if (s == "學生") { int j = p.getRs(); Student s = student[j]; Person p = (Person)s; p.show(); s.show(); } else if (s == "員工") { int j = p.getRe(); Employee s = employee[j]; Person p = (Person)s; p.show(); s.show(); } else cout << "找不到該人!" << endl; break; } return true; } char Cin() { cin >> n; return n; } void view() { cout << "------------歡迎來到學校人員管理系統------------" << "\n" << "----------------請選擇以下選項-------------------" << "\n" << "----------------1.添加人員-----------------------" << "\n" << "----------------2.刪除人員-----------------------" << "\n" << "----------------3.查詢人員-----------------------" << "\n" << "-------------------#退出!--------------------" << endl; }
Main.cpp撰寫main函數
#include"Head.h" int main() { while (true) { view(); if (!doSwitch(Cin())) { delete[] student; delete[] employee; break; } } return 0; }
關于“怎么用C++代碼實現學校人員管理系統”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“怎么用C++代碼實現學校人員管理系統”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。