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