类的定义
#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
类的实现
#include
#include
#include
#include
#include"peo.h"
using namespace std;
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;
}
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;
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;
}
主函数
#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();
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);
}
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;
}