C程序学生成绩管理系统代码.docx
《C程序学生成绩管理系统代码.docx》由会员分享,可在线阅读,更多相关《C程序学生成绩管理系统代码.docx(22页珍藏版)》请在冰豆网上搜索。
C程序学生成绩管理系统代码
#include
#include
#include
intc;
voidinformation();/*学生信息*/
voidmenu();/*主菜单*/
voidchoose();/*是否返回主菜单的选择*/
voiderror();/*报错*/
voidoutput_();/*输出后问是否返回主菜单*/
voidoutput_2();/*输出*/
voidfind();/*查询*/
voiddelete_();/*删除*/
voidrank();/*排序*/
voide();/*退出*/
structstudent
{
charnum[10];/*学号*/
charname[8];/*学生姓名*/
charsex[3];/*性别*/
charsnum[10];/*课程号*/
charsubject[10];/*课程名*/
intcredit;/*学分*/
intscore1;/*平时分*/
intscore2;/*实验分*/
intscore3;/*卷面分*/
doubleadd;/*平均分*/
doublefinal;/*最后学分*/
}stu[10],temp;
voidmain()/*主函数*/
{
intb;
printf("\n\n--------学生管理系统--------\n\n");
printf("制作者:
游义娟\n");
printf("***************************************************\n");
printf("|1…………学生成绩输入|\n");
printf("|2…………输出表格|\n");
printf("|3…………查询|\n");
printf("|4…………删除学生记录|\n");
printf("|5…………排序|\n");
printf("|6…………退出|\n");
printf("***************************************************\n\n");
printf("***如果文件中无学生数据,请先输入数据***\n\n");
printf("请输入您要执行的功能对应的数字:
");
scanf("%d",&b);
switch(b)
{
case1:
information();break;
case2:
output_();break;
case3:
find();break;
case4:
delete_();break;
case5:
rank();break;
case6:
e();break;
}
if(b!
=1&&b!
=2&&b!
=3&&b!
=4&&b!
=5)
error();
}
voidmenu()/*菜单*/
{
intb;
printf("\n\n--------主菜单--------\n\n");
printf("***************************************************\n");
printf("|1…………学生成绩输入|\n");
printf("|2…………输出表格|\n");
printf("|3…………查询|\n");
printf("|4…………删除学生记录|\n");
printf("|5…………排序|\n");
printf("|6…………退出|\n");
printf("***************************************************\n\n");
printf("请输入您要执行的功能对应的数字:
");;
scanf("%d",&b);
switch(b)
{
case1:
information();break;
case2:
output_();break;
case3:
find();break;
case4:
delete_();break;
case5:
rank();break;
case6:
e();break;
}
if(b!
=1&&b!
=2&&b!
=3&&b!
=4&&b!
=5)
error();
}
voidchoose()/*选择*/
{
intf;
printf("\n\n******是否返回主菜单******\n");
printf("---------------------------------------\n");
printf("||1…………是||\n");
printf("||2…………退出||\n");
printf("---------------------------------------\n\n");
printf("请输入您的选择:
");
scanf("%d",&f);
if(f==1)
menu();
elseif(f==2)
e();
else
error();
}
voiderror()/*报错*/
{
intf;
printf("\n\n****您的输入错误,是否返回主菜单****\n");
printf("---------------------------------------\n");
printf("||1…………是||\n");
printf("||2…………退出||\n");
printf("---------------------------------------\n\n");
printf("请输入您的选择:
");
scanf("%d",&f);
if(f==1)
menu();
elseif(f==2)
e();
else
error();
}
voidinformation()/*输入*/
{
inti;
//FILE*fp;
printf("\n***请输入学生的个数<=10***\n\n请输入你要输入的学生的个数:
");
scanf("%d",&c);
if(c<=10)
{
for(i=0;i{
printf("\n\n请输入第%d个学生的信息:
\n",i+1);
printf("学号:
");
scanf("%s",stu[i].num);
printf("姓名:
");
scanf("%s",stu[i].name);
printf("性别:
");
scanf("%s",stu[i].sex);
printf("课程号:
");
scanf("%s",stu[i].snum);
printf("课程名:
");
scanf("%s",&stu[i].subject);
printf("学分:
");
scanf("%d",&stu[i].credit);
printf("平时成绩:
");
scanf("%d",&stu[i].score1);
printf("实验成绩:
");
scanf("%d",&stu[i].score2);
printf("卷面成绩:
");
scanf("%d",&stu[i].score3);
stu[i].add=stu[i].score1*0.15+stu[i].score2*0.15+stu[i].score3*0.7;
switch((int)(stu[i].add)/10)
{
case10:
stu[i].final=stu[i].credit;break;
case9:
stu[i].final=stu[i].credit;break;
case8:
stu[i].final=stu[i].credit*0.8;break;
case7:
stu[i].final=stu[i].credit*0.75;break;
case6:
stu[i].final=stu[i].credit*0.6;break;
case5:
stu[i].final=0;break;
case4:
stu[i].final=0;break;
case3:
stu[i].final=0;break;
case2:
stu[i].final=0;break;
case1:
stu[i].final=0;break;
case0:
stu[i].final=0;break;
}
}
}
else
{
printf("\n!
!
!
!
!
您输入的数已超出范围,请重新输入!
!
!
!
!
\n");
information();
}
/*fp=fopen("stud","w");
for(i=0;iif(fwrite(&stu[i],sizeof(structstudent),1,fp)!
=1)
printf("filewriteerror\n");
fclose(fp);*/
printf("\n输入完毕\n");
choose();
}
voidoutput_()/*输出*/
{
//FILE*fp;
inti;
//if((fp=fopen("stud","r"))==NULL)
//{
//printf("cannotopenfile.\n");
//exit(0);
//}
//fp=fopen("stud","r");
for(i=0;i{
//fread(&stu[i],sizeof(structstudent),1,fp);
printf("\n\n学号\t姓名\t性别\t课程编号课程名称\n");
for(i=0;i{
printf("%s\t%s\t%s\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].snum,stu[i].subject);
}
printf("\n\n学分平时成绩实验成绩卷面成绩综合实得学分\n");
for(i=0;i{
printf("%d\t%d\t%d\t%d\t%3.2f\t%1.2f\n",stu[i].credit,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].add,stu[i].final);
}
}
choose();
}
voidoutput_2()
{
//FILE*fp;
inti;
/*if((fp=fopen("stud","r"))==NULL)
{
printf("cannotopenfile.\n");
exit(0);
}*/
printf("\n\n****原始数据:
****\n");
printf("\n学号\t姓名\t性别\t课程编号课程名称\n");
for(i=0;i{
printf("%s\t%s\t%s\t%s\t%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].snum,stu[i].subject);
}
printf("\n\n学分平时成绩实验成绩卷面成绩综合实得学分\n");
for(i=0;i{
printf("%d\t%d\t%d\t%d\t%3.2f\t%1.2f\n",stu[i].credit,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].add,stu[i].final);
}
}
voidfind()/*查询*/
{
//FILE*fp;
intk,j,f,q,judge=0;
charm[10];
/*if((fp=fopen("stud","r"))==NULL)
{
printf("cannotopenfile.\n");
exit(0);
}*/
printf("\n****是否输出原始数据****\n");
printf("---------------------------------------\n");
printf("||1…………是||\n");
printf("||2…………否||\n");
printf("---------------------------------------\n\n");
printf("请输入您的选择:
");
scanf("%d",&k);
printf("\n");
if(k==1)
output_2();
elseif(k==2);
else
{
printf("****您的输入错误,请重新输入选择****\n");
find();
}
printf("\n\n---------查询学生信息----------\n");
printf("************************************\n");
printf("|1----按名字查询|\n");
printf("|2----按学号查询|\n");
printf("************************************\n");
printf("请选择:
");
scanf("%d",&f);
if(f==1)
{
printf("\n请输入您要查询的人的名字:
");
scanf("%s",m);
for(j=0;j{
if(strcmp(m,stu[j].name)==0)
{
printf("\n\n*****您要查询的信息为*****\n");
printf("\n学号\t姓名\t性别\t课程编号课程名称\n");
printf("%s\t%s\t%s\t%s\t%s\n",stu[j].num,stu[j].name,stu[j].sex,stu[j].snum,stu[j].subject);
printf("\n学分平时成绩实验成绩卷面成绩综合实得学分\n");
printf("%d\t%d\t%d\t%d\t%3.2f\t%1.2f\n",stu[j].credit,stu[j].score1,stu[j].score2,stu[j].score3,stu[j].add,stu[j].final);
judge=1;
}
}
}
elseif(f==2)
{
printf("\n请输入您要查询的人的学号:
");
scanf("%s",m);
for(j=0;j{
if(strcmp(m,stu[j].num)==0)
{
printf("\n\n*****您要查询的信息为*****\n");
printf("\n学号\t姓名\t性别\t课程编号课程名称\n");
printf("%s\t%s\t%s\t%s\t%s\n",stu[j].num,stu[j].name,stu[j].sex,stu[j].snum,stu[j].subject);
printf("\n\n学分平时成绩实验成绩卷面成绩综合实得学分\n");
printf("%d\t%d\t%d\t%d\t%3.2f\t%1.2f\n",stu[j].credit,stu[j].score1,stu[j].score2,stu[j].score3,stu[j].add,stu[j].final);
printf("\n");
judge=1;
}
}
}
else
error();
if(judge==0)
{
printf("\n\n****数据库中无此人的信息,是否重新输入?
****\n");
printf("-----------------------------------------------\n");
printf("||1…………是||\n");
printf("||2…………返回主菜单||\n");
printf("||3…………退出||\n");
printf("-----------------------------------------------\n\n");
printf("请输入您的选择:
");
scanf("%d",&q);
if(q==1)
find();
elseif(q==2)
menu();
elseif(q==3)
e();
else
error();
}
choose();
}
voiddelete_()/*删除*/
{
//FILE*fp;
inti,j,flag=0,k,v,r,q;
charm[10];
/*if((fp=fopen("stud","r"))==NULL)
{
printf("cannotopenfile.\n");
exit(0);
}*/
printf("\n\n****是否输出原始数据****\n");
printf("---------------------------------------\n");
printf("||1…………是||\n");
printf("||2…………否||\n");
printf("---------------------------------------\n\n");
printf("请输入您的选择:
");
scanf("%d",&k);
if(k==1)
output_2();
elseif(k==2);
else
{
printf("****您的输入错误,请重新输入选择****\n");
delete_();
}
//fclose(fp);
printf("\n\n*******删除学生记录*******\n");
printf("----------------------------------------------\n");
printf("||1…………按名字删除||\n");
printf("||2…………按学号删除||\n");
printf("----------------------------------------------\n\n");
printf("请输入您的选择:
");
scanf("%d",&v);
if(v==1)
{
printf("\n请输入您要删除的人的名字:
");
scanf("%s",m);
for(i=0;i{
if(strcmp(m,stu[i].name)==0)
{
for(j=i;j{
strcpy(stu[j].name,stu[j+1].name);
stu[j]=stu[j+1];
}
flag=1;
}
}
}
elseif(v==2)
{
printf("\n请输入您要删除的人的学号:
\n");
scanf("%s",m);
for(i=0;i{
if(strcmp(m,stu[i].num)==0)
{
for(j=i;j{
strcpy(stu[j].num,stu[j+1].num);
stu[j]=stu[j+1];
}
flag=1;
}
}
}
else
error();
if(flag==1)
c=c-1;
else
{
printf("\n\n****找不到您要删除的数据,是否重新输入?
****\n");
printf("-----------------------------------------------\n");
printf("||1…………是||\n");
printf("||2…………返回主菜单||\n");
printf("||3…………退出||\n");
printf("-----------------------------------------------\n\n");
printf("请输入您的选择:
");
scanf("%d",&q);
if(q==1)
delete_();
elseif(q==2)
menu();
elseif(q==3)
e();
else
error();
}
printf("\n\n***是否输出删除后的数据***\n");
printf("---------------------------------------\n");
printf("||1…………是||\n");
printf("||2…………否||\n");
printf("---------------------------------------\n\n");
printf("请输入您的选择:
");
scanf("%d",&r);
if("r==1")
{
printf("\n\n*****删除后的数据*****\n");
/*if((fp=fopen("stud","w"))==NULL)
{
printf("cannotopenfile\n");
e