学生成绩管理代码.docx

上传人:b****0 文档编号:9001718 上传时间:2023-05-16 格式:DOCX 页数:14 大小:15.63KB
下载 相关 举报
学生成绩管理代码.docx_第1页
第1页 / 共14页
学生成绩管理代码.docx_第2页
第2页 / 共14页
学生成绩管理代码.docx_第3页
第3页 / 共14页
学生成绩管理代码.docx_第4页
第4页 / 共14页
学生成绩管理代码.docx_第5页
第5页 / 共14页
学生成绩管理代码.docx_第6页
第6页 / 共14页
学生成绩管理代码.docx_第7页
第7页 / 共14页
学生成绩管理代码.docx_第8页
第8页 / 共14页
学生成绩管理代码.docx_第9页
第9页 / 共14页
学生成绩管理代码.docx_第10页
第10页 / 共14页
学生成绩管理代码.docx_第11页
第11页 / 共14页
学生成绩管理代码.docx_第12页
第12页 / 共14页
学生成绩管理代码.docx_第13页
第13页 / 共14页
学生成绩管理代码.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

学生成绩管理代码.docx

《学生成绩管理代码.docx》由会员分享,可在线阅读,更多相关《学生成绩管理代码.docx(14页珍藏版)》请在冰点文库上搜索。

学生成绩管理代码.docx

学生成绩管理代码

#include"stdio.h"

#include"string"

/*定义学生结构体*/

structStudent

{

charID[20];

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

{

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

{

returni;

}

}

return-1;

}

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

intStudent_SearchByName(charname[])

{

inti;

for(i=0;i

{

if(strcmp(students[i].Name,name)==0)

{

returni;

}

}

return-1;

}

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

voidStudent_DisplaySingle(intindex)

{

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

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

printf("%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)

{

printf("请输入学号:

");

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

getchar();

printf("请输入姓名:

");

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

getchar();

printf("请输入成绩:

");

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

getchar();

printf("请输入成绩:

");

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

getchar();

printf("请输入成绩:

");

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

getchar();

students[num].Average=Avg(students[num]);

num++;

printf("是否继续?

(y/n)");

if(getchar()=='n')

{

break;

}

}

}

/*修改学生信息*/

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].Average=Avg(students[index]);

}

printf("是否继续?

(y/n)");

if(getchar()=='n')

{

break;

}

}

}

/*删除学生信息*/

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

{

students[i]=students[i+1];//把后边的对象都向前移动

}

num--;

}

getchar();

}

printf("是否继续?

(y/n)");

if(getchar()=='n')

{

break;

}

}

}

/*按姓名查询*/

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')

{

break;

}

}

}

/*按平均值排序*/

voidStudent_SortByAverage()

{

inti,j;

structStudenttmp;

for(i=0;i

{

for(j=1;j

{

if(students[j-1].Average

{

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

{

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].Average);

}

}

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

voidIO_ReadInfo()

{

FILE*fp;

inti;

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

{

printf("不能打开文件!

\n");

return;

}

if(fread(&num,sizeof(int),1,fp)!

=1)

{

num=-1;

}

else

{

for(i=0;i

{

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

}

}

fclose(fp);

}

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

voidIO_WriteInfo()

{

FILE*fp;

inti;

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

{

printf("不能打开文件!

\n");

return;

}

if(fwrite(&num,sizeof(int),1,fp)!

=1)

{

printf("写入文件错误!

\n");

}

for(i=0;i

{

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

=1)

{

printf("写入文件错误!

\n");

}

}

fclose(fp);

}

/*主程序*/

voidmain()

{

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();

break;

case2:

Student_Modify();

break;

case3:

Student_Delete();

break;

case4:

Student_Select();

break;

case5:

Student_SortByAverage();

Student_Display();

break;

case6:

exit(0);

break;

}

IO_WriteInfo();

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2