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

📄 stuinfovec.cpp

📁 自己上学时编译的一个学生管理系统
💻 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);//删除待标记的元素 
         deletedNum++;
         it_end=recVec.end();
         for (it2=recVec.begin();it2!=it_end;it2++)//对剩余元素进行排列 
         {if((*it2)->index>inx)
             (*it2)->index--;}
             }
             }
             return  deletedNum;
             }
Iterator StuInfoVec::findRecord(const string& pattern, int type, 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 addCount = 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;//所包含的元素为原有的加1        
               } }
               return addCount;
     }
                          
           

⌨️ 快捷键说明

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