学生成绩管理系统源代码.docx
《学生成绩管理系统源代码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统源代码.docx(20页珍藏版)》请在冰点文库上搜索。
![学生成绩管理系统源代码.docx](https://file1.bingdoc.com/fileroot1/2023-5/22/26d50544-1cee-48db-b6ec-8c87c46d5696/26d50544-1cee-48db-b6ec-8c87c46d56961.gif)
学生成绩管理系统源代码
#include
#include
#include
#include
structstudent
{
charno[9];
charname[20];
intscore[4];
floataver;
floatsum;
};
voidmenu()//菜单
{
printf("\t\t学生成绩管理系统\n");
printf("\t\t*******************菜单*******************\n");
printf("\t\t*1录入成绩2删除成绩*\n");
printf("\t\t*3查询成绩4修改成绩*\n");
printf("\t\t*5插入成绩6具体查看*\n");
printf("\t\t*7成绩排序8保存成绩*\n");
printf("\t\t*9显示成绩0退出系统*\n");
printf("\t\t******************************************\n");
printf("\n");
}
voidinput(structstudent*stu,int*n)//录入成绩
{
inti=*n;
intk=1;
inta,b;
system("cls");
printf("\t\t\t\t录入成绩\n");
while(k)
{
printf("\t\t请输入学号:
");
scanf("%s",stu[i].no);
printf("\t\t请输入XX:
");
scanf("%s",stu[i].name);
printf("\t\t请输入语文成绩:
");
scanf("%d",&stu[i].score[0]);
printf("\t\t请输入数学成绩:
");
scanf("%d",&stu[i].score[1]);
printf("\t\t请输入英语成绩:
");
scanf("%d",&stu[i].score[2]);
printf("\t\t请输入C语言成绩:
");
scanf("%d",&stu[i].score[3]);
printf("\t\t继续录入请输入1,终止录入请输入0:
");
scanf("%d",&k);
i++;
(*n)++;
}
for(a=0;a
{//sumaver归零
stu[a].sum=0;
stu[a].aver=0;
}
for(a=0;a
for(b=0;b<4;b++)
stu[a].sum+=stu[a].score[b];
for(a=0;a
stu[a].aver=stu[a].sum/4;
system("pause");
}
voiddele(structstudent*stu,int*n)//删除成绩
{
system("cls");
inti;
charnumber[9],name[9];
printf("\t\t请输入您要删除该同学的学号:
");
scanf("%s",number);
printf("\t\t请输入您要删除该同学的XX:
");
scanf("%s",name);
for(i=0;i<*n;i++)
{
if(strcmp(stu[i].no,number)==0&&strcmp(stu[i].name,name)==0)
{
for(;i<(*n-1);i++)
stu[i]=stu[i+1];
(*n)--;
}
break;
}
printf("\t\t删除成功!
");
}
voidsearch(structstudent*stu,intn)//查询成绩
{
system("cls");
inti,a=1;
charnumber[9];
charname[20];
while(a)
{
printf("\t\t请输入您的学号:
");
scanf("%s",&number);
printf("\t\t请输入您的XX:
");
scanf("%s",&name);
for(i=0;i{
if(strcmp(stu[i].no,number)==0&&strcmp(stu[i].name,name)==0)
{
printf("\t-----------------------------成绩单-------------------------------\n");
printf("\n");
printf("\t|学号||语文|数学|英语|C语言|总分|平均分|\n");
printf("\t|%-5s|%-6s|%-4d|%-4d|%-4d|%-4d|%-3.1f|%-5.1f|\n",
stu[i].no,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
a=0;
}
else
{
printf("\t\t输入有误,请重新输入!
\n");
}
break;
}
}
system("pause");
}
voidmodify(structstudent*stu,intn)//修改成绩
{
system("cls");
charnumber[9],name[9];
inta,i,m=1,b;
printf("\t根据学号来修改成绩请输入1,根据XX来修改成绩请输入0。
\n");
scanf("%d",&a);
do
{
if(a==1)
{
printf("\t\t请输入您要修改同学的学号:
");
scanf("%s",number);
for(i=0;i{
if(strcmp(stu[i].no,number)==0)
{
printf("\n");
printf("\t-----------------------------成绩单-------------------------------\n");
printf("\n");
printf("\t|学号||语文|数学|英语|C语言|总分|平均分|\n");
printf("\t|%-5s|%-6s|%-4d|%-4d|%-4d|%-4d|%-3.1f|%-5.1f|\n",
stu[i].no,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
printf("\t\t请输入新的学号:
");
scanf("%s",stu[i].no);
printf("\t\t请输入新的XX:
");
scanf("%s",stu[i].name);
printf("\t\t请输入新的语文成绩:
");
scanf("%d",&stu[i].score[0]);
printf("\t\t请输入新的数学成绩:
");
scanf("%d",&stu[i].score[1]);
printf("\t\t请输入新的英语成绩:
");
scanf("%d",&stu[i].score[2]);
printf("\t\t请输入新的C语言成绩:
");
scanf("%d",&stu[i].score[3]);
m--;
b=i;
}
}
}
if(a==0)
{
printf("\t\t请输入您要修改同学的XX:
");
scanf("%s",name);
for(i=0;i{
if(strcmp(stu[i].name,name)==0)
{
printf("\n");
printf("\t-----------------------------成绩单-------------------------------\n");
printf("\n");
printf("\t|学号||语文|数学|英语|C语言|总分|平均分|\n");
printf("\t|%-5s|%-6s|%-4d|%-4d|%-4d|%-4d|%-3.1f|%-5.1f|\n",
stu[i].no,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
printf("\t\t请输入新的学号:
");
scanf("%s",stu[i].no);
printf("\t\t请输入新的XX:
");
scanf("%s",stu[i].name);
printf("\t\t请输入新的语文成绩:
");
scanf("%d",&stu[i].score[0]);
printf("\t\t请输入新的数学成绩:
");
scanf("%d",&stu[i].score[1]);
printf("\t\t请输入新的英语成绩:
");
scanf("%d",&stu[i].score[2]);
printf("\t\t请输入新的C语言成绩:
");
scanf("%d",&stu[i].score[3]);
m--;
b=i;
}
}
}
}while(m);
printf("\t\t该同学修改后的成绩为:
\n");
printf("\t-----------------------------成绩单-------------------------------\n");
printf("\n");
printf("\t|学号||语文|数学|英语|C语言|总分|平均分|\n");
printf("\t|%-5s|%-6s|%-4d|%-4d|%-4d|%-4d|%-3.1f|%-5.1f|\n",
stu[b].no,stu[b].name,stu[b].score[0],stu[b].score[1],stu[b].score[2],stu[b].score[3],stu[b].sum,stu[b].aver);
system("pause");
}
voidinsert(structstudent*stu,int*n)//插入成员
{
/*system("cls");
inti,j,a;
printf("插入学生成绩!
");
printf("");
scanf("%d",&a);
do
{
if(a==1)
{
(*n)++;
}
}*/
}
voidcount(structstudent*stu,intn)//成绩详情
{
system("cls");
inta=0,b=0,c=0,d=0;
inti;
for(i=0;i{
if(stu[i].score[0]<60)
a++;
}
for(i=0;i{
if(stu[i].score[1]<60)
b++;
}
for(i=0;i{
if(stu[i].score[2]<60)
c++;
}
for(i=0;i{
if(stu[i].score[3]<60)
a++;
}
for(i=0;i{
if(stu[i].score[1]<60)
d++;
}
printf("\t\t语文不及格人数为:
%d个\n",a);
printf("\t\t数学不及格人数为:
%d个\n",b);
printf("\t\t英语不及格人数为:
%d个\n",c);
printf("\t\tC语言不及格人数为:
%d个\n",d);
system("pause");
}
voidsort(structstudent*stu,intn)//成绩排序
{
system("cls");
inta,i,j;
structstudentk;
printf("按学号排序请输入1、按总分高低排序请输入0:
");
scanf("%d",&a);
if(a==1)
{
for(i=0;ifor(j=0;j{
if(strcmp(stu[j].no,stu[j+1].no)>0)
{
k=stu[j];
stu[j]=stu[j+1];
stu[j+1]=k;
}
}
printf("\t\t140705班学生成绩\n");
printf("-----------------------------成绩单-------------------------------\n");
printf("\n");
printf("|学号||语文|数学|英语|C语言|总分|平均分|\n");
for(i=0;i{
printf("|%-5s|%-6s|%-4d|%-4d|%-4d|%-4d|%-3.1f|%-5.1f|\n",
stu[i].no,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
}
printf("\n");
printf("------------------------------------------------------------------\n");
system("pause");
return;
}
if(a==0)
{
for(i=0;ifor(j=0;j{
if(stu[j].sum{
k=stu[j];
stu[j]=stu[j+1];
stu[j+1]=k;
}
}
printf("140705班学生成绩\n");
printf("-----------------------------------成绩单-----------------------------------\n");
printf("\n");
printf("|学号||语文|数学|英语|C语言|总分|平均分|名次|\n");
for(i=0;i{
printf("|%-5s|%-6s|%-4d|%-4d|%-4d|%-4d|%-3.1f|%-5.1f|第%d名|\n",
stu[i].no,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver,i+1);
}
printf("\n");
printf("----------------------------------------------------------------------------\n");
system("pause");
return;
}
}
voidsave(student*stu,intn)
{
intsavingflag=1;
FILE*fp;
inti;
fp=fopen("c:
\\student","wb");//打开文件
if(fp==NULL)
{
printf("\n==========>打开错误!
\n");
getchar();
return;
}
printf("-----------%d----------",n);
system("pause");
for(i=0;i{
if(fwrite(&stu[i],sizeof(structstudent),1,fp)==1)
{}
else
break;
}
if(n>0)
{
getchar;
printf("\n\n\n=================>已保存的学生信息的总数为:
%d\n",n);
getchar();
savingflag=0;
}
else
{
system("cls");
printf("当前无保存的学生信息!
\n");
getchar();
}
fclose(fp);
system("pause");
}
voiddisplay(structstudent*stu,intn)//显示成绩
{
system("cls");
inti;
printf("\t\t140705班学生成绩");
printf("\n");
if(n==0)
{
printf("\t\t------>无成绩!
\n");
system("pause");
return;
}
printf("\t-----------------------------成绩单-------------------------------\n");
printf("\n");
printf("\t|学号||语文|数学|英语|C语言|总分|平均分|\n");
for(i=0;i{
printf("\t|%-5s|%-6s|%-4d|%-4d|%-4d|%-4d|%-3.1f|%-5.1f|\n",
stu[i].no,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);
}
printf("\n");
printf("\t------------------------------------------------------------------\n");
system("pause");
return;
}
voidf(structstudent*stu,intn)
{
intselect;//选择变量
while
(1)
{
inta;
system("cls");
menu();
printf("\t\t请输入你的选择(0~9):
");
scanf("%d",&select);
a=select;
switch(a)
{
case1:
input(stu,&n);break;
case2:
dele(stu,&n);break;
case3:
search(stu,n);break;
case4:
modify(stu,n);break;
case5:
insert(stu,&n);break;
case6:
count(stu,n);break;
case7:
sort(stu,n);break;
case8:
save(stu,n);break;
case9:
display(stu,n);break;
case0:
exit
(1);break;
default:
printf("输入有误!
");break;
}
}
}
voidread(structstudent*stu,int*n)
{
FILE*fp;//文件指针
inti=0;
fp=fopen("c:
\\student","ab+");
if(fp==NULL)
{
printf("\n=====>cannotopenfile!
\n");
exit(0);
}
while(!
feof(fp))
{
if(fread(stu+i,sizeof(structstudent),1,fp)==1)//一次从文件读取一条学生成绩记录
{i++;}
}
*n=i;
fclose(fp);//关闭文件
}
voidmain()//登录界面
{
system("cls");
structstudentstu[100];
structstudent*p;
intn=0;
system("color0B");
chara[10]="140705",b[10]="123456";
charc[10],d[10];
inth=5;
read(stu,&n);
printf("\t\t***********欢迎进入学生成绩管理系统!
***********\n");
printf("\n");
printf("\n");
printf("\t\t\t\t用户登录\n");
printf("\t\t请输入用户名:
");
scanf("%s",c);
p