这篇文章主要介绍了怎么用C++代码实现学校人员管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用C++代码实现学校人员管理系统文章都会有所收获,下面我们一起来看看吧。
题目要求
学校人员管理系统
建立一个学校类,在其中定义按照姓名增加人员的增加函数,删除人员的删除的函数和查询函数(以姓名为准)。
2、建立一个人员基类,要具有姓名和性别属性,并有输出函数(可定义为虚函数)。
3、建立一个员工类和一个学生类,均由人员类继承而来。要求:可以输出员工类(学生类)对象的属性(如:姓名、性别和工作证号码或学生学号),分别写出它们的输出函数的具体实现。
4、重载“>>”,实现用cin为员工类、学生类和在职学生类对象赋值。(选做)
5、编写main()主函数,测试上述功能,并以菜单方式实现对各种人员的增加、删除和查询(以姓名为线索)。
6、程序应采用多文件结构。
7、vs2019编译
实验源代码
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++代码实现学校人员管理系统”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。