Chinaunix首页 | 论坛 | 博客
  • 博客访问: 445915
  • 博文数量: 98
  • 博客积分: 6011
  • 博客等级: 准将
  • 技术积分: 1030
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-23 13:19
文章分类

全部博文(98)

文章存档

2011年(2)

2009年(2)

2008年(31)

2007年(35)

2006年(28)

我的朋友

分类:

2006-12-05 20:17:29

     大一下学期C++课程设计,那时引用没学好,只知道用指针。。。故里面的参数都是用指针传递。现在看来有点好笑。。。
     主要实现了查找,删除,修改,排名,显示,保存等功能。。。进入程序时会要求输入密码,密码是一个随机数,保存在程序运行结果的根目录的password.txt的里面,每次运行密码都不一样。退出程序时会提示是否要保存数据,如果保存的话,会在运行结果的根目录下生成一个记事本保存数据,下次运行时会自动导出上次的记录,以便继续操作。
源码:
#include
#include
#include
#include
#include
#include
#define null 0
using namespace std;
class Listnode

 public: 
      Listnode *creat();              //建立资料库
      Listnode *search(Listnode *);   //查找模块
      Listnode *del(Listnode *);     //删除模块
         Listnode *add(Listnode *);    //添加模块
      Listnode *show_menu(Listnode *);  //显示模块
   Listnode *modify(Listnode *);  //修改模块
   Listnode *stat(Listnode *);  //统计模块
   Listnode *save(Listnode *);  //保存模块
   Listnode *open();           //读出模块,自动执行
   Listnode *arrange(Listnode *);//排名模块
   double pass(Listnode *, string );//求及格率
   float ave(Listnode *,string );//求平均分
   int position(Listnode *,string ,Listnode *);//求名次
 public:
   int num;     //学号
   string name; //姓名
   string sex;//性别
   float M_score;  //数学分数
   float E_score;  //外语分数
   float C_score;//C++分数
   float total;//总分
   float ave1;//平均分
      Listnode *next;   //链接指针
};
Listnode *Listnode::show_menu(Listnode *p)//输出信息
{
 Listnode *h;
 h=p;
 if(h==null)//链表为空
  {
   cout<<"系统里没有资料记录."<  }
 else
 { 
  cout<<"学号"<  while(p->next!=null)
   {
    cout<num<name<sex<M_score<E_score<C_score<total<ave1<    p=p->next;
   }
  if(p->next==null)
   {
    cout<num<name<sex<M_score<E_score<C_score<total<ave1<   }
 }
 cout< return(h);
}
void menu()//输出主菜单
{
 cout<<"                 "<<"=============学生成绩管理系统============"< cout<<"********************************************************************************";
 cout<<"\t1建学生资料库\t\t\t\t\t2查找学生资料\n";
 cout<<"\t3删除学生资料\t\t\t\t\t4添加学生资料\n";
 cout<<"\t5显示学生资料\t\t\t\t\t6修改学生资料\n";
 cout<<"\t7查询学生成绩\t\t\t\t\t8学生总分排名\n";
 cout<<"\t9关于系统信息\t\t\t\t\t10退出系统\n";
 cout<<"********************************************************************************";
}
void announce()//输出声明
{
 cout<<"  "<<"本系统为大隐于市独立开发而成,仅供学习之用。任何人未经许可,不得用"< cout<<"于商业用途。如有任何问题可联系本人。"< cout<<"  "<<"联系方式:"< cout<<"  "<<"QQ:2263892**"<}
int password()//定义密码函数
{
 srand(time(0));
 int p;
 p=(1+rand()%10000000);
 ofstream outfile("password.txt",ios::out|ios::trunc);
 if(!outfile)
  {
   cerr<<"没有找到密码文件,导入密码失败."<   exit(1);
  }
 else
  {
   outfile<  }
 outfile.close();
 return(p);
}
int inum(int t)//对学号是否为整数的判断
{
 string str;
 cout<<"请输入四位数学号:";
 cin>>t;
 while (t<1000||t>9999)
  {
   if (cin.fail())
    {
     cin.clear();
     cin >> str;
    }
   else
    {
     cout<<"你的输入有误,请重新入."<     cout<<"请输入四位数学号:";
     cin>>t;
    }
  }
 return(t);
}
void input(Listnode *p)//录入信息
{
 cout<<"请输入姓名:";
 cin>>p->name;
 cout<<"请输入性别:";
 cin>>p->sex;
 while(p->sex!="男"&&p->sex!="女")
  {
   cout<<"你的输入有误,请重新输入."<提示:性别只能是男或女."<   cout<<"请输入性别:";
   cin>>p->sex;
  }
 cout<<"请输入数学成绩:";
 cin>>p->M_score;
 while(p->M_score<0||p->M_score>100)
  {
   cout<<"你的输入有误,请重新输入."<提示:数学最低分为0分,满分为100分."<   cout<<"请输入数学成绩:";
   cin>>p->M_score;
  }
 cout<<"请输入外语成绩:";
 cin>>p->E_score;
 while(p->E_score<0||p->E_score>100)
  {
   cout<<"你的输入有误,请重新输入."<提示:外语最低分为0分,满分为100分."<   cout<<"请输入外语成绩:";
   cin>>p->E_score;
  }
 cout<<"请输入C++成绩:";
 cin>>p->C_score;
 while(p->C_score<0||p->C_score>100)
  {
   cout<<"你的输入有误,请重新输入."<提示:C++最低分为0分,满分为100分."<   cout<<"请输入C++成绩:";
   cin>>p->C_score;
  }
}
void minput(Listnode *p)//修改信息时的重新录入
{
 cout<<"请输入新的姓名(原来是"<name<<"):";
 cin>>p->name;
 cout<<"请输入新的性别(原来是"<sex<<"):";
 cin>>p->sex;
 while(p->sex!="男"&&p->sex!="女")
  {
   cout<<"你的输入有误,请重新输入."<提示:性别只能是男或女."<   cout<<"请输入性别:";
   cin>>p->sex;
  }
 cout<<"请输入新的数学成绩(原来是"<M_score<<"):";
 cin>>p->M_score;
 while(p->M_score<0||p->M_score>100)
  {
   cout<<"你的输入有误,请重新输入."<提示:数学最低分为0分,满分为100分."<   cout<<"请输入数学成绩:";
   cin>>p->M_score;
  }
 cout<<"请输入新的外语成绩(原来是"<E_score<<"):";
 cin>>p->E_score;
 while(p->E_score<0||p->E_score>100)
  {
   cout<<"你的输入有误,请重新输入."<提示:外语最低分为0分,满分为100分."<   cout<<"请输入外语成绩:";
   cin>>p->E_score;
  }
 cout<<"请输入新的C++成绩(原来是"<C_score<<"):";
 cin>>p->C_score;
 while(p->C_score<0||p->C_score>100)
  {
   cout<<"你的输入有误,请重新输入."<提示:C++最低分为0分,满分为100分."<   cout<<"请输入C++成绩:";
   cin>>p->C_score;
  }
}
Listnode *Listnode::creat()//建立资料库
{  
 Listnode *Listnode::show_menu(Listnode *p);
 Listnode *head,*p,*p1=null;
 int n;
 while(n<=0)
  {
   cout<<"请输入学生的个数:";
   cin>>n;
   if(n<=0)
   {
    cout<<"没有学生资料."<   }
  else
   {
    head=p=new Listnode;
    p->num=inum(p->num);
    input(p);
    p->total=p->C_score+p->E_score+p->M_score;
    p->ave1=p->total/3;
    for(int i=1;i     {
      Listnode *r;
      p1=new Listnode;
      r=p;
      p=p->next=p1;
      p->num=inum(p->num);
      while(r->num==p->num||(p->num>9999||p->num<1000))//对学号的判断
      {
       if(r->num==p->num)
        {
         cout<<"你的输入有误,请重新输入."<提示:学号不能相同."<         cout<<"请输入4位学号:";
         cin>>p->num;
        }
       if(p->num>9999||p->num<1000)
        {
         cout<<"你的输入有误,请重新输入."<提示:学号只能是四位数字组成."<         cout<<"请输入学号4位数学号:";
         cin>>p->num;
        }
      }
      input(p);
      p->total=p->C_score+p->E_score+p->M_score;//求个人总分
      p->ave1=p->total/3;//平均分
     }
   }
  }
 p->next=null;
 head->show_menu(head);
 return(head);
}
Listnode *Listnode::search(Listnode *p)//查找
{
 Listnode *h;
 h=p;
 int n;
 cout<<"1 按学号查找   2按名字查找     3退出查找"< cout<<"请选择:";
 cin>>n;
 int d=0;
 string name;
 if(n==1)
 {
  d=inum(d);//输入要查找的学号并判断
 }
 else if(n==2)
 {
  
  cout<<"请输入姓名:";
  cin>>name;
 }
 else if(n==3)
  {
   return(h);
  }
 else
 {
  cout<<"===>提示:你的输入有误,请重新输入."<  h->search(h);
 }
  if(h==null)
   {
    cout<<"查找失败."<提示:没有学生资料,请先输入学生资料."<   }
  else
   {
    while(p->next!=null)
     {
      if(p->num==d||p->name==name)
       {
        break;
       }
      else
       {
        p=p->next;
       }
     }
    if(p->next!=null)
     { 
      cout<<"查找成功."<      cout<<"学号"<      cout<num<name<sex<M_score<E_score<C_score<total<ave1<     }
    else if(p->next==null&&(p->num==d||p->name==name))
     {
      cout<<"查找成功."<      cout<<"学号"<      cout<num<name<sex<M_score<E_score<C_score<total<ave1<     }
    else
     {
      cout<<"查找不成功."<提示:你要查的资料,系统里没有记录."<     }
   }
 return(h);
}
Listnode *Listnode::del(Listnode *p)//删除
{
 Listnode *Listnode::show_menu(Listnode *p);
 Listnode *h,*q;
 q=h=p;
 int n,d=0;
 string name;
    cout<<"1按学号删除   2按名字删除     3退出删除"< cout<<"请输入你的选择:";
 cin>>n;
 if(n==1)
  { 
   
   d=inum(d);//输入要删除的学号并判断
  }
 else if(n==2)
  {
   cout<<"请输入姓名:";//按姓名删除
   cin>>name;
  }
 else if(n==3)
  {
   return(h);
  }
 else
  {
       cout<<"你的输入有误,请重新输入."<    cout<<"===>提示:只能选择1或者2来进行删除操作."<    h->del(h);
   
  }
 if(h==null)
  {
   cout<<"删除失败."<提示:没有学生资料,请先输入学生资料."<  }
 else if((p->num==d||p->name==name)&&p->next!=null)
  {
   h=p->next; 
   cout<<"删除成功."<   delete p;
  }
 else if(p->next==null&&(p->num==d||p->name==name))
  {
   h=null;
   delete p;
   cout<<"删除成功."<  }
 else
  {
   while(p->next!=null)
    {
     if(p->num==d||p->name==name)
      {
       break;
      }
     else
      {
       p=p->next;
      }
    }
   if(p->next!=null)
    {
     while(q->next!=p)
      {
       q=q->next;
      }
     q->next=p->next;
     cout<<"删除成功."<     delete p;
    }
   else if(p->next==null&&(p->num==d||p->name==name))
    {
     while(q->next!=p)
      {
       q=q->next;
      }
     q->next=null;
     delete p;
     cout<<"删除成功."<    }
   else
    {
     cout<<"删除失败."<提示:你要删除的资料,系统里没有记录"<    }
  }
 h->show_menu(h);
 return(h);
}
Listnode *Listnode::add(Listnode *p)//添加新资料
{
 Listnode *Listnode::show_menu(Listnode *p);
 Listnode *h,*p1,*p2;
 p2=h=p;
 if(h==null)//如果链表为空
  {
   h=new Listnode;
   p=h;
   cout<<"请输入你想要添加的学生资料."<   p->num=inum(p->num);
   input(p);
   p->total=p->C_score+p->E_score+p->M_score;
   p->ave1=p->total/3;
   h->next=null;
  }
 else
  {
   while(p->next!=null)
    {
     p=p->next;
    }
   p=p->next=p1=new Listnode;
   cout<<"请输入你想要添加的学生资料."<   p->num=inum(p->num);
   while(p2!=p)
   {
    if(p2->num==p->num)
     {
      cout<<"你的输入有误,请重新输入."<提示:学号不能相同."<      cout<<"请输入4位数学号:";
      cin>>p->num;
      
     }
    else if(p2->num!=p->num)
      {
       if(p->num>9999||p->num<1000)
        {
         while(p->num>9999||p->num<1000)
          {
           cout<<"你的输入有误,请重新输入."<提示:学号只能是四位数字组成."<           cout<<"请输入4位数学号:";
           cin>>p->num;
          }
        }
       else
        {
         p2=p2->next;
        }
      }
   }
  input(p);
  p->total=p->C_score+p->E_score+p->M_score;
  p->ave1=p->total/3;
  p->next=null;
 }
 h->show_menu(h);
 return(h);
}
Listnode *Listnode::modify(Listnode *p)//修改资料
{
 int n=0;
 Listnode *h;
 h=p;
 n=inum(n);//输入要修改的学号并判断学号是否有误
 if(p->num==n)
  {
   minput(p);
   p->total=p->C_score+p->E_score+p->M_score;
   p->ave1=p->total/3;
   cout<<"修改成功."<  }
 else
  {
   while(p->num!=n)
    {
     if(p->next==null)
      {
       cout<<"修改失败."<提示:系统里没有关于该学号的资料记录."<       return(h);
      } 
     else
      {
       p=p->next;
      }
    }
   if(p!=null)
    {
     minput(p);
     p->total=p->C_score+p->E_score+p->M_score;
     p->ave1=p->total/3;
     cout<<"修改成功."<    }
  }
 h->show_menu(h);
 return(h);
}
Listnode *Listnode::stat(Listnode *p)//统计
{
 float Listnode::ave(Listnode *p,string n);
 Listnode *h;
 h=p;
 if(p==null)
 {
  cout<<"出错."<提示:没有学生资料的记录."<  return(p);
 }
 else
 {
  int n;
 cout<<"1查询全班的数学成绩   2查询全班的外语成绩   3查询全班的C++成绩   4查询个人情况"< cout<<"请输入你的选择:";
 cin>>n;
 if(n==1)
  {
   cout<<"全班数学平均分为:";
   cout<ave(h,"M_score")<   cout<<"全班数学及格率为:";
   cout<pass(h,"M_score")<<"%"<  }
 else if(n==2)
  {
   cout<<"全班外语平均分为:";
   cout<ave(h,"E_score")<   cout<<"全班外语及格率为:";
   cout<pass(h,"E_score")<<"%"<  }
 else if(n==3)
  {
   cout<<"全班C++平均分为:";
   cout<ave(h,"C_score")<   cout<<"全班C++及格率为:";
   cout<pass(h,"C_score")<<"%"<  }
 else if(n==4)
  {
   int r=0;
   r=inum(r);
   int count=0;
   if(p==null)
    {
     cout<<"系统里没有学生资料记录."<     return(h);
    }
   else
    {
     while(p->num!=r)
      {
       if(p->num==r)
        {
         break;
        }
       p=p->next;
       if(p==null)
        {
         cout<<"没有关于你的资料记录."<         return(h);
         break;
        }
      }
    }
   cout<<"学号"<   cout<num<name<sex<M_score<E_score<C_score<total<ave1<   cout<<"你的数学为班上第"<position(h, "M_score",p)<<"名"<   cout<<"你的外语为班上第"<position(h, "E_score",p)<<"名"<   cout<<"你的C++为班上第"<position(h, "C_score",p)<<"名"<   cout<<"你的总分为班上第"<position(h, "total",p)<<"名"<  }
 else
  {
   cout<<"你的输入有误,请重新输入."<   h->stat(h);
  }
 }
 return(h);
}
float Listnode::ave(Listnode *p,string n)//求平均分

 float ave,total=0;
 int count=0;
 if(p==null)
  {
   cout<<"系统里没有学生资料记录."<  }
 else {
  while(p!=null)
  {
   if(n == "M_score")
   {
    total=total+p->M_score;
    count++;
    p=p->next;
   }
   if(n == "E_score")
   {
    total=total+p->E_score;
    count++;
    p=p->next;
   }
   if(n == "C_score")
   {
    total=total+p->C_score;
    count++;
    p=p->next;
   }
  }
  ave=total/count;
 }
 return(ave);
}
double Listnode::pass(Listnode *p, string n)//求及格率
{
 int count1=0,count2=0;
 float pass;
 if(p==null)
  {
   cout<<"系统里没有学生资料记录."<   return(0);
  }
 else
  {
   while(p!=null)
    {
     if(n=="M_score"&&p->M_score>=60)
     { 
      count1++;
     }
                    if(n=="E_score"&&p->E_score>=60)
     {
      count1++;
     }
     if(n=="C_score"&&p->C_score>=60)
     { 
      count1++;
     }
     count2++;
     p=p->next;
    }
  }
 pass=count1*100/count2;
 return(pass);
}
int Listnode::position(Listnode *q,string n,Listnode *p)//求个人在班上的名字
{
 Listnode *h;
 h=q;
 int count=0;
 if(q==null)
  {
   cout<<"没有学生资料的记录."<   return(0);
  }
 else
  {
   while(q!=null)
    {
     if(n=="M_score"&&(q->M_score>p->M_score))
      {
       count++;
      }
     if(n=="E_score"&&(q->E_score>p->E_score))
      {
       count++;
      }
     if(n=="C_score"&&(q->C_score>p->C_score))
      {
       count++;
      }
     if(n=="total"&&(q->total>p->total))
      {
       count++;
      }
     q=q->next;
    }
  }
 return(++count);
}
Listnode *Listnode::arrange(Listnode *p)//对总分进行排名
{
 Listnode *show_menu(Listnode *);
 Listnode *h,*q,*r,*t;
 int count=0;
 t=q=h=p;
 if(q==null)
  {
   cout<<"===>提示:没有学生资料的记录."<   return(q);
  }
    else
  {
   while(q!=null)
    { 
     count++;//用来统计结点个数
     q=q->next;
    }
  }
 delete q;
 r=p->next;
 for(int i=0;i  {
   for(int j=i+1;j    { 
     if(p->totaltotal)
      {
       float t1=p->total;p->total=r->total;r->total=t1;
       float t2=p->ave1;p->ave1=r->ave1;r->ave1=t2;
       float t3=p->C_score;p->C_score=r->C_score;r->C_score=t3;
       float t4=p->M_score;p->M_score=r->M_score;r->M_score=t4;
       float t5=p->E_score;p->E_score=r->E_score;r->E_score=t5;
       int t6=p->num;p->num=r->num;r->num=t6;
       string t7=p->name;p->name=r->name;r->name=t7;
       string t8=p->sex;p->sex=r->sex;r->sex=t8;
      }
     p=p->next;
     r=p->next;
    }
   p=t;
   r=p->next;
  }
  h->show_menu(h);
  p=r=t=null; 
  return(h);
}
Listnode *Listnode::save(Listnode *p)//生成文件保存资料,以便下次接着操作
{
 
 Listnode *h,*q;int count=0;
 q=h=p;
 ofstream outfile("student.txt",ios::out|ios::trunc);
 if(!outfile)
  {
   cerr<<"没有找到文件,导入记录失败."<   exit(1);
  }
 if(p==null)
  {
   cerr<<"没有资料导入,导入记录失败."<   return(h);
  }
 else
  {
   while(q!=null)
    {
     count++;//统计要保存的记录的条数
     q=q->next;
    }
   outfile<   while(p!=null)
    {
     outfile<num<name<sex<M_score<E_score<C_score<total<ave1<     p=p->next;
    }
   delete p;
  }
 outfile.close();
 return(h);
}
Listnode *open()//打开文件,导出记录
{
     Listnode *h=NULL,*p=NULL,*pTemp=NULL;
  int count=0;
  ifstream infile("student.txt",ios::in);
  if (!infile)
  {
   cerr<<"没有找到文件,导出记录失败."<   return(h);
  }
 else
  {
   int iCount = 0;
   infile >> iCount;//导出结点个数
   for(int i=0;i    {
     p=new Listnode;
     p->next=NULL;
     infile>>p->num>>setw(10)>>p->name>>setw(10)>>p->sex>>setw(10)>>p->M_score>>setw(10)>>p->E_score>>setw(10)>>p->C_score>>setw(10)>>p->total>>setw(10)>>p->ave1;
     count++;//记录导出记录的条数
     if(h==NULL)
     {
      h=p;
      pTemp=p;
     }
     else
     {
      pTemp->next=p;
      pTemp=p;
     }
    }
   cout<<"正在导出记录。。。。请等待。。。。"<   cout<<"导出成功,共导出"<  }
 infile.close();
 return(h);
}
void sfnc(Listnode *p)//释放内存
{
 if(p==null)
  {
   delete p;
  }
 while(p!=null)
  { 
   Listnode *q;
   q=p;
   p=p->next;
   delete q;
  }
}
int main()//主函数
{
    int n,m,e;
 e=password();
 cout<<"请输入密码:";
 cin>>m;
 if(m!=e)//从这里开始判断密码是否正确
  { 
   while(m!=e)
   { 
    cout<<"你输入的密码不正确,请重新输入."<    cout<<"请输入密码:";
    cin>>m;
    if(m==e)
     {
      cout<<"欢迎进入学生成绩管理系统."<      break;
     }
    password();
    e=password();
   }
  }
 else if(m==e)
  {
   cout<<"欢迎进入学生成绩管理系统."<  }
 Listnode student,*p;
 p=open();
 if(p==null)/*如果没有从文件中导出记录,则要控制用记的第一次输入,如果选择对数据的删除查找什么的操作,将会报错。。。*/
  {                                   
   menu();
   cout<<"请你选择操作:";
   cin>>n;
   while(n!=1&&n!=10)
    {
     if(n>1&&n<10)  
      {
       if(n==9)
        {
         announce();
         cout<<"请你选择操作:";
         cin>>n;
        }
       else
        {
         cout<<"在你还没有建立资料库之前,你只能进行1,9或者10操作:";
         cin>>n;
        }
      }  
     else
      {
       cout<<"===>提示:菜单里没有你输入的选项."<       cout<<"你的输入有误,请重新输入:";
       cin>>n;
      }
    }
  if(n==1)
   {
    p=student.creat();
   }
  else
   {
    exit(0);
   }
  }
 else
  {;}
  do
   { 
    menu();
    cout<<"请你选择操作:";
    cin>>n;
    while(n<=1&&n>=10)
     {
      cout<<"===>提示:菜单里没有你输入的选项."<      cout<<"你的输入有误,请重新输入:";
      cin>>n;
     }
  string t;
   
    switch(n)//选择操作,并在每一次操作后返回该操作完成后的头指针,以便保存该操作。。。
     {
      case 1:
       p=student.creat();break;
      case 2:
       p=student.search(p);break;
      case 3:
       p=student.del(p);break;
      case 4:
       p=student.add(p);break;
      case 5:
       p=student.show_menu(p);break;
      case 6:
       p=student.modify(p);break;
      case 7:
       p=student.stat(p);
       break;
      case 8:
       p=student.arrange(p);break;
      case 9:
        announce();break;
      case 10:
       cout<<"是否保存资料(Y\\N):";
       cin>>t;
       while((t!="Y"&&t!="y")&&(t!="N"&&t!="n"))//输入大小写的Y或N都可以。。。
        {
         cout<<"===>提示:只能输入大写或小写的Y与N来进选择是否保存."<         cout<<"你的输入有误,请重新输入:";
         cin>>t;
        }
       if(t=="Y"||t=="y")
        {
         p=student.save(p);
         cout<<"保存成功,退出系统,再见."<         sfnc(p);//保存并释放内存
         exit(0);
        }
       else if(t=="N"||t=="n")
        {
         cout<<"退出系统,再见."<            sfnc(p);//释放链表内存
         exit(0);
        }
       
      default ://输入选择的操作,如果菜单里没有,报错。。。
       n=0;
       cout<<"===>提示:菜单里没有你输入的选项."<       cout<<"你的输入有误,请重新输入."<     }
 }  
 while(n<=10);
 return 0;
}

 
阅读(6206) | 评论(10) | 转发(0) |
0

上一篇:再次庆贺。。。

下一篇:最近要做的事

给主人留下些什么吧!~~

chinaunix网友2011-04-21 15:44:46

相当不错!

chinaunix网友2010-07-08 17:46:22

Thanks. 做的很好呀,令人印象深刻,不知道毕业设计时有多少人来过,肯定是个不小的数字。 谢谢

chinaunix网友2009-06-23 10:10:39

编译的时候第495行:Listnode *Listnode::stat(Listnode *p)函数定义语句中的float Listnode::ave(Listnode *p,string n);语句发生了编译错误 。。汗~。。不会吧。。。

chinaunix网友2009-06-23 04:20:53

敢问牛人是哪学校的?

chinaunix网友2009-06-23 04:20:12

找到代码了,虽然抄代码我知道是可耻的,但是为了成绩,对不起了~ 编译的时候第495行:Listnode *Listnode::stat(Listnode *p)函数定义语句中的float Listnode::ave(Listnode *p,string n);语句发生了编译错误