C语言课程设计 学生成绩管理系统Word文档格式.docx
- 文档编号:19567366
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:20
- 大小:17.51KB
C语言课程设计 学生成绩管理系统Word文档格式.docx
《C语言课程设计 学生成绩管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计 学生成绩管理系统Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
n'
)
{
printf("
\n请输入要录入的学生个数:
"
);
scanf("
%d"
&
n);
for(i=1;
i<
=n;
i++)
{
s=(student1*)malloc(sizeof(student1));
\n请输入学生的学号:
\n"
%s"
s->
sno);
\n请输入学生的姓名:
name);
\n请输入学生的语文成绩:
Chinese);
\n请输入学生的数学成绩:
Math);
\n请输入学生的英语成绩:
English);
s->
sum=s->
Chinese+s->
Math+s->
English;
s->
avg=(float)s->
sum/3;
if(L!
=NULL)
q=L;
p=L;
while(q)
flag=strcmp(q->
sno,s->
if(flag==0)
该学生已存在!
break;
}
q=q->
next;
}
if(flag!
=0)
while(p->
next)p=p->
p->
next=s;
p=s;
next=NULL;
/*尾结点的指针置空,下同!
*/
else
L=s;
\n是否继续?
(Y/N或y/n):
scanf("
choice);
system("
cls"
returnL;
}
sno_select(gradeL)/*按学生学号查找*/
student1*p=L;
charnum[10],choice='
inti=1,flag;
printf("
\n请输入该学生的学号:
num);
while(p)
flag=strcmp(p->
sno,num);
\n*************************************************************\n"
\t学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n"
\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n"
p->
sno,p->
name,p->
Chinese,p->
Math,p->
English,p->
sum,p->
avg);
***************************************************************\n"
break;
elsep=p->
if(flag)printf("
\n不存在该学号的学生!
\n\n"
继续查找?
return0;
grade_select(gradeL)/*按分数段查询*/
intn,m,j,k=0,x=0,y=0;
\n可查找的科目的菜单如下:
\t1.语文2.数学3.英语\n"
请选择(输入序号即可):
j);
\n请输入一个分数段,即输入n,m的值(n<
m):
%d%d"
n,&
m);
if(j==1)
x=1;
y=1;
if(p->
Chinese>
=n&
p->
Chinese<
=m)
k=1;
if(j==2)
k=1;
Math>
Math<
x=1;
if(j==3)
English>
English<
p=p->
if(L==NULL)printf("
该系统还没有存放数据!
else
if(k==0)printf("
没有学生的语文成绩在这个分数段上\n\n"
if(x==0)printf("
没有学生的数学成绩在这个分数段上\n\n"
if(y==0)printf("
没有学生的英语成绩在这个分数段上\n\n"
k=0;
x=0;
y=0;
statistics(gradeL)/*统计函数*/
inti=0;
floatall_avg=0;
y'
all_avg=all_avg+p->
avg;
p=p->
i++;
\n===================================================\n"
该班级总人数为:
%d\n"
i);
该班级的平均分为:
0\n"
elseprintf("
%5.2f\n"
all_avg/i);
===================================================\n"
\n退出?
(Y或y):
gradedelete_grade(gradeL)/*删除指定学生成绩函数*/
student1*p=L,*q=L;
num[10];
该系统中不存在任何数据\n\n"
\n请输入想要删除的学生学号:
if(q==p)
L=q->
free(q);
while(q->
next!
=p)q=q->
q->
next=p->
free(p);
\n不存在该学生"
\n删除成功!
p=L;
q=L;
继续删除?
asc_order_grade(gradeL)/*升序排序函数*/
intk,x=1,n=0,m,y;
floatz;
student1*p,*q,*s=L;
chart[10],choice;
while(s)/*计算链表数据个数n*/
s=s->
n++;
while(x)
choice='
****************************************\n"
成绩升序排序菜单如下:
-----------------------------------\n"
1.按语文成绩升序排序\n"
2.按数学成绩升序排序\n"
3.按英语成绩升序排序\n"
4.按总成绩升序排序\n"
5.按平均成绩升序排序\n"
6.返回主菜单\n"
请选择(输入菜单序号即可):
k);
if(k==1)/*按语文成绩升序排序*/
for(m=0;
m<
n-1;
m++)
next)
q=p->
=q->
Chinese)
strcpy(t,p->
/*学号交换*/
strcpy(p->
sno,q->
strcpy(q->
sno,t);
name,q->
name,t);
y=p->
Chinese;
/*语文成绩交换*/
Chinese=q->
q->
Chinese=y;
y=p->
Math;
/*数学成绩交换*/
Math=q->
Math=y;
/*英语成绩交换*/
English=q->
English=y;
sum;
/*总成绩交换*/
sum=q->
sum=y;
z=p->
/*平均成绩交换*/
avg=q->
avg=z;
\n按语文成绩升序排序的最终结果为:
退出?
(Y或y)"
elseif(k==2)/*按数学成绩升序排序*/
Math)
\n按数学成绩升序排序的最终结果为:
elseif(k==3)/*按英语成绩升序排序*/
English)
\n按英语成绩升序排序的最终结果为:
elseif(k==4)/*按总成绩升序排序*/
sum>
sum)
\n按总成绩升序排序的最终结果为:
elseif(k==5)/*按平均绩升序排序*/
avg>
avg)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言课程设计 学生成绩管理系统 语言 课程设计 学生 成绩管理系统