C语言学生成绩管理系统源程序1word版本.docx
《C语言学生成绩管理系统源程序1word版本.docx》由会员分享,可在线阅读,更多相关《C语言学生成绩管理系统源程序1word版本.docx(21页珍藏版)》请在冰豆网上搜索。
C语言学生成绩管理系统源程序1word版本
附录程序
#include"stdio.h"
#include
#include
#include"process.h"
#include"ctype.h"
typedefstruct
{
charnum[10];
charname[10];
intchinese;
intmath;
intenglish;
intdianlu;
doubleaver;
}Student;
Studentstu[99];
intshuru(Studentstud[],intn)/*输入若干条记录*/
{
inti=0;
charsign,x[10];
doublea=0.0;
while(sign!
='n'&&sign!
='N')
{
printf("输入学生学号:
");
scanf("%s",stu[n+i].num);
printf("输入学生姓名:
");
scanf("%s",stu[n+i].name);
printf("输入学生的语文、数学、英语、电路分数:
");
scanf("%d%d%d%d",&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].dianlu);
a=1.0*(stu[n+i].chinese+stu[n+i].math+stu[n+i].english+stu[n+i].dianlu)/4;
stu[n+i].aver=a;
gets(x);/*清除多余的输入*/
printf("是否继续输入?
(Y/N):
\n");
scanf("%c",&sign);
i++;
}
return(n+i);
}
voidxianshi(Studentstud[],intn)/*显示所有记录*/
{
inti;
printf("----------------------------------------------------------\n");/*格式头*/
printf("学号姓名语文数学英语电路平均成绩\n");
printf("----------------------------------------------------------\n");
for(i=0;i{
printf("%-10s%-10s%-10d%-10d%-10d%-10d%-10.2lf\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver);
}
}
voidxiugai(Studentstud[],intn)/*修改*/
{
inti=0,choice=1;
charx[10];
while(choice!
=0)
{printf("请输入您要修改的学生的学号:
\n");
scanf("%s",x);
for(i=0;;i++)
{
if(strcmp(stu[i].num,x)==0)break;
}
printf("请选择您要修改的内容:
\n");
printf("----------------------\n");
printf("|姓名请按1|\n");
printf("|语文请按2|\n");
printf("|数学分数请按3|\n");
printf("|英语分数请按4|\n");
printf("|电路请按5|\n");
printf("|退出请按0|\n");
printf("+----------------------+\n");
printf("请输入您的选择:
");
scanf("%d",&choice);
switch(choice)
{
case0:
break;
case1:
printf("请输入新姓名:
");
scanf("%s",stu[i].name);
break;
case2:
printf("请输入新的语文分数:
");
scanf("%d",&stu[i].chinese);
break;
case3:
printf("请输入新的数学分数:
");
scanf("%d",&stu[i].math);
break;
case4:
printf("请输入新的英语分数:
");
scanf("%d",&stu[i].english);
break;
case5:
printf("请输入新的电路分数:
");
scanf("%d",&stu[i].dianlu);
break;
default:
printf("\n无效选项!
");
break;
}break;
}
return;
}
intshanchu(Studentstud[],intn)/*按姓名查找,删除一条记录*/
{chars[20];
inti;
intj;
i=0;
printf("输入要删除记录的姓名:
");
scanf("%s",s);
while(strcmp(stu[i].name,s)!
=0&&iif(i==n)
{printf("notfind!
\n");
return(n);}
for(j=i;j{
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j].name,stu[j+1].name);
stu[j].chinese=stu[j+1].chinese;
stu[j].math=stu[j+1].math;
stu[j].english=stu[j+1].english;
stu[j].dianlu=stu[j+1].dianlu;
stu[j].aver=stu[j+1].aver;
}
printf("DeleteSuccessed!
\n");
return(n-1);
}
voidchaxun_xingming(Studentstud[],intn)/*按姓名查找并显示一个记录*/
{chars[20];
inti=0;
printf("输入姓名:
");
scanf("%s",s);
while(strcmp(stu[i].name,s)!
=0&&iif(i==n)
{printf("notfind!
\n");/*输入失败信息*/
return;}
printf("他的姓名、学号是:
%s%s\n",stu[i].name,stu[i].num);/*输出该学生信息*/
printf("语文高数英语电路平均成绩是:
%d,%d,%d,%d,%lf\n",stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver);
}
voidchaxun_pingjun(Studentstud[],intn)/*按平均成绩查找并显示一个记录*/
{doubles;
inti=0;
printf("输入平均成绩:
");
scanf("%lf",&s);
while(stu[i].aver!
=s&&iif(i==n)
{printf("notfind!
\n");/*输入失败信息*/
return;
}
printf("他的学号是:
%s\n",stu[i].num);/*输出该学生信息*/
printf("他的姓名是:
%s\n",stu[i].name);
printf("他的语文、数学、英语、电路分数是:
%d%d%d%d\n",stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu);
}
voidpaixu_xuehao(Studentstud[],intn)/*按学号排序*/
{inti,j,p,q,r,w;
doubley;
charx[20],t[10];
for(i=0;ifor(j=0;jif(strcmp(stud[j].num,stud[j+1].num)>0)
{strcpy(t,stud[j].num);
strcpy(stud[j].num,stud[j+1].num);
strcpy(stud[j+1].num,t);
strcpy(x,stud[j].name);
strcpy(stud[j].name,stud[j+1].name);
strcpy(stud[j+1].name,x);
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
}
return;
}
voidpaixu_pingjun(Studentstud[],intn)/*按平均成绩排序*/
{inti,j,p,q,r,w;
doubley;
charx[20],t[10];
for(i=0;ifor(j=0;jif(stu[j].aver>stu[j+1].aver)
{y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
voidpaixu_chinese(Studentstud[],intn)/*按语文成绩排序*/
{inti,j,p,q,r,w;
doubley;
charx[20],t[10];
for(i=0;ifor(j=0;jif(stu[j].chinese>stu[j+1].chinese)
{
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
voidpaixu_english(Studentstud[],intn)/*按英语成绩排序*/
{inti,j,p,q,r,w;
doubley;
charx[20],t[10];
for(i=0;ifor(j=0;jif(stu[j].english>stu[j+1].english)
{
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
voidpaixu_math(Studentstud[],intn)/*按数学成绩排序*/
{inti,j,p,q,r,w;
doubley;
charx[20],t[10];
for(i=0;ifor(j=0;jif(stu[j].math>stu[j+1].math)
{
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
voidpaixu_dianlu(Studentstud[],intn)/*按电路成绩排序*/
{inti,j,p,q,r,w;
doubley;
charx[20],t[10];
for(i=0;ifor(j=0;jif(stu[j].dianlu>stu[j+1].dianlu)
{
y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y;
p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p;
q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q;
r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r;
w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w;
strcpy(x,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,x);
strcpy(t,stu[j].num);
strcpy(stu[j].num,stu[j+1].num);
strcpy(stu[j+1].num,t);
}
return;
}
voidtongji(Studentstud[],intn)//按分数段统计人数
{inti,j,a,max,min,k,l,q,p,w;
k=0,l=0,p=0,q=0,w=0;
printf("你想统计哪科成绩:
1语文2数学3英语4电路5平均\n");
scanf("%d",&j);
printf("input2score:
\n");
scanf("%d%d",&max,&min);
if(max{
a=max;max=min;min=a;
}
if(j==1)
{
for(i=0;i<99;i++)
{
if(stu[i].chinese>min&&stu[i].chinese}
printf("分数段的人数为:
%d",k);
}
elseif(j==2)
{
for(i=0;i<99;i++)
{
if(stu[i].math>min&&stu[i].math}
printf("分数段的人数为:
%d",l);
}
elseif(j==3)
{
for(i=0;i<99;i++)
{
if(stu[i].english>min&&stu[i].english}
printf("分数段的人数为:
%d",p);
}
elseif(j==4)
{
for(i=0;i<99;i++)
{
if(stu[i].dianlu>min&&stu[i].dianluw++;
}
printf("分数段的人数为:
%d",w);
}
elseif(j==5)
{
for(i=0;i<99;i++)
{
if(stu[i].aver>min&&stu[i].aver}
printf("分数段的人数为:
%d",q);
}
return;
}
intwenjian2(Studentstud[],intn)/*从文件中读入数据*/
{inti=0,num;
FILE*fp;/*定义文件指针*/
charfilename[20];/*定义文件名*/
printf("\t\t\tInputthefilename:
");
scanf("\t\t\t%s",filename);/*输入文件名*/
if((fp=fopen(filename,"rb"))==NULL)/*打开文件*/
{printf("\t\t\tcann'topenthefile\n");/*打开失败信息*/
printf("\t\t\t");
system("pause");
return(n);
}
fscanf(fp,"%d",&num);/*读入总记录量*/
while(i{
fscanf(fp,"%s%s%d%d%d%d%lf\n",stu[n+i].num,stu[n+i].name,&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].dianlu,&stu[n+i].aver);
i++;
}
n+=num;
fclose(fp);/*关闭文件*/
printf("\t\t\tSuccessed!
\n");
printf("\t\t\t");
system("pause");
return(n);
}
voidwenjian1(Studentstud[],intn)/*将所有记录写入文件*/
{
inti=0;
FILE*fp;/*定义文件指针*/
charfilename[20];/*定义文件名*/
printf("Inputthefilename:
");/*输入文件名*/
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)/*打开文件*/
{
printf("cann'topenthefile\n");
return;
}
fprintf