📄 高层管理.cpp
字号:
//高层管理
#include"League.h"
void ManagerMember::EditMMember()
{
//用以存储文件
char FileName[30];
int choice2,ch2,ch3;
int n=0,n1=1;
ManagerMember ganbu;
char key[40];
cout<<"=>请输入储存管理人员资料的文件名\n(例如:“高层”,请不要重复文件名)\n请输入:";
cin>>FileName;
top:
fstream f(FileName,ios::binary|ios::in|ios::out);//每次都以相同方式打开文件
if(!f)
{cerr<<"==>文件打开失败!"<<endl;
return;}
//指针移到文件末尾
f.seekp(0,ios::end);
long posEnd=f.tellp();
cout<<"+++++++++++++++++++++++++++++++++\n"
<<" @@@ 你可以进行以下操作:\n"
<<"==>1.输入新管理人员的资料\n"
<<"==>2.修改指定管理人员资料\n"
<<"==>3.查看所有管理人员资料\n"
<<"==>4.查看个别管理人员资料\n"
<<"==>5.返 回\n"
<<"+++++++++++++++++++++++++++++++++\n"
<<"==>请选择:";
cin>>choice2;
switch(choice2)
{
case 1:f.seekp(0,ios::end);//输入新管理人员的资料
cout<<"新管理人员姓名:";
cin>>ganbu.name;
cout<<"性别(中文或者用m或f):";
cin>>ganbu.sex;
cout<<"年龄:";
cin>>ganbu.age;
cout<<"QQ:";
cin>>ganbu.QQ;
cout<<"入会日期:";
cin>>ganbu.joinday;
cout<<"所属部门:";
cin>>ganbu.department;
cout<<"特长:";
cin>>ganbu.strongsuit;
cout<<"职位:";
cin>>ganbu.position;
cout<<"工作历史(中文):";
cin>>ganbu.workhistory;
f.write((char *) & ganbu,sizeof(ManagerMember));
break;
case 2:n1=1;//修改指定管理人员资料
f.seekp(0,ios::beg);
if(f.tellp()!=posEnd)
{
cout<<"++++++++++++++++++++++++++++++++++++++"<<endl;
cout<<"已经记录的管理人员有:\n";
do
{f.read((char *)& ganbu,sizeof(ManagerMember));
cout<<n1<<"、"<<"姓名:"<<ganbu.name<<"\n";
n1++;}
while(f.tellp()!=posEnd);
cout<<"+++++++++++++++++++++++++++++++++++++++"<<endl;
}
else
{cout<<"还没有记录任何管理人员!\n";break;}
f.seekp(0,ios::beg);
cout<<"请输入管理人员的姓名:";
cin>>key;
do
{f.read((char *)& ganbu,sizeof(ManagerMember));}
while((strcmp(ganbu.name,key))&&f.tellp()!=posEnd);
if(strcmp(ganbu.name,key)) {cout<<"该管理人员不在记录!\n";break;}
if(!strcmp(ganbu.name,key))
{f.seekp(-int(sizeof(ManagerMember)),ios::cur);
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
<<" @@@ 你可以选择以下的修改方式:\n"
<<"1、修改该管理人员的全部资料\n"
<<"2、修改该管理人员部分资料:\n"
<<"+++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
<<"请选择:";
cin>>ch2;
switch(ch2)
{case 1:
cout<<"请输入修改后的管理人员姓名:";
cout<<"++++++++++++++++++++++++++++++++++++"<<endl;
cin>>ganbu.name;
cout<<"性别(中文或者用m或f):";
cin>>ganbu.sex;
cout<<"年龄:";
cin>>ganbu.age;
cout<<"QQ:";
cin>>ganbu.QQ;
cout<<"入会日期:";
cin>>ganbu.joinday;
cout<<"所属部门:";
cin>>ganbu.department;
cout<<"特长:";
cin>>ganbu.strongsuit;
cout<<"职位:";
cin>>ganbu.position;
cout<<"工作历史(中文):";
cin>>ganbu.workhistory;
cout<<"++++++++++++++++++++++++++++++++++++"<<endl;
cout<<"修改成功!\n";
f.write((char *)& ganbu,sizeof(ManagerMember));
break;
case 2:{
cout<<"1、姓名 2、性别 3、年龄 4、QQ 5、入会日期 \n6、所属部门 7、特长 8、职位 9、工作历史 10、返回\n"
<<"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
<<"请选择:";
cin>>ch3;
switch(ch3){
case 1:cout<<"请输入修改后的数值:\n"
<<"姓名:";
cin>>ganbu.name;
cout<<"修改成功!\n";
f.write((char *)& ganbu,sizeof(ManagerMember));
goto end1;
case 2:cout<<"请输入修改后的数值:\n";
cout<<"性别(中文或者用m或f)";
cin>>ganbu.age;
cout<<"修改成功!\n";
f.write((char *)& ganbu,sizeof(ManagerMember));
goto end1;
case 3:cout<<"请输入修改后的数值:\n";
cout<<"年龄:";
cin>>ganbu.age;
cout<<"修改成功!\n";
f.write((char *)& ganbu,sizeof(ManagerMember));
goto end1;
case 4:cout<<"请输入修改后的数值:\n";
cout<<"QQ:";
cin>>ganbu.QQ;
cout<<"修改成功!\n";
f.write((char *)& ganbu,sizeof(ManagerMember));
goto end1;
case 5:cout<<"请输入修改后的数值:\n";
cout<<"入会日期:";
cin>>ganbu.joinday;
cout<<"修改成功!\n";
f.write((char *)& ganbu,sizeof(ManagerMember));
goto end1;
case 6:cout<<"请输入修改后的数值:\n";
cout<<"所属部门:";
cin>>ganbu.department;
cout<<"修改成功!\n";
f.write((char *)& ganbu,sizeof(ManagerMember));
goto end1;
case 7:cout<<"请输入修改后的数值:\n";
cout<<"特长:";
cin>>ganbu.strongsuit;
cout<<"修改成功!\n";
f.write((char *)& ganbu,sizeof(ManagerMember));
goto end1;
case 8:cout<<"请输入修改后的数值:\n";
cout<<"职位:";
cin>>ganbu.position;
cout<<"修改成功!\n";
f.write((char *)& ganbu,sizeof(ManagerMember));
goto end1;
case 9:cout<<"请输入修改后的数值:\n";
cout<<"工作历史:";
cin>>ganbu.workhistory;
cout<<"修改成功!\n";
f.write((char *)& ganbu,sizeof(ManagerMember));
goto end1;
case 10:goto end1;
default:cout<<"选择错误!\n";goto end1;
}
default:cout<<"选择错误!\n";goto end1;}
}
end1:break;
case 3:f.seekp(0,ios::beg);//浏览所有管理人员的资料
if(f.tellg()!=posEnd)
{do
{f.read((char *)& ganbu,sizeof(ManagerMember));
cout<<"\n姓名: "<<ganbu.name<<"\n性别: "<<ganbu.sex<<"\n年龄: "<<ganbu.age<<"\nQQ: "
<<ganbu.QQ<<"\n入会日期: "<<ganbu.joinday<<"\n所属部门: "<<ganbu.department
<<"\n特长: "<<ganbu.strongsuit<<"\n职位: "<<ganbu.position<<"\n工作历史: "<<ganbu.workhistory<<"\n\n";}
while(f.tellg()!=posEnd);}
else
{cout<<"还没有任何管理人员资料!\n";}
break;
case 4:n1=1;//查看个别管理人员的资料
f.seekp(0,ios::beg);
if(f.tellp()!=posEnd)
{
cout<<"+++++++++++++++++++++++++++++++++"<<endl;
cout<<"已输入的管理人员有:\n";
do
{f.read((char *)& ganbu,sizeof(ManagerMember));
cout<<n1<<"、"<<"姓名:"<<ganbu.name<<"\n";
n1++;}
while(f.tellp()!=posEnd);
cout<<"++++++++++++++++++++++++++++++++++"<<endl;
}
else
{cout<<"还没有输入任何管理人员!\n";break;}
f.seekp(0,ios::beg);
cout<<"请输入要查看的管理人员姓名:";
cin>>key;
do
{f.read((char *)& ganbu,sizeof(ManagerMember));}
while((strcmp(ganbu.name,key))&&f.tellp()!=posEnd);
if(!strcmp(ganbu.name,key))
cout<<"\n姓名: "<<ganbu.name<<"\n性别: "<<ganbu.sex<<"\n年龄: "<<ganbu.age<<"\nQQ: "
<<ganbu.QQ<<"\n入会日期: "<<ganbu.joinday<<"\n所属部门: "<<ganbu.department
<<"\n特长: "<<ganbu.strongsuit<<"\n职位: "<<ganbu.position<<"\n工作历史: "<<ganbu.workhistory<<"\n\n";break;}
else
{cout<<"输入名字出错!\n";}
break;
case 5:f.close();return;
default:cout<<"输入错误!";break;
}
goto top;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -