c语言学生成绩管理系统源代码Word文件下载.doc
《c语言学生成绩管理系统源代码Word文件下载.doc》由会员分享,可在线阅读,更多相关《c语言学生成绩管理系统源代码Word文件下载.doc(15页珍藏版)》请在冰点文库上搜索。
平均成绩和排序\n"
5:
显示班级成绩单\n"
6:
追加学生成绩\n"
0:
推出\n"
}
/*=============录入学生成绩============*/
voidInput_Stu_Information(studentstu[])
inti;
请依次输入学生成绩信息(姓名学号班级数学语文化学):
\n"
for(i=0;
i<
i_stuSize;
i++)
{
printf("
Student%d:
"
i+1);
scanf("
%s%s%s"
stu[i].sz_Name,stu[i].sz_ID,stu[i].sz_Class);
%f%f%f"
&
stu[i].r_Score[0],&
stu[i].r_Score[1],&
stu[i].r_Score[2]);
}
/*==============将信息存入scorefile.dat文件===========*/
voidSave_File(studentstu[])
FILE*fp;
if((fp=fopen("
c:
\\scorefile.dat"
"
wb"
))==NULL)
Save_File函数打开文件c:
\\scorefile.dat!
失败,按任意键退出!
exit
(1);
if(fwrite(&
stu[i],sizeof(student),1,fp)!
=1)
{
printf("
Writerfileerror!
exit
(1);
}
fclose(fp);
/*===============主菜单第一项:
新录入成绩==========*/
intInput_Data()
\n请输入学生实际人数:
scanf("
%d"
i_stuSize);
Input_Stu_Information(stu);
Save_File(stu);
return(i_stuSize);
/*=================学生成绩查询菜单=============*/
voidDis_Search_Menu()
\n学生成绩查询\n"
\n-------------------\n"
\n1:
按学号查询\n"
\n2:
按科目查询\n"
\n0:
退出\n"
/*===============按学号查询===========*/
intSearch_ID(charsz_ID[11])
if(!
strcmp(sz_ID,stu[i].sz_ID))
姓名\t学号\t班级\t数学\t\t语文\t\t化学\n"
--------------------------------------\n"
%S\t%s\t%s"
printf("
\t%-8.1f\t%-8.1f\t%-8.1f\n"
stu[i].r_Score[0],stu[i].r_Score[1],
stu[i].r_Score[2]);
break;
if(i==i_stuSize)printf("
学号输入有误!
没有该学生!
return(i);
/*=============按科目查询==========*/
voidSearch_Course(intcourse)
switch(course)
case1:
printf("
\n姓名\t学号\t班级\t数学\n"
break;
case2:
\n姓名\t学号\t班级\t语文\n"
case3:
\n姓名\t学号\t班级\t化学\n"
default:
\n课程号错误!
return;
-------------------------------\n"
%s\t%s\t%s"
\t%-8.1f\n"
stu[i].r_Score[course-1]);
---------------------------------------\n"
/*=================主页第二项:
修改学生成绩==============*/
voidModify_Data()
inti=0;
chars_ID[11];
Modify_Data函数打开文件c:
失败,按任意键退出!
return;
请输入要修改的学生学号:
scanf("
%s"
s_ID);
i=Search_ID(s_ID);
请按【数学语文化学】顺序输入成绩:
fwrite(&
stu[i],sizeof(student),i_stuSize,fp);
/*=============主菜单第三项:
学生成绩查询============*/
voidSearch_Data()
intSelect,flag=1;
intcourse;
chars_id[11];
while(flag)
Dis_Search_Menu();
请输入所选查询功能号:
Select);
switch(Select)
case1:
请输入查询学号:
scanf("
s_id);
Search_ID(s_id);
break;
case2:
请输入查询科目号:
1数学,2语文3化学\n"
scanf("
course);
Search_Course(course);
default:
输入有错误,重新选择!
break;
if(Select==0)
flag=0;
else
flag=1;
/*===============成绩排序==============*/
voidSort(floataverage[STU_MAXSIZE])
inti,j,k;
studentstemp;
floatave;
i_stuSize-1;
k=i;
for(j=i;
j<
j++)
if(average[j]<
average[k])k=j;
if(k!
=i)
{
stemp=stu[i];
stu[i]=stu[k];
stu[k]=stemp;
ave=average[i];
average[i]=average[k];
average[k]=ave;
}
/*===============主菜单第四项:
计算平均成绩和排序=========*/
voidAverage_Sort()
floatsum,average[STU_MAXSIZE];
sum=stu[i].r_Score[0]+stu[i].r_Score[1]+stu[i].r_Score[2];
average[i]=sum/3;
Sort(average);
\n\t\t\t按平均成绩升序先是成绩\n"
\t\t\t=========================\n"
姓名\t学号\t班级\t数学\t\t语文\t\t化学\t\t平均成绩\n"
--------------------------------\n"
\t%-8.1f\t%-8.1f\t%-8.1f"
stu[i].r_Score[0],stu[i].r_Score[1],stu[i].r_Score[2]);
average[i]);
--------------------------------------------\n"
/*=================主菜单第五项:
显示班级成绩单========*/
voidDisplay_Data()
情输入班级名称:
sz_Class);
\n\t\t\t%s班成绩单\n"
\t\t\t===============\n"
姓名\t学号\t数学\t\t语文\t\t化学\n"
-----------------------------------------\n"
for(;
strcmp(sz_Class,stu[i].sz_Class))
%s\t%s"
stu[i].sz_Name,stu[i].sz_ID);
/*===================主菜单第六项:
追加学生成绩====================*/
voidInsert_Data()
studentst;
轻按下列顺序输入要插入学生的成绩(姓名学号班级数学语文化学):
st.sz_Name,st.sz_ID,st.sz_Class);
st.r_Score[0],&
st.r_Score[1],&
st.r_Score[2]);
ab"
Insert_stu函数打开文件scorefile.dat!
st,sizeof(student),1,fp);
/*==============初始化数组函数==========*/
intInit_Arr()
rb"
Init_Arr函数打开文件c:
return(0);
while(!
feof(fp))
fread(&
stu[i],sizeof(student),1,fp);
i++;
i_stuSize=i-1;
return
(1);
/*==========主程序=======*/
voidmain()
intiSelectNum,flag=1;
Dis_Main_Menu();
情输入所选功能号0-6:
iSelectNum);
switch(iSelectNum)
Input_Data();
if(Init_Arr())Modify_Data();
case3:
if(Init_Arr())Search_Data();
case4:
if(Init_Arr())Average_Sort();
case5:
if(Init_Arr())Display_Data();
case6:
if(Init_Arr())Insert_Data();
default:
输入有误,重新输入!
if(iSelectNum==0)