学生成绩管理系统数据结构课程设计.docx

上传人:b****5 文档编号:7895708 上传时间:2023-01-27 格式:DOCX 页数:56 大小:90.57KB
下载 相关 举报
学生成绩管理系统数据结构课程设计.docx_第1页
第1页 / 共56页
学生成绩管理系统数据结构课程设计.docx_第2页
第2页 / 共56页
学生成绩管理系统数据结构课程设计.docx_第3页
第3页 / 共56页
学生成绩管理系统数据结构课程设计.docx_第4页
第4页 / 共56页
学生成绩管理系统数据结构课程设计.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统数据结构课程设计.docx

《学生成绩管理系统数据结构课程设计.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据结构课程设计.docx(56页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统数据结构课程设计.docx

学生成绩管理系统数据结构课程设计

算法与数据结构课程设计---学生成绩管理系统

《算法与数据结构课程设计》

综合实验

课程设计名称:

学生成绩管理系统

专业:

计算机科学与技术

学生成绩管理系统

一、问题的描述和分析

1.1问题的描述

随着社会的发展和经济时代的到来,管理信息系统在各行各业都越来越重要,特别是教育事业。

在经济发达的国家,许多教育机构(如公办、私立、培训机构等),都投入了大量的资金开发MIS系统,以求在将来激烈的竞争中立于不败之地。

在我国,民办教育是新兴的一个行业,是随着改革开放和市场经济的发展根据中国特有的国情发展起来的,特别是中国民办教育促进法的出台,从一定的程度上规范和促进了中国民办教育的发展,这是一个很有发展前途的新兴产业,但是同发达国家相比,我国的民办教育行业的信息技术的应用程度还很低,只有在大城-0-

算法与数据结构课程设计---学生成绩管理系统

市中发展较早、规模较大的民办院校中才使用计算机进行大规模操作,从各方面提高工作效率,取得良好的社会和经济效益,而一些新兴的、规模较小的民办机构还没有全部具备这种功能。

因此可见,随着我国民办教育的迅速发展,信息技术在其上的应用会更加地广泛和深入。

1.2现有系统存在问题的分析

有的学校根本就没有系统,还是手工操作计算机日新月异的发展,但是有的领导只见眼前利益,不关心,甚至不敢尝试新兴的事物。

手工操作还十分落后,效率极低,成本很大,以后的社会是信息的社会,信息只有快,准,精才能发挥其价值。

所以机器代替人力是必然的历史发展趋势,只有领导的重视和支持才能从人工操作改为计算机的自动化系统。

人工操作必将被计算机代替。

有些学校虽使用了计算机,甚至管理系统,但是仍然存在很多问题,问题一日不解决,效率就一日提不上去。

还有,有的系统很不完善到处是漏洞,可以说是千疮百孔,这样极不完善的系统能有保障吗?

所以制作一个完善的学生管理系统是必不可少的。

二、数据结构的设计

structperson

{

charname[20];

longnum;

floatmath;

floatEnglish;

floatchinese;

floataverage;

floatsum;

}student;

三、模块:

-1-

算法与数据结构课程设计---学生成绩管理系统

学生成绩管理系统模块四、算法的设计在此成绩管理系统中,要求用户输入的只是有字符型和数值型数据,所以我设计了下面函数1.-2-

算法与数据结构课程设计---学生成绩管理系统

来处理并对输出的数据进行检验。

gets(numstr);intN=0;

Enter()

student.English=atof(numstr);{

printf(\

yourFILE*fp;chinese:

);

charch;gets(numstr);charch2;charnumstr[20];student.chinese=atof(numstr);

structpersonstudent2;

student.sum=student.chinese+student.matclrscr();

h+student.English;

fp=fopen(jie.txt,ab);

if(fp==NULL)student.average=student.sum/3;

{

printf(can'topenthisfwrite(&student,sizeof(struct

file.\n);

person),1,fp);

withforasecondprintf(waitN++;

patience.\nthesystemisexiting.\n);printf(Doyoucontinue

getch();addingotherstudents(Y/N)?

\n);

exit(0);ch=getchar();

}getchar();

else}while(ch=='y'||ch=='Y');

{}

do{

printf(Showall(Y/N)?

\n);

printf(yourname:

);ch2=getchar();

gets(student.name);getchar();

printf(\

yournum:

);if(ch2=='y'||ch2=='Y')

gets(numstr);

Listall();

student.num=atol(numstr);fclose(fp);

printf(\

yourmath:

);return_confirm();

gets(numstr);clrscr();

}

student.math=atof(numstr);

printf(\

your

English:

);

查询学生记录2.即按学号或按姓名进行查询。

当用户执行此查询任务时,系统会提示用户进行查询字段的选择,-3-

算法与数据结构课程设计---学生成绩管理系统

若此学生记录存在,则会打印输出此学生记录的信息。

Search()

ch2=getchar();

{

getchar();charchoice;

}while(ch2==charch1;

'y'||ch2=='Y');

charch2;

printf(Searchcharch3;

byotherways(Y/N)?

\n);

charch4;

ch3=getchar();charname[20];

getchar();longnum;

charnumstr[20];

if(ch3=='y'||ch3=='Y')

clrscr();

gotoLoop2;printf(***WAYSOF

break;SEARCHING***\n);

case'2':

printf(---------------------------\n)do{

;

Loop2:

printf(**1.name

**\n);

wantyouofprintf(**2.numstudentsprintf(inputthenum

tosearch:

\n);

**\n);

gets(numstr);

牰湩晴尨?

?

?

?

?

?

?

?

?

?

?

?

?

?

屜屮num=atol(numstr);

);

Search2(num);printf(giveyourchoice:

\n);

printf(GOONchoice=getchar();

SEARCHINGBYNUM(Y/N)?

\n);getchar();

while(choice>'2'||choice<'1')

ch1=getchar();

{

getchar();printf(Sorry.yourchoiceis

}while(ch1=='y'||wrong.\npleasegiveacorrectone:

\n);

ch1=='Y');choice=getchar();

}getchar();

}

}

Search2(longnum)根据姓名或学号进行查找3.

{

switch(choice)

FILE*fp;{

charch;case'1':

do{

intflag=0;Loop1:

intt;

clrscr();

printf(inputthenameofstudentsyou

fp=fopen(jie.txt,

b);wanttosearch:

\n);

if(fp==NULL)gets(name);

{

printf(can'topenthisSearch1(name);

file.\n);

printf(GOON

with

SEARCHINGBYNAEM(Y/N)?

\n);

forasecondprintf(wait

4

算法与数据结构课程设计---学生成绩管理系统

exit(0);patience.\nthesystemisexiting.\n);

}getch();

elseexit(0);

{

}

flag=0;

else

t=0;{

flag=0;

while(fread(&student,sizeof(structt=0;

person),1,fp))

while(fread(&student,sizeof(struct

if((strcmp(name,student.name))==0)person),1,fp))

{if(num==student.num)

{

printf(

ame\t\tnum\tchinese\tEnglish\t

math\sum\taverage\n);printf(

ame\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,sprintf(%-10s%-6ld%-8.2f%-8.2f%-8.2f%-8tudent.chinese,student.English,student..2f%-8.2f\n,student.name,student.num,smath,student.sum,student.average);tudent.chinese,student.English,student.t=1;math,student.sum,student.average);

break;t=1;

}break;

if(t==0)

}

printf(Sorry.theif(t==0)

studentyouaresearchingnotprintf(Sorry.the

existed.\n);

studentyouaresearchingnot

rewind(fp);existed.\n);

}

rewind(fp);

fclose(fp);}

}

fclose(fp);

Delete()}

{

Search1(char*name)

FILE*fp;

{

structperson

FILE*fp;

student1[30],student2[30];charch;

inti;intflag=0;

intk;intt;

intj;clrscr();

intflag;fp=fopen(jie.txt,

b);

charch1;

if(fp==NULL)

charname[20];{

charch;printf(can'topenthis

charch2;file.\n);

clrscr();

forasecondprintf(waitwith

fp=fopen(jie.txt,

b+);patience.\nthesystemisexiting.\n);

if(fp==NULL)

getch();

5

算法与数据结构课程设计---学生成绩管理系统

}

{

printf(j=%d\n,j);printf(can'topenthis

k=j;file.\n);

i=0;withprintf(waitforasecond

fclose(fp);patience.\nthesystemisexiting.\n);

if(flag==0)

getch();

printf(Sorry.thestudentexit(0);

youaresearchingnotexisted.\n);}

if(flag==1)else

{

printf(Congratulation!

youdo{

succeed!

!

!

\n);

i=0;

fp=fopen(jie.txt,wb+);j=0;

if(fp==NULL)flag=0;

{

printf(inputthenameof

printf(can'topenstudentsyouaregoingtodelete.\n);

thisfile.\n);

scanf(%s,name);

printf(waitfora

secondwithpatience.\nthesystemiswhile(fread(&student,sizeof(struct

exiting.\n);

person),1,fp)==1)

getch();{

exit(0);

}if((strcmp(name,student.name))!

=0)

else{

{

i=0;student2[j]=student;

do{j++;

}

fwrite(&student2[i],sizeof(structelse

person),1,fp);

{

i++;flag=1;

}while(i

}printf(

ame\t\t\tnum\tchinese\t\tEngliLoop:

sh\t\tmath\tsum\taverage\n);

getchar();

printf(Goon(Y/N)?

\n);printf(%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%ch=getchar();8.2f\n,student.name,student.num,studengetchar();

t.chinese,student.English,student.math,}while(ch=='y'||ch=='Y');student.sum,student.average);

printf(Showall(Y/N)?

\n);

ch2=getchar();printf(Delete(Y/N)?

\n);

getchar();

ch1=getchar();

if(ch2=='y'||ch2=='Y')getchar();

{

toupper(ch);

rewind(fp);if(ch=='N')

gotoLoop;

printf(

ame\t\t\tnum\tchinese\t\tEngli}

6

算法与数据结构课程设计---学生成绩管理系统

do{

sh\t\tmath\tsum\taverage\n);

flag=0;

while(fread(&student,sizeof(struct

fread(&student,sizeof(structperson),1,fp))

person),1,fp);{

if((strcmp(name,student.name))==0)printf(%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%{

8.2f\n,student.name,student.num,studenflag=1;t.chinese,student.English,student.math,printf(he

student.sum,student.average);

being}studentisinformationoffollowing

deleted:

\n);

}

}

printf(

ame\t\tnum\tmath\tchinese\tEngfclose(fp);

lish\tsum\taverage\n);return_confirm();

}

printf(%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%4.修改学生记录

8.2f\n,student.name,student.num,studen在修改学生记录操作中,系统会先按输入的t.chinese,student.English,student.math,学号或姓名查找该记录,然后提示用户修改student.sum,student.average);学号或姓名之外的值,但学号或姓名不能修do{改。

Revise()

printf(***informationsfor{

revising***\n);

FILE*fp;

charch;

printf(===============================charch1;

=====\n);

longoffset=sizeof(structperson);

printf(#1.nameintflag=0;

2.num#\n);

charnumstr[20];

printf(#3.mathcharname[20];

4.English#\n);

clrscr();

printf(#

fp=fopen(jie.txt,

b+);

5.chinese6.total#\n);if(fp==NULL)

{

printf(===============================printf(can'topenthis

=====\n);

file.\n);

printf(giveaforasecondprintf(waitwith

choice:

\n);

patience.\nthesystemisexiting.\n);

ch=getchar();getch();

getchar();exit(0);

}

while(ch>'6'||ch<'1')else

{{

again:

printf(Sorry.youputiswrong.\npleaseprintf(

ameofrivesing

inputanotherchoice:

\n);

student:

\n);

ch=getchar();

gets(name);

7

算法与数据结构课程设计---学生成绩管理系统

ass_revise(

um);

getchar();

}

gets(numstr);

switch(ch)

{

student.num=atol(numstr);

case

'1':

ass_revise(

ame);

ass_revise(math);

gets(student.name);

gets(numstr);

break;

student.math=atof(numstr);

case

'2':

ass_revise(

um);

ass_revise(English);

gets(numstr);

gets(numstr);

student.num=atol(numstr);

student.English=atof(numstr);

break;

ass_revise(chinese);

case

'3':

ass_revise(math);

gets(numstr);

gets(numstr);

student.chinese=atof(numstr);

}student.math=atof(numstr);

student.sum=student.chinese+student.matbreak;

h+student.English;

case

'4':

ass_revise(English);

student.average=student.sum/3;

gets(numstr);

printf(Continuerevisingthesame

student(Y/N)?

\n);

student.English=atof(numstr);

ch1=getchar();

break;

getchar();case

}while(ch=='y'||c'5':

ass_revise(chinese);

h=='Y');

fseek(fp,-offset,1);gets(numstr);

fwrite(&student,sizeof(structstudent.chinese=atof(numstr);

person),1,fp);

printf(he

break;

followingisinformationofstudenthadcase

beenrevised:

\n);'6':

ass_revise(otal);

printf(

ame\t\tnum\tmath\tchinese\tEnggets(student.name);

lish\tsum\taverage\n);

8

算法与数据结构课程设计---学生成绩管理系统

}

rewind(fp);printf(%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%i=0;8.2f\n,student.name,student.num,student.chinese,student.English,student.math,while(fread(&student1[i],sizeof(structstudent.sum,student.average);

person),1,fp))

i++;printf(Congratulation!

you

k=i;succeed!

!

!

\n);

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

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1