-
2021-07-23 09:29:01
题目要求
学校人员管理系统
- 建立一个学校类,在其中定义按照姓名增加人员的增加函数,删除人员的删除的函数和查询函数(以姓名为准)。
- 建立一个人员基类,要具有姓名和性别属性,并有输出函数(可定义为虚函数)。
- 建立一个员工类和一个学生类,均由人员类继承而来。要求:可以输出员工类(学生类)对象的属性(如:姓名、性别和工作证号码或学生学号),分别写出它们的输出函数的具体实现。
- 重载“>>”,实现用cin为员工类、学生类和在职学生类对象赋值。(选做)
- 编写main()主函数,测试上述功能,并以菜单方式实现对各种人员的增加、删除和查询(以姓名为线索)。
- 程序应采用多文件结构。
- 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++
2011-12-31 20:16:06高校人员管理系统C++ cout************************************************************"; cout* *"; cout* 【欢迎使用湖北汽车工业学院人员信息查询系统】 *"; cout* *"; cout****************************... -
C++课程设计,高校人员信息管理系统(源代码+报告)
2019-01-11 13:08:51C++课程设计,高校人员信息管理系统。(包含源代码+报告)根据高校人员的特点,高校人员抽象类包含编号、姓名、年龄、性别、系部、联系方式等数据成员,以及显示、统计等成员函数。然后分别设计教师类、学生类和机关... -
C++高校人员管理系统课设.zip
2021-07-05 11:21:38高等学校不但要有浓厚的学风气息、雄厚的师资力量、先进精良硬件设备,与此同时,作为先进科学技术和优秀文化的承载者和传播者,更需要有一个执行效率高并且便于操作的现代信息化管理系统,以实现对高校各类人员进行... -
C++学校人员信息管理系统课程设计.doc
2020-04-28 20:57:06一个用C++写的学校人员管理系统,适合大一大二的课程设计,里面运用到了链表、文件读写等一些C++基本语法操作 -
高校人员信息管理系统.rar
2021-08-15 12:35:58大一 C++课程大作业 高校人员信息管理系统 含源代码、安装包、设计报告 -
C++ 校园管理系统、高校人员信息管理系统设计
2018-06-13 15:14:41某高校有四类员工教师、实验员、行政人员教师兼行政人员共有的信息包括编号、姓名、性别、年龄等。其中教师还包含的信息有所在系部、专业、职称实验员还包含的信息由所在实验室、职务行政人员还... -
高校人员信息管理系统(C++)
2020-03-29 17:18:28高校人员信息管理系统类的定义类的实现主函数 类的定义 //Person.h #ifndef _PERSON #define _PERSON #include<iostream> #include<iomanip> const int MAX=1000; using namespace std; class ...类的定义
//Person.h #ifndef _PERSON #define _PERSON #include<iostream> #include<iomanip> const int MAX=1000; using namespace std; class Person //基类 { protected: string m_ID; //编号 string m_name; //姓名 string m_sex; //性别 int m_age; //年龄 string m_dep; //部门 string m_tel; //联系方式 static int girlsum; //统计女生人数 static int boysum; //统计男生人数 public: Person(string ID=" ",string name=" ",string sex=" ",int age=0,string dep=" ",string tel=" "); string getID(); ~Person(); static int getSum(); string getSex(); string getName(); static int girlSum(); static int boySum(); virtual void set(); virtual void save()=0; virtual void show()=0; friend class StuManage; friend class TeaManage; friend class EmpManage; }; class Student:public Person //学生类 { protected: string m_cla; //班级 string m_spec; //专业 double m_score; //成绩 public: Student(string ID=" ",string name=" ",string sex=" ",int age=0,string dep=" ",string tel=" ",string cla=" ",string spec=" ",double score=0); ~Student(); void show(); void set(); void save(); friend class StuManage; }; class Teacher:public Person //教师类 { protected: string m_title; //职称 string m_teach; //专业 public: Teacher(string ID=" ",string name=" ",string sex=" ",int age=0,string dep=" ",string tel=" ",string title=" ",string teach=" "); ~Teacher(); void show(); void set(); void save(); friend class TeaManage; }; class Employee:public Person //职工类 { protected: string m_job; //职务 string m_grade; //级别 public: Employee(string ID=" ",string name=" ",string sex=" ",int age=0,string dep=" ",string tel=" ",string job=" ",string grade=" "); ~Employee(); void show(); void set(); void save(); friend class EmpManage; }; class StuManage { Student arr[MAX]; int len; //当前存储的个数 public: StuManage(){len=0;} void Add(); void Show(); //显示; void FindByID(); //查询; void FindByName(string name); void Change(); //修改; void DeleteByID(); //删除; void DeleteByName(string name); int Total(); //统计; void Save(); //保存到文件; void Read(); //从文件中读取 }; class TeaManage { Teacher arr[MAX]; int Tealen; //当前存储个数: public: TeaManage(){Tealen=0;} void Add(); //添加; void Show(); //显示; void FindByID(); //查询; void FindByName(string name); void Change(); //修改; void DeleteByID(); //删除; void DeleteByName(string name); int Total(); //统计; void Save(); //保存; void Read(); //从文件中读取; }; class EmpManage { Employee Emp[MAX]; int Emplen; //当前存储个数: public: EmpManage(){Emplen=0;} void Add(); //添加; void Show(); //显示; void FindByID(); //查询; void FindByName(string name); void Change(); //修改; void DeleteByID(); //删除; void DeleteByName(string name); int Total(); //统计; void Save(); //保存到文件; void Read(); //从文件中读取 }; #endif
类的实现
//Person.cpp #include<iostream> #include<string> #include<fstream> #include<iomanip> #include"Person.h" using namespace std; //int Person::sum = 0; int Person::girlsum = 0; int Person::boysum = 0; void stu_menu(); void tea_menu(); void emp_menu(); Person::Person(string ID,string name,string sex,int age,string dep,string tel) { m_ID = ID; m_name = name; m_sex = sex; m_age = age; m_dep = dep; m_tel = tel; //sum++; } Person::~Person() {} string Person::getID() { return m_ID; } string Person::getSex() { return m_sex; } string Person::getName() { return m_name; } void Person::set() { string sex; cout<<"请输入姓名:"; cin>>m_name; cout<<"请输入性别(M-男/W-女):"; while(1) { cin>>sex; if(sex == "M" ||sex == "W") { m_sex = sex; if(sex == "M") boysum++; else girlsum++; cout<<"请输入年龄:"; cin>>m_age; cout<<"请输入部门:"; cin>>m_dep; cout<<"请输入联系方式:"; cin>>m_tel; //sum++; break; } else cout<<"性别输入错误,请重新输入(M-男/W-女)!"<<endl; } } int Person::girlSum() { return girlsum; } int Person::boySum() { return boysum; } int Person::getSum() { return girlsum+boysum; } Student::Student(string ID,string name,string sex,int age,string dep,string tel,string cla,string spec,double score) { m_ID = "stu" + ID; m_name = name; m_sex = sex; m_age = age; m_dep = dep; m_tel = tel; m_cla = cla; //班级 m_spec = spec; //专业 m_score = score; //成绩 } Student::~Student() {} void Student::show() { cout<<"编号:"<<m_ID <<setw(10)<<"姓名:"<<m_name <<setw(12)<<"性别:"<<m_sex <<setw(10)<<"年龄:"<<m_age <<setw(10)<<"部门:"<<m_dep <<setw(10)<<"联系方式:"<<m_tel <<setw(10)<<"班级:"<<m_cla <<setw(10)<<"专业:"<<m_spec <<setw(10)<<"学分:"<<m_score<<endl<<endl; } void Student::set() { Person::set(); cout<<"请输入班级:"; cin>>m_cla; cout<<"请输入专业:"; cin>>m_spec; cout<<"请输入学分:"; cin>>m_score; } void Student::save() { fstream stuFile("stu.txt",ios::out); if(!stuFile) { cout<<"stu.txt can't open!"<<endl; return; } stuFile<<"编号:"<<m_ID <<setw(10)<<"姓名:"<<m_name <<setw(12)<<"性别:"<<m_sex <<setw(10)<<"年龄:"<<m_age <<setw(10)<<"部门:"<<m_dep <<setw(10)<<"联系方式:"<<m_tel <<setw(10)<<"班级:"<<m_cla <<setw(10)<<"专业:"<<m_spec <<setw(10)<<"学分:"<<m_score<<endl; stuFile.close(); } Teacher::Teacher(string ID,string name,string sex,int age,string dep,string tel,string title,string teach) { m_ID = "tea"+ID; m_name = name; m_sex = sex; m_age = age; m_dep = dep; m_tel = tel; m_title = title; m_teach = teach; } Teacher::~Teacher() {} void Teacher::set() { Person::set(); cout<<"请输入职称:"; cin>>m_title; cout<<"请输入专业:"; cin>>m_teach; } void Teacher::show() { cout<<"编号:"<<m_ID <<setw(10)<<"姓名:"<<m_name <<setw(12)<<"性别:"<<m_sex <<setw(10)<<"年龄:"<<m_age <<setw(10)<<"部门:"<<m_dep <<setw(10)<<"联系方式:"<<m_tel <<setw(10)<<"职称:"<<m_title <<setw(10)<<"专业:"<<m_teach<<endl<<endl; } void Teacher::save() { fstream teaFile("tea.txt",ios::out); if(!teaFile) { cout<<"tea.txt can't open!"<<endl; return; } teaFile<<"编号:"<<m_ID <<setw(10)<<"姓名:"<<m_name <<setw(12)<<"性别:"<<m_sex <<setw(10)<<"年龄:"<<m_age <<setw(10)<<"部门:"<<m_dep <<setw(10)<<"联系方式:"<<m_tel <<setw(10)<<"职称:"<<m_title <<setw(10)<<"专业:"<<m_teach<<endl; teaFile.close(); } Employee::Employee(string ID,string name,string sex,int age,string dep,string tel,string job,string grade) { m_ID = "emp"+ID; m_name = name; m_sex = sex; m_age = age; m_dep = dep; m_tel = tel; m_job = job; m_grade = grade; } Employee::~Employee() {} void Employee::show() { cout<<"编号:"<<m_ID <<setw(10)<<"姓名:"<<m_name <<setw(12)<<"性别:"<<m_sex <<setw(10)<<"年龄:"<<m_age <<setw(10)<<"部门:"<<m_dep <<setw(10)<<"联系方式:"<<m_tel <<setw(10)<<"职务:"<<m_job <<setw(10)<<"级别:"<<m_grade<<endl<<endl; } void Employee::set() { Person::set(); cout<<"请输入职务:"; cin>>m_job; cout<<"请输入级别:"; cin>>m_grade; } void Employee::save() { ofstream empFile("emp.txt",ios::out); if(!empFile) { cout<<"emp.txt can't open!"<<endl; return; } empFile<<"编号:"<<m_ID <<setw(10)<<"姓名:"<<m_name <<setw(12)<<"性别:"<<m_sex <<setw(10)<<"年龄:"<<m_age <<setw(10)<<"部门:"<<m_dep <<setw(10)<<"联系方式:"<<m_tel <<setw(10)<<"职务:"<<m_job <<setw(10)<<"级别:"<<m_grade<<endl; empFile.close(); } void StuManage::Add() { string ID; if(len>=MAX) { cout<<"学生已满"<<endl; return; } Student stu; loop: cout<<"请输入编号:"; cin>>ID; stu.m_ID = "stu"+ID; for(int i=0;i<len;i++) { if(stu.getID()==arr[i].getID()) { cout<<"该编号的人员已存在,请重新输入编号!!!"<<endl; goto loop; } } stu.set(); arr[len]=stu; len++; cout<<"学生信息添加成功!"<<endl; cout<<"学生学号以stu开头,已自动添加,您的学号为:"<<stu.getID()<<endl; } void StuManage::Show() { if(len == 0) { cout<<"无学生!"<<endl; return; } for(int i=0;i<len;i++) arr[i].show(); } void StuManage::FindByID() { if(len == 0) { cout<<"无学生!"<<endl; return; } cout<<"请输入要查找的学生编号:"<<endl; string num; cin>>num; for(int i=0;i<len;i++) { if(num == arr[i].getID()) { arr[i].show(); return; } } cout<<"无学生信息!"<<endl; } void StuManage::FindByName(string name) { if(len == 0) { cout<<"无学生!"<<endl; return; } int flag = 0; for(int i=0;i<len;i++) { if(name == arr[i].getName()) { flag = 1; arr[i].show(); } } if(!flag) cout<<"无学生信息!"<<endl; } void StuManage::Change() { string name,sex,ID,dep,tel,cla,spec; int ch,age,flag,t=1; double score; if(len == 0) { cout<<"无学生!"<<endl; return; } string num; cout<<"请输入要修改的学生编号:"<<endl; cin>>num; Student stu; for(int i=0;i<len;i++) { if(num == arr[i].getID()) { t=0; stu_menu(); do { flag = 0; cout<<"请选择需修改的项目:"<<endl; cin>>ch; switch(ch) { case 1: cout<<"请输入姓名:"; cin>>name; arr[i].m_name=name; break; case 2: { cout<<"请输入性别(M-男/W-女):"; cin>>sex; if(sex == "W" && sex != arr[i].m_sex) { Person::girlsum++; Person::boysum--; } else if(sex == "M" && sex != arr[i].m_sex) { Person::boysum++; Person::girlsum--; } arr[i].m_sex=sex; break; } case 3: { cout<<"请输入年龄:"; cin>>age; arr[i].m_age=age; break; } case 4: cout<<"请输入部门:"; cin>>dep; arr[i].m_dep=dep; break; case 5: cout<<"请输入联系方式:"; cin>>tel; arr[i].m_tel=tel; break; case 6: cout<<"请输入班级:"; cin>>cla; arr[i].m_cla=cla; break; case 7: cout<<"请输入专业:"; cin>>spec; arr[i].m_spec=spec; break; case 8: cout<<"请输入学分:"; cin>>spec; arr[i].m_score=score; break; case 9: { cout<<"请输入编号:"; cin>>ID; for(int j=0;j<len;j++) if(ID==arr[j].getID()&&i!=j) { flag = 1; cout<<"该编号的人员已存在,修改失败!!!"<<endl; break; } if(!flag) arr[i].m_ID=ID; break; } case 0: break; } cout<<"修改成功"<<endl; break; }while(ch>=0 || ch <= 9); } } if(t) cout<<"找不到该学生"<<endl; } void StuManage::DeleteByID() { if(len == 0) { cout<<"无学生信息!"<<endl; return; } int flag=0; string num; cout<<"请输入要删除的学生编号:"<<endl; cin>>num; for(int i=0;i<len;i++) { if(num == arr[i].getID()) { flag=1; for(int j=i;j<len-1;j++) { arr[j]=arr[j+1]; } len--; if(arr[i].m_sex == "M") Person::boysum--; else Person::girlsum--; break; } } if(!flag) cout<<"无此学生!"<<endl; else cout<<"删除成功"<<endl; } void StuManage::DeleteByName(string name) { if(len == 0) { cout<<"无学生!"<<endl; return; } int flag = 0; for(int i=0;i<len;i++) { if(name == arr[i].getName()) { flag=1; for(int j=i;j<len-1;j++) { arr[j]=arr[j+1]; } len--; if(arr[i].m_sex == "M") Person::boysum--; else Person::girlsum--; i--; } } if(!flag) cout<<"没有叫"<<name<<"的学生"<<endl; else cout<<"删除成功"<<endl; } int StuManage::Total() { int manNum = 0, girlNum = 0; cout<<"学生类人数为:"<<len<<endl; for(int i=0;i<len;i++) { if(arr[i].m_sex=="M") manNum++; else girlNum++; } cout<<"男学生人数为"<<manNum<<endl; cout<<"女学生人数为"<<girlNum<<endl; return len; } void StuManage::Save() { fstream stuFile("stu.txt",ios::out); if(!stuFile) { cout<<"打开失败!"<<endl; return; } cout<<"打开成功!"<<endl; for(int i=0;i<len;i++) { stuFile<<arr[i].m_ID <<setw(8)<<arr[i].m_name <<setw(8)<<arr[i].m_sex <<setw(8)<<arr[i].m_age <<setw(8)<<arr[i].m_dep <<setw(8)<<arr[i].m_tel <<setw(8)<<arr[i].m_cla <<setw(8)<<arr[i].m_spec <<setw(8)<<arr[i].m_score <<endl; } cout<<"写入成功!"<<endl; stuFile.close(); } void StuManage::Read() { ifstream in("stu.txt",ios::in); if(!in) { cout<<"打开失败!"<<endl; return; } int i = -1; len = -1; while(!in.eof()) { i++; in>>arr[i].m_ID >>arr[i].m_name >>arr[i].m_sex >>arr[i].m_age >>arr[i].m_dep >>arr[i].m_tel >>arr[i].m_cla >>arr[i].m_spec >>arr[i].m_score; len++; } cout<<"导入成功"<<endl; for(i=0;i<len;i++) { if(arr[i].m_sex=="M") Person::boysum++; else Person::girlsum++; } in.close(); }; void TeaManage::Add() { string ID; if(Tealen>=MAX) { cout<<"教师已满"<<endl; return; } Teacher tea; loop: cout<<"请输入编号:"; cin>>ID; tea.m_ID = "tea"+ID; for(int i=0;i<Tealen;i++) { if(tea.getID()==arr[i].getID()) { cout<<"该编号的人员已存在,请重新输入编号!!!"<<endl; goto loop; } } tea.set(); arr[Tealen]=tea; Tealen++; cout<<"教师添加成功!"<<endl; cout<<"教师编号以tea开头,已自动添加,您的编号为:"<<tea.getID()<<endl; } void TeaManage::Show() { if(Tealen == 0) { cout<<"无教师信息!"<<endl; return; } for(int i=0;i<Tealen;i++) arr[i].show(); } void TeaManage::FindByID() { if(Tealen == 0) { cout<<"无教师!"<<endl; return; } cout<<"请输入要查找的编号:"<<endl; string num; cin>>num; for(int i=0;i<Tealen;i++) { if(num == arr[i].getID()) { arr[i].show(); return; } } cout<<"无教师信息!"<<endl; } void TeaManage::FindByName(string name) { if(Tealen == 0) { cout<<"无教师!"<<endl; return; } int flag = 0; for(int i=0;i<Tealen;i++) { if(name == arr[i].getName()) { flag = 1; arr[i].show(); } } if(!flag) cout<<"无教师信息!"<<endl; } void TeaManage::Change() { string name,sex,ID,dep,tel,title,teach; int ch,age,flag,t=1; if(Tealen == 0) { cout<<"无教师!"<<endl; return; } string num; cout<<"请输入要修改的教师编号:"<<endl; cin>>num; Teacher tea; for(int i=0;i<Tealen;i++) { if(num == arr[i].getID()) { t=0; tea_menu(); do { flag = 0; cout<<"请选择需修改的项目:"<<endl; cin>>ch; switch(ch) { case 1: cout<<"请输入姓名:"; cin>>name; arr[i].m_name=name; break; case 2: { cout<<"请输入性别(M-男/W-女):"; cin>>sex; if(sex == "W" && sex != arr[i].m_sex) { Person::girlsum++; Person::boysum--; } else if(sex == "M" && sex != arr[i].m_sex) { Person::boysum++; Person::girlsum--; } arr[i].m_sex=sex; break; } case 3: { cout<<"请输入年龄:"; cin>>age; arr[i].m_age=age; break; } case 4: cout<<"请输入部门:"; cin>>dep; arr[i].m_dep=dep; break; case 5: cout<<"请输入联系方式:"; cin>>tel; arr[i].m_tel=tel; break; case 6: cout<<"请输入职称:"; cin>>title; arr[i].m_title=title; break; case 7: cout<<"请输入专业:"; cin>>teach; arr[i].m_teach=teach; break; case 8: { cout<<"请输入编号:"; cin>>ID; for(int j=0;j<Tealen;j++) if(ID==arr[j].getID()&&i!=j) { flag = 1; cout<<"该编号的人员已存在,修改失败!!!"<<endl; break; } if(!flag) arr[i].m_ID=ID; break; } case 0: break; } cout<<"修改成功"<<endl; break; }while(ch>=0 || ch <= 8); } } if(t) cout<<"找不到该教师"<<endl; } void TeaManage::DeleteByID() { if(Tealen == 0) { cout<<"无教师信息!"<<endl; return; } int flag=0; string num; cout<<"请输入要删除的教师编号:"<<endl; cin>>num; for(int i=0;i<Tealen;i++) { if(num == arr[i].getID()) { flag=1; for(int j=i;j<Tealen-1;j++) { arr[j]=arr[j+1]; } Tealen--; if(arr[i].m_sex == "M") Person::boysum--; else Person::girlsum--; break; } } if(!flag) cout<<"无此人!"<<endl; else cout<<"删除成功"<<endl; } void TeaManage::DeleteByName(string name) { if(Tealen == 0) { cout<<"无教师!"<<endl; return; } int flag = 0; for(int i=0;i<Tealen;i++) { if(name == arr[i].getName()) { flag=1; for(int j=i;j<Tealen-1;j++) { arr[j]=arr[j+1]; } Tealen--; if(arr[i].m_sex == "M") Person::boysum--; else Person::girlsum--; i--; } } if(!flag) cout<<"没有叫"<<name<<"的教师"<<endl; else cout<<"删除成功"<<endl; } int TeaManage::Total() { int manNum = 0, girlNum = 0; cout<<"教师类人数为:"<<Tealen<<endl; for(int i=0;i<Tealen;i++) { if(arr[i].m_sex=="M") manNum++; else girlNum++; } cout<<"男教师人数为"<<manNum<<endl; cout<<"女教师人数为"<<girlNum<<endl; return Tealen; } void TeaManage::Save() { fstream teaFile("tea.txt",ios::out); if(!teaFile) { cout<<"打开失败!"<<endl; return; } cout<<"打开成功!"<<endl; for(int i=0;i<Tealen;i++) { teaFile<<arr[i].m_ID <<setw(8)<<arr[i].m_name <<setw(8)<<arr[i].m_sex <<setw(8)<<arr[i].m_age <<setw(8)<<arr[i].m_dep <<setw(8)<<arr[i].m_tel <<setw(8)<<arr[i].m_title <<setw(8)<<arr[i].m_teach <<endl; } cout<<"写入成功!"<<endl; teaFile.close(); } void TeaManage::Read() { ifstream in("tea.txt",ios::in); if(!in) { cout<<"打开失败!"<<endl; return; } int i = -1; Tealen = -1; while(!in.eof()) { i++; in>>arr[i].m_ID >>arr[i].m_name >>arr[i].m_sex >>arr[i].m_age >>arr[i].m_dep >>arr[i].m_tel >>arr[i].m_title >>arr[i].m_teach; Tealen++; } cout<<"导入成功"<<endl; for(i=0;i<Tealen;i++) { if(arr[i].m_sex=="M") Person::boysum++; else Person::girlsum++; } in.close(); }; void EmpManage::Add() { string ID; if(Emplen>=MAX) { cout<<"职工已满"<<endl; return; } Employee emp; loop: cout<<"请输入编号:"; cin>>ID; emp.m_ID = "emp"+ID; for(int i=0;i<Emplen;i++) { if(emp.getID()==Emp[i].getID()) { cout<<"该编号的人员已存在,请重新输入编号!!!"<<endl; goto loop; } } emp.set(); Emp[Emplen]=emp; Emplen++; cout<<"职工添加成功!"<<endl; cout<<"职工编号以emp开头,已自动添加,您的编号为:"<<emp.getID()<<endl; } void EmpManage::Show() { if(Emplen == 0) { cout<<"无职工信息!"<<endl; return; } for(int i=0;i<Emplen;i++) Emp[i].show(); } void EmpManage::FindByID() { if(Emplen == 0) { cout<<"无职工信息!"<<endl; return; } cout<<"请输入要查找的编号:"<<endl; string num; cin>>num; for(int i=0;i<Emplen;i++) { if(num == Emp[i].getID()) { Emp[i].show(); return; } } cout<<"查无此人!"<<endl; } void EmpManage::FindByName(string name) { if(Emplen == 0) { cout<<"无职工信息!"<<endl; return; } int flag = 0; for(int i=0;i<Emplen;i++) { if(name == Emp[i].getName()) { flag = 1; Emp[i].show(); } } if(!flag) cout<<"查无此人!"<<endl; } void EmpManage::Change() { string name,sex,ID,dep,tel,job,grade; int ch,age,flag,t=1; if(Emplen == 0) { cout<<"无职工信息!"<<endl; return; } string num; cout<<"请输入要查找的职工编号:"<<endl; cin>>num; Employee emp; for(int i=0;i<Emplen;i++) { if(num == Emp[i].getID()) { t=0; emp_menu(); do { flag = 0; cout<<"请选择需修改的项目:"<<endl; cin>>ch; switch(ch) { case 1: cout<<"请输入姓名:"; cin>>name; Emp[i].m_name=name; break; case 2: { cout<<"请输入性别(M-男/W-女):"; cin>>sex; if(sex == "W" && sex != Emp[i].m_sex) { Person::girlsum++; Person::boysum--; } else if(sex == "M" && sex != Emp[i].m_sex) { Person::boysum++; Person::girlsum--; } Emp[i].m_sex=sex; break; } case 3: { cout<<"请输入年龄:"; cin>>age; Emp[i].m_age=age; break; } case 4: cout<<"请输入部门:"; cin>>dep; Emp[i].m_dep=dep; break; case 5: cout<<"请输入联系方式:"; cin>>tel; Emp[i].m_tel=tel; break; case 6: cout<<"请输入职务:"; cin>>job; Emp[i].m_job=job; break; case 7: cout<<"请输入级别:"; cin>>grade; Emp[i].m_grade=grade; break; case 8: { cout<<"请输入编号:"; cin>>ID; for(int j=0;j<Emplen;j++) if(ID==Emp[j].getID()&&i!=j) { flag = 1; cout<<"该编号的人员已存在,修改失败!!!"<<endl; break; } if(!flag) Emp[i].m_ID=ID; break; } case 0: break; } cout<<"修改成功"<<endl; break; }while(ch>=0 || ch <= 8); } } if(t) cout<<"找不到该职工"<<endl; } void EmpManage::DeleteByID() { if(Emplen == 0) { cout<<"无数据!"<<endl; return; } int flag=0; string num; cout<<"请输入要删除的职工编号:"<<endl; cin>>num; for(int i=0;i<Emplen;i++) { if(num == Emp[i].getID()) { flag=1; for(int j=i;j<Emplen-1;j++) { Emp[j]=Emp[j+1]; } Emplen--; if(Emp[i].m_sex == "M") Person::boysum--; else Person::girlsum--; break; } } if(!flag) cout<<"无此职工!"<<endl; else cout<<"删除成功"<<endl; } void EmpManage::DeleteByName(string name) { if(Emplen == 0) { cout<<"无职工!"<<endl; return; } int flag = 0; for(int i=0;i<Emplen;i++) { if(name == Emp[i].getName()) { flag=1; for(int j=i;j<Emplen-1;j++) { Emp[j]=Emp[j+1]; } Emplen--; if(Emp[i].m_sex == "M") Person::boysum--; else Person::girlsum--; i--; } } if(!flag) cout<<"没有叫"<<name<<"的职工"<<endl; else cout<<"删除成功"<<endl; } int EmpManage::Total() { int manNum = 0, girlNum = 0; cout<<"职工类人数为:"<<Emplen<<endl; for(int i=0;i<Emplen;i++) { if(Emp[i].m_sex=="M") manNum++; else girlNum++; } cout<<"男职工人数为"<<manNum<<endl; cout<<"女职工人数为"<<girlNum<<endl; return Emplen; } void EmpManage::Save() { fstream empFile("emp.txt",ios::out); if(!empFile) { cout<<"打开失败!"<<endl; return; } cout<<"打开成功!"<<endl; for(int i=0;i<Emplen;i++) { empFile<<Emp[i].m_ID <<setw(8)<<Emp[i].m_name <<setw(8)<<Emp[i].m_sex <<setw(8)<<Emp[i].m_age <<setw(8)<<Emp[i].m_dep <<setw(8)<<Emp[i].m_tel <<setw(8)<<Emp[i].m_job <<setw(8)<<Emp[i].m_grade <<endl; } cout<<"写入成功!"<<endl; empFile.close(); } void EmpManage::Read() { ifstream in("emp.txt",ios::in); if(!in) { cout<<"打开失败!"<<endl; return; } int i=-1; Emplen = -1; while(!in.eof()) { i++; in>>Emp[i].m_ID >>Emp[i].m_name >>Emp[i].m_sex >>Emp[i].m_age >>Emp[i].m_dep >>Emp[i].m_tel >>Emp[i].m_job >>Emp[i].m_grade; Emplen++; } cout<<"导入成功"<<endl; for(i=0;i<Emplen;i++) { if(Emp[i].m_sex=="M") Person::boysum++; else Person::girlsum++; } in.close(); }; void menu1() { system("cls"); cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; cout<<" 高校人员信息管理系统 "<<endl; cout<<" 1、增加"<<endl; cout<<" 2、查找"<<endl; cout<<" 3、删除"<<endl; cout<<" 4、修改"<<endl; cout<<" 5、显示"<<endl; cout<<" 6、统计"<<endl; cout<<" 7、保存"<<endl; cout<<" 8、读取"<<endl; cout<<" 0、退出"<<endl; cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; cout<<endl<<endl<<endl; } void stu_menu() { cout<<" 1、姓名"<<endl; cout<<" 2、性别"<<endl; cout<<" 3、年龄"<<endl; cout<<" 4、部门"<<endl; cout<<" 5、联系方式"<<endl; cout<<" 6、班级"<<endl; cout<<" 7、专业"<<endl; cout<<" 8、学分"<<endl; cout<<" 9、编号"<<endl; cout<<" 0、退出"<<endl; cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; } void tea_menu() { cout<<" 1、姓名"<<endl; cout<<" 2、性别"<<endl; cout<<" 3、年龄"<<endl; cout<<" 4、部门"<<endl; cout<<" 5、联系方式"<<endl; cout<<" 6、职称"<<endl; cout<<" 7、专业"<<endl; cout<<" 0、退出"<<endl; cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; } void emp_menu() { cout<<" 1、姓名"<<endl; cout<<" 2、性别"<<endl; cout<<" 3、年龄"<<endl; cout<<" 4、部门"<<endl; cout<<" 5、联系方式"<<endl; cout<<" 6、职务"<<endl; cout<<" 7、级别"<<endl; cout<<" 0、退出"<<endl; cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; }
主函数
//main.cpp #include<iostream> #include<string> #include<stdlib.h> #include<fstream> #include<iomanip> #include"Person.h" using namespace std; int main() { int op,choice1,choice2,choice3,choice4,choice5,choice6; StuManage a; TeaManage b; EmpManage c; void menu1(); //void stu_menu(); while(1) { menu1(); do { cout<<"请输入选择:"<<endl; cin>>op; }while(op<0||op>8); switch(op) { case 1://增加 { do { cout<<"请输入要增加的人员1-学生 2-教师 3-职工"<<endl; cin>>choice1; switch(choice1) { case 1: { cout<<"输入新添加的学生的信息"<<endl; a.Add(); } system("pause"); break; case 2: { cout<<"输入新添加的教师的信息"<<endl; b.Add(); } system("pause"); break; case 3: { cout<<"输入新添加的职工的信息"<<endl; c.Add(); } system("pause"); break; default: { cout<<"输入正确选项!"<<endl; } } }while(choice1 <1 || choice1 > 3); } break; case 2://查找 { int c2; do { cout<<"请选择查找方式:1-按编号查找 2-按姓名查找"<<endl; cin>>c2; switch(c2) { case 1: { cout<<"请输入要查找的人员1-学生 2-教师 3-职工"<<endl; cin>>choice2; switch(choice2) { case 1: { cout<<"学生信息"<<endl; a.FindByID(); } system("pause"); break; case 2: { cout<<"教师信息"<<endl; b.FindByID(); } system("pause"); break; case 3: { cout<<"职工信息"<<endl; c.FindByID(); } system("pause"); break; default: { cout<<"选项输入错误!"<<endl; } system("pause"); break; }break; } case 2: { string name; cout<<"请输入要查找的姓名:"; cin>>name; a.FindByName(name); b.FindByName(name); c.FindByName(name); } break; } }while(c2 <1 || c2 > 2); break; } case 3://删除 { int c3; do { cout<<"请选择删除方式:1-按编号删除 2-按姓名删除"<<endl; cin>>c3; switch(c3) { case 1: { cout<<"请输入要删除的人员1-学生 2-教师 3-职工"<<endl; cin>>choice3; switch(choice3) { case 1: { a.DeleteByID(); } system("pause"); break; case 2: { b.DeleteByID(); } system("pause"); break; case 3: { c.DeleteByID(); } system("pause"); break; default: { cout<<"输入正确选项!"<<endl; } system("pause"); break; }break; } case 2: { string name; cout<<"请输入要删除的姓名:"; cin>>name; a.DeleteByName(name); b.DeleteByName(name); c.DeleteByName(name); } //system("pause"); break; } }while(c3 <1 || c3 > 2); break; } case 4://修改 { do { cout<<"请输入要修改的人员1-学生 2-教师 3-职工"<<endl; cin>>choice4; switch(choice4) { case 1: { a.Change(); } system("pause"); break; case 2: { b.Change(); } system("pause"); break; case 3: { c.Change(); } system("pause"); break; default: { cout<<"输入正确选项!"<<endl; } } }while(choice4 <1 || choice4 > 3); } break; case 5://显示 { do { cout<<"请输入要显示的人员1-学生 2-教师 3-职工 4-全部"<<endl; cin>>choice5; switch(choice5) { case 1: { if(a.Total()!=0) cout<<"学生信息"<<endl; a.Show(); } system("pause"); break; case 2: { if(b.Total()!=0) cout<<"教师信息"<<endl; b.Show(); } system("pause"); break; case 3: { if(c.Total()!=0) cout<<"职工信息"<<endl; c.Show(); } system("pause"); break; case 4: { if(a.Total()!=0) cout<<"学生信息"<<endl; a.Show(); if(b.Total()!=0) cout<<"教师信息"<<endl; b.Show(); if(c.Total()!=0) cout<<"职工信息"<<endl; c.Show(); } system("pause"); break; default: { cout<<"输入正确选项!"<<endl; } }break; }while(choice5 <1 || choice5 > 3); }break; case 6://统计 { cout<<"总人数:"<<Person::getSum() <<setw(15)<<"女性总人数:"<<Person::girlSum() <<setw(15)<<"男性总人数:"<<Person::boySum()<<endl<<endl; if(Person::getSum() != 0) { do { cout<<"请输入要统计的人员1-学生 2-教师 3-职工"<<endl; cin>>choice6; switch(choice6) { case 1: { cout<<"学生信息"<<endl; a.Total(); } system("pause"); break; case 2: { cout<<"教师信息"<<endl; b.Total(); } system("pause"); break; case 3: { cout<<"职工信息"<<endl; c.Total(); } system("pause"); break; default: { cout<<"输入正确选项!"<<endl; } } }while(choice6 <1 || choice6 > 3); } }break; case 7://保存 a.Save(); b.Save(); c.Save(); break; case 8://读取 a.Read(); b.Read(); c.Read(); break; case 0: cout<<"退出成功!"<<endl; return 0; } cout<<endl<<"敲回车继续"<<endl; cin.sync(); cin.get(); } return 0; }
-
C++高校人员信息管理系统.pdf
2020-06-26 16:11:59实用文档 基于C++的面向对象程序设计实例 课程设计报告 课程名称 C++ 面向对象程序设计 课题名称 高校人员信息管理系统 专 业 计算机科学与技术 班 级 1220541 学 号 122054113 姓 名 苗鹏程 指导教师 侯欢欢 实用... -
c++学校人事管理系统.zip
2020-04-27 22:29:09C++学校人事管理系统,C++学校人事管理系统,期末作业,附有源码、实践报告,都调试过了没有问题,有问题可以私信我。 -
C++高校人员信息管理系统.zip
2020-06-27 17:51:48广州大学C++面向对象课设题目4 高校人员信息管理系统,设计一个程序,对高校人员的信息进行管理。通过该系统实现对人员基本信息的录入、保存、删除、修改、查询等操作(含文件流,对文件读入保存等)。 -
人员信息管理系统c++版(超详细)
2019-05-07 11:41:37人员信息管理系统C++版超详细。根据高校人员的特点,高校人员抽象类包含编号、姓名、年龄、性别、系部、联系方式等数据成员,以及显示、统计等成员函数。然后分别设计教师类、学生类和机关人员类,它们的基类均为... -
c++高校职工工资管理系统
2020-07-11 16:34:44c++的高校员工管理系统,使用类、继承还有文件的相关的知识。 功能:录入,查找,修改,删除,保存信息。 -
C++高校公车管理系统 .zip
2020-08-21 22:16:40三、主要内容、功能及技术指标 1、要求利用面向对象的编程思想来完成系统的设计;...设计“高校公车管理系统”,使之能提供以下功能: 1)添加车辆; 2)查询车辆:按制造公司查询、按型号查询、按车辆编号查询; -
高校社团管理系统C++
2019-06-23 23:48:36(1)社团招收新成员 (2)修改社团相应信息 (3)老成员离开社团 (4)查询社团情况 (5)统计社团成员数 -
C++图书借阅管理系统(报告书+源程序).
2021-01-13 07:00:23图书借阅管理系统是一个学校不可缺少的部分,它的内容对于学校的管理者和读者来说都至关重要,直接关系到图书的借用率,所以开发图书管理系统能够为管理员和读者提供充足的信息和快捷的查询手段。 编写程序系统主要... -
课程设计下:利用C++实现高校人员信息管理系统
2020-11-09 19:20:31高校人员信息管理系统需求分析实现功能如下:系统环境:数据结构设计:界面显示:代码如下: 需求分析 该系统所应包含的信息有以下一些: 人员的基本信息: 编号、姓名、年龄、性别、职称等。 实现功能如下: 各种基本...需求分析
该系统所应包含的信息有以下一些:
人员的基本信息:
编号、姓名、年龄、性别、职称等。实现功能如下:
各种基本数据的录入。
各种基本数据的修改。即:允许对已经录入的数据重新进行编辑、修改。
例如修改信息栏中张三的基本信息
各种基本数据的删除。例如将张三的信息从信息栏中删除
基于各种数据的查询。
基于各种数据的统计。
数据导出:将信息栏中信息导出到指定文件。
数据导入:从指定文件导入信息到信息栏中。系统环境:
采用C++语言实现,开发环境为Microsoft Visual Studio 2010,可以运行在操作系统windows10。
数据结构设计:
界面显示:
代码如下:
#include "stdafx.h" #include "teacher.h" #include "tea.h" #include "test.h" #include "po.h" //教师管理界面 void tea1(tea TEA) { int b,v=Tea3; char c; do{ cout<<"教师管理界面"<<endl; cout<<"________________________________________________________________________________"<<endl; cout<<"1.添加 "; cout<<"2.查询 "; cout<<"3.显示 "; cout<<"4.编辑 "; cout<<"5.删除 "; cout<<"6.统计 "; cout<<"7.保存 "; cout<<"8.读取 "; cout<<"0.退出 "<<endl; cout<<"________________________________________________________________________________"<<endl; cout<<"请选择:";cin>>b; switch(b) { case 1:TEA.Add(v);system("pause");break; case 2:TEA.Search();system("pause");break; case 3:TEA.Show();system("pause");break; case 4:TEA.Edit();system("pause");break; case 5:TEA.Delete(v);system("pause");break; case 6:cout<<"共有教师人数:"<<v<<endl;system("pause");break; case 7:TEA.Save();system("pause");break; case 8:TEA.Read(v);system("pause");break; default:cout<<"\n 错误!"<<endl;system("pause");break; case 0:break; } cin.clear(); c=getchar(); system("cls"); }while(b!=0); } //实验员管理界面 void test1(test TES) { int b,v=Testop; char c; do{ cout<<"实验员管理界面"<<endl; cout<<"________________________________________________________________________________"<<endl; cout<<"1.添加 "; cout<<"2.查询 "; cout<<"3.显示 "; cout<<"4.编辑 "; cout<<"5.删除 "; cout<<"6.统计 "; cout<<"7.保存 "; cout<<"8.读取 "; cout<<"0.退出 "<<endl; cout<<"________________________________________________________________________________"<<endl; cout<<"请选择:";cin>>b; switch(b) { case 1:TES.Add(v);system("pause");break; case 2:TES.Search();system("pause");break; case 3:TES.Show();system("pause");break; case 4:TES.Edit();system("pause");break; case 5:TES.Delete(v);system("pause");break; case 6:cout<<"共有实验员人数:"<<v<<endl;system("pause");break; case 7:TES.Save();system("pause");break; case 8:TES.Read(v);system("pause");break; default:cout<<"\n错误!"<<endl;system("pause");break; case 0:break; } cout<<"按回车键返回"<<endl; cin.clear(); c=getchar(); system("cls"); }while(b!=0); } //行政人员管理界面 void po1(po PO) { int b,v=Policersop; char c; do{ cout<<"行政人员管理界面"<<endl; cout<<"________________________________________________________________________________"<<endl; cout<<"1.添加 "; cout<<"2.查询 "; cout<<"3.显示 "; cout<<"4.编辑 "; cout<<"5.删除 "; cout<<"6.统计 "; cout<<"7.保存 "; cout<<"8.读取 "; cout<<"0.退出 "<<endl; cout<<"________________________________________________________________________________"<<endl; cout<<"请选择:";cin>>b; switch(b) { case 1:PO.Add(v);system("pause");break; case 2:PO.Search();system("pause");break; case 3:PO.Show();system("pause");break; case 4:PO.Edit();system("pause");break; case 5:PO.Delete(v);system("pause");break; case 6:cout<<"共有行政员人数:"<<v<<endl;system("pause");break; case 7:PO.Save();system("pause");break; case 8:PO.Read(v);system("pause");break; default:cout<<"\n 错误!"<<endl;system("pause");break; case 0:break; } cin.clear(); c=getchar(); system("cls"); }while(b!=0); } //主函数 int main() { tea tea2; test tes2; po po2; int a; char c; while(1) { system("cls"); cout<<endl; cout<<" ****欢迎使用高校人员信息管理系统**** "<<endl; cout<<" \n\n\n"<<endl; cout<<" 1.教师管理 "<<endl; cout<<" 2.实验员管理 "<<endl; cout<<" 3.行政员管理 "<<endl; cout<<" 0.退出 "<<endl; cout<<"\n\n\n"<<endl; cout<<"请选择:";cin>>a; switch(a) { case 1:system("cls");tea1(tea2);break; case 2:system("cls");test1(tes2);break; case 3:system("cls");po1(po2);break; case 0:exit(0);break; default:cout<<"\n 错误!"<<endl; system("pause"); c=getchar(); cin.clear(); break; } } return 0; }
以下是类:
persion.h#include<fstream> #include<iostream> #include<string> using namespace std; static int Tea3; static int Testop; static int Policersop; #define z 666 class person { public: int num; string name; string sex; int age; };
tester.h
#include "person.h" class tester : virtual public person { public: string testroom; string post; void Input() { cout<<"请再次输入编号以确定:";cin>>num; cout<<"请输入姓名:";cin>>name; cout<<"请输入性别:";cin>>sex; cout<<"请输入年龄:";cin>>age; cout<<"请输入该实验员所在实验室:";cin>>testroom; cout<<"请输入该实验员的职务:";cin>>post; } void Output() { cout<<"编号: "<<num<<" "<<"姓名: "<<name<<" "<<"性别: "<<sex<<" "<<"年龄: "<<age<< " "<<"所在实验室: "<<testroom<<" "<<"职务: "<<post<<endl; } };
policer.h
#include "person.h" class policer : virtual public person { public: string polices; string post1; void Input() { cout<<"请再次输入编号以确定:";cin>>num; cout<<"请输入姓名:";cin>>name; cout<<"请输入性别:";cin>>sex; cout<<"请输入年龄:";cin>>age; cout<<"请输入政治面貌:";cin>>polices; cout<<"请输入职称:";cin>>post1; } void Output() { cout<<"编号: "<<num<<" "<<"姓名: "<<name<<" "<<"性别: "<<sex<<" "<<"年龄: "<<age<< " "<<"政治面貌: "<<polices<<" "<<"职称: "<<post1<<endl; } };
teacher.h
#include "person.h" class teacher : virtual public person { public: string dept; string special; string title; void Input() { cout<<"请再次输入编号以确定:";cin>>num; cout<<"请输入姓名:";cin>>name; cout<<"请输入性别:";cin>>sex; cout<<"请输入年龄:";cin>>age; cout<<"请输入该教师所在系别:";cin>>dept; cout<<"请输入该教师专业:";cin>>special; cout<<"请输入该教师的职称:";cin>>title; } void Output() { cout<<"编号: "<<num<<" "<<"姓名: "<<name<<" "<<"性别: "<<sex<<" "<<"年龄: "<<age<< " "<<"所在系: "<<dept<<" "<<"专业: "<<special<<" "<<"职称: "<<title<<endl; } };
方法类:
po.h
#include "policer.h" class po { public: policer Po[z]; int Add(int &w); int Search(); void Show(); void Edit(); int Delete(int &w); void Save(); int Read(int &w); };
po.cpp
#include "StdAfx.h" #include "po.h" int po::Add(int &w) { policer t; int i,nu; if(Policersop==z) {cout<<"人数已满"<<endl; return 0; } cout<<"请输入编号:";cin>>nu; for(i=0;i<Policersop;i++) { if(nu==Po[i].num) {cout<<"已有编号,请重新输入"<<endl; return 0; } } t.Input(); Po[Policersop]=t; Policersop++; w=Policersop; cout<<"添加成功!"<<endl; return 1; } int po::Search() { int j,n; cout<<"请输入编号:";cin>>n; for(j=0;j<Policersop;j++) { if(n==Po[j].num) break; } if(j==Policersop) cout<<"没有此人!"<<endl; else Po[j].Output(); return 1; } void po::Show() { int i; if(Policersop==0) {cout<<"记录为空!"<<endl; return;} for(i=0;i<Policersop;i++) Po[i].Output(); } void po::Edit() { policer t1; int j,n; cout<<"请输入要编辑的人的编号:";cin>>n; for(j=0;j<Policersop;j++) { if(n==Po[j].num) break; } if(j==Policersop) {cout<<"没有此人!"<<endl;return;}; cout<<"输入修改后的信息,编号不能改:"<<endl; t1.Input(); Po[j]=t1; cout<<"编辑成功!"<<endl; } int po::Delete(int &w) { int j,n; cout<<"请输入要删除的人的编号:";cin>>n; for(j=0;j<Policersop;j++) { if(n==Po[j].num) break; } if(j==Policersop) {cout<<"没有此人!"<<endl;return 0;}; for(j;j<Policersop;j++) { Po[j]=Po[j+1]; } Policersop--; w=Policersop; cout<<"删除成功!"<<endl; return 1; } void po::Save() { int i; ofstream outfile,outfile1; outfile1.open("Policersop.dat",ios::out); outfile1<<Policersop; outfile.open("Policers_data.dat",ios::out); if(!outfile) {cerr<<"没有此文件!"<<endl; return; } for(i=0;i<Policersop;i++) { outfile<<Po[i].num<<endl; outfile<<Po[i].name<<endl; outfile<<Po[i].sex<<endl; outfile<<Po[i].age<<endl; outfile<<Po[i].polices<<endl; outfile<<Po[i].post1<<endl; } outfile.close(); cout<<"保存成功!"<<endl; } int po::Read(int &w) { w=0; int i; ifstream infile,infile1; infile1.open("Policersop.dat",ios::in); infile1>>Policersop; w=Policersop; infile.open("Policers_data.dat",ios::in); if(!infile) {cerr<<"没有此文件!"<<endl; return 1; } for(i=0;i<Policersop;i++) { infile>>Po[i].num; infile>>Po[i].name; infile>>Po[i].sex; infile>>Po[i].age; infile>>Po[i].polices; infile>>Po[i].post1;} infile.close(); cout<<"读取成功!"<<endl; return 0; }
tea.h
#include "teacher.h" class tea { public: teacher Tea[z]; int Add(int &w); int Search(); void Show(); void Edit(); int Delete(int &w); void Save(); int Read(int &w); tea(void); ~tea(void); };
tea.cpp
#include "StdAfx.h" #include "tea.h" int tea::Add(int &w) { teacher t; int i,nu; if(Tea3==z) {cout<<"人数已满"<<endl; return 0; } cout<<"请输入编号:";cin>>nu; for(i=0;i<Tea3;i++) { if(nu==Tea[i].num) {cout<<"已有编号,请重新输入"<<endl; return 0; } } t.Input();Tea[Tea3]=t;Tea3++; w=Tea3; cout<<"添加成功!"<<endl; return 1; } int tea::Search() { int j,n; cout<<"请输入编号:";cin>>n; for(j=0;j<Tea3;j++) { if(n==Tea[j].num) break; } if(j==Tea3) cout<<"没有此人!"<<endl; else Tea[j].Output(); return 1; } void tea::Show() { int i; if(Tea3==0) {cout<<"记录为空!"<<endl; return;} for(i=0;i<Tea3;i++) Tea[i].Output(); } void tea::Edit() { teacher t1; int j,n; cout<<"请输入要编辑的人的编号:";cin>>n; for(j=0;j<Tea3;j++) { if(n==Tea[j].num) break; } if(j==Tea3) {cout<<"没有此人!"<<endl;return;}; cout<<"输入修改后的信息,编号不能改:"<<endl; t1.Input(); Tea[j]=t1; cout<<"编辑成功!"<<endl; } int tea::Delete(int &w) { int j,n; cout<<"请输入要删除的人的编号:";cin>>n; for(j=0;j<Tea3;j++) { if(n==Tea[j].num) break; } if(j==Tea3) {cout<<"没有此人!"<<endl;return 0;}; for(j;j<Tea3;j++) { Tea[j]=Tea[j+1]; } Tea3--; w=Tea3; cout<<"删除成功!"<<endl; return 1; } void tea::Save() { int i; ofstream outfile,outfile1; outfile1.open("Tea3.dat",ios::out); outfile1<<Tea3; outfile.open("Tea_data.dat",ios::out); if(!outfile) {cerr<<"没有此文件!"<<endl; return; } for(i=0;i<Tea3;i++) { outfile<<Tea[i].num<<endl; outfile<<Tea[i].name<<endl; outfile<<Tea[i].sex<<endl; outfile<<Tea[i].age<<endl; outfile<<Tea[i].dept<<endl; outfile<<Tea[i].special<<endl; outfile<<Tea[i].title<<endl; } outfile.close(); cout<<"保存成功!"<<endl; } int tea::Read(int &w) { w=0; int i; ifstream infile,infile1; infile1.open("Tea3.dat",ios::in); infile1>>Tea3; w=Tea3; infile.open("Tea_data.dat",ios::in); if(!infile) {cerr<<"没有此文件!"<<endl; return 0; } for(i=0;i<Tea3;i++) { infile>>Tea[i].num; infile>>Tea[i].name; infile>>Tea[i].sex; infile>>Tea[i].age; infile>>Tea[i].dept; infile>>Tea[i].special; infile>>Tea[i].title; } infile.close(); cout<<"读取成功!"<<endl; return 0; } tea::tea(void) { } tea::~tea(void) { }
test.h
#include "tester.h" class test { public: tester Test[z]; int Add(int &w); int Search(); void Show(); void Edit(); int Delete(int &w); void Save(); int Read(int &w); };
test.cpp
#include "StdAfx.h" #include "test.h" int test::Add(int &w) { tester t; int i,nu; if(Testop==z) {cout<<"人数已满"<<endl; return 0; } cout<<"请输入编号:";cin>>nu; for(i=0;i<Testop;i++) { if(nu==Test[i].num) {cout<<"已有编号,请重新输入"<<endl; return 0; } } t.Input(); Test[Testop]=t; Testop++; w=Testop; cout<<"添加成功!"<<endl; return 1; } int test::Search() { int j,n; cout<<"请输入编号:";cin>>n; for(j=0;j<Testop;j++) { if(n==Test[j].num) break; } if(j==Testop) cout<<"没有此人!"<<endl; else Test[j].Output(); return 1; } void test::Show() { int i; if(Testop==0) {cout<<"记录为空!"<<endl; return;} for(i=0;i<Testop;i++) Test[i].Output(); } void test::Edit() { tester t1; int j,n; cout<<"请输入要编辑的人的编号:";cin>>n; for(j=0;j<Testop;j++) { if(n==Test[j].num) break; } if(j==Testop) {cout<<"没有此人!"<<endl;return;}; cout<<"输入修改后的信息,编号不能改:"<<endl; t1.Input(); Test[j]=t1; cout<<"编辑成功!"<<endl; } int test::Delete(int &w) { int j,n; cout<<"请输入要删除的人的编号:";cin>>n; for(j=0;j<Testop;j++) { if(n==Test[j].num) break; } if(j==Testop) {cout<<"没有此人!"<<endl;return 0;}; for(j;j<Testop;j++) { Test[j]=Test[j+1]; } Testop--; w=Testop; cout<<"删除成功!"<<endl; return 1; } void test::Save() { int i; ofstream outfile,outfile1; outfile1.open("Test.dat",ios::out); outfile1<<Testop; outfile.open("Test_data.dat",ios::out); if(!outfile) {cerr<<"没有此文件!"<<endl; return; } for(i=0;i<Testop;i++) { outfile<<Test[i].num<<endl; outfile<<Test[i].name<<endl; outfile<<Test[i].sex<<endl; outfile<<Test[i].age<<endl; outfile<<Test[i].testroom<<endl; outfile<<Test[i].post<<endl; } outfile.close(); cout<<"保存成功!"<<endl; } int test::Read(int &w) { int i; ifstream infile,infile1; infile1.open("Test.dat",ios::in); infile1>>Testop; w=Testop; infile.open("Test_data.dat",ios::in); if(!infile) {cerr<<"没有此文件!"<<endl; return 1; } for(i=0;i<Testop;i++) { infile>>Test[i].num; infile>>Test[i].name; infile>>Test[i].sex; infile>>Test[i].age; infile>>Test[i].testroom; infile>>Test[i].post; } infile.close(); cout<<"读取成功!"<<endl; return 0; }
下载链接
仅供学习参考,文件下载链接C++实现高校人员信息管理系统
-
C++实现学校运动会管理系统
2020-12-25 20:32:11本文实例为大家分享了C++实现学校运动会管理系统的具体代码,供大家参考,具体内容如下 #include #include #include using namespace std; void fun1() { cout<<"******************************"<<... -
高校水电管理系统 C++
2012-06-21 17:18:54高校水电管理系统对校园学生、教职工的用水、用电情况课题做一个简单明了的统计和计算。 -
j基于C++实现学校人员管理系统
2010-07-17 09:28:04设计并实现简单的大学各类人员信息管理系统。对各类人员信息进行管理,包括增加、删除、查询、修改、排序和统计。要求用面向对象方法设计一个异质链表,该链表用来存储大学中各类人员的信息。希望将人员信息保存到... -
C++学校运动会管理系统的实现
2020-08-26 21:59:03主要为大家详细介绍了C++如何实现学校运动会管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
C++ 会议信息管理系统 程序设计报告.md
2021-06-08 16:02:50会议记录管理系统 问题描述: 定义会议信息类class Conference 会议信息包括:会议编号,会议名称、部门名称、会议地点,会议日期,会议主会议记录人,出席人员,会议摘要。会议信息以二进制形式存储在文件中。 (1... -
C++高校人事管理系统 源码
2011-01-11 10:26:05C++编写的高校人事管理系统,内容全面,源码。 -
C++课设高校人员信息管理系统附全部代码
2015-06-25 11:27:56C++课设高校人员信息管理系统附全部代码 -
C++高校学籍管理系统.docx
2020-08-26 23:08:42课题2:高校学籍管理系统 课程设计题目 高校学籍管理系统 目的与要求 1 目的 要求学生达到熟练掌握 C+祁言的基本知识和技能 基本掌握面向对象程序设计的基本思路和方法 能够利用所学的基本知识和技能解决简单的面向... -
c++人员管理系统报告.docx
2020-07-17 21:06:07c++/报告(报告内含代码)本次三级项目是开发一个人员信息管理系统,用于管理学生及教师的相关信息,具备查询、统计、添加、删除等功能,需用双向链表实现,理解并、交、差操作并不影响参与操作的集合,实现并交差... -
利用c++编写的学校人员管理系统
2018-06-28 09:25:08适合新手入门的简单学校人员管理系统。上课自己写的源码,部分注释。 -
C++开发软件工程大作业学生社团管理系统源代码.zip
2022-06-09 05:37:41C++开发软件工程大作业学生社团管理系统源代码。项目介绍: 为丰富校园文化生活,学校会成立各种类型的社团,每个社团都有自己的社团名称,负责人,服务范围,社团人数等信息。社团会定期组织活动,以增强社团活力。... -
基于c++的学生宿舍管理系统的设计与实现
2020-07-29 23:09:45为了实现提高高校宿舍管理部门的工作效率,充分利用资源,减少不必要的人力、物力和财力的支出,方便宿舍管理部门的工作人员全面地掌握学生住宿情况等目的,为宿舍管理部门开发设计专用系统软件——宿舍管理软件来...
收藏数
29,023
精华内容
11,609