C语言学生成绩设计Word格式文档下载.docx
《C语言学生成绩设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言学生成绩设计Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
![C语言学生成绩设计Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-11/20/bcc42e35-5a9b-49f9-a7ba-53ca78aeb8e1/bcc42e35-5a9b-49f9-a7ba-53ca78aeb8e11.gif)
charName[20];
floatMark1;
floatMark2;
floatMark3;
floatAverage;
};
/*声明学生数组及学生数量*/
structStudentstudents[1000];
intnum=0;
/*求平均值*/
floatAvg(structStudentstu)
return(stu.Mark1+stu.Mark2+stu.Mark3)/3;
}
/*通过学号返回数组下标*/
intStudent_SearchByIndex(charid[])
inti;
for(i=0;
i<
num;
i++)
{
if(strcmp(students[i].ID,id)==0)
returni;
}
return-1;
/*通过姓名返回数组下标*/
intStudent_SearchByName(charname[])
if(strcmp(students[i].Name,name)==0)
/*显示单条学生记录*/
voidStudent_DisplaySingle(intindex)
printf("
%10s%10s%8s%8s%8s%10s\n"
"
学号"
姓名"
成绩"
平均成绩"
);
-------------------------------------------------------------\n"
%10s%10s%8.2f%8.2f%8.2f%10.2f\n"
students[index].ID,students[index].Name,
students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].Average);
/*插入学生信息*/
voidStudent_Insert()
while
(1)
请输入学号:
"
scanf("
%s"
&
students[num].ID);
getchar();
请输入姓名:
students[num].Name);
请输入成绩:
%f"
students[num].Mark1);
students[num].Mark2);
students[num].Mark3);
students[num].Average=Avg(students[num]);
num++;
是否继续?
(y/n)"
if(getchar()=='
n'
)
break;
/*修改学生信息*/
voidStudent_Modify()
floatmark1,mark2,mark3;
charid[20];
intindex;
请输入要修改的学生的学号:
id);
index=Student_SearchByIndex(id);
if(index==-1)
学生不存在!
\n"
else
你要修改的学生信息为:
Student_DisplaySingle(index);
--请输入新值--\n"
students[index].ID);
students[index].Name);
students[index].Mark1);
students[index].Mark2);
students[index].Mark3);
students[index].Average=Avg(students[index]);
/*删除学生信息*/
voidStudent_Delete()
请输入要删除的学生的学号:
你要删除的学生信息为:
是否真的要删除?
y'
for(i=index;
num-1;
students[i]=students[i+1];
num--;
/*按姓名查询*/
voidStudent_Select()
charname[20];
请输入要查询的学生的姓名:
name);
index=Student_SearchByName(name);
你要查询的学生信息为:
/*按平均值排序*/
voidStudent_SortByAverage()
inti,j;
structStudenttmp;
for(j=1;
j<
num-i;
j++)
if(students[j-1].Average<
students[j].Average)
tmp=students[j-1];
students[j-1]=students[j];
students[j]=tmp;
/*显示学生信息*/
voidStudent_Display()
students[i].ID,students[i].Name,
students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].Average);
/*将学生信息从文件读出*/
voidIO_ReadInfo()
FILE*fp;
if((fp=fopen("
Database.txt"
rb"
))==NULL)
不能打开文件!
return;
if(fread(&
num,sizeof(int),1,fp)!
=1)
num=-1;
for(i=0;
fread(&
students[i],sizeof(structStudent),1,fp);
fclose(fp);
/*将学生信息写入文件*/
voidIO_WriteInfo()
wb"
if(fwrite(&
写入文件错误!
students[i],sizeof(structStudent),1,fp)!
}
/*主程序*/
main()
intchoice;
IO_ReadInfo();
/*主菜单*/
\n------学生成绩管理系统------\n"
1.增加学生记录\n"
2.修改学生记录\n"
3.删除学生记录\n"
4.按姓名查询学生记录\n"
5.按平均成绩排序\n"
6.退出\n"
请选择(1-6):
%d"
choice);
switch(choice)
case1:
Student_Insert();
case2:
Student_Modify();
case3:
Student_Delete();
case4:
Student_Select();
case5:
Student_SortByAverage();
Student_Display();
case6:
exit();
IO_WriteInfo();
}