C语言学生成绩管理系统源程序.docx
《C语言学生成绩管理系统源程序.docx》由会员分享,可在线阅读,更多相关《C语言学生成绩管理系统源程序.docx(20页珍藏版)》请在冰豆网上搜索。
C语言学生成绩管理系统源程序
附录程序
#includestdio.h
#include
#include
#includeprocess.h
#includectype.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')
{
牰湩晴尨输入学生学号:
);
scanf(%s,stu[n+i].num);
牰湩晴尨输入学生姓名:
);
scanf(%s,stu[n+i].name);
牰湩晴尨输入学生的语文、数学、英语、电路分数:
);
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);/*清除多余的输入*/
牰湩晴尨是否继续输入?
(Y/N):
\n);
scanf(%c,&sign);
i++;
}
return(n+i);
}
专业资料
voidxianshi(Studentstud[],intn)/*显示所有记录*/
{
inti;
printf(----------------------------------------------------------\n);/*格式头*/
牰湩晴尨学号姓名语文数学英语电路平均成绩
\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)
{牰湩晴尨请输入您要修改的学生的学号:
\n);
scanf(%s,x);
for(i=0;;i++)
{
if(strcmp(stu[i].num,x)==0)break;
}
牰湩晴尨请选择您要修改的内容:
\n);
printf(----------------------\n);
printf(|姓名请按1|\n);
printf(|语文请按2|\n);
printf(|数学分数请按3|\n);
printf(|英语分数请按4|\n);
printf(|电路请按5|\n);
printf(|退出请按0|\n);
printf(+----------------------+\n);
牰湩晴尨请输入您的选择:
);
scanf(%d,&choice);
switch(choice)
{
case0:
break;
专业资料
case1:
牰湩晴尨请输入新姓名:
);
scanf(%s,stu[i].name);
break;
case2:
牰湩晴尨请输入新的语文分数:
);
scanf(%d,&stu[i].chinese);
break;
case3:
牰湩晴尨请输入新的数学分数:
);
scanf(%d,&stu[i].math);
break;
case4:
牰湩晴尨请输入新的英语分数:
);
scanf(%d,&stu[i].english);
break;
case5:
牰湩晴尨请输入新的电路分数:
);
scanf(%d,&stu[i].dianlu);
break;
default:
printf(\
无效选项!
);
break;
}break;
}
return;
}
intshanchu(Studentstud[],intn)/*按姓名查找,删除一条记录*/
{chars[20];
inti;
intj;
i=0;
牰湩晴尨输入要删除记录的姓名:
);
scanf(%s,s);
while(strcmp(stu[i].name,s)!
=0&&iif(i==n)
{printf(
otfind!
\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;
牰湩晴尨输入姓名:
);
scanf(%s,s);
while(strcmp(stu[i].name,s)!
=0&&iif(i==n)
{printf(
otfind!
\n);/*输入失败信息*/
return;}
牰湩晴尨他的姓名、学号是:
%s%s\n,stu[i].name,stu[i].num);/*输出该学生信息*/
牰湩晴尨语文高数英语电路平均成绩是:
%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;
牰湩晴尨输入平均成绩:
);
scanf(%lf,&s);
while(stu[i].aver!
=s&&iif(i==n)
{printf(
otfind!
\n);/*输入失败信息*/
return;
}
牰湩晴尨他的学号是:
%s\n,stu[i].num);/*输出该学生信息*/
牰湩晴尨他的姓名是:
%s\n,stu[i].name);
牰湩晴尨他的语文、数学、英语、电路分数是:
%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;
牰湩晴尨你想统计哪科成绩:
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}
专业资料
牰湩晴尨分数段的人数为:
%d,k);
}
elseif(j==2)
{
for(i=0;i<99;i++)
{
if(stu[i].math>min&&stu[i].math}
牰湩晴尨分数段的人数为:
%d,l);
}
elseif(j==3)
{
for(i=0;i<99;i++)
{
if(stu[i].english>min&&stu[i].english}
牰湩晴尨分数段的人数为:
%d,p);
}
elseif(j==4)
{
for(i=0;i<99;i++)
{
if(stu[i].dianlu>min&&stu[i].dianluw++;
}
牰湩晴尨分数段的人数为:
%d,w);
}
elseif(j==5)
{
for(i=0;i<99;i++)
{
if(stu[i].aver>min&&stu[i].aver}
牰湩晴尨分数段的人数为:
%d,q);
}
return;
}
intwenjian2(Studentstud[],intn)/*从文件中读入数据*/
{inti=0,num;
FILE*fp;/*定义文件指针*/
charfilename[20];/*定义文件名*/
专业资料
printf(\\t\tInputthefilename:
);
scanf(\\t\t%s,filename);/*输入文件名*/
if((fp=fopen(filename,
b))==NULL)/*打开文件*/
{printf(\\t\tcann'topenthefile\n);/*打开失败信息*/
printf(\\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\tSuccessed!
\n);
printf(\\t\t);
system(pause);
return(n);
}
voidwenjian1(Studentstud[],intn)/*将所有记录写入文件*/
{
inti=0;
FILE*fp;/*定义文件指针*/
charfilename[20];/*定义文件名*/
printf(Inputthefilename:
);/*输入文件名*/
scanf(%s,filename