📄 recordvec.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 + -