64,676
社区成员
发帖
与我相关
我的任务
分享
string name;
getline( cin, name );//用换行表示输入结束
getline( cin, name, '#');//用'#'表示输入结束
}
class Teacher:virtual public people
{
private:
string department;
string professionaltitle;
public:
double salary;
long int teachernumber;
Teacher(){}
Teacher(string name1,string sex1,string birthday1,int age1,long int teachernumber1,string department1,string professionaltitle1,double salary1);
void AddData2(); //数据添加函数
void DeleteData(int k); //数据删除函数
void UpdataData(int k); //数据修改函数
void SearchData(long int teachernumber1,string name1,string sex1); //数据查找函数
void DisplayData2(); //数据显示函数
};
Teacher::Teacher(string name1,string sex1,string birthday1,int age1,long int teachernumber1,string department1,string professionaltitle1,double salary1)
:people(name1,sex1,birthday1,age1)
{
teachernumber=teachernumber1;
department=department1;
professionaltitle=professionaltitle1;
salary=salary1;
}
void Teacher::AddData2() //数据添加函数定义
{
people::AddData();
cout<<"请输入教工号: ";
cin>>teachernumber;
cout<<"请输入所在部门: ";
cin>>department;
cout<<"请输入职称: ";
cin>>professionaltitle;
loop:cout<<"请输入工资: "; //goto语句来实现对负数重新输入,loop为标示符
cin>>salary;
try
{
if(salary<0)
throw salary;
}
catch(double)
{
cout<<"工资输入有误,请重新输入!!!"<<endl;
goto loop; //goto语句来实现对负数重新输入
}
cout<<"数据添加成功!!!"<<endl;
}
void Teacher::DeleteData(int k) //数据删除函数定义
{
if(teachernumber==k)
{
teachernumber=0; //令教工号为0,来表示数据数据删除
y=0; //判断因子
cout<<"数据删除成功!!!"<<endl;
}
if(x==num2-1 && y==1)
cout<<"无此教工号数据,删除失败!!!"<<endl;
}
void Teacher::UpdataData(int k) //数据修改函数定义
{
if(k==teachernumber) //判断输入数据是否村子
{
cout<<"原始的职称为: "<<professionaltitle<<endl<<"原始的工资为: "<<salary<<endl;
cout<<"请输入修改后的职称: ";
cin>>professionaltitle;
cout<<"请输入修改后的工资: ";
cin>>salary;
y=0; //判断因子
cout<<"数据修改成功!!!"<<endl;
}
if(x==num2-1 && y==1)
cout<<"无此教工号数据,修改失败!!!"<<endl;
}
void Teacher::SearchData(long int teachernumber1,string name1,string sex1) //查询函数定义
{
if(teachernumber1==teachernumber && name1==name && sex1==sex)
{
DisplayData2();
y=0;
cout<<"查询成功!!!"<<endl;
}
if(x==num2-1 &&y==1)
cout<<"查询失败,无此数据!!!"<<endl;
}
void Teacher::DisplayData2() //数据显示函数定义
{
cout<<"\t\t\t********教师数据显示********"<<endl;
people::DisplayData();
cout<<"教工号\t\t"<<"部门\t\t"<<"职称\t\t"<<"\t工资"<<endl;
cout<<teachernumber<<"\t"<<department<<"\t\t"<<professionaltitle<<"\t\t"<<salary<<endl;
}
template<typename T1,typename T2,typename T3> //函数模板,用来求成绩和工资最大值
int FindMaxData(T1 *array1,T2 *array2,T3 a) //三个形参分别为对象数组,成绩或者工资的数组,对象数组的长度
{
T3 max=array2[0]; //把第一个元素赋值给max
int i=0,k=0;
for(i=0;i<a;i++)
if(array2[i]>=max)
{
max=array2[i];
k=i; //找寻最大值,而且把最大值的下标记录
}
return k;
}
void menu() //菜单函数
{
cout<<"\t\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1学校人员信息管理系统\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\n";
cout<<"\t\1 ╭︿︿︿╮ ╭︿︿︿╮ \1\t\n";
cout<<"\t\1 {/ o o /} 欢迎使用 {/ o o /} \1\t\n";
cout<<"\t\1 ( (oo) ) ( (oo) ) \1\t\n";
cout<<"\t\1 ︶︶︶ ︶︶︶ \1\t\n";
cout<<"\1\1\1\1\1\1\1\1 1-增加一位人员记录 \1\1\1\1\1\1\1\1\n";
cout<<"\1\1\1\1\1\1\1\1 2-删除一个人员记录 \1\1\1\1\1\1\1\1\n";
cout<<"\1\1\1\1\1\1\1\1 3-修改一个人员记录 \1\1\1\1\1\1\1\1\n";
cout<<"\1\1\1\1\1\1\1\1 4-查找记录 \1\1\1\1\1\1\1\1\n";
cout<<"\1\1\1\1\1\1\1\1 5-英语成绩(工资最高) \1\1\1\1\1\1\1\1\n";
cout<<"\1\1\1\1\1\1\1\1 6-显示全部人员记录 \1\1\1\1\1\1\1\1\n";
cout<<"\1\1\1\1\1\1\1\1 7-从磁盘读取数据 \1\1\1\1\1\1\1\1\n";
cout<<"\1\1\1\1\1\1\1\1 8-保存数据到磁盘 \1\1\1\1\1\1\1\1\n";
cout<<"\1\1\1\1\1\1\1\1 9-退出系统 \1\1\1\1\1\1\1\1\n";
cout<<"\t\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\n";
}
char name[20];
fscanf(f,"%19[^\n\t,]",name);name[19]=0;