永发信息网

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

答案:2  悬赏:70  手机版
解决时间 2021-03-21 18:44
建立链表, 输出链表中个节点的值, 删除具有某个学号的节点 , 在某个位置插入节点, 释放链表中节点所占用的动态存储空间
最佳答案
#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人的数据输入和输出
全部回答
给你个有关链表的例子吧,你参考一下,自己写出完整的程序,有问题可以提问 #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!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我最近找了一个酒店服务员的工作。但是,老板
车上装有安吉星能查出来是谁在开车吗
徐家沟村在什么地方啊,我要过去处理事情
关于正确选择的句子,正确树立人生的方向名言
之前申请一个建设全球热购VISA卡然后注销了,
hi,Mom! lm home怎么读
有两瓶白色晶体状的化肥分别是NH4NO3和KNO3,
丰田酷路泽v84700正时多少公里更换
古人是怎样保存火种的??
中国农业银行长兴明珠路支行在什么地方啊,我
简单祝福闺蜜结婚的话,简短幽默结婚祝福语
单选题武汉国民政府与广东国民政府的北伐相比
谁能知道我流下的眼泪,谁能明白我心里痛,来
一首酒吧听到的歌,很疯狂,一个男的嘶吼爱瑞
请教MHDD检测到WW是什么意思.好多500(红)和15
推荐资讯
白鸽的象征意义,伏羲女娲图的作品意义
1956年猴男与1993鸡结婚怎么样?
莲发22巷什么时候拉网线
站前派出所东富平社区警务室这个地址在什么地
樱花虾是淡水养还是海水养
学生自述怎么写,阳光高考填报志愿个人陈述怎
秀沟村地址在哪,我要去那里办事
骨伤正专是什么意思,正专是指什么,正规专辑
镇江的连锁经营是不是传销呀
锋字多少笔画啊
人物评述怎么写,工作质量自我评价怎么写
湖北省新华医院-肿瘤血液科在哪里啊,我有事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?