#include<iostream>
#include <fstream>
#include<stdlib.h>
#define MAX 100
using namespace std;
class person //定义一个类实现共有的基础信息
{
public:
int num;
char name[20];
char sex[4];
int age;
};
class Teacher:virtual public person
{
public:
char dept[20];
char special[20];
char title[20];
void Input() //录入信息
{
cout<<"Input num(编号):";cin>>num;//编号
cout<<"Input name(姓名):";cin>>name;//姓名
cout<<"Input sex(性别):";cin>>sex;//性别
cout<<"Input age(年龄):";cin>>age;//年龄
cout<<"Input dept(所在系):";cin>>dept;//所在系
cout<<"Input special(专业):";cin>>special;//专业
cout<<"Input title(职称):";cin>>title;//职称
}
void Output() //输出信息
{
cout<<"编号: "<<num<<" "<<"姓名: "<<name<<" "<<"性别: "<<sex<<" "<<"年龄: "<<age
<<" "<<"所在系: "<<dept<<" "<<"专业: "<<special<<" "<<"职称: "<<title<<" "<<endl;
}
};
Teacher Tea[MAX]; //定义一个教师的对象数组
static int Teatop; //定义一个静态常量,数组长度
class TeaManager //教师的管理类
{
public:
int Add();//添加
int Search();//查询
void Show();//显示
void Edit();//编辑
int Delete();//删除
int Count();//统计
void Save();//保存
void Read();//读取
};
int TeaManager::Add() //添加功能
{
system("cls"); //清屏
Teacher t;
int i,nu;
if(Teatop==MAX)
{
cout<<"人数已满"<<endl;
return 0;
}
cout<<"请输入编号:";
cin>>nu;
for(i=0;i<Teatop;i++)
{
if(nu==Tea[i].num)
{
cout<<"已有该编号"<<endl;
return 0;
}
}
t.Input();
Tea[Teatop]=t;
Teatop++;
cout<<"添加成功!"<<endl;
return 1;
}
int TeaManager::Search() //查询功能
{
system("cls");
int j,n;
cout<<"请输入编号:";
cin>>n;
for(j=0;j<Teatop;j++)
{
if(n==Tea[j].num)
break;
}
if(j==Teatop)
cout<<"没有此人!"<<endl;
else
Tea[j].Output();
return 1;
}
void TeaManager::Show() //显示功能
{
system("cls");
int i;
if(Teatop==0)
{cout<<"记录为空!"<<endl; return;}
for(i=0;i<Teatop;i++)
Tea[i].Output();
}
void TeaManager::Edit() //编辑功能
{
system("cls"); //清屏
Teacher t1;
int j,n;
cout<<"请输入要编辑的人的编号:";
cin>>n;
for(j=0;j<Teatop;j++)
{
if(n==Tea[j].num) break;
}
if(j==Teatop)
{cout<<"没有此人!"<<endl;return;};
cout<<"输入修改后的信息,编号不能改:"<<endl;
t1.Input();
Tea[j]=t1;
cout<<"编辑成功!"<<endl;
}
int TeaManager::Delete() //删除功能
{
system("cls"); //清屏
int j,n;
cout<<"请输入要删除的人的编号:";cin>>n;
for(j=0;j<Teatop;j++)
{
if(n==Tea[j].num) break;
}
if(j==Teatop)
{cout<<"没有此人!"<<endl;return 0;};
for(j;j<Teatop;j++)
{
Tea[j]=Tea[j+1];
}
Teatop--;
cout<<"删除成功!"<<endl;
return 1;
}
int TeaManager::Count()//统计功能
{
system("cls");
int flag1=0,flag2=0;
string a = "男";
for(int i=0;i<Teatop;i++)
{
if(Tea[i].sex == a)
flag1++;
}
flag2=Teatop-flag1;
cout<<"教师总数为:"<<Teatop<<endl;
cout<<"男教师数量为:"<<flag1<<endl;
cout<<"女教师数量为:"<<flag2<<endl;
}
void TeaManager::Save() //保存功能
{
system("cls"); //清屏
int i;
ofstream outfile,outfile1;
outfile1.open("Teacher.dat",ios::out);
outfile1<<Teatop;
outfile.open("Teacher_data.dat",ios::binary);
if(!outfile)
{cerr<<"open error!"<<endl; return; }
for(i=0;i<Teatop;i++)
outfile.write((char *)&Tea[i],sizeof(Tea[i]));
outfile.close();
cout<<"保存成功!"<<endl;
}
void TeaManager::Read() //读取功能
{
system("cls");
int i;
ifstream infile,infile1;
infile1.open("Teacher.dat",ios::in);
infile1>>Teatop;
infile.open("Teacher_data.dat",ios::binary);
if(!infile)
{cerr<<"open error!"<<endl; return; }
for(i=0;i<Teatop;i++)
infile.read((char *)&Tea[i],sizeof(Tea[i]));
infile.close();
cout<<"读取成功!"<<endl;
}
void Tea_mune(TeaManager TM) //用一个管理教师的类来实现结果的显示
{
system("cls");
int b;
char c;
do{
cout<<endl; cout<<endl;
cout<<"教师管理"<<endl;
cout<<"=========================================================================================="<<endl;
c++期末高校人员信息管理系统
最新推荐文章于 2024-06-13 14:04:22 发布