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

📄 干事管理.cpp

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