📄 studentlist.cpp
字号:
#include<iostream>
#include<string>
#include<iomanip>
#include"StudentList.h"
#include"ScoreList.h"
#include"StudentManager.h"
int main()
{ new StudentManager;
return 0;
}
ostream& operator<< (ostream& os,const StudentList& r1)
{ StudentList::const_iterator it;
StudentList::const_iterator it_end=r1.end();
//我在这里加了一个数进去 是有多少学生纪录的数字
//就是链表中有多少节点的个数 是那个链表函数里面的
os<<r1.size()<<endl;
for(it=r1.begin();it!=it_end;it++)
{ os<<setiosflags(ios::left)
<<setw(8)<<(*it)->name
<<setw(15)<<(*it)->number;
for(int i=0;i<NUM_SUBJECT;i++)
os<<setw(8)<<(*it)->score[i];
os<<setw(8)<<(*it)->sum
<<setw(8)<<(*it)->average
<<endl;
}
os<<flush;
return os;
}
istream& operator>> (istream& is,StudentList& r2)
{
// StudentList::const_iterator it;
// StudentList::const_iterator it_end=r2.end();
student* rec;//新建一个节点
int size;//主要是为了控制下面的while循环
is>>size;//这个是读入有多少个纪录
//在之前的重载<< 的时候 我加入了os<<r1.size()<<endl; 将节点的个数也保存到文件中了
// cout<<"\n姓名 学号 语文 体育 英语 硬件 概率 总分 平均分"<<endl;
// for(it=r2.begin();it!=it_end;it++)
// {
while(!is.eof() && size!=0)//控制循环的条件( !is.eof() 不到文件的结尾 size!=0)就继续读取
{
rec=new student;//给节点赋予新的储存空间
is>>setiosflags(ios::left)//格式化读入
>>setw(8)>>rec->name
>>setw(15)>>rec->number;
for(int i=0;i<NUM_SUBJECT;i++)
is>>setw(8)>>rec->score[i];
is>>setw(8)>>rec->sum
>>setw(8)>>rec->average;
/* cout<<setiosflags(ios::left)
<<setw(8)<<rec->name
<<setw(15)<<rec->number;
for(int j=0;j<NUM_SUBJECT;j++)
cout<<setw(8)<<rec->score[j];
cout<<setw(8)<<rec->sum
<<setw(8)<<rec->average;
<<endl;*/
r2.push_back(rec);// 将读入的一个节点 添加到链表里面
size--;//纪录剩余的节点个数 当变为0 的时候 就读取完毕了
//退出while 循环
}
return is;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -