📄 干事管理.cpp
字号:
//干事管理
#include"League.h"
void KeyMember::EditKMember()
{
char FileName[30];
int choice2,ch2,ch3;
int n=0,n1=1;
KeyMember ganshi;
char key[40];
cout<<"请输入储存干事资料的文件名\n(请输入一个型如“干事.dat”的文件名,\n若重复文件名(如:已有的干事.dat)则进入编辑干事菜单)\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>>ganshi.name;
cout<<"性别(中文或者用m或f):";
cin>>ganshi.sex;
cout<<"年龄:";
cin>>ganshi.age;
cout<<"QQ:";
cin>>ganshi.QQ;
cout<<"入会日期:";
cin>>ganshi.joinday;
cout<<"所属部门:";
cin>>ganshi.department;
cout<<"特长:";
cin>>ganshi.strongsuit;
f.write((char *) & ganshi,sizeof(KeyMember));
break;
case 2:n1=1;//修改指定干事资料
//先把指针移到文件开头把干事姓名读出来
f.seekp(0,ios::beg);
if(f.tellp()!=posEnd)
{
cout<<"+++++++++++++++++++++++++++++++++++++++++"<<endl;
cout<<"已输入的干事有:\n";
do
{f.read((char *)& ganshi,sizeof(KeyMember));
cout<<n1<<"、"<<"姓名:"<<ganshi.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 *)& ganshi,sizeof(KeyMember));}
while((strcmp(ganshi.name,key))&&f.tellp()!=posEnd);
if(strcmp(ganshi.name,key)) {cout<<"该干事不在记录!\n";break;}
if(!strcmp(ganshi.name,key))
{f.seekp(-int(sizeof(KeyMember)),ios::cur);
cout<<"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
<<"可选择的修改方式:\n"
<<"==>1、修改该干事的全部资料\n"
<<"==>2、修改该干事部分资料:\n"
<<"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
<<"==>请选择:";
cin>>ch2;
switch(ch2)
{case 1:cout<<"请输入修改后的数值:\n";
cout<<"请输入干事姓名:";
cin>>ganshi.name;
cout<<"性别(中文或者用m或f):";
cin>>ganshi.sex;
cout<<"年龄:";
cin>>ganshi.age;
cout<<"QQ:";
cin>>ganshi.QQ;
cout<<"入会日期:";
cin>>ganshi.joinday;
cout<<"所属部门:";
cin>>ganshi.department;
cout<<"特长:";
cin>>ganshi.strongsuit;
cout<<"修改成功!\n";
f.write((char *)& ganshi,sizeof(KeyMember));
break;
case 2:{
cout<<"1、姓名 2、性别 3、年龄 4、QQ 5、入会日期 6、所属部门 7、特长 8、返回\n"
<<"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
<<"请选择:";
cin>>ch3;
switch(ch3){
case 1:cout<<"请输入修改后的数值:\n"
<<"姓名:";
cin>>ganshi.name;
cout<<"修改成功!\n";
f.write((char *)& ganshi,sizeof(KeyMember));
goto end1;
case 2:cout<<"请输入修改后的数值:\n";
cout<<"性别(中文或者用m或f)";
cin>>ganshi.age;
cout<<"修改成功!\n";
f.write((char *)& ganshi,sizeof(KeyMember));
goto end1;
case 3:cout<<"请输入修改后的数值:\n";
cout<<"年龄:";
cin>>ganshi.age;
cout<<"修改成功!\n";
f.write((char *)& ganshi,sizeof(KeyMember));
goto end1;
case 4:cout<<"请输入修改后的数值:\n";
cout<<"QQ:";
cin>>ganshi.QQ;
cout<<"修改成功!\n";
f.write((char *)& ganshi,sizeof(KeyMember));
goto end1;
case 5:cout<<"请输入修改后的数值:\n";
cout<<"入会日期:";
cin>>ganshi.joinday;
cout<<"修改成功!\n";
f.write((char *)& ganshi,sizeof(KeyMember));
goto end1;
case 6:cout<<"请输入修改后的数值:\n";
cout<<"所属部门:";
cin>>ganshi.department;
cout<<"修改成功!\n";
f.write((char *)& ganshi,sizeof(KeyMember));
goto end1;
case 7:cout<<"请输入修改后的数值:\n";
cout<<"特长: ";
cin>>ganshi.strongsuit;
cout<<"修改成功!\n";
f.write((char *)& ganshi,sizeof(KeyMember));
goto end1;
case 8: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 *)& ganshi,sizeof(KeyMember));
cout<<"姓名: "<<ganshi.name<<"\t性别: "<<ganshi.sex<<"\t年龄: "<<ganshi.age<<"\tQQ: "
<<ganshi.QQ<<"\t入会日期: "<<ganshi.joinday<<"\t所属部门: "<<ganshi.department
<<"\t特长: "<<ganshi.strongsuit<<"\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 *)& ganshi,sizeof(KeyMember));
cout<<n1<<"、"<<"姓名:"<<ganshi.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 *)& ganshi,sizeof(KeyMember));}
while((strcmp(ganshi.name,key))&&f.tellp()!=posEnd);
if(!strcmp(ganshi.name,key))
cout<<"姓名: "<<ganshi.name<<"\t性别: "<<ganshi.sex<<"\t年龄: "<<ganshi.age<<"\tQQ: "
<<ganshi.QQ<<"\t入会日期: "<<ganshi.joinday<<"\t所属部门: "<<ganshi.department
<<"\t特长: "<<ganshi.strongsuit<<"\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 + -