学生成绩管理系统v.docx

上传人:b****1 文档编号:10526911 上传时间:2023-05-26 格式:DOCX 页数:16 大小:16.02KB
下载 相关 举报
学生成绩管理系统v.docx_第1页
第1页 / 共16页
学生成绩管理系统v.docx_第2页
第2页 / 共16页
学生成绩管理系统v.docx_第3页
第3页 / 共16页
学生成绩管理系统v.docx_第4页
第4页 / 共16页
学生成绩管理系统v.docx_第5页
第5页 / 共16页
学生成绩管理系统v.docx_第6页
第6页 / 共16页
学生成绩管理系统v.docx_第7页
第7页 / 共16页
学生成绩管理系统v.docx_第8页
第8页 / 共16页
学生成绩管理系统v.docx_第9页
第9页 / 共16页
学生成绩管理系统v.docx_第10页
第10页 / 共16页
学生成绩管理系统v.docx_第11页
第11页 / 共16页
学生成绩管理系统v.docx_第12页
第12页 / 共16页
学生成绩管理系统v.docx_第13页
第13页 / 共16页
学生成绩管理系统v.docx_第14页
第14页 / 共16页
学生成绩管理系统v.docx_第15页
第15页 / 共16页
学生成绩管理系统v.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理系统v.docx

《学生成绩管理系统v.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统v.docx(16页珍藏版)》请在冰点文库上搜索。

学生成绩管理系统v.docx

学生成绩管理系统v

#include

#include

#include

#definem_l10

#definem_num30

#definem_cs6

typedefstructstudent

{

longnum;

charname[m_l];

floatscore[m_cs];

floatsum;

floataver;

}STU;

intmenu(void);

voidReadscore(STUstu[],intn,intm);

voidAversumofeverystudent(STUstu[],intn,intm);

voidAversumofeverycourse(STUstu[],intn,intm);

voidSortbyscore(STUstu[],intn,intm,int(*compare)(floata,floatb));

intAscending(floata,floatb);

intDescending(floata,floatb);

voids(float*x,float*y);

voids(long*x,long*y);

voids(charx[],chary[]);

voidAssortbynum(STUstu[],intn,intm);

voidSortbyname(STUstu[],intn,intm);

voidSearchbynum(STUstu[],intn,intm);

voidSearchbyname(STUstu[],intn,intm);

voidStatisticAnlysis(STUstu[],intn,intm);

voidPrintscore(STUstu[],intn,intm);

voidWritetostu[],intn,intm);

voidReadfromstu[],int*n,int*m);

intmain()

{

charch;

intn=0,m=0;

STUstu[m_num];

printf("请输入学生人数(n<=%d):

\n",m_num);

scanf("%d",&n);

printf("请输入课程数目(m<=%d):

\n",m_cs);

scanf("%d",&m);

while

(1)

{

ch=menu();

switch(ch)

{

case1:

Readscore(stu,n,m);

break;

case2:

Aversumofeverystudent(stu,n,m);

break;

case3:

Aversumofeverycourse(stu,n,m);

break;

case4:

Sortbyscore(stu,n,m,Descending);

printf("\n成绩降序排序\n");

Printscore(stu,n,m);

break;

case5:

Sortbyscore(stu,n,m,Ascending);

printf("\n成绩升序排序\n");

Printscore(stu,n,m);

break;

case6:

Assortbynum(stu,n,m);

printf("\n学号升序排序\n");

Printscore(stu,n,m);

break;

case7:

Sortbyname(stu,n,m);

printf("\n姓名字典升序排序\n");

Printscore(stu,n,m);

break;

case8:

Searchbynum(stu,n,m);

break;

case9:

Searchbyname(stu,n,m);

break;

case10:

StatisticAnlysis(stu,n,m);

break;

case11:

Printscore(stu,n,m);

break;

case12:

Writeto);

break;

case13:

Readfrom);

break;

case0:

printf("\n欢迎下次继续使用");

exit(0);

default:

printf("\n输入错误");

}

}

return0;

}

intmenu(void)

{

intitems;

printf("欢迎使用学生成绩管理系统\n");

printf("1.输入成绩\n");

printf("2.计算各个学生总成绩和平均成绩\n");

printf("3.计算各门学科总成绩和平均成绩\n");

printf("4.成绩降序排序\n");

printf("5.成绩升序排序\n");

printf("6.学号升序排序\n");

printf("7.姓名升序排序\n");

printf("8.通过学号查找成绩\n");

printf("9.通过姓名查找成绩\n");

printf("10.标准分析\n");

printf("11.显示成绩\n");

printf("12.写入文件\n");

printf("13.读取文件\n");

printf("0.退出\n");

printf("请做出您的选择\n");

scanf("%d",&items);

returnitems;

}

voidReadscore(STUstu[],intn,intm)

{

inti,j;

printf("请输入学生学号,姓名,成绩\n");

for(i=0;i

{

scanf("%ld%s",&stu[i].num,stu[i].name);

stu[i].sum=0;

for(j=0;j

{

scanf("%f",&stu[i].score[j]);

stu[i].sum+=stu[i].score[j];

}

if(m>0)

stu[i].aver=m>0?

stu[i].sum/m:

-1;

}

}

voidAversumofeverystudent(STUstu[],intn,intm)

{

inti,j;

for(i=0;i

{

printf("学生%d:

总成绩:

%.1f,平均成绩:

%.1f\n",i+1,stu[i].sum,stu[i].aver);

}

}

voidAversumofeverycourse(STUstu[],intn,intm)

{

inti,j;

floatsum[m_cs],aver[m_cs];

for(i=0;i

{

sum[i]=0;

for(j=0;j

{

sum[i]+=stu[j].score[i];

}

aver[i]=n>0?

sum[i]/n:

-1;

printf("课程%d:

总成绩:

%.1f,平均成绩:

%.1f\n",i+1,sum[i],aver[i]);

}

}

voidSortbyscore(STUstu[],intn,intm,int(*compare)(floata,floatb))

{

inti,j,k,t;

for(i=0;i

{

k=i;

for(j=i+1;j

{

if((*compare)(stu[j].sum,stu[k].sum))

k=j;

}

if(k!

=i)

{

for(t=0;t

{

s(&stu[k].score[t],&stu[i].score[t]);

}

s(&stu[k].sum,&stu[i].sum);

s(&stu[k].aver,&stu[i].aver);

s(&stu[k].num,&stu[i].num);

s(stu[k].name,stu[i].name);

}

}

}

intAscending(floata,floatb)

{

returna

}

intDescending(floata,floatb)

{

returna>b;

}

voids(float*x,float*y)

{

floatb;

b=*x;

*x=*y;

*y=b;

}

voids(long*x,long*y)

{

longb;

b=*x;

*x=*y;

*y=b;

}

voids(charx[],chary[])

{

charb[m_l];

strcpy(b,x);

strcpy(x,y);

strcpy(y,b);

}

voidAssortbynum(STUstu[],intn,intm)

{

inti,j,k,t;

for(i=0;i

{

k=i;

for(j=i+1;j

{

if(stu[j].num

k=j;

}

if(k!

=i)

{

for(t=0;t

{

s(&stu[k].score[t],&stu[i].score[t]);

}

s(&stu[k].sum,&stu[i].sum);

s(&stu[k].aver,&stu[i].aver);

s(&stu[k].num,&stu[i].num);

s(stu[k].name,stu[i].name);

}

}

}

voidSortbyname(STUstu[],intn,intm)

{

inti,j,t;

for(i=0;i

{

for(j=i+1;j

{

if(strcmp(stu[j].name,stu[i].name)<0)

{

for(t=0;t

{

s(&stu[i].score[t],&stu[j].score[t]);

}

s(&stu[j].sum,&stu[i].sum);

s(&stu[j].aver,&stu[i].aver);

s(&stu[j].num,&stu[i].num);

s(stu[j].name,stu[i].name);

}

}

}

}

voidSearchbynum(STUstu[],intn,intm)

{

longnum;

inti,j;

printf("输入你所想要查找的学号\n");

scanf("%ld",&num);

for(i=0;i

{

if(stu[i].num==num)

{

printf("%ld\t%s\t",stu[i].num,stu[i].name);

for(j=0;j

{

printf("%.0f\t",stu[i].score[j]);

}

printf("%.0f\t%.0f\n",stu[i].sum,stu[i].aver);

return;

}

}

printf("\n查无此号\n");

}

voidSearchbyname(STUstu[],intn,intm)

{

charname[m_l];

inti,j;

printf("输入你所想要查找的姓名\n");

scanf("%s",name);

for(i=0;i

{

if(strcmp(stu[i].name,name)==0)

{

printf("%ld\t%s\t",stu[i].num,stu[i].name);

for(j=0;j

{

printf("%.0f\t",stu[i].score[j]);

}

printf("%.0f\t%.0f\n",stu[i].sum,stu[i].aver);

return;

}

}

printf("\n查无此人\n");

}

voidStatisticAnlysis(STUstu[],intn,intm)

{

inti,j,total,t[6];

for(j=0;j

{

printf("学科:

%d:

\n",j+1);

memset(t,0,sizeof(t));

for(i=0;i

{

if(stu[i].score[j]>=0&&stu[i].score[j]<60)

t[0]++;

elseif(stu[i].score[j]<70)

t[1]++;

elseif(stu[i].score[j]<80)

t[2]++;

elseif(stu[i].score[j]<90)

t[3]++;

elseif(stu[i].score[j]<100)

t[4]++;

elseif(stu[i].score[j]==100)

t[5]++;

}

total=0;

for(i=0;i<=5;i++)

{

total+=t[i];

}

for(i=0;i<=5;i++)

{

if(i==0)

printf("<60\t%d\t%.2f%%\n",t[i],(float)t[i]/n*100);

elseif(i==5)

printf("=100\t%d\t%.2f%%\n",t[i],(float)t[i]/n*100);

else

printf("%d-%d\t%d\t%.2f%%\n",t[i],(i+5)*10,(i+5)*10+9,(float)t[i]/n*100);

}

}

}

voidPrintscore(STUstu[],intn,intm)

{

inti,j;

for(i=0;i

{

printf("%ld\t%s\t",stu[i].num,stu[i].name);

for(j=0;j

{

printf("%.1f\t",stu[i].score[j]);

}

printf("%.1f\t%.1f\n",stu[i].sum,stu[i].aver);

}

}

voidWritetostu[],intn,intm)

{

FILE*fp;

inti,j;

if((fp=fopen("student.txt","w"))==NULL)

{

printf("打开“student.txt”失败!

\n");

exit(0);

}

fprintf(fp,"%d\t%d\n",n,m);

for(i=0;i

{

fprintf(fp,"%10ld%10s",stu[i].num,stu[i].name);

for(j=0;j

{

fprintf(fp,"%12.0f",stu[i].score[j]);

}

fprintf(fp,"%12.0f%12.0f\n",stu[i].sum,stu[i].aver);

}

fclose(fp);

}

voidReadfromstu[],int*n,int*m)

{

FILE*fp;

inti,j;

if((fp=fopen("student.txt","r"))==NULL)

{

printf("打开score.txt!

失败\n");

exit(0);

}

fscanf(fp,"%d\t%d",n,m);

for(i=0;i<*n;i++)

{

fscanf(fp,"%10ld",&stu[i].num);

fscanf(fp,"%s",&stu[i].name);

for(j=0;j<*m;j++)

{

fscanf(fp,"%10f",&stu[i].score[j]);

}

fscanf(fp,"%10f%10f\n",&stu[i].sum,&stu[i].aver);

}

fclose(fp);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2