主题:求朋友帮忙看下程序
请朋友们帮着看看这个程序错在哪里了,为什么总是提示stack overflow错误。怎么就溢出了呢?链表实现学生信息成绩的录入
头文件
#include<iostream>
#include<string>
using namespace std;
struct student
{
string name;
int math;
int computer;
int sum;
};
class chengjisqlink
{
public:
chengjisqlink();
void insert();
void print();
private:
chengjisqlink *next,*head,*p,*q;
struct student data;
};
chengjisqlink::chengjisqlink()
{
head=new chengjisqlink;
head->next=NULL;
}
void chengjisqlink::insert()
{
cout<<'\t'<<"math"<<'\t'<<"computer"<<endl;
for(int i=1;;i++)
{
cout<<i<<'\t';
p=new chengjisqlink;
cin>>(p->data).name>>(p->data).math>>(p->data).computer;
(p->data).sum=(p->data).math+(p->data).computer;
q=p;
if((q->data).name[0]!='*')
{
q->next=head->next;
head->next=q;
}
else
{
break;
}
}
}
void chengjisqlink::print()
{
while(q!=NULL)
{
cout<<(q->data).name<<","<<(q->data).math<<",";
cout<<(q->data).computer<<","<<(q->data).sum<<endl;
q=q->next;
}
}
源文件
#include"2.h"
#include <iostream>
using namespace std;
void main()
{
chengjisqlink a;
a.insert();
a.print();
system("pause");
}
头文件
#include<iostream>
#include<string>
using namespace std;
struct student
{
string name;
int math;
int computer;
int sum;
};
class chengjisqlink
{
public:
chengjisqlink();
void insert();
void print();
private:
chengjisqlink *next,*head,*p,*q;
struct student data;
};
chengjisqlink::chengjisqlink()
{
head=new chengjisqlink;
head->next=NULL;
}
void chengjisqlink::insert()
{
cout<<'\t'<<"math"<<'\t'<<"computer"<<endl;
for(int i=1;;i++)
{
cout<<i<<'\t';
p=new chengjisqlink;
cin>>(p->data).name>>(p->data).math>>(p->data).computer;
(p->data).sum=(p->data).math+(p->data).computer;
q=p;
if((q->data).name[0]!='*')
{
q->next=head->next;
head->next=q;
}
else
{
break;
}
}
}
void chengjisqlink::print()
{
while(q!=NULL)
{
cout<<(q->data).name<<","<<(q->data).math<<",";
cout<<(q->data).computer<<","<<(q->data).sum<<endl;
q=q->next;
}
}
源文件
#include"2.h"
#include <iostream>
using namespace std;
void main()
{
chengjisqlink a;
a.insert();
a.print();
system("pause");
}