else
{
  p1=head;//否则将头指针赋给p1
        while(num!=p1->id&&p1->next!=NULL)//寻找要删除的结点当p1所指的学生准考证号不是输入的学生准考证号并且p1所指的next指针不为空
  {
   p2=p1;
   p1=p1->next;
  }//p2指向原p1指向的结点p1后移一个结点
  if(num==p1->id)//如果输入的学生准考证号是p1所指的学生准考证号//结点找到后删除
  {
   if(p1==head) head=p1->next;//如果head指针和p1指针相等则将下一个结点赋给指针head 
   else 
    p2->next=p1->next;//否则将p1所指结点赋给p2所指结点将要删除的学生信息跳过去
   cout<<" 删除准考证号为"<<num<<"的学生\n";
   n--;//将学生人数减1     
  }
  return(head);//将头指针返回
}
}
//------------>查找函数
student *Information::find(student *head,long int num) 
//定义一个指向struct student的结构体指针函数*find()用来查找考生信息.
{
if(head==NULL)//若调用次函数以前的头指针head为空
{
   cout<<" 这是一个空表,请先输入考生成绩.\n";
  return(head); 
}
else
{
  p1=head;//否则将头指针赋给p1
  while(num!=p1->id&&p1->next!=NULL)
//寻找结点当p1所指的学生准考证号不是输入的学生准考证号并且p1所指的next指针不为空
  {
   p1=p1->next;
  }//p2指向原p1指向的结点p1后移一个结点
  if(num==p1->id)//如果要查找的学生准考证号是p1所指的学生准考证号
  {
   cout<<"------------------------------------------------------------------------------\n";
            cout<<"准考证号   姓  名   性别   数学   物理   英语   C++    平均分   总分     \n";
            cout<<"------------------------------------------------------------------------------\n";
            cout<<setw(8)<<p1->id
    <<setw(9)<<p1->name
    <<setw(6)<<p1->sex
    <<setw(7)<<p1->score[0]
    <<setw(7)<<p1->score[1]
          <<setw(7)<<p1->score[2]
    <<setw(7)<<p1->score[3]
    <<setw(10)<<p1->total/4.0
    <<setw(7)<<p1->total<<endl;
   cout<<"------------------------------------------------------------------------------\n";
  }
  else 
   cout<<" 没找到准考证号为"<<num<<"的学生.\n"; //结点没找到
  return(head);
}
}
//------------定义paixu()函数将考生的总分从大到小排列并输出
void  Information::paixu(student *head) 
{
int i,k,m=0,j;
    student *p[Q];//定义一个指向struct student的结构体指针数组p   
    if(head!=NULL)//如果头指针是空则继续
{   m=count(head);
  cout<<"------------------------------------------------------------------------------\n";
        cout<<"                             *学生考试成绩统计表*\n";
        cout<<"------------------------------------------------------------------------------\n";
        cout<<"准考证号   姓  名   性别   数学   物理   英语   C++  平均分   总分     名次\n";
        cout<<"------------------------------------------------------------------------------\n";
        p1=head;
        for(k=0;k<m;k++)
  {
   p[k]=p1;
   p1=p1->next;
  }


 
											





 
	     
											 
										
					
	 
										
					
	

 ,以后再请教你;咯
,以后再请教你;咯										
					
	