永发信息网

建立一个无序链表,每一个节点包含:学号,姓名,年龄和数学成绩。要求编写实现如下操作的四个函数::

答案:2  悬赏:70  手机版
解决时间 2021-03-21 18:44
  • 提问者网友:贪了杯
  • 2021-03-21 03:49
建立链表, 输出链表中个节点的值, 删除具有某个学号的节点 , 在某个位置插入节点, 释放链表中节点所占用的动态存储空间
最佳答案
  • 五星知识达人网友:北城痞子
  • 2021-03-21 05:21
#include
#define N 4 //N为人数,自设
struct node{
char name[10];
long snumber;
int englishscore;
int mathscore;
int vcscore;
struct node*next;
};
class scorelist{
private:
node*head;
public:
scorelist()
scorelist(int n);//建立人数为n的成绩链表
void buildlist(int n);//同上通过调用函数,重新建立成绩表
void insertlist(node*no,int place);//链表结点的插入
void deletelist(int place);//链表结点的删除
void outputlist();//输出所有人的信息及成绩
void outputavgmaxscorestu();//输出平局成绩最大的人的信息及成绩和平局成绩
node*Gethead() //第一人信息
};
scorelist::scorelist(int n)
{
node*p;
head=new node;
p=head;
while(n!=1)
{
cin>>p->name>>p->snumber>>p->englishscore>>p->mathscore>>p->vcscore;
p->next=new node;
p=p->next;
n--;
}
cin>>p->name>>p->snumber>>p->englishscore>>p->mathscore>>p->vcscore;
p->next=NULL;
}

void scorelist::buildlist(int n)
{
node*p;
head=new node;
p=head;
while(n!=1)
{
cin>>p->name>>p->snumber>>p->englishscore>>p->mathscore>>p->vcscore;
p->next=new node;
p=p->next;
n--;
}
cin>>p->snumber>>p->englishscore>>p->mathscore>>p->vcscore;
p->next=NULL;
}
void scorelist::outputavgmaxscorestu()
{
if(head==NULL)

else{
double temp,avgmax(0);
node*p;
node*s;
s=head;
p=head;
while(p!=NULL)
{
temp=(p->englishscore+p->mathscore+p->vcscore)/3.0;
if(temp>avgmax)
{
avgmax=temp;
}
p=p->next;
}
while(s!=NULL)
{
temp=(s->englishscore+s->mathscore+s->vcscore)/3.0;
if(temp==avgmax)
{
cout<name<<" "<snumber<<" "<englishscore<<" "<mathscore<<" "<vcscore<<" " }
}
}
void scorelist::outputlist()
{
node*p;
p=head;
while(p!=NULL)
{
cout<name<<" "<snumber<<" "<englishscore<<" "<mathscore<<" "<vcscore;
cout< p=p->next;
}
}
void main()
{
cout<<"请输入"< scorelist sl(N);
cout<<"所有人成绩信息为:"< sl.outputlist();
cout<<"平局成绩最高的有:"< cout<<"姓名|"<<"学号|"<<"英语成绩|"<<"数学成绩|"<<"C++成绩|"<<"平局成绩"< sl.outputavgmaxscorestu();
}

//只要改变N就可以达到N人的数据输入和输出
全部回答
  • 1楼网友:北方的南先生
  • 2021-03-21 05:37
给你个有关链表的例子吧,你参考一下,自己写出完整的程序,有问题可以提问 #include #include #define LEN sizeof(struct Stu) typedef struct Stu{ char name[20]; char sex[10]; char dep[20]; int number; struct Stu *next; }sqlist; sqlist *inlist() { sqlist *p,*q; sqlist *head; printf("请输入名字 性别 部门 学号:\n"); q=p=head=(sqlist*)malloc(LEN); scanf("%s%s%s%d",p->name,p->sex,p->dep,&p->number); while(p->number!=0) { q->next=p; q=p; p=(sqlist*)malloc(LEN); scanf("%s%s%s%d",p->name,p->sex,p->dep,&p->number); } q->next=NULL; free(p); return head; } void addNode(sqlist *head,sqlist *newNode) { sqlist *f; f=head; while(f->next!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯