1.设计目的 ⚫ 掌握线性链表的建立。 ⚫ 掌握线性链表的基本操作。 ⚫ 掌握查找的基本算法。
#include<iostream.h>
#include<string.h>
#include <fstream.h>
const int Maxsize=100;
struct StuNode{
char name;
int num;
int sum;
StuNode *nextstu;
};
class student
{
public:
student();
~student();
charname[8]; //姓名
intscore; //总分
intnumber; //学号
void Insert(char iname,int inum,intisum); //插入
StuNode *Search(int inum); //查找
void Update(int inum,int isum); //修改
void Delete(int inum); //删除
void Copy(StuNode *ptemp, StuNode *p); //拷贝
void Show(); //显示
void Sort(char ch); //排序
private:
StuNode *StuListHead;
};
student::student() //构造函数
{
StuListHead=new StuNode;
StuListHead->nextstu=NULL;
}
student::~student() //析构函数
{
StuNode *p;
while (StuListHead)
{
p = StuListHead;
StuListHead = StuListHead->nextstu;
delete p;
}
StuListHead= NULL;
}
void student::Insert(char iname,intinum,int isum ) //插入
{
StuNode *s,*p;
s=new StuNode;
s->num=inum;
s->sum=isum;
s->name=iname;
p=StuListHead;
s->nextstu = p->nextstu;
p->nextstu = s;
}
StuNode *student::Search(int inum)
{
StuNode*p;
p=StuListHead->nextstu;
while(p->nextstu&&p->num!=inum)
{
p=p->nextstu;
}
if(p->num==inum)
{
return p;
}
else
{
cout <<"未找到该学生信息!"<<endl;
return NULL;}
}
void student::Update(int inum,int isum)
{
StuNode *Item=Search(inum);
if (Item!=NULL)
{