高校教师人事管理系统(用C++数组和链表实现)
教师包含以下信息项:教师编号、姓名、性别、出生日期、参加工作时间、工资、学院、职称(助教、讲师、副教授、教授)、学位(学士、硕士、博士)。系统的主要功能包括:1.创建教师...
教师包含以下信息项:教师编号、姓名、性别、出生日期、参加工作时间、工资、学院、职称(助教、讲师、副教授、教授)、学位(学士、硕士、博士)。
系统的主要功能包括:
1. 创建教师信息文件,根据提示输入教师的各项信息,按教师编号对教师信息进行排序,并将排序后的教师信息存储到一个二进制文件中。
2. 增加教师信息,在原有教师信息文件的基础上增加新的教师信息,要求:增加后的教师信息仍按编号排序,并继续保存至文件。
3. 删除教师信息,提示用户输入要进行删除操作的教师编号,如果在文件中有该信息存在,则将该编号所对应的教师信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。
4. 修改教师信息,提示用户输入要进行修改操作的教师编号,如果在文件中有该息存在,则将提示用户输入该编号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。
5. 按不同条件对教师信息进行查询操作,输出满足条件的教师信息。
(1) 按教师编号查询,输入一个编号,输出对应的教师信息。
(2) 按姓名查询,包括精确查询(输入全名),模糊查询(输入姓)。
(3) 按学院查询,输入学院名称,输出该学院的全部教师的信息。
(4) 按职称查询,输入职称名称,输出相应职称的教师信息。
(5) 按参加工作时间查询,输入一个日期,输出在该日期以前参加工作的所有教师信息。
6. 按不同条件对教师信息进行统计工作。
(1) 统计1980年以后出生的教师的人数,及80后教师占教师总数的比例。
(2) 统计各职称岗位的教师人数是多少,计算高级职称(包括副教授和教授)的比例。
(3) 统计各学位的教师人数是多少,计算拥有博士学位的教师占教师总数的比例。
(4) 计算教师的平均工资,并输出。 展开
系统的主要功能包括:
1. 创建教师信息文件,根据提示输入教师的各项信息,按教师编号对教师信息进行排序,并将排序后的教师信息存储到一个二进制文件中。
2. 增加教师信息,在原有教师信息文件的基础上增加新的教师信息,要求:增加后的教师信息仍按编号排序,并继续保存至文件。
3. 删除教师信息,提示用户输入要进行删除操作的教师编号,如果在文件中有该信息存在,则将该编号所对应的教师信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。
4. 修改教师信息,提示用户输入要进行修改操作的教师编号,如果在文件中有该息存在,则将提示用户输入该编号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。
5. 按不同条件对教师信息进行查询操作,输出满足条件的教师信息。
(1) 按教师编号查询,输入一个编号,输出对应的教师信息。
(2) 按姓名查询,包括精确查询(输入全名),模糊查询(输入姓)。
(3) 按学院查询,输入学院名称,输出该学院的全部教师的信息。
(4) 按职称查询,输入职称名称,输出相应职称的教师信息。
(5) 按参加工作时间查询,输入一个日期,输出在该日期以前参加工作的所有教师信息。
6. 按不同条件对教师信息进行统计工作。
(1) 统计1980年以后出生的教师的人数,及80后教师占教师总数的比例。
(2) 统计各职称岗位的教师人数是多少,计算高级职称(包括副教授和教授)的比例。
(3) 统计各学位的教师人数是多少,计算拥有博士学位的教师占教师总数的比例。
(4) 计算教师的平均工资,并输出。 展开
1个回答
展开全部
要是要报告就留邮箱
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
const int N=7;
class teacher
{
public:
void set(int i); //录入信息
void add(teacher p); //增加资料
void modification(); //修改资料
void expurgate(); //删除资料
int checkout(int n,int age1,string courseform1); //查找资料
void show(); //输出该档案
int fanhui(int a); //返回一数判断是否是所要选的档案
private:
string name;
int number; //教工号
char sex;
int age;
int comeworktime; //参加工作时间
string call; //职称
string courseform; //课程组成
};
void teacher::set(int i) //录入信息
{
cout<<" 录入档案 "<<i<<":"<<endl;
cout<<"输入教师的教工号:";
cin>>number;
cout<<"输入教师姓名:";
cin>>name;
cout<<"输入教师姓别:";
cin>>sex;
cout<<"输入教师职称:";
cin>>call;
cout<<"输入教师年龄:";
cin>>age;
cout<<"输入教师参加工作时间:";
cin>>comeworktime;
cout<<"输入教师课程组成:";
cin>>courseform;
cout<<" 档案"<<i<<" 录入结束"<<endl;
}
void teacher::add(teacher p) //增加信息
{
cout<<"输入新增教师档案"<<endl;
p.set(N-4);
}
void teacher::expurgate() //删除信息
{
name="0";
number=0;
sex='\0';
age=0;
comeworktime=0;
call="0";
courseform="0";
cout<<"删除教师信息成功"<<endl;
}
int teacher::checkout(int n,int age1,string courseform1) //查找信息
{
int p;
switch(n)
{
case 1:
if(age==age1) p=1;
else p=0;
break;
case 2:
if(courseform==courseform1) p=1;
else p=0;
break;
}
return p;
}
void teacher::show() //输出信息
{
cout<<"输出一档案**********"<<endl;
cout<<setiosflags(ios_base::left)
<<setw(16)<<"教工号"<<setw(16)<<number<<endl
<<setw(16)<<"姓名"<<setw(16)<<name<<endl
<<setw(16)<<"姓别"<<setw(16)<<sex<<endl
<<setw(16)<<"职称"<<setw(16)<<call<<endl
<<setw(16)<<"年龄"<<setw(16)<<age<<endl
<<setw(16)<<"参加工作时间"<<setw(16)<<comeworktime<<endl
<<setw(16)<<"课程组成"<<setw(16)<<courseform<<endl
<<resetiosflags(ios_base::left);
cout<<"**********输出结束"<<endl;
}
void teacher::modification() //修改信息
{
int n,renumber,recomeworktime,reage,flag=1;
string rename,recall,recourseform;
char resex;
do
{
cout<<" ***子菜单:修改资料***"<<endl
<<" 修改哪项信息?"<<endl
<<"1(教工号) 2(姓名) 3(姓别) 4(职称) 5(年龄) 6(参加工作时间) 7(课程组成) 8(退出)"<<endl
<<" 输入数字1-8进行修改或退出:";
cin>>n;
if(n<9&&n>0)
switch(n)
{
case 1:
cout<<"输入正确的教工号:";
cin>>renumber;
number=renumber;
cout<<"教工号修改成功"<<endl;
break;
case 2:
cout<<"输入正确的姓名:";
cin>>rename;
name=rename;
cout<<"姓名修改成功"<<endl;
break;
case 3:
cout<<"输入正确的姓别:";
cin>>resex;
sex=resex;
cout<<"姓别修改成功"<<endl;
break;
case 4:
cout<<"输入正确的职称:";
cin>>recall;
call=recall;
cout<<"职称修改成功"<<endl;
break;
case 5:
cout<<"输入正确的年龄:";
cin>>reage;
age=reage;
cout<<"年龄修改成功"<<endl;
break;
case 6:
cout<<"输入正确的参加工作时间:";
cin>>recomeworktime;
comeworktime=recomeworktime;
cout<<"参加工作时间修改成功"<<endl;
break;
case 7:
cout<<"输入正确的课程组成:";
cin>>recourseform;
courseform=recourseform;
cout<<"课程组成修改成功"<<endl;
break;
case 8:
cout<<"退出到主菜单"<<endl;
flag=0;
break;
}
else
{
cout<<"输入的数字不在1-8之间,请重新输入."<<endl;
flag=0;
}
}while(flag!=0);
}
int teacher::fanhui(int a)
{
if(a==number) return 1;
else return 0;
}
void main()
{
int n,m=0,a,i,flag=1;
teacher p[N],pt;
int age1=0;
string courseform1="0";
cout<<"首先输入教师信息"<<endl;
for(i=0;i<N-5;i++)
p[i].set(i+1);
do
{
cout<<" ***************"<<endl
<<" 主菜单"<<endl
<<" ***************"<<endl
<<"(1)修改资料(2)增加资料(3)删除资料(4)显示资料(5)根据工龄或课程组成查找并显示"
<<"(6)退出"<<endl
<<"然后选择1-5进行操作:";
cin>>n;
switch(n)
{
case 1:
cout<<"输入要修改的教师的教工号:";
cin>>a;
for(i=0;i<N-5;i++)
{
if(p[i].fanhui(a)) p[i].modification();
}
break;
case 2:
pt.add(p[N-5+m]);
m++;
break;
case 3:
cout<<"输入要删除的教师的教工号:";
cin>>a;
for(i=0;i<N-5;i++)
{
if(p[i].fanhui(a)) p[i].expurgate();
}
break;
case 4:
cout<<"输入要显示的教师的教工号:";
cin>>a;
for(i=0;i<N-5;i++)
{
if(p[i].fanhui(a)) p[i].show();
}
break;
case 5:
cout<<" ***子菜单:查找资料***"<<endl
<<"(1)按教工年龄查找 (2)按担任课程组成查找 "<<endl
<<"输入1-2:";
cin>>n;
if(n==1)
{
cout<<"输入教工年龄:";
cin>>age1;
}
else if(n==2)
{
cout<<"输入担任课程组成:";
cin>>courseform1;
}
for(i=0;i<N-5;i++)
if(p[i].checkout(n,age1,courseform1))
{
cout<<"已查找到"<<endl;
p[i].show();
}
break;
case 6:
flag=0;
break;
default:
cout<<"输入错误,不在1-5之间"<<endl;
flag=0;
}
}while(flag!=0);
cout<<" !!!程序运行结束!!!"<<endl;
}
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
const int N=7;
class teacher
{
public:
void set(int i); //录入信息
void add(teacher p); //增加资料
void modification(); //修改资料
void expurgate(); //删除资料
int checkout(int n,int age1,string courseform1); //查找资料
void show(); //输出该档案
int fanhui(int a); //返回一数判断是否是所要选的档案
private:
string name;
int number; //教工号
char sex;
int age;
int comeworktime; //参加工作时间
string call; //职称
string courseform; //课程组成
};
void teacher::set(int i) //录入信息
{
cout<<" 录入档案 "<<i<<":"<<endl;
cout<<"输入教师的教工号:";
cin>>number;
cout<<"输入教师姓名:";
cin>>name;
cout<<"输入教师姓别:";
cin>>sex;
cout<<"输入教师职称:";
cin>>call;
cout<<"输入教师年龄:";
cin>>age;
cout<<"输入教师参加工作时间:";
cin>>comeworktime;
cout<<"输入教师课程组成:";
cin>>courseform;
cout<<" 档案"<<i<<" 录入结束"<<endl;
}
void teacher::add(teacher p) //增加信息
{
cout<<"输入新增教师档案"<<endl;
p.set(N-4);
}
void teacher::expurgate() //删除信息
{
name="0";
number=0;
sex='\0';
age=0;
comeworktime=0;
call="0";
courseform="0";
cout<<"删除教师信息成功"<<endl;
}
int teacher::checkout(int n,int age1,string courseform1) //查找信息
{
int p;
switch(n)
{
case 1:
if(age==age1) p=1;
else p=0;
break;
case 2:
if(courseform==courseform1) p=1;
else p=0;
break;
}
return p;
}
void teacher::show() //输出信息
{
cout<<"输出一档案**********"<<endl;
cout<<setiosflags(ios_base::left)
<<setw(16)<<"教工号"<<setw(16)<<number<<endl
<<setw(16)<<"姓名"<<setw(16)<<name<<endl
<<setw(16)<<"姓别"<<setw(16)<<sex<<endl
<<setw(16)<<"职称"<<setw(16)<<call<<endl
<<setw(16)<<"年龄"<<setw(16)<<age<<endl
<<setw(16)<<"参加工作时间"<<setw(16)<<comeworktime<<endl
<<setw(16)<<"课程组成"<<setw(16)<<courseform<<endl
<<resetiosflags(ios_base::left);
cout<<"**********输出结束"<<endl;
}
void teacher::modification() //修改信息
{
int n,renumber,recomeworktime,reage,flag=1;
string rename,recall,recourseform;
char resex;
do
{
cout<<" ***子菜单:修改资料***"<<endl
<<" 修改哪项信息?"<<endl
<<"1(教工号) 2(姓名) 3(姓别) 4(职称) 5(年龄) 6(参加工作时间) 7(课程组成) 8(退出)"<<endl
<<" 输入数字1-8进行修改或退出:";
cin>>n;
if(n<9&&n>0)
switch(n)
{
case 1:
cout<<"输入正确的教工号:";
cin>>renumber;
number=renumber;
cout<<"教工号修改成功"<<endl;
break;
case 2:
cout<<"输入正确的姓名:";
cin>>rename;
name=rename;
cout<<"姓名修改成功"<<endl;
break;
case 3:
cout<<"输入正确的姓别:";
cin>>resex;
sex=resex;
cout<<"姓别修改成功"<<endl;
break;
case 4:
cout<<"输入正确的职称:";
cin>>recall;
call=recall;
cout<<"职称修改成功"<<endl;
break;
case 5:
cout<<"输入正确的年龄:";
cin>>reage;
age=reage;
cout<<"年龄修改成功"<<endl;
break;
case 6:
cout<<"输入正确的参加工作时间:";
cin>>recomeworktime;
comeworktime=recomeworktime;
cout<<"参加工作时间修改成功"<<endl;
break;
case 7:
cout<<"输入正确的课程组成:";
cin>>recourseform;
courseform=recourseform;
cout<<"课程组成修改成功"<<endl;
break;
case 8:
cout<<"退出到主菜单"<<endl;
flag=0;
break;
}
else
{
cout<<"输入的数字不在1-8之间,请重新输入."<<endl;
flag=0;
}
}while(flag!=0);
}
int teacher::fanhui(int a)
{
if(a==number) return 1;
else return 0;
}
void main()
{
int n,m=0,a,i,flag=1;
teacher p[N],pt;
int age1=0;
string courseform1="0";
cout<<"首先输入教师信息"<<endl;
for(i=0;i<N-5;i++)
p[i].set(i+1);
do
{
cout<<" ***************"<<endl
<<" 主菜单"<<endl
<<" ***************"<<endl
<<"(1)修改资料(2)增加资料(3)删除资料(4)显示资料(5)根据工龄或课程组成查找并显示"
<<"(6)退出"<<endl
<<"然后选择1-5进行操作:";
cin>>n;
switch(n)
{
case 1:
cout<<"输入要修改的教师的教工号:";
cin>>a;
for(i=0;i<N-5;i++)
{
if(p[i].fanhui(a)) p[i].modification();
}
break;
case 2:
pt.add(p[N-5+m]);
m++;
break;
case 3:
cout<<"输入要删除的教师的教工号:";
cin>>a;
for(i=0;i<N-5;i++)
{
if(p[i].fanhui(a)) p[i].expurgate();
}
break;
case 4:
cout<<"输入要显示的教师的教工号:";
cin>>a;
for(i=0;i<N-5;i++)
{
if(p[i].fanhui(a)) p[i].show();
}
break;
case 5:
cout<<" ***子菜单:查找资料***"<<endl
<<"(1)按教工年龄查找 (2)按担任课程组成查找 "<<endl
<<"输入1-2:";
cin>>n;
if(n==1)
{
cout<<"输入教工年龄:";
cin>>age1;
}
else if(n==2)
{
cout<<"输入担任课程组成:";
cin>>courseform1;
}
for(i=0;i<N-5;i++)
if(p[i].checkout(n,age1,courseform1))
{
cout<<"已查找到"<<endl;
p[i].show();
}
break;
case 6:
flag=0;
break;
default:
cout<<"输入错误,不在1-5之间"<<endl;
flag=0;
}
}while(flag!=0);
cout<<" !!!程序运行结束!!!"<<endl;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询