⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 高层管理.cpp

📁 无
💻 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 + -