高校人员信息管理系统(C++)

高校人员信息管理系统

  • 类的定义
    • 类的实现
      • 主函数

类的定义

//Person.h
#ifndef _PERSON
#define _PERSON

#include
#include

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
#include
#include
#include
#include"peo.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
#include
#include
#include
#include
#include"peo.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/C++,c++,开发语言,算法)