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

📄 stuinfovec.cpp

📁 这是个职工管理系统
💻 CPP
字号:
//StuInfovec.cpp文件
#include"StuInfoVec.h"
StuInfoVec::~StuInfoVec() 
{recVec.clear();}
void StuInfoVec::addRecord(Record* rec)
{
	if (rec!=NULL)
	{recVec.push_back(rec);}	
}
int StuInfoVec::removeperform()
{
	int deletedNum=0;//为了获得更高的效率。从数组的末尾开始查找作了标记的纪录并将其删除
	Iterator it,it2,it_end;
	Iterator it_beforeBegin=recVec.begin()-1;
	int inx;//被删除记录的名次
	for(it=recVec.end()-1;it!=it_beforeBegin;it--)
	{
		if((*it)->toBeDeleted)
		{
			inx=(*it)->index;
			it=recVec.erase(it);//更新剩下的所有记录的名次 将名次排在被删除记录后面的记录的名次减1
			deletedNum++;
			it_end=recVec.end();
			for(it2=recVec.begin(); it2!=it_end;it2++)
			{if((*it2)->index > inx) (*it2)->index--;}
		}
	}
	return deletedNum;
}
StuInfoVec::Iterator StuInfoVec::findRecord(const string& pattern,int type, StuInfoVec::Iterator from)
{
	Iterator it;
	Iterator it_end=recVec.end();
	for(it=from;it!=it_end;it++)
	{
		if((type==0 &&(*it)->number==pattern)||(type==1&&(*it)->name==pattern)||(type==2&&(*it)->index==atoi(pattern.c_str())))
			break;
	}
	return it;
}
void StuInfoVec::saveRecords(ostream &os)
{os<<recVec;}
int StuInfoVec::loadRecords(istream &is)
{
	int ori=size();is>>recVec;int addedCount=size()-ori;//如果是在原有记录的基础上追加新的纪录,则更新所有记录的名次项
    if(ori!=0)
	{
		int i,j;int num=size();
		int ncount;//记录总分大于当前记录的人数
		float sumi;
		for(i=0;i<num;i++)
		{
			ncount=0;
			sumi=recVec[i]->sum;
			for(j=0;j<num;j++)
			{if(recVec[j]->sum > sumi) ncount++;}
			recVec[i]->index=ncount+1;		}
	}
	return addedCount;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -