C语言源代码Word文档格式.docx
《C语言源代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言源代码Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
student.txt"
"
rt"
))==NULL)
{
printf("
\n\n*****库存文件不存在!
请创建"
);
return0;
}
while(feof(fp)!
=1)
fread(&
students[i],sizeof(students),1,fp);
if(students[i].ID==0)break;
elsei++;
fclose(fp);
returni;
}
voidsave_file()
inti;
wb"
打开文件错误!
\n"
return;
for(i=0;
i<
num;
i++)
if(fwrite(&
students[i],sizeof(students),1,fp)!
写文件错误!
floatCalAver(structStudentstu)/*计算n个学生3门课的平均值*/
return((stu.score1+stu.score2+stu.score3)/3.0);
voidStudent_DisplaySingle(intindex)/*显示单条学生记录*/
学号:
%d姓名:
%s学院:
%s班级:
%s高数:
%d英语:
%d大物:
%d平均成绩:
%f\n"
students[index].ID,students[index].Name,
students[index].college,students[index].CLASS,
students[index].score1,
students[index].score2,
students[index].score3,
students[index].aver);
/*按平均值排序*/
voidsort()
inti,j;
structStudenttmp;
for(i=0;
i++)
{
for(j=1;
j<
num-i;
j++)
if(students[j-1].aver<
students[j].aver)
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
}
}
intStudent_SearchByHao(intid)/*通过学号返回数组下标*/
if(students[i].ID==id)returni;
return-1;
intStudent_SearchByName(charname[])/*通过姓名返回数组下标*/
if(strcmp(students[i].Name,name)==0)returni;
intStudent_SearchByXyuan(charxyuan[])/*通过学院返回数组下标*/
inti,n;
if(strcmp(students[i].college,xyuan)==0)returni;
intStudent_SearchByClass(charClass[])/*通过班级返回数组下标*/
if(strcmp(students[i].CLASS,Class)==0)returni;
voidappend()/*添加信息模块*/
while
(1)
请输入学号:
"
scanf("
%d"
&
students[num].ID);
getchar();
请输入姓名:
%s"
students[num].Name);
printf("
请输入学院:
students[num].college);
请输入班级:
students[num].CLASS);
请输入高数:
students[num].score1);
请输入英语:
students[num].score2);
请输入大物:
students[num].score3);
students[num].aver=CalAver(students[num]);
num++;
是否继续?
(y/n)"
if(getchar()=='
n'
)break;
/*修改学生信息*/
voidModify()
while
(1)
intn;
intindex;
请输入要修改的学生的学号:
n);
index=Student_SearchByHao(n);
if(index==-1)
学生不存在!
else
你要修改的学生信息为:
Student_DisplaySingle(index);
--请输入新信息--\n"
students[index].ID);
students[index].Name);
printf("
scanf("
students[index].college);
getchar();
students[index].CLASS);
students[index].score1);
students[index].score2);
students[index].score3);
students[index].aver=CalAver(students[index]);
)break;
/*删除学生信息*/
voidDelete()
intid;
请输入要删除的学生的学号:
id);
index=Student_SearchByHao(id);
你要删除的学生信息为:
是否真的要删除?
y'
)
for(i=index;
num-1;
students[i]=students[i+1];
已删除信息!
num--;
/*信息查询模块*/
voidSearchNum()/*按学号查询学生信息*/
intxhao;
请输入要查询的学生的学号:
xhao);
index=Student_SearchByHao(xhao);
if(index==-1)
你要查询的学生信息为:
voidSearchName()/*按姓名查询学生信息*/
charnam[20];
请输入要查询的学生的姓名:
nam);
index=Student_SearchByName(nam);
voidSearchCollege()/*按学生所在学院查询学生信息*/
charcolle[20];
请输入要查询的学生的学院:
colle);
index=Student_SearchByXyuan(colle);
voidSearchCLASS()/*按学生所在班级查询学生信息*/
charcla[20];
请输入要查询的学生的班级:
cla);
index=Student_SearchByClass(cla);
voidinquire()/*查询学生信息操作*/
intchoice;
*******学生查询信息系统******\n"
1、按学号查询\n"
2、按姓名查询\n"
3、按学院查询\n"
4、按班级查询\n"
0、返回主菜单\n"
请输入操作:
choice);
switch(choice)
case1:
SearchNum(num);
break;
case2:
SearchName(num);
case3:
SearchCollege(num);
case4:
SearchCLASS(num);
case0:
return;
default:
printf("
\n输入错误!
请重新输入!
/*输出模块*/
voidoutput()
\n\n-----学生成绩表-----\n\n"
学号%d姓名%s学院%s班级%s高数%d英语%d大物%d平均成绩%f\n"
students[i].ID,students[i].Name,
students[i].college,students[i].CLASS,
students[i].score1,
students[i].score2,
students[i].score3,
students[i].aver);
\n"
按任意键返回主菜单!
getch();
/*主程序*/
voidmain()
read_file();
\n\n\n********学生成绩管理系统********\n\n"
1、显示学生信息\n\n"
2、添加学生信息\n\n"
3、修改学生信息\n\n"
4、删除学生信息\n\n"
5、查询学生信息\n\n"
6、按平均成绩排序\n\n"
7、退出系统\n\n"
请选择(1-7):
case1:
output();
append();
Modify();
Delete();
case5:
inquire();
case6:
sort();
case7:
exit(0);
save_file();