学生管理数组文件(C语言).c
#include
#include //for system("cls")
#include
#include //for getche() and getch()
/*定义学生结构体*/
typedef struct //Student
{
char ID[20];
char Name[20];
float Math;
float English;
float Computer;
float Average;
float Sum;
}Student;
/*声明学生数组及学生数量*/
Student students[1000];
int num=0;
/*求平均值*/
float Avg(Student stu)
{
return (stu.Math+stu.English+stu.Computer)/3;
}
/*求总成绩*/
float Sum(Student stu)
{
return (stu.Math+stu.English+stu.Computer);
}
/*通过学号返回数组下标*/
int Student_SearchByIndex(char id[])
{
int i;
for (i=0;i
{
if (strcmp(students[i].ID,id)==0)
{
return i;
}
}
return -1;
}
/*显示单条学生记录*/
void Student_DisplaySingle(int index)
{
printf("%-8s%-8s%-10s%-10s%-15s%-10s%-10s\n","学号","姓名","数学成绩","英语成绩","计算机成绩","平均成绩","总成绩");
printf("---------------------------------------------------------------------------\n");
printf("%-8s%-8s%-10.2f%-10.2f%-15.2f%-10.2f%-10.2f\n",students[index].ID,students[index].Name,
students[index].Math,students[index].English,students[index].Computer,students[index].Average,students[index].Sum);
}
/*查找学生信息*/
void Student_Search()
{
char id[20];
int index;
printf("请输入要查找的学生的学号:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
Student_DisplaySingle(index);
}
/*插入学生信息*/
void Student_Append()
{
while(1)
{
printf("请输入学号:");
scanf("%s",&students[num].ID);
getchar();
printf("请输入姓名:");
scanf("%s",&students[num].Name);
getchar();
printf("请输入数学成绩:");
scanf("%f",&students[num].Math);
getchar();
printf("请输入英语成绩:");
scanf("%f",&students[num].English);
getchar();
printf("请输入计算机成绩:");
scanf("%f",&students[num].Computer);
getchar();
students[num].Average=Avg(students[num]);
students[num].Sum=Sum(students[num]);
num++;
printf("是否继续?(y/n)");
if (getchar()=='n'||getchar()=='N')
{
break;
}
}
}
/*修改学生信息*/
void Student_Modify()
{
float Math,English,Computer;
while(1)
{
char id[20];
int index;
printf("请输入要修改的学生的学号:");
scanf("%s",&id);
getchar();
index=Student_SearchByIndex(id);
if