c语言实验报告三学生成绩管理系统Word格式.docx
《c语言实验报告三学生成绩管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《c语言实验报告三学生成绩管理系统Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
![c语言实验报告三学生成绩管理系统Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/25/b690de1f-ddba-4628-828d-6f78af988182/b690de1f-ddba-4628-828d-6f78af9881821.gif)
intscore;
}STU;
STUstu[N];
intn=0;
intKEY=0;
intk;
voidInput();
voidOutput();
voidAdd();
voidDirect();
voidDelete();
voidSearch();
voidSch();
voidSave();
voidRead();
voidmain()
intchos;
system("
cls"
);
printf("
\n"
学生成绩管理系统\n\n"
1.录入\n2.显示\n3.添加\n4.修改\n"
5.删除\n6.查找\n7.查询\n8.退出\n"
\n请选择:
"
scanf("
%d"
&
chos);
switch(chos)
{
case1:
Input();
break;
case2:
Output();
case3:
Add();
case4:
KEY=1;
Search();
case5:
Delete();
case6:
Search();
case7:
Sch();
case8:
exit(0);
default:
printf("
错误!
请按要求输入!
"
Sleep(2000);
main();
}
}
voidInput()
inti=-1;
当输入学号为负时返回!
do{
i++;
请输入第%2d个学生的学号:
i+1);
scanf("
%ld"
stu[i].num);
if(stu[i].num<
0)break;
请输入第%2d个学生的成绩:
stu[i].score);
n++;
}while(i<
N&
&
stu[i].num>
=0);
if(stu[i].num<
0)Save();
voidOutput()
Read();
\n\n任意键返回!
getchar();
voidAdd()
inti,j;
请输入需添加学生的学号:
%8ld"
stu[N-1].num);
请输入需添加学生的成绩:
stu[N-1].score);
for(i=0;
i<
n;
i++)
if(stu[N-1].num<
stu[i].num)
{
for(j=n;
j>
i;
j--)
{
stu[j].num=stu[j-1].num;
stu[j].score=stu[j-1].score;
}
stu[i].num=stu[N-1].num;
stu[i].score=stu[N-1].score;
break;
}else{
stu[n].num=stu[N-1].num;
stu[n].score=stu[N-1].score;
}
}n++;
修改后的"
Save();
voidDirect()
请输入修改后的成绩:
stu[k].score);
修改后的成绩为:
\t%8ld\t%d\n"
stu[k].num,stu[k].score);
\n\n"
voidDelete()
inti,del;
charkey;
请输入要删除信息的学生学号:
del);
确认删除?
(Y/N)"
%c"
key);
if(key=='
y'
||key=='
Y'
)
for(i=0;
if(del==stu[i].num)
stu[i]=stu[i+1];
n-=1;
voidSearch()
inti;
charkey='
;
longsearch;
if(KEY==1)printf("
\n请输入要修改成绩学生的学号:
elseprintf("
\n请输入要查询成绩学生的学号:
search);
if(search==stu[i].num)
printf("
学生信息为:
\t%ld\t%d\n"
stu[i].num,stu[i].score);
k=i;
if(KEY==1)Direct();
KEY=0;
voidSch()
inti,a,b;
请输入您要查询的成绩段(AB):
%d%d"
a,&
b);
符合条件的学生有:
if(stu[i].score>
=a&
stu[i].score<
=b)
任意键返回!
voidSave()
FILE*fp;
if((fp=fopen("
score.bin"
"
wb"
))==NULL)
Failedtosavethedata!
fwrite(stu,sizeof(STU),n,fp);
fclose(fp);
学生成绩已储存在\"
score.bin\"
中!
voidRead()
inti,total;
学生信息:
rb"
Failedtoreadthedata!
!
feof(fp);
fread(&
stu[i],sizeof(STU),1,fp);
total=i-1;
total;
2.1.5运行结果
3.实验体会
3.1调试中出现的问题及解决过程
在程序中运用数组时还是不够熟练,调试时总出现指代不明或无法显示所要内容的情况,在认真看老师课上例子后找出错误所在,修改后运行成功。
3.2心得体会
3.3实验改进建议
在查询某个学生成绩,可实现查询第n-m名学生成绩,查询分数在n-m之间的学生成绩,查询平均成绩;
学生成绩修改(增加、删除、修改)等。