学生成绩管理系统.docx
《学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统.docx(11页珍藏版)》请在冰豆网上搜索。
![学生成绩管理系统.docx](https://file1.bdocx.com/fileroot1/2023-3/28/28517f16-87ff-418c-b10d-cead0dffb851/28517f16-87ff-418c-b10d-cead0dffb8511.gif)
学生成绩管理系统
学生成绩管理系统
【摘要】
本系统全称为学生成绩管理系统。
根据开发要求,它主要应用于教育系统,完成对日常的教学、教务、教师以及学生的计算机化的管理。
开发学生成绩管理系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。
目前,学校工作繁杂、资料重多。
目前,管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。
因此,开发一套适和大众的、兼容性好的系统是很有必要的。
本系统管理内容广泛,全面涉及了教务教学上的各项服务,包括学生成绩管理,其中有学生成绩管理;学生管理等等。
在开发过程中,注意使其符合操作的业务流程,并力求系统的全面性、通用性,使得本系统不只适用于一家教育机构。
在开发方法的选择上,选择了生命周期法与原型法相结合的方法,遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,采取了演化式原型法,随着用户的使用及对系统了解的不断加深,对某一部分或几部分进行重新分析、设计、实施。
在开发工具的选择上,主要利用Delphi7.0编程语言进行开发,使用其自带的数据库,从而保证了数据的完整性与一致性。
本论文主要从系统分析、系统设计、系统实施与使用等几个方面进行介绍。
【关键词】信息管理系统信息化成绩管理数据库
一、课程设计目的:
本课程设计为学生提供了一个既动手又动脑,自学,查资料,独立实践的机会。
将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对C++系统编程有一个大致的了解。
二、需求分析:
本系统设计者力求根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以方便对成绩的各项管理操作。
开发目的:
①能对成绩进行录入和修改;
②能计算每个学生的平均成绩以及各门功课的平均成绩;
③能根据学生的学号来查询该学生的成绩;
④能删除该学生的记录;
⑤能根据每个学生的平均成绩来他们进行排序。
【流程图】
【源代码】
#include"stdio.h"
#include"string.h"
#defineN1000
voidmenu();
intpassword();
intdedao();
intuninque(structSTUDENTshu[],intlen,intxuehao);
voidshuchu(structSTUDENTshu[],intlen);
voidsend(structSTUDENTshu[],intlen);
intreadFromFile(structSTUDENTshu[]);
voidchaxun(structSTUDENTshu[],intlen);
voidpaixu(structSTUDENTshu[],intlen);
structSTUDENT
{
intnum;
charname[10];
intscore;
}shu[N];
main()
{intlen=0,key,choice;
do{
key=password();
}while(key==0);
while
(1)
{menu();
printf("请输入选项<1,2,3,4,5,6,7>\n");
scanf("%d",&choice);
switch(choice)
{
case1:
printf("输入信息函数\n");len=dedao(shu,len);break;
case2:
printf("输出函数被调用\n");shuchu(shu,len);break;
case3:
printf("保存到文件函数被调用\n");send(shu,len);break;
case4:
printf("从文件读函数被调用\n");len=readFromFile(shu);break;
case5:
printf("按学号查询函数被调用\n");chaxun(shu,len);break;
case6:
printf("按成绩排序函数被调用\n");paixu(shu,len);break;
case7:
exit(0);break;
}
}
}
voidmenu()
{
printf("\n");
printf("*******************************************\n");
printf("*学生成绩管理系统2.0*\n");
printf("*1.输入信息*\n");
printf("*2.输出信息*\n");
printf("*3.保存到文件*\n");
printf("*4.从文件读*\n");
printf("*5.按学号查询*\n");
printf("*6.按成绩排序(由大到小)*\n");
printf("*7.程序结束*\n");
printf("*******************************************\n");
}
intpassword()
{
chara[100];
charkey[]="asd";
printf("请输入密码\n");
scanf("%s",&a);
if(strcmp(a,key)==0)
return1;
else
return0;
}
intdedao(structSTUDENTshu[],intlen)
{inti=len;
intflag=0;
intxuehao,bank,chengji;
while(i{
while
(1)
{
printf("学号");
scanf("%d",&xuehao);
if(xuehao==0)
{flag=1;
break;
}
bank=uninque(shu,i,xuehao);
if(bank==0)
{shu[i].num=xuehao;
break;}
}
if(flag==1)
break;
printf("姓名");
scanf("%s",&shu[i].name);
while
(1)
{
printf("成绩");
if(scanf("%d",&chengji)==1)
{break;}
printf("输入格式错误,请重新输入!
");
while(getchar()!
='\n')
continue;
}
while(getchar()!
='\n')
continue;
shu[i].score=chengji;
i++;
}
returni;
}
intuninque(structSTUDENTshu[],intlen,intxuehao)
{inti;
intbank=0;
for(i=0;i{
if(xuehao==shu[i].num)
bank=1;
}
returnbank;
}
voidshuchu(structSTUDENTshu[],intlen)
{
inti;
printf("%-4s%-10s%-3s","学号","姓名","成绩\n\n");
for(i=0;i{
printf("%-4d%-10s%-3d",shu[i].num,shu[i].name,shu[i].score);
printf("\n");
}
printf("\n\n");
}
voidsend(structSTUDENTshu[],intlen)
{
inti;
FILE*fp;
fp=fopen("d:
\\chegnji.txt","wb");
if(fp==NULL)
{
printf("打开文件出错!
\n");
exit(0);
}
for(i=0;ifwrite(shu+i,sizeof(structSTUDENT),1,fp);
fclose(fp);
}
intreadFromFile(structSTUDENTshu[])
{
FILE*fp=NULL;
inti=0;
fp=fopen("d:
\\chegnji.txt","rb");
if(fp!
=NULL)
{
printf("%-4s%-10s%-3s","学号","姓名","成绩\n\n");
while(!
feof(fp))
{
if(i>=N)
break;
if(fread(shu+i,sizeof(structSTUDENT),1,fp))
printf("%-4d%-10s%-3d",shu[i].num,shu[i].name,shu[i].score);
printf("\n");
i++;
}
fclose(fp);
}
i=i-1;
returni;
}
voidchaxun(structSTUDENTshu[],intlen)
{
inti,nue,b=0;
while
(1)
{printf("inputthestudentnumber(input'0'close)");
scanf("%d",&nue);
b=0;
if(nue==0)
break;
for(i=0;i{
if(nue==shu[i].num)
{printf("%-4s%-10s%-3s","学号","姓名","成绩\n\n");
printf("%-4d%-10s%-3d\n",shu[i].num,shu[i].name,shu[i].score);
b=1;
}
}
if(b==0)
printf("Thenumberisnotexist!
\n");
}
}
voidpaixu(structSTUDENTshu[],intlen)
{
inti,j;
structSTUDENTtemp;
printf("%-4s%-10s%-3s","学号","姓名","成绩\n\n");
for(i=0;i{
for(j=i;j{
if(shu[j].score>shu[i].score)
{
temp=shu[j];
shu[j]=shu[i];
shu[i]=temp;
}
}
printf("%-4d%-10s%-3d\n",shu[i].num,shu[i].name,shu[i].score);
}
}
【心得体会】
通过这次实训,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从数据结构这门课程开始,已发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。
在实际操作过程中犯的一些错误还会有意外的收获,感觉实训很有意思。
在具体操作中对这学期所学的数据结构的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。
发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。
通过实际操作,学会数据结构编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。
深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,“不耻下问”……的寓意。
希望以后应多进行这样的实训,加长设间,培养学生独立思考问题的能力,提高实际操作水平。
【参考文献】
严蔚敏,吴伟民.数据结构(C语言版).北京:
清华大学出版社,2001
谭浩强.C程序设计(第二版).北京:
清华大学出版社,2000
吴文虎《程序设计基础》北京:
清华大学出版社,2003
郭福顺,王晓芬,李莲治《数据结构》(修订本),大连理工大学出版社,1997
潘道才,陈一华《数据结构》,电子科技大学出版社,1994