学生成绩管理系统数据结构课程设计.docx
- 文档编号:3145589
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:46
- 大小:116.07KB
学生成绩管理系统数据结构课程设计.docx
《学生成绩管理系统数据结构课程设计.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据结构课程设计.docx(46页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统数据结构课程设计
《算法与数据结构课程设计》
综合实验
课程设计名称:
学生成绩管理系统
专业:
计算机科学与技术
学生成绩管理系统
一、问题的描述和分析
1.1问题的描述
随着社会的发展和经济时代的到来,管理信息系统在各行各业都越来越重要,特别是教育事业。
在经济发达的国家,许多教育机构(如公办、私立、培训机构等),都投入了大量的资金开发MIS系统,以求在将来激烈的竞争中立于不败之地。
在我国,民办教育是新兴的一个行业,是随着改革开放和市场经济的发展根据中国特有的国情发展起来的,特别是中国民办教育促进法的出台,从一定的程度上规范和促进了中国民办教育的发展,这是一个很有发展前途的新兴产业,但是同发达国家相比,我国的民办教育行业的信息技术的应用程度还很低,只有在大城市中发展较早、规模较大的民办院校中才使用计算机进行大规模操作,从各方面提高工作效率,取得良好的社会和经济效益,而一些新兴的、规模较小的民办机构还没有全部具备这种功能。
因此可见,随着我国民办教育的迅速发展,信息技术在其上的应用会更加地广泛和深入。
1.2现有系统存在问题的分析
有的学校根本就没有系统,还是手工操作计算机日新月异的发展,但是有的领导只见眼前利益,不关心,甚至不敢尝试新兴的事物。
手工操作还十分落后,效率极低,成本很大,以后的社会是信息的社会,信息只有快,准,精才能发挥其价值。
所以机器代替人力是必然的历史发展趋势,只有领导的重视和支持才能从人工操作改为计算机的自动化系统。
人工操作必将被计算机代替。
有些学校虽使用了计算机,甚至管理系统,但是仍然存在很多问题,问题一日不解决,效率就一日提不上去。
还有,有的系统很不完善到处是漏洞,可以说是千疮百孔,这样极不完善的系统能有保障吗?
所以制作一个完善的学生管理系统是必不可少的。
二、数据结构的设计
structperson
{
charname[20];
longnum;
floatmath;
floatEnglish;
floatchinese;
floataverage;
floatsum;
}student;
三、模块:
学生成绩管理系统模块
四、算法的设计
1.在此成绩管理系统中,要求用户输入的只是有字符型和数值型数据,所以我设计了下面函数来处理并对输出的数据进行检验。
intN=0;
Enter()
{
FILE*fp;
charch;
charch2;
charnumstr[20];
structpersonstudent2;
clrscr();
fp=fopen("jie.txt","ab");
if(fp==NULL)
{
printf("can'topenthisfile.\n");
printf("waitforasecondwithpatience.\nthesystemisexiting.\n");
getch();
exit(0);
}
else
{
do{
printf("yourname:
");
gets(student.name);
printf("\nyournum:
");
gets(numstr);
student.num=atol(numstr);
printf("\nyourmath:
");
gets(numstr);
student.math=atof(numstr);
printf("\nyourEnglish:
");
gets(numstr);
student.English=atof(numstr);
printf("\nyourchinese:
");
gets(numstr);
student.chinese=atof(numstr);
student.sum=student.chinese+student.math+student.English;
student.average=student.sum/3;
fwrite(&student,sizeof(structperson),1,fp);
N++;
printf("Doyoucontinueaddingotherstudents(Y/N)?
\n");
ch=getchar();
getchar();
}while(ch=='y'||ch=='Y');
}
printf("Showall(Y/N)?
\n");
ch2=getchar();
getchar();
if(ch2=='y'||ch2=='Y')
Listall();
fclose(fp);
return_confirm();
clrscr();
}
2.查询学生记录
当用户执行此查询任务时,系统会提示用户进行查询字段的选择,即按学号或按姓名进行查询。
若此学生记录存在,则会打印输出此学生记录的信息。
Search()
{
charchoice;
charch1;
charch2;
charch3;
charch4;
charname[20];
longnum;
charnumstr[20];
clrscr();
printf("***WAYSOFSEARCHING***\n");
printf("---------------------------\n");
printf("**1.name**\n");
printf("**2.num**\n");
printf("----------------------------\n");
printf("giveyourchoice:
\n");
choice=getchar();
getchar();
while(choice>'2'||choice<'1')
{
printf("Sorry.yourchoiceiswrong.\npleasegiveacorrectone:
\n");
choice=getchar();
getchar();
}
3.根据姓名或学号进行查找
switch(choice)
{
case'1':
do{
Loop1:
printf("inputthenameofstudentsyouwanttosearch:
\n");
gets(name);
Search1(name);
printf("GOONSEARCHINGBYNAEM(Y/N)?
\n");
ch2=getchar();
getchar();
}while(ch2=='y'||ch2=='Y');
printf("Searchbyotherways(Y/N)?
\n");
ch3=getchar();
getchar();
if(ch3=='y'||ch3=='Y')
gotoLoop2;
break;
case'2':
do{
Loop2:
printf("inputthenumofstudentsyouwanttosearch:
\n");
gets(numstr);
num=atol(numstr);
Search2(num);
printf("GOONSEARCHINGBYNUM(Y/N)?
\n");
ch1=getchar();
getchar();
}while(ch1=='y'||ch1=='Y');
}
}
Search2(longnum)
{
FILE*fp;
charch;
intflag=0;
intt;
clrscr();
fp=fopen("jie.txt","rb");
if(fp==NULL)
{
printf("can'topenthisfile.\n");
printf("waitforasecondwithpatience.\nthesystemisexiting.\n");
getch();
exit(0);
}
else
{
flag=0;
t=0;
while(fread(&student,sizeof(structperson),1,fp))
if(num==student.num)
{
printf("name\t\tnum\tchinese\tEnglish\tmath\sum\taverage\n");
printf("%-10s%-6ld%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f\n",student.name,student.num,student.chinese,student.English,student.math,student.sum,student.average);
t=1;
break;
}
if(t==0)
printf("Sorry.thestudentyouaresearchingnotexisted.\n");
rewind(fp);
}
fclose(fp);
}
Search1(char*name)
{
FILE*fp;
charch;
intflag=0;
intt;
clrscr();
fp=fopen("jie.txt","rb");
if(fp==NULL)
{
printf("can'topenthisfile.\n");
printf("waitforasecondwithpatience.\nthesystemisexiting.\n");
getch();
exit(0);
}
else
{
flag=0;
t=0;
while(fread(&student,sizeof(structperson),1,fp))
if((strcmp(name,student.name))==0)
{
printf("name\t\tnum\tchinese\tEnglish\tmath\sum\taverage\n");
printf("%-10s%-6ld%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f\n",student.name,student.num,student.chinese,student.English,student.math,student.sum,student.average);
t=1;
break;
}
if(t==0)
printf("Sorry.thestudentyouaresearchingnotexisted.\n");
rewind(fp);
}
fclose(fp);
}
Delete()
{
FILE*fp;
structpersonstudent1[30],student2[30];
inti;
intk;
intj;
intflag;
charch1;
charname[20];
charch;
charch2;
clrscr();
fp=fopen("jie.txt","rb+");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 数据结构 课程设计