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

📄 studentlist.cpp

📁 呵呵 就是大学二年级的我的课程设计啦
💻 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 + -