#include<iostream.h>//用于统计学生分数
const int maxsize=2;
class student
{
public:
char name[12];//名字
int score[maxsize];//成绩,两门课
student * next;//用作链表
};
class grade //成绩类
{
public:
int number;
student *head,*temp,*tail;//定义学生类的对象
grade(){temp=NULL;}//构造函数
void create(int &number);//生成链表,number用于计算人数
void print(student *temp);//打印链表内容
};
void grade::create(int &number)
{
head=temp;
tail=head;
for(int i=1;;i++)
{
cout<<i<<" "<<"name:";
cin>>temp->name;
if(temp->name[0]!='*')
{
for(int j=0;j<maxsize;j++)
{
cout<<"score"<<j+1<<":";
cin>>temp->score[j];
}
number++;
temp->next=NULL;
tail=temp;
}
else
{
delete temp;
tail->next=NULL;
break;
}
temp->next=new student;
temp=temp->next;
}
temp=head;
}
void grade::print(student *temp)
{
while(temp!=NULL)
{
cout<<endl<<temp->name<<endl;
for(int j=0;j<maxsize;j++)
{
cout<<temp->score[j];
}
temp=temp->next;
}
}
void main()
{
grade file;
int number=0,*point=&number;//初始人数为零
file.create(*point);
file.print(file.temp);
}
/*好长一段时间没写程序,不知道是不是语法上有问题,总之不能正常执行
麻烦热心网友帮忙,不胜感激!*/