C# 学生成绩管理系统 精华版附实训报告Word下载.docx
《C# 学生成绩管理系统 精华版附实训报告Word下载.docx》由会员分享,可在线阅读,更多相关《C# 学生成绩管理系统 精华版附实训报告Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
for(intj=0;
j<
3;
j++)
%f"
stu[i].score[j]);
getchar();
i++;
c、继续输入;
q、退出\n"
请选择:
a=getchar();
switch(a)
{
case'
c'
:
input();
//input函数的递归
break;
q'
}
}
voidoutput()//输出学生信息------
学号名字性别专业英语数学计算机\n"
i;
printf("
%2d%10s%7s%7s%10.2f%10.2f%10.2f\n"
stu[j].snum,stu[j].sname,stu[j].sex,stu[j].szy,stu[j].score[0],stu[j].score[1],stu[j].score[2]);
voidavg1()//每个学生三科成绩的平均
floatavg;
for(inta=0;
a<
a++)
floatsum=0;
for(intj=0;
{
sum+=stu[a].score[j];
avg=sum/3;
}
%d,名字是:
%s,性别是:
%s,专业是:
%s,平均分是:
%3.2f,总分是:
%3.2f\n"
stu[a].snum,stu[a].sname,stu[a].sex,stu[a].szy,avg,sum);
voidavg2()//每科全班平均分-
intj;
输入:
1.英语;
2.数学;
3.计算机\n"
\n"
j);
--j;
floatsum=0;
for(inta=0;
a++)
avg=sum/(a);
全班平均分是:
avg);
charb;
b=getchar();
switch(b)
avg2();
//avg2函数的递归
intchack1()//按名字查找成绩
charc[10];
输入学生名字:
gets(c);
//getchar();
for(intj=0,k;
if(strcmp(c,stu[j].sname)==0)
%s,成绩是:
stu[j].snum,stu[j].sname,stu[j].sex,stu[j].szy);
英语:
%3.2f"
stu[j].score[0]);
数学:
stu[j].score[1]);
计算机:
stu[j].score[2]);
k=j;
returnk;
intchack2()//按学号查找成绩-
inta;
输入学生学号:
a);
if(stu[j].snum==a)
voidchack3()//查找某一分数段的学生成绩-
intn,b,c;
n);
--n;
请输入你所查找的分数段:
%d~%d"
b,&
c);
if(n==0)
学号名字性别专业英语\n"
if(n==1)
学号名字性别专业数学\n"
if(n==2)
学号名字性别专业计算机\n"
if(stu[a].score[n]>
=b&
&
stu[a].score[n]<
=c)
if(n==0)
printf("
%2d%7s%7s%9s%10.2f\n"
stu[a].snum,stu[a].sname,stu[a].sex,stu[a].szy,stu[a].score[0]);
if(n==1)
stu[a].snum,stu[a].sname,stu[a].sex,stu[a].szy,stu[a].score[1]);
if(n==2)
stu[a].snum,stu[a].sname,stu[a].sex,stu[a].szy,stu[a].score[2]);
chard;
d=getchar();
switch(d)
chack3();
//chack3函数的递归
voidchack4()//按专业查找学生的成绩
输入学生专业:
if(strcmp(c,stu[j].szy)==0)
%d,名字是:
%s,性别是:
%s专业是:
%s的成绩是:
chack4();
//chack4函数的递归
voidselect()//排序-
intj=0,k=0,a;
structstudentt;
--a;
for(j=0;
for(k=0;
k<
i-j;
k++)
if(stu[k].score[a]<
stu[k+1].score[a])
t=stu[k];
stu[k]=stu[k+1];
stu[k+1]=t;
for(j=0;
第%d名是%d号%s性别是%s专业是%s成绩是:
j+1,stu[j].snum,stu[j].sname,stu[j].sex,stu[j].szy,stu[j].score[a]);
select();
//select的递归
voidmax()//各科中的最高分-
floatMax=0;
inta,j,k;
if(stu[j].score[a]>
Max)
Max=stu[j].score[a];
k=j;
if(a==0)
全班英语最低分是:
\n%d号%s同学性别是:
%s%3.2f分\n"
stu[k].snum,stu[k].sname,stu[k].sex,stu[k].szy,stu[k].score[a]);
if(a==1)
printf("
全班数学最低分是:
if(a==2)
全班计算机最低分是:
max();
//max函数的递归
voidmin()//各科中的最低分
floatMin=100;
if(stu[j].score[a]<
Min)
Min=stu[j].score[a];
min();
//min函数的递归
voideach()//各分数段人数-
intw,b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,n;
90~100分的同学有:
=90&
=100)
%d号%s%3.2f分\n"
stu[a].snum,stu[a].sname,stu[a].score[n]);
b++;
100~90分的同学共有:
%d人\n"
b);
#############\n"
80~89分的同学共有:
for(a=0;
=80&
90)
c++;
89~80分的同学共有:
c);
70~79分的同学有:
=70&
80)
d++;
79~70分的同学共有:
d);
60~69分的同学有:
=60&
70)
e++;
69~60分的同学共有:
e);
50~59分的同学有:
=50&
60)
f++;
59~50分的同学共有:
f);
40~49分的同学有:
=40&
50)
g++;
49~40分的同学共有:
g);
30~39分的同学有:
=30&
40)
h++;
h);
0~29分的同学有:
=0&
30)
j++;
30分以下的同学共有:
j);
floatx,y,z;
w=f+g+h+j;
x=(float)(c+b)/(b+c+d+e+f+g+h+j)*100;
y=(float)j/(b+c+d+e+f+g+h+j)*100;
z=(float)(b+c+d+e)/(b+c+d+e+f+g+h+j)*100;
不合格人数有:
w);
优生率(80分以上):
%3.2f%c\n"
x,'
%'
差生率(30分以下):
y,'
合格率(60分以上):
z,'
charo;
o=getchar();
switch(o)
each();
//each函数的递归
voidchange()//修改学生信息-
inta,b,k;
1.输入你想要修改的学生的名字;
2.输入你想要修改的学生的学号;
if(a==1)
k=chack1();
//调用chack1函数
以上是你想要修改的学生的原信息!
请选择你想修改学生那一项信息:
\n1.学号;
2.名字;
3.性别;
4.专业;
5.英语成绩;
6.数学成绩;
7.计算机成绩\n"
b);
if(b==1)
请输入新的学号:
scanf("
stu[k].snum);
getchar();
if(b==2)
请输入新的名字:
stu[k].sname);
if(b==3)
请输入新的性别:
stu[k].sex);
if(b==4)
请输入新的专业:
stu[k].szy);
if(b==5)
请输入新的英语成绩:
stu[k].score[0]);
if(b==6)
请输入新的数学成绩:
stu[k].score[1]);
if(b==7)
请输入新的计算机成绩:
stu[k].score[2]);
更改后的新信息!
%2d%7s%7s%7s%10.2f%10.2f%10.2f\n"
stu[k].snum,stu[k].sname,stu[k].sex,stu[k].sz