C语言程序设计学生成绩管理系统

时间:2016.03.26 发布人:yunlong97

C语言程序设计学生成绩管理系统

已解决问题

谷歌yunlong97用户在2016.03.26提交了关于“误杀C语言程序设计学生成绩管理系统”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-14T12:40:35。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,当代劳模,所有人都应该向你学习 !

希望以下的回答,能够帮助你。

第1个回答

用户名:a12197z  

#include"stdio.h"

/*定义学生结构体*/

structStudent

{

charID采益片克而抓植规变销[20];

charName[20];

floatMar资要轮k1;

floatMark眼毫陆致响精轻2;

floatMark3;

floa问答t**erage;

};

/*声明学生数组及学生数量*/

structStudentstudents[1000];

int**m=0;

/*求平均值*/

float**g(structStudentstu)

{

return线项(stu.Mark1+stu.钢Mark2+stu.Mar阶烈k3)/3;

}

/*通过学号返回数组下标*/

intS无让板势业杨有跳线tudent_SearchByIndex(charid[]许但析观风评课间例兰)

{

inti;

for(i=0;i<**m;i++)

{

if(strcmp(students[i].ID,id)==0)

{

returni;

}

}

return-1;

}

/*通过姓名返回数组下标*/

intStud开矿果技ent_SearchByName(charname[])

{

inti;

供改歌每for(i=0;i<**m;i++)

{

if(s便视住儿trcmp(students[i]错损器天祖分.Name,name)==0)

{

returni奏肉掌乐设手保程来;

}

}

return-1;

}

/*显示单条学生记录*/

voidStudent_D判洲百本失环随些让夫isplaySingle(i该强宪获研被必另ntindex)

{

printf附胡("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");

printf("-------季四术黄婷------------------------------------------------------\n");

printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",st氧定农udents[index].ID,students[index].Name,

students[index].Mark1,students[index].Mark2,students[index].Mark3,students[index].**erage);

}

/*插入学生信息*/

voidStudent_Insert()

{

while(1)

{

printf("请输入学号:");

scanf("%s",&students[**m].ID);

getchar();

printf("请输入姓名:");

scanf("%s",&students[**m].Name);

getchar();

printf("请输入成绩:");

scanf("%f",&students[**m].Mark1);

getchar();

printf("请输入成绩:");

scanf("%f",&students[**m].Mark2);

getchar();

printf("请输入成绩:");

scanf("%f",&students[**m].Mark3);

getchar();

students[**m].**erage=**g(students[**m]);

**m++;

printf("是否继续?(y/n)");

if(getchar()=='n')

{

bre**;

}

}

}

/*修改学生信息*/

voidStudent_Modify()

{

floatmark1,mark2,mark3;

while(1)

{

charid[20];

intindex;

printf("请输入要修改的学生的学号:");

scanf("%s",&id);

getchar();

index=Student_SearchByIndex(id);

if(index==-1)

{

printf("学生不存在!\n");

}

else

{

printf("你要修改的学生信息为:\n");

Student_DisplaySingle(index);

printf("--请输入新值--\n");

printf("请输入学号:");

scanf("%s",&students[index].ID);

getchar();

printf("请输入姓名:");

scanf("%s",&students[index].Name);

getchar();

printf("请输入成绩:");

scanf("%f",&students[index].Mark1);

getchar();

printf("请输入成绩:");

scanf("%f",&students[index].Mark2);

getchar();

printf("请输入成绩:");

scanf("%f",&students[index].Mark3);

getchar();

students[index].**erage=**g(students[index]);

}

printf("是否继续?(y/n)");

if(getchar()=='n')

{

bre**;

}

}

}

/*删除学生信息*/

voidStudent_Delete()

{

inti;

while(1)

{

charid[20];

intindex;

printf("请输入要删除的学生的学号:");

scanf("%s",&id);

getchar();

index=Student_SearchByIndex(id);

if(index==-1)

{

printf("学生不存在!\n");

}

else

{

printf("你要删除的学生信息为:\n");

Student_DisplaySingle(index);

printf("是否真的要删除?(y/n)");

if(getchar()=='y')

{

for(i=index;i<**m-1;i++)

{

students[i]=students[i+1];

}

**m--;

}

getchar();

}

printf("是否继续?(y/n)");

if(getchar()=='n')

{

bre**;

}

}

}

/*按姓名查询*/

voidStudent_Select()

{

while(1)

{

charname[20];

intindex;

printf("请输入要查询的学生的姓名:");

scanf("%s",&name);

getchar();

index=Student_SearchByName(name);

if(index==-1)

{

printf("学生不存在!\n");

}

else

{

printf("你要查询的学生信息为:\n");

Student_DisplaySingle(index);

}

printf("是否继续?(y/n)");

if(getchar()=='n')

{

bre**;

}

}

}

/*按平均值排序*/

voidStudent_SortBy**erage()

{

inti,j;

structStudenttmp;

for(i=0;i<**m;i++)

{

for(j=1;j<**m-i;j++)

{

if(students[j-1].**erage<students[j].**erage)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}

}

/*显示学生信息*/

voidStudent_Display()

{

inti;

printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","成绩","成绩","成绩","平均成绩");

printf("-------------------------------------------------------------\n");

for(i=0;i<**m;i++)

{

printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[i].ID,students[i].Name,

students[i].Mark1,students[i].Mark2,students[i].Mark3,students[i].**erage);

}

}

/*将学生信息从文件读出*/

voidIO_ReadInfo()

{

FILE*fp;

inti;

if((fp=fopen("Database.txt","rb"))==**LL)

{

printf("不能打开文件!\n");

return;

}

if(fread(&**m,sizeof(int),1,fp)!=1)

{

**m=-1;

}

else

{

for(i=0;i<**m;i++)

{

fread(&students[i],sizeof(structStudent),1,fp);

}

}

fclose(fp);

}

/*将学生信息写入文件*/

voidIO_WriteInfo()

{

FILE*fp;

inti;

if((fp=fopen("Database.txt","wb"))==**LL)

{

printf("不能打开文件!\n");

return;

}

if(fwrite(&**m,sizeof(int),1,fp)!=1)

{

printf("写入文件错误!\n");

}

for(i=0;i<**m;i++)

{

if(fwrite(&students[i],sizeof(structStudent),1,fp)!=1)

{

printf("写入文件错误!\n");

}

}

fclose(fp);

}

/*主程序*/

main()

{

intchoice;

IO_ReadInfo();

while(1)

{

/*主菜单*/

printf("\n------学生成绩管理系统------\n");

printf("1.增加学生记录\n");

printf("2.修改学生记录\n");

printf("3.删除学生记录\n");

printf("4.按姓名查询学生记录\n");

printf("5.按平均成绩排序\n");

printf("6.退出\n");

printf("请选择(1-6):");

scanf("%d",&choice);

getchar();

switch(choice)

{

case1:

Student_Insert();

bre**;

case2:

Student_Modify();

bre**;

case3:

Student_Delete();

bre**;

case4:

Student_Select();

bre**;

case5:

Student_SortBy**erage();

Student_Display();

bre**;

case6:

exit();

bre**;

}

IO_WriteInfo();

}

}