学生成绩管理系统v3.0Word文档下载推荐.docx
《学生成绩管理系统v3.0Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统v3.0Word文档下载推荐.docx(8页珍藏版)》请在冰点文库上搜索。
![学生成绩管理系统v3.0Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/d63bb414-7b2a-46d2-a6cb-c1c95de65e79/d63bb414-7b2a-46d2-a6cb-c1c95de65e791.gif)
输入学生人数"
);
scanf("
%d"
&
n);
//getchar();
printf("
1.Inputrecord\n"
2.Caculatetotelandaveragescoreofeverycourse\n"
3.Sortindescendingorderbyscore\n"
4.Sortinascendingorderbyscore\n"
5.Sortinascendingorderbynumber\n"
6.Sortindictionaryorderbyname\n"
7.Searchbynumber\n"
8.searchbyname\n"
9.Statisticanalysis\n"
10.Listrecord\n"
0.Exit\n"
Pleaseenteryourchoice:
\n"
for(;
;
)
{
scanf("
c);
switch(c)
{
case1:
//录入学生学号和各科成绩
Input(num,score,n,name);
printf("
break;
case2:
//计算每门课程的总分和平均分
Totalave(score,n);
case3:
//按chengji由高到低排出名次表
Scoredes(num,score,n,name);
case4:
//按chengji由低到高排出名次表
Scoreas(num,score,n,name);
case5:
//按学号由小到大排出名次表
Numas(num,score,n,name);
case6:
Nameorder(num,score,n,name);
case7:
//按学号查询学生排名及其各科成绩
请输入查找学号\n"
scanf("
x);
Searchbyno(num,score,n,x,name);
case8:
//按姓名查询学生排名及其各科成绩
请输入查找姓名\n"
getchar();
gets(y);
Searchbyname(num,score,n,y,name);
case9:
//成绩分析所占百分比
statistis(score,n);
case10:
//全部输出
List(num,score,n,name);
case0:
exit(0);
}
}
return0;
}
voidInput(longnum[],intscore[],intn,charname[][10])//1
{
inti;
for(i=0;
i<
n;
i++)
{
printf("
Inputstudent'
sID,nameandscore"
scanf("
%ld"
num[i]);
%s"
name[i]);
scanf("
score[i]);
//getchar();
}
}
voidTotalave(intscore[],intn)//2.计算课程的总分和平均分
inti,sum=0;
doubleave;
for(i=0;
{
sum=sum+score[i];
}
ave=(double)sum/n;
总分=%d,课程的平均分=%f\n"
sum,ave);
voidScoredes(longnum[],intscore[],intn,charname[][10])//3.按学生的分由高到低排出名次表
inti,j,k,t,h;
chartemp[10];
for(i=0;
{
k=i;
for(j=i+1;
j<
j++)
if(score[j]>
score[k])
k=j;
if(i!
=k)
t=score[k],h=num[k],strcpy(temp,name[k]);
score[k]=score[i],num[k]=num[i],strcpy(name[k],name[i]);
score[i]=t,num[i]=h,strcpy(name[i],temp);
}
printf("
ID:
%10ld,name:
%s,score:
%d\n"
num[i],name[i],score[i]);
//以长整形打印用%ld
voidScoreas(longnum[],intscore[],intn,charname[][10])//4.按学生的分由高到低排出名次表
inti,k,t,h,j;
if(score[j]<
voidNumas(longnum[],intscore[],intn,charname[][10])//5.按学号由小到大排出名次表
inti,k,h,t,j;
chartemp[10];
if(num[j]<
num[k])
voidNameorder(longnum[],intscore[],intn,charname[][10])//6。
按姓名的字典顺序排出成绩表
inti,k,t,h;
for(k=i+1;
k<
k++)
if(strcmp(name[i],name[k])>
0)
{
}
voidSearchbyno(longnum[],intscore[],intn,intx,charname[][10])//7.按学号查询学生排名及考试成绩
inthigh=n-1,low=0,mid,c=1,pos,find=0,i,k,h,j,t;
chartemp[10];
for(i=0;
t=score[k],h=num[k],strcpy(temp,name[k]);
while(find==0&
&
low<
=high)
mid=(high+low)/2;
if(x>
num[mid])
low=mid+1;
elseif(x<
high=mid-1;
else
pos=mid;
find=1;
if(find==0)
notfind\n"
else
if(score[i]>
score[pos])
c++;
%s,order:
%d,"
num[pos],name[pos],c);
score:
score[pos]);
}
voidSearchbyname(longnum[],intscore[],intn,charc[],charname[][10])//8。
按姓名查询学生排名及其考试成绩
inti,pos=-1,d=1;
{if(strcmp(name[i],c)==0)
pos=i;
if(pos==-1)
printf("
else
{
for(i=0;
{
d++;
num[pos],name[pos],d);
voidstatistis(intscore[],intn)//9.案优秀良好中等及格不及格5个类别,统计每个类别的人数以及所占的百分比
inta=0,b=0,c=0,d=0,e=0,i;
doubleA,B,C,D,E;
if(score[i]>
=90)
a++;
elseif(score[i]>
=80)
b++;
=70)
c++;
=60)
d++;
else
e++;
A=(double)a/n*100;
B=(double)b/n*100;
C=(double)c/n*100;
D=(double)d/n*100;
E=(double)e/n*100;
优秀人数%d,百分比:
%f%%\n"
a,A);
printf("
良好人数%d,百分比:
b,B);
中等人数%d,百分比:
c,C);
及格人数%d,百分比:
d,D);
不及格人数%d,百分比:
e,E);
voidList(longnum[],intscore[],intn,charname[][10])//10输出每个学生的学号,考试成绩姓名,以及课程总分和平均分
for(i=0;
sum=sum+score[i];
ave=(double)sum/n;
总分=%d\n平均分%f\n"