5、查找学生:
6、排序
16
7、筛选
0、退出程序:
17
七、附录
#include
int count =0; //记录学生人数 typedef struct Student {
char mun[12]; //学号 char name[20]; //姓名 float score[8]; //成绩 float all_score; //总分 float ave_score; //加权平均分 struct Student *next;
}LinkList;
void InitList (LinkList *&L) //初始化链表 { }
void Creat_Student (LinkList *&L) //输入学生并添加到链表里面 {
L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL;
LinkList *r=L,*s; int i=0,j=1; float all=0,ave,a[8]; while(j==1) {
while(r->next!=NULL)
r=r->next;
s=(LinkList *)malloc(sizeof(LinkList));
18
s->next=NULL;
printf(\输入学生学号、姓名、每科成绩\\n\printf(\学号:\scanf(\printf(\姓名:\
scanf(\数据结构3.0、数字信号处理4.0、数字电子
技术基础2.5 这里只输入三门成绩作为示范*/
for(i=0;i<3;i++) { }
all=a[0]+a[1]+a[2]; s->all_score=all;
ave=(a[0]*3.0+a[1]*4.0+a[2]*2.5)/9.5;
19
if(i==0) { } if(i==1) { } if(i==2) { }
printf(\输入数字电子技术基础分数\\n\scanf(\s->score[i]=a[i];
printf(\输入数字信号处理分数\\n\scanf(\s->score[i]=a[i];
printf(\输入数据结构分数\\n\scanf(\s->score[i]=a[i];
}
}
s->ave_score=ave; r->next=s; r=s;
count=count+1;
printf(\是否继续?(按1继续,其他退出。)\scanf(\
void output_Student (LinkList *&L,int n) //输出全部学生 {
LinkList *p=L->next; if(p==NULL) { }
printf(\ 学生成绩表 \\n\
printf(\编号 学号 姓名 数据结构 数字信号 数字电路 总
printf(\没有学生成绩!请添加学生。。。\\n\return;
分 加权平均分\\n\
int m;
for(m=1;m<=n&&p!=NULL;m++) {
printf(\%-10.1f\\n\
name,p->score[0],p->score[1],p->score[2],p->all_score,p->ave_score);
}
void Delete_Student(LinkList *&L,int i) //删除第i个学生 {
int j=0;
LinkList *p=L,*q;
20
}
p=p->next;