C语言大作业成绩管理系统.docx
《C语言大作业成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C语言大作业成绩管理系统.docx(42页珍藏版)》请在冰点文库上搜索。
![C语言大作业成绩管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-6/15/9bf5602e-3e71-4752-8fec-0316cbc76568/9bf5602e-3e71-4752-8fec-0316cbc765681.gif)
C语言大作业成绩管理系统
C语言大作业(成绩管理系统)
制作人:
皇家战盾
2016年12月31日
;
流程图:
信息结构体中包括:
学号、、英语成绩、高数成绩、大物成绩、C语言成绩、机械制图成绩、政治成绩、体育成绩、总成绩、平均分。
源程序代码
#include
#include
structstudent
{
intnum;学号
charname[100];
intscore1;英语
intscore2;高数
intscore3;大物
intscore4;C语言
intscore5;机械制图
intscore6;政治
intscore7;体育
intscore8;总成绩
intscore9;平均分
}stu[100];
intR;
intxuehao;
doubleping[10];
intgao[10];
voiddenglu();登录函数
voidstudent();学生登录界面函数
voidteacher();教师登录界面函数
voidchengji();
voidquanbanchengjishuchu();调用全班各科成绩、总分、平均分进行输出函数
voidtianjia();教师使用添加学生成绩函数
voidxiugai();教师使用修改学生成绩函数
voidinput();教师修改成绩将成绩录入文档函数
voidshanchu();教师删除学生信息及成绩函数
voidgerenchengji();输出显示学生个人成绩
voidzhuce();学生登录注册函数
voidpingjun();成绩计算平均分
voidchaxun();教师使用按学号查询学生个人成绩
voidxuehaopaixu();按学号顺序显示个人成绩
voidgerengaofen();学生使用查询各科最高分
voidzuigaofen();显示各科最高分分数
voidps1();英语成绩排序
voidps2();高数成绩排序
voidps3();大物成绩排序
voidps4();C语言成绩排序
voidps5();工图成绩排序
voidps6();政治成绩排序
voidps7();体育成绩排序
voidpz();总成绩排序
voidxueshengpaiming(intnumber);学生查看自己在全班排名
main()
{
intx;
system("cls");
chengji();
pingjun();
zuigaofen();
system("cls");
printf("\n*****欢迎使用本成绩管理系统*****\n\n请选择功能:
\n1.登录\n2.注册\n您选择的功能编号为:
");
scanf("%d",&x);
if(x==1){denglu();}
elseif(x==2){zhuce();}
else{printf("请正确选择!
");}
}
voiddenglu()
{
inta[100],b[100],c[100],i,y,m,n;
charw;
FILE*fp;
fp=fopen("zhanghao.txt","r");
for(i=0;i<1000;i++)
{
fscanf(fp,"%d%d%d",&a[i],&b[i],&c[i]);
}
fclose(fp);
again:
system("cls");
printf("\n***请输入您的用户名和密码***\n\n用户名:
");
scanf("%d",&y);
for(i=0;i<1000;i++)
{
n=i;
if(y==a[i])gotochenggong;
}
printf("用户名不存在,请正确输入!
");gotoagain;
chenggong:
printf("密码:
");
scanf("%d",&m);
{
if(m==b[n])printf("登录成功!
");
else{printf("请正确输入!
");
scanf("%c",&w);scanf("%c",&w);
gotoagain;}
}
xuehao=c[n];
for(i=0;i{
if(xuehao==stu[i].num)gotook;
}
if(xuehao==1)gotook;
printf("\n此学生以被老师删除,请联系老师");
printf("按回车键返回");
scanf("%c",&w);
scanf("%c",&w);
main();
ok:
if(c[n]==1){teacher();}
else{student();}
}
voidstudent()
{
inti,k,x;
chengji();
system("cls");
for(i=0;i<1000;i++)
{
k=i;
if(xuehao==stu[i].num)gotook;
}
ok:
printf("\n*****欢迎使用本系统*****\n\n你好!
%s同学\n\n",stu[k].name);
printf("请选择功能\n1.本人成绩查询\n2.各科最高分查询\n\n*如需退出请直接关闭*\n");
scanf("%d",&x);
if(x==1)
{gerenchengji();}
if(x==2)
{gerengaofen();}
}
voidteacher()
{
intx;
system("cls");
chengji();
xuehaopaixu();
pingjun();
printf("\n*****欢迎敬爱的老师使用本系统*****\n\n");
printf("请选择您需要的功能:
\n1.学生管理\n2.成绩管理\n\n*如需退出请直接关闭*\n");
scanf("%d",&x);
if(x==1)
{
system("cls");
printf("\n*****欢迎敬爱的老师使用本系统*****\n\n请选择您需要对学生所做的操作\n1.添加某学生数据\n2.修改某学生数据\n3.删除某学生数据\n4.返回\n");
scanf("%d",&x);
switch(x)
{
case1:
{
tianjia();
}
case2:
{
xiugai();
}
case3:
{
shanchu();
}
case4:
{
teacher();
}
}
}
elseif(x==2)
{
system("cls");
printf("\n*****欢迎敬爱的老师使用本系统*****\n\n请选择您需要对成绩所做的操作\n1.查看全班学生的考试成绩\n2.修改某学生的考试成绩\n3.查看全班学生的排名\n4.按学号查询某学生的成绩\n5.返回\n");
scanf("%d",&x);
switch(x)
{
case1:
{
quanbanchengjishuchu();
}
case2:
{
xiugai();
}
case3:
{
printf("请选择排序方式:
\n1.按总分排序\n2.按英语成绩排序\n3.按高等数学成绩排序\n4.按大学物理成绩排序\n5.按c语言成绩排序\n6.按机械制图成绩排序\n7.按政治成绩排序\n8.按体育成绩排序\n");
//英语、高等数学、大学物理、C语言、机械制图、政治、体育
scanf("%d",&x);
switch(x)
{
case1:
{
pz();
quanbanchengjishuchu();
}
case2:
{
ps1();
quanbanchengjishuchu();
}
case3:
{
ps2();
quanbanchengjishuchu();
}
case4:
{
ps3();
quanbanchengjishuchu();
}
case5:
{
ps4();
quanbanchengjishuchu();
}
case6:
{
ps5();
quanbanchengjishuchu();
}
case7:
{
ps6();
quanbanchengjishuchu();
}
case8:
{
ps7();
quanbanchengjishuchu();
}
}
}
case4:
{chaxun();}
case5:
{
teacher();
}
}
}
else;
return0;
}
voidchengji()
{
inti;
FILE*fp1;
FILE*fp2;
FILE*fp3;
fp1=fopen("chengji.txt","r");
fp2=fopen("name.txt","r");
fp3=fopen("renshu.txt","r");
fscanf(fp3,"%d",&R);
printf("目前本成绩管理系统所存学生人数为%d人\n",R);
for(i=0;i{
fscanf(fp1,"%d",&stu[i].num);
fscanf(fp2,"%s",stu[i].name);
fscanf(fp1,"%d",&stu[i].score1);
fscanf(fp1,"%d",&stu[i].score2);
fscanf(fp1,"%d",&stu[i].score3);
fscanf(fp1,"%d",&stu[i].score4);
fscanf(fp1,"%d",&stu[i].score5);
fscanf(fp1,"%d",&stu[i].score6);
fscanf(fp1,"%d",&stu[i].score7);
fscanf(fp1,"%d",&stu[i].score8);
fscanf(fp1,"%d",&stu[i].score9);
stu[i].score8=stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+stu[i].score5+stu[i].score6+stu[i].score7;
stu[i].score9=(stu[i].score1+stu[i].score2+stu[i].score3+stu[i].score4+stu[i].score5+stu[i].score6+stu[i].score7)/7;
}
fclose(fp1);
fclose(fp2);
fclose(fp3);
}
voidquanbanchengjishuchu()
{
inti;
charw;
system("cls");
printf("学号\t\t1.英语\t2.高数\t3.大物\t4.C语言\t5.机械制图\t6.政治\t7.体育\t总成绩\t\t平均分\n");
for(i=0;i{
printf("%d\t",stu[i].num);
printf("%s\t",stu[i].name);
printf("%d\t",stu[i].score1);
printf("%d\t",stu[i].score2);
printf("%d\t",stu[i].score3);
printf("%d\t",stu[i].score4);
printf("%d\t\t",stu[i].score5);
printf("%d\t",stu[i].score6);
printf("%d\t",stu[i].score7);
printf("%d\t\t",stu[i].score8);
printf("%d\t\n",stu[i].score9);
}
printf("全班平均成绩\t%.2lf\t\%.2lf\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\t%.2lf\t%.2lf\t\t%.2lf\n",ping[1],ping[2],ping[3],ping[4],ping[5],ping[6],ping[7],ping[8],ping[9]);
printf("按回车键返回");
scanf("%c",&w);
scanf("%c",&w);
teacher();
}
voidtianjia()
{
inta[10],i;
charb[1][100],w;
FILE*fp1;
FILE*fp2;
FILE*fp3;
fp1=fopen("chengji.txt","a");
fp2=fopen("name.txt","a");
fp3=fopen("renshu.txt","w");
printf("清输入这名学生的学号\n");
scanf("%d",&a[0]);
for(i=0;i{
if(a[0]==stu[i].num)
{
printf("以存在此学生!
\n");
printf("按回车键返回");
scanf("%c",&w);
scanf("%c",&w);
teacher();
}
}
fprintf(fp1,"%d\n",a[0]);
printf("清输入这名学生的\n");
scanf("%s",b[0]);fprintf(fp2,"%s\n",b[0]);
printf("清输入这名学生的英语成绩\n");
scanf("%d",&a[1]);fprintf(fp1,"%d\n",a[1]);
printf("清输入这名学生的高等数学成绩\n");
scanf("%d",&a[2]);fprintf(fp1,"%d\n",a[2]);
printf("清输入这名学生的大学物理成绩\n");
scanf("%d",&a[3]);fprintf(fp1,"%d\n",a[3]);
printf("清输入这名学生的C语言成绩\n");
scanf("%d",&a[4]);fprintf(fp1,"%d\n",a[4]);
printf("清输入这名学生的机械制图成绩\n");
scanf("%d",&a[5]);fprintf(fp1,"%d\n",a[5]);
printf("清输入这名学生的政治成绩\n");
scanf("%d",&a[6]);fprintf(fp1,"%d\n",a[6]);
printf("清输入这名学生的体育成绩\n");
scanf("%d",&a[7]);fprintf(fp1,"%d\n",a[7]);
a[8]=a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7];
fprintf(fp1,"%d\n",a[8]);
a[9]=(a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7])/7;
fprintf(fp1,"%d\n",a[9]);
R=R+1;
printf("现在此系统中共存的学生人数有%d人",R);
fprintf(fp3,"%d",R);
//英语、高等数学、大学物理、C语言、机械制图、政治、体育
fclose(fp1);
fclose(fp2);
fclose(fp3);
printf("添加成功!
按回车键返回");
scanf("%c",&w);
scanf("%c",&w);
teacher();
}
voidxiugai()
{
intn,m,i,s,p,k,w;
chengji();
printf("您需要输入这名学生的学号和要修改的科目编号,之后进行修改\n请输入这名学生的学号:
");
scanf("%d",&n);
for(i=0;i{
if(n==stu[i].num)
{
gotook;
}
}
printf("并不存在此学生!
\n");
printf("按回车键返回");
scanf("%c",&w);
scanf("%c",&w);
teacher();
ok:
printf("1.英语\t\t2.高等数学\t3.大学物理\t4.C语言\t\t5.机械制图\t6.政治\t7.体育\n\n");
printf("您需要输入这名学生要修改的科目编号:
");
scanf("%d",&m);
for(i=0;i{
if(n==stu[i].num)
{
k=i;
switch(m)
{
case1:
{printf("\n请您确认您是要修改%s的英语成绩吗?
\n目前ta的英语成绩为%d\n\n请输入\n1.确认2.取消\n",stu[i].name,stu[i].score1);break;break;}
case2:
{printf("\n请您确认您是要修改%s的高等数学成绩吗?
\n目前ta的高等数学成绩为%d\n\n请输入\n1.确认2.取消\n",stu[i].name,stu[i].score2);break;break;}
case3:
{printf("\n请您确认您是要修改%s的大学物理成绩吗?
\n目前ta的大学物理成绩为%d\n\n请输入\n1.确认2.取消\n",stu[i].name,stu[i].score3);break;break;}
case4:
{printf("\n请您确认您是要修改%s的C语言成绩吗?
\n目前ta的C语言成绩为%d\n\n请输入\n1.确认2.取消\n",stu[i].name,stu[i].score4);break;break;}
case5:
{printf("\n请您确认您是要修改%s的机械制图成绩吗?
\n目前ta的机械制图成绩为%d\n\n请输入\n1.确认2.取消\n",stu[i].name,stu[i].score5);break;break;}
case6:
{printf("\n请您确认您是要修改%s的政治成绩吗?
\n目前ta的政治成绩为%d\n\n请输入\n1.确认2.取消\n",stu[i].name,stu[i].score6);break;break;}
case7:
{printf("\n请您确认您是要修改%s的体育成绩吗?
\n目前ta的体育成绩为%d\n\n请输入\n1.确认2.取消\n",stu[i].name,stu[i].score7);break;break;}
//英语、高等数学、大学物理、C语言、机械制图、政治、体育
}
if(m!
=1&&m!
=2&&m!
=3&&m!
=4&&m!
=5&&m!
=6&&m!
=7)
{
printf("请正确选择");
scanf("%c",&w);
scanf("%c",&w);
gotook;
}
}
}
scanf("%d",&p);
if(p==1)
{
printf("请输入ta的新成绩:
");
scanf("%d",&s);
printf("ta的此课程的新成绩为%d",s);
switch(m)
{
case1:
{stu[k].score1=s;gotoshuchu;}
case2:
{stu[k].score2=s;gotoshuchu;}
case3:
{stu[k].score3=s;gotoshuchu;}
case4:
{stu[k].score4=s;gotoshuchu;}
case5:
{stu[k].score5=s;gotoshuchu;}
case6:
{stu[k].score6=s;gotoshuchu;}
case7:
{stu[k].score7=s;gotoshuchu;}
case8:
{stu[k].score8=s;gotoshuchu;}
case9:
{stu[k].score9=s;gotoshuchu;}
}
}
elseif(p==2)
{
printf("以取消\n按回车键返回");
scanf("%c",&w);
scanf("%c",&w);
teacher();
}
else
{
printf("请正确选择!
");
}
shuchu:
input();
}
voidinput()
{
inti;
charw;
FILE*fp1;
FILE*fp2;
FILE*fp3;
fp1=fopen("chengji.txt","w");
fclose(fp1);
fp2=fopen("name.txt","w");
fclose(fp2);
fp1=fopen("chengji.txt","a");
fp2=fopen("name.txt","a");