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

上传人:s****a 文档编号:170598954 上传时间:2022-11-21 格式:DOCX 页数:29 大小:234.92KB
收藏 版权申诉 举报 下载
学生成绩管理系统+++数据结构课程设计_第1页
第1页 / 共29页
学生成绩管理系统+++数据结构课程设计_第2页
第2页 / 共29页
学生成绩管理系统+++数据结构课程设计_第3页
第3页 / 共29页
资源描述:

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

1、算法与数据结构课程设计综合实验课程设计名称:学生成绩管理系统业:计算机科学与技术学生成绩管理系统一、 问题的描述和分析1.1问题的描述随着社会的发展和经济时代的到来,管理信息系统在各行各业都越来越重要,特别是教育 事业。在经济发达的国家,许多教育机构(如公办、私立、培训机构等),都投入了大量的资 金开发MIS系统,以求在将来激烈的竞争中立于不败之地。在我国,民办教育是新兴的一个行业, 是随着改革开放和市场经济的发展根据中国特有的国情发展起来的,特别是中国民办教育促进 法的出台,从一定的程度上规范和促进了中国民办教育的发展,这是一个很有发展前途的新兴 产业,但是同发达国家相比,我国的民办教育行业

2、的信息技术的应用程度还很低,只有在大城 市中发展较早、规模较大的民办院校中才使用计算机进行大规模操作,从各方面提高工作效率, 取得良好的社会和经济效益,而一些新兴的、规模较小的民办机构还没有全部具备这种功能。 因此可见,随着我国民办教育的迅速发展,信息技术在其上的应用会更加地广泛和深入。1.2现有系统存在问题的分析有的学校根本就没有系统,还是手工操作计算机日新月异的发展,但是有的领导只见眼前利 益,不关心,甚至不敢尝试新兴的事物。手工操作还十分落后,效率极低,成本很大,以后的 社会是信息的社会,信息只有快,准,精才能发挥其价值。所以机器代替人力是必然的历史发展趋势,只有领导的重视和支持才能从人

3、工操作改为计算 机的自动化系统。人工操作必将被计算机代替。有些学校虽使用了计算机,甚至管理系统,但是仍然存在很多问题,问题一日不解决,效率 就一日提不上去。还有,有的系统很不完善到处是漏洞,可以说是千疮百孔,这样极不完善的系统能有保障吗? 所以制作一个完善的学生管理系统是必不可少的。二、数据结构的设计struct personchar name20;long num;float math;float English;float chinese;float average;float sum;student;三、模块:学生成绩管理系统模块四、算法的设计1. 在此成绩管理系统中,要求用户输入的只是

4、有字符型和数值型数据,所以我设计了下面函数来处理并对输出的数据进行检验。int N=0;Enter()FILE *fp;char ch;char ch2;char numstr20;struct person student2;clrscr();fp=fopen(jie.txt,ab);if(fp=NULL)printf(cant open thisfile.n);printf(wait for a second withpatience.nthe system is exiting.n);getch();exit(0);elsedoprintf(your name:); gets(stude

5、nt.name); printf(nyour num:); gets(numstr);student.num=atol(numstr); printf(nyour math:); gets(numstr);student.math=atof(numstr);printf(nyourEnglish:);2. 查询学生记录gets(numstr);student.English=atof(numstr);printf(nyourchinese:);gets(numstr);student.chinese=atof(numstr);student.sum=student.chinese+studen

6、t.math+student.English;student.average=student.sum/3;fwrite(&student,sizeof(structperson),1,fp);N+;printf(Do you continueadding other students(Y/N)?n);ch=getchar();getchar();while(ch=y|ch=Y);printf(Show all(Y/N)?n);ch2=getchar();getchar();if(ch2=y|ch2=Y)Listall();fclose(fp);return_confirm();clrscr()

7、;当用户执行此查询任务时,系统会提示用户进行查询字段的选择,即按学号或按姓名进行查询。若此学生记录存在,则会打印输出此学生记录的信息。Search()char choice; char ch1;char ch2;char ch3;char ch4;char name20;long num; char numstr20; clrscr();printf(*WAYS OF SEARCHING*n);printf(n)printf(*1.name*n);printf(*2.num*n);printf(n);printf(give your choice:n); choice=getchar(); g

8、etchar();while(choice2|choice1) printf(Sorry.your choice is wrong.nplease give a correct one:n); choice=getchar(); getchar();3. 根据姓名或学号进行查找 switch(choice)case 1:doLoop1:printf(input the name of students you want to search:n);gets(name);Search1(name);printf(GO ON SEARCHING BY NAEM(Y/N)?n);ch2=getchar

9、();getchar();while(ch2= y|ch2=Y);printf(Search by other ways(Y/N)?n);ch3=getchar(); getchar();if(ch3=y|ch3=Y)goto Loop2; break;case 2:doLoop2:printf(input the num of students you want to search:n);gets(numstr);num=atol(numstr);Search2(num); printf(GO ON SEARCHING BY NUM(Y/N)?n);ch1=getchar();getchar

10、(); while(ch1=y| ch1=Y);Search2(long num)FILE *fp;char ch;int flag=0;int t; clrscr(); fp=fopen(jie.txt,rb); if(fp=NULL) printf(cant open this file.n);printf(wait for a second with patience.nthe system is exiting.n);getch();exit(0);elseflag=0; t=0;while(fread(&student,sizeof(struct person),1,fp)if(nu

11、m=student.num)printf(namettnumtchinesetEnglisht mathsumtaveragen);printf(%-10s%-6ld%-8.2f%-8.2f%-8.2f%-8 .2f%-8.2fn,student.name,student.num,s tudent.chinese,student.English,student. math,student.sum,student.average);t=1; break; if(t=0) printf(Sorry.the student you are searching not existed.n);rewin

12、d(fp); fclose(fp);Search1(char *name)FILE *fp;char ch;int flag=0;int t; clrscr();fp=fopen(jie.txt,rb); if(fp=NULL) printf(cant open this file.n);printf(wait for a second with patience.nthe system is exiting.n);getch();exit(0);elseflag=0;t=0;while(fread(&student,sizeof(struct person),1,fp)if(strcmp(n

13、ame,student.name)=0)printf(namettnumtchinesetEnglisht mathsumtaveragen);printf(%-10s%-6ld%-8.2f%-8.2f%-8.2f%-8 .2f%-8.2fn,student.name,student.num,s tudent.chinese,student.English,student. math,student.sum,student.average);t=1; break;if(t=0) printf(Sorry.the student you are searching not existed.n);

14、rewind(fp);fclose(fp);Delete()FILE *fp;struct person student130,student230;int i;int k;int j;int flag;char ch1;char name20;char ch;char ch2;clrscr();fp=fopen(jie.txt,rb+);if(fp=NULL) printf(cant open this file.n);printf(wait for a second with patience.nthe system is exiting.n);getch();exit(0); else

15、do i=0; j=0; flag=0; printf(input the name of students you are going to delete.n); scanf(%s,name);while(fread(&student,sizeof(struct person),1,fp)=1)if(strcmp(name,student.name)!=0)student2j=student;j+;else flag=1;printf(nametttnumtchinesettEngli shttmathtsumtaveragen);printf(%-10s%-6ld%8.2f%8.2f%8.

16、2f%8.2f%8.2fn,student.name,student.num,studen t.chinese,student.English,student.math, student.sum,student.average);printf(Delete(Y/N)?n); ch1=getchar(); getchar(); toupper(ch); if(ch=N) goto Loop;printf(j=%dn,j); k=j;i=0; fclose(fp); if(flag=0) printf(Sorry.the student you are searching not existed.

17、n);if(flag=1)printf(Congratulation!you succeedn);fp=fopen(jie.txt,wb+); if(fp=NULL) printf(cant open this file.n);printf(wait for a second with patience.nthe system is exiting.n);getch();exit(0);elsei=0; dofwrite(&student2i,sizeof(struct person),1,fp);i+;while(i6|ch1)printf(Sorry.you put is wrong.np

18、lease input another choice:n);ch=getchar();getchar(); switch(ch) case,1, / 、1:ass_revise(name);gets(student.name);break;case,C,/、2:ass_revise(num);gets(numstr);student.num=atol(numstr);break;case 3:ass_revise(math);gets(numstr);student.math=atof(numstr);break;case 4:ass_revise(English);gets(numstr);

19、student.English=atof(numstr);break;case 5:ass_revise(chinese);gets(numstr);student.chinese=atof(numstr);break;case 6:ass_revise(total);gets(student.name);ass_revise(num);gets(numstr); student.num=atol(numstr); ass_revise(math);gets(numstr); student.math=atof(numstr); ass_revise(English);gets(numstr)

20、;student.English=atof(numstr); ass_revise(chinese);gets(numstr); student.chinese=atof(numstr);student.sum=student.chinese+student.mat h+student.English;student.average=student.sum/3; printf(Continue revising the same student(Y/N)?n);ch1=getchar();getchar();while(ch=y|c h=Y);fseek(fp,-offset,1); fwri

21、te(&student,sizeof(struct person),1,fp);printf(thefollowing is information of student had been revised:n);printf(namettnumtmathtchinesetEng lishtsumtaveragen);printf(%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2fn,student.name,student.num,studen t.chinese,student.English,student.math, student.sum,student.avera

22、ge);printf(Congratulation!you succeedn);break;while(fread(&student,sizeof(struct person),1,fp);rewind(fp);if(flag=0)printf(Sorry.the student of reving not existed.n);printf(GO ONRevising(Y/N)?n);ch1=getchar();getchar(); if(ch1=y|ch1=Y)goto again;fclose(fp);return_confirm();clrscr();5. 对学生记录进行排序Order

23、()FILE *fp;char ch;char ch2;int k;float a30,b30,c30,d30;struct person student130;int i;char ch1;fp=fopen(jie.txt,rb);if(fp=NULL)printf(cant open thisfile.n);printf(wait for a second with patience.nthe system is exiting.n);getch();exit(0);rewind(fp);i=0;while(fread(&student1i,sizeof(struct person),1,

24、fp)i+;k=i;dofor(i=0;ik;i+)ai=student1i.math;bi=student1i.English;ci=student1i.chinese;di=student1i.average; printf( *WAYS OF ORDER* n);printf(=n); printf(*1.math2.English*n);printf(*3.chinese4.average*n);printf(=n); printf(please give a choice:n); ch=getchar();getchar(); while(ch4)printf(Sorry.the d

25、ate you input is wrong.nplease give another choice:n);ch=getchar();getchar();switch(ch)case 1:Order1(a);break;case 2:Order1(b);break;case 3:Order1(c);break;case 4:Order1(d);break;printf(Congratulation!yousucceedn);printf(Go on ordering(Y/N)?n);ch1=getchar();getchar();while(ch1=y|ch=Y);printf(Show al

26、l(Y/N)?n);ch2=getchar();getchar();if(ch2=y|ch2=Y)rewind(fp);printf(nametttnumtchinesettEngli shttmathtsumtaveragen);while(fread(&student,sizeof(structperson),1,fp)printf(%-10s%-6ld%8.2f%8.2f%8.2f%8.2f% 8.2fn,student.name,student.num,studen t.chinese,student.English,student.math, student.sum,student.

27、average);fclose(fp);return_confirm();Order1(float *p) FILE *fp;int i=0;int k;int j;struct person student2;fp=fopen(jie.txt,r+); if(fp=NULL) printf(cant open this file.n);printf(wait for a second with patience.nthe system is exiting.n);getch();exit(0); else while(fread(&student1i,sizeof(struct person

28、),1,fp)i+;k=i;i=0; while(ik) for(j=i+1;jk;j+) if(pipj) student2=student1i;student1i=student1j; student1j=student2;i+; rewind(fp); for(i=0;i2|choice1)printf(Sorry.your choice is wrong.nplease give a correct one:n); choice=getchar();getchar(); switch(choice) case 1:doLoop1: printf(input the name of st

29、udents you want to search:n); gets(name);Search1(name); printf(GO ON SEARCHING BY NAEM(Y/N)?n); ch2=getchar();getchar(); while(ch2=y|ch2=Y); printf(Search by other ways(Y/N)?n); ch3=getchar();getchar(); if(ch3=y|ch3=Y) goto Loop2;break;case 2:doLoop2: printf(input the num of students you want to sea

30、rch:n); gets(numstr);num=atol(numstr); Search2(num);printf(GO ON SEARCHING BY NUM(Y/N)?n); ch1=getchar();getchar(); while(ch1=y|ch1=Y);Search2(long num)FILE *fp;char ch;int flag=0;int t;clrscr();fp=fopen(jie.txt,rb);if(fp=NULL)printf(cant open this file.n); printf(wait for a second with patience.nth

31、e system is exiting.n); getch();exit(0);elseflag=0;t=0; while(fread(&student,sizeof(struct person),1,fp) if(num=student.num)printf(namettnumtchinesetEnglishtmathsumtaveragen);printf(%-10s%-6ld%-8.2f%-8.2f%-8.2f%-8.2f%-8.2fn,student.name,student.num,stude nt.chinese,student.English,student.math,stude

32、nt.sum,student.average);t=1;break;if(t=0)printf(Sorry.the student you are searching not existed.n); rewind(fp); fclose(fp);Search1(char *name)FILE *fp;char ch;int flag=0;int t;clrscr();fp=fopen(jie.txt,rb);if(fp=NULL)printf(cant open this file.n); printf(wait for a second with patience.nthe system i

33、s exiting.n); getch();exit(0);elseflag=0;t=0;while(fread(&student,sizeof(struct person),1,fp) if(strcmp(name,student.name)=0)printf(namettnumtchinesetEnglishtmathsumtaveragen);printf(%-10s%-6ld%-8.2f%-8.2f%-8.2f%-8.2f%-8.2fn,student.name,student.num,stude nt.chinese,student.English,student.math,stud

34、ent.sum,student.average);t=1;break;if(t=0)printf(Sorry.the student you are searching not existed.n); rewind(fp);fclose(fp);Delete()FILE *fp;struct person student130,student230;int i;int k;int j;int flag;char ch1;char name20;char ch;char ch2;clrscr();fp=fopen(jie.txt,rb+);if(fp=NULL)printf(cant open

35、this file.n);printf(wait for a second with patience.nthe system is exiting.n); getch();exit(0);elsedoi=0;j=0;flag=0;printf(input the name of students you are going to delete.n); scanf(%s,name);while(fread(&student,sizeof(struct person),1,fp)=1) if(strcmp(name,student.name)!=0) student2j=student; j+;

36、else flag=1;printf(nametttnumtchinesettEnglishttmathtsumtaveragen);printf(%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2fn,student.name,student.num,student.ch inese,student.English,student.math,student.sum,student.average);printf(Delete(Y/N)?n); ch1=getchar();getchar(); toupper(ch); if(ch=N) goto Loop;printf(j=

37、%dn,j);k=j;i=0;fclose(fp);if(flag=0) printf(Sorry.the student you are searching not existed.n);if(flag=1) printf(Congratulation!you succeedn);fp=fopen(jie.txt,wb+);if(fp=NULL) printf(cant open this file.n);printf(wait for a second with patience.nthe system is exiting.n); getch();exit(0);elsei=0;dofw

38、rite(&student2i,sizeof(struct person),1,fp); i+;while(i6|ch1)printf(Sorry.you put is wrong.nplease input anotherchoice:n);ch=getchar();getchar();switch(ch),1, / 、case 1:ass_revise(name);gets(student.name);break;,C,/、case 2:ass_revise(num);gets(numstr);student.num=atol(numstr);break;case 3:ass_revise

39、(math);gets(numstr);student.math=atof(numstr);break;case 4:ass_revise(English);gets(numstr);student.English=atof(numstr);break;case 5:ass_revise(chinese); gets(numstr); student.chinese=atof(numstr); break;case 6:ass_revise(total);gets(student.name);ass_revise(num); gets(numstr); student.num=atol(num

40、str); ass_revise(math);gets(numstr);student.math=atof(numstr); ass_revise(English); gets(numstr);student.English=atof(numstr); ass_revise(chinese);gets(numstr); student.chinese=atof(numstr); student.sum=student.chinese+student.math+student.English; student.average=student.sum/3;printf(Continue revising the same student(Y/N)?n); ch1=getchar();getchar();while(ch=y|ch=Y);fseek(fp,-offset,1);fwrite(&student,sizeof(struct person),1,fp);printf(the following is information of student had been revised:n

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!