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

📄 recordvec.h

📁 在年级成绩管理系统中
💻 H
字号:
// 每一条记录的结构

namespace StudentInfomationManageStudio
{
enum {DEFUALT_SCORE_AMOUNT=5};

struct Record 
{
	string number;						// 学号(中间不能有空格)
	string name;						// 姓名(中间可以有空格)
	string gender;						// 性别(中间无空格)
	float score[DEFUALT_SCORE_AMOUNT];	    // 分别为该学生5门课的成绩
	float sum;						// 总分
	float average;						// 平均分
	int index;							// 名次
	bool toBeDeleted;					// 做是否删除的标记

	Record() {toBeDeleted = false;}
};//Record
	
ostream& operator<< (ostream& os, const Record& record)
{
    os<<" ";
    os.width(12);
    os<<record.number;
    os<<" ";
    os.width(8);
    os<<record.name;
    os<<"  ";
    os.width(5);
    os<<record.index;
    os<<"  ";
    os.width(3);
    os<<record.gender;
    os<<" ";
    for(int i=0;i<DEFUALT_SCORE_AMOUNT;i++)
    {
        os.width(4);
        os<<record.score[i];
        os<<" ";
    }
    os.width(5);
    os<<record.sum;
    os<<" ";
    os.width(8);
    os<<record.average;
    os<<endl;
    return os;
}//operator<<Record

istream& operator>> (istream& is, Record& record)
{
    is>>record.number;
    is>>record.name;
    is>>record.gender;
    float sum=0;
    for(int i=0;i<DEFUALT_SCORE_AMOUNT;i++)
    {
        is>>record.score[i];
        sum+=record.score[i];
    }
    record.sum=sum;
    record.average=sum/DEFUALT_SCORE_AMOUNT;
    return is;
}//operator>>Record

//
class RecordVec : public vector<Record*>
{
	friend ostream& operator<< (ostream& os, const RecordVec& c_rl)
	{
		RecordVec::const_iterator it;
		RecordVec::const_iterator it_end=c_rl.end();
		int count=1;
		for(it=c_rl.begin();it!=it_end;it++)
		{
			if((*it)->toBeDeleted==false)
			{
				count++;
				os<<*(*it);
				if(count%20==0)
					system("PAUSE");
            }
		}
		return os;
	}//operator<<RecordVec
public:
	// 销毁数组中记录的所有Record所占用的内存空间,并且清空数组存储的记录
	// 该函数覆盖了基类中的同名函数
	void clear()
	{
		int nSize=this->size();
		for(int i = 0; i < nSize; i++)
		{
			Record *temp=this->operator [](i);
			delete temp;
		}
		vector<Record*>::erase(begin(), end());
	}//clear
	// 销毁指定的记录,然后从数组中将其删除
	// 该函数覆盖了基类中的同名函数
	iterator erase(iterator itWhere)
	{
		iterator itStore=itWhere-1;
		delete (*itWhere);
		vector<Record*>::erase(itWhere);
		return itStore;
    }//erase
	~RecordVec()
	{
        this->clear();
    }//~RecordVec
};//RecordVec
};

⌨️ 快捷键说明

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