c++ 链表 学生管理系统!

来源:百度知道 编辑:UC知道 时间:2024/05/27 18:28:30
#include<iostream>
#define null 0
using namespace std;
class Student //定义一个学生类
{
private:
int score;
int number;
char name[10];
public:
void setscore(int score1) { score=score1;}
void setnumber(int number1) { number=number1;}
char setname(char *name1) { strcpy(name,name1);}
int getscore() {return score;}
int getnumber() {return number;}
char * getname() {return name;}
};
int main()
{ Student *r; //指针r 用来输出
int n=0;
int score2;
int number2;
char name2[10];
static Student *head; //建立一个链表
Student *p1,*p2;
p1=p2=new Student;
head=null;
cout<<"输入学号"<<endl;
cin>>number2;

错误一:
while(p1->number!=10000)
Student类中的number是私有成员,不能直接访问,可以在类中写一个getNumber()的公共函数来实现访问
错误二:
p2->next=p1;
在Student的定义中没有*next的申明和定义,应该在类中定义一个 Studeng *next

错误三:
cin>>p1->setnumber(number2);
cout<<" ";
cin>>p1->setname(name2);
cout<<" ";
cin>>p1->setscore(score2);
cout<<" "<<endl;
在cin>>后面应该是存储输入值的变量,而不是函数的返回值。

你里面的错误太多了,语义和语法错误都有
cin>>p1->setnumber(number2);
cout<<" ";
cin>>p1->setname(name2);
cout<<" ";
cin>>p1->setscore(score2);
cout<<" "<<endl;

这个cin的输入数值方式我没看过,而且链表的链接也是错误,这样只能记住两个数据,还有就是你的变量毫无意义,我很有耐心才看的

我用C语言写了一个,不知道 ,你要不要?
如果要的话, 就把邮箱发给我吧