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

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

举报
开通vip

学生成绩管理系统+++数据结构课程设计算法与数据结构课程设计---学生成绩管理系统 2008-2009学年度第二学期 赣南师范学院数学与计算机科学学院 《算法与数据结构课程设计》 综合实验 课程设计名称:学生成绩管理系统 专 业:计算机科学与技术 班 级:07计本(1)班 学 号:070703032 姓 名:杨倍平 ...

学生成绩管理系统+++数据结构课程设计
算法与数据结构课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 ---学生成绩管理系统 2008-2009学年度第二学期 赣南师范学院数学与计算机科学学院 《算法与数据结构课程设计》 综合实验 课程设计名称:学生成绩管理系统 专 业:计算机科学与技术 班 级:07计本(1)班 学 号:070703032 姓 名:杨倍平 指 导 教 师:曾春梅老师 学生成绩管理系统 1、 问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 的描述和 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 1.1问题的描述    随着社会的发展和经济时代的到来,管理信息系统在各行各业都越来越重要,特别是教育事业。在经济发达的国家,许多教育机构(如公办、私立、培训机构等),都投入了大量的资金开发MIS系统,以求在将来激烈的竞争中立于不败之地。在我国,民办教育是新兴的一个行业,是随着改革开放和市场经济的发展根据中国特有的国情发展起来的,特别是中国民办教育促进法的出台,从一定的程度上规范和促进了中国民办教育的发展,这是一个很有发展前途的新兴产业,但是同发达国家相比,我国的民办教育行业的信息技术的应用程度还很低,只有在大城市中发展较早、规模较大的民办院校中才使用计算机进行大规模操作,从各方面提高工作效率,取得良好的社会和经济效益,而一些新兴的、规模较小的民办机构还没有全部具备这种功能。因此可见,随着我国民办教育的迅速发展,信息技术在其上的应用会更加地广泛和深入。 1.2现有系统存在问题的分析   有的学校根本就没有系统,还是手工操作计算机日新月异的发展,但是有的领导只见眼前利益,不关心,甚至不敢尝试新兴的事物。手工操作还十分落后,效率极低,成本很大,以后的社会是信息的社会,信息只有快,准,精才能发挥其价值。   所以机器代替人力是必然的历史发展趋势,只有领导的重视和支持才能从人工操作改为计算机的自动化系统。人工操作必将被计算机代替。   有些学校虽使用了计算机,甚至管理系统,但是仍然存在很多问题,问题一日不解决,效率就一日提不上去。   还有,有的系统很不完善到处是漏洞,可以说是千疮百孔,这样极不完善的系统能有保障吗?所以制作一个完善的学生管理系统是必不可少的。 二、数据结构的设计 struct person { char name[20]; long num; float math; float English; float chinese; float average; float sum; }student; 三、模块: 学生成绩管理系统模块 四、算法的设计 1.在此成绩管理系统中,要求用户输入的只是有字符型和数值型数据,所以我设计了下面函数来处理并对输出的数据进行检验。 int N=0; Enter() { FILE *fp; char ch; char ch2; char numstr[20]; struct person student2; clrscr(); fp=fopen("jie.txt","ab"); if(fp==NULL) { printf("can't open this file.\n"); printf("wait for a second with patience.\nthe system is exiting.\n"); getch(); exit(0); } else { do{ printf("your name:"); gets(student.name); printf("\nyour num:"); gets(numstr); student.num=atol(numstr); printf("\nyour math:"); gets(numstr); student.math=atof(numstr); printf("\nyour English:"); gets(numstr); student.English=atof(numstr); printf("\nyour chinese:"); gets(numstr); student.chinese=atof(numstr); student.sum=student.chinese+student.math+student.English; student.average=student.sum/3; fwrite(&student,sizeof(struct person),1,fp); N++; printf("Do you continue adding 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(); } 2.查询学生记录 当用户执行此查询任务时,系统会提示用户进行查询字段的选择,即按学号或按姓名进行查询。若此学生记录存在,则会打印输出此学生记录的信息。 Search() { char choice; char ch1; char ch2; char ch3; char ch4; char name[20]; long num; char numstr[20]; 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(); getchar(); while(choice>'2'||choice<'1') { printf("Sorry.your choice is wrong.\nplease give a correct one:\n"); choice=getchar(); getchar(); } 3.根据姓名或学号进行查找 switch(choice) { case '1':do{ Loop1: 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(); 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': do{ Loop2: 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(); }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("can't open this file.\n"); printf("wait for a second with patience.\nthe system is exiting.\n"); getch(); exit(0); } else { flag=0; t=0; while(fread(&student,sizeof(struct person),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.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("can't open this file.\n"); printf("wait for a second with patience.\nthe system is exiting.\n"); getch(); exit(0); } else { flag=0; t=0; while(fread(&student,sizeof(struct person),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.the student you are searching not existed.\n"); rewind(fp); } fclose(fp); } Delete() { FILE *fp; struct person student1[30],student2[30]; int i; int k; int j; int flag; char ch1; char name[20]; char ch; char ch2; clrscr(); fp=fopen("jie.txt","rb+"); if(fp==NULL) { printf("can't open this file.\n"); printf("wait for a second with patience.\nthe system is exiting.\n"); getch(); exit(0); } else { 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) { student2[j]=student; j++; } else { flag=1; printf("name\t\t\tnum\tchinese\t\tEnglish\t\tmath\tsum\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); printf("Delete(Y/N)?\n"); ch1=getchar(); getchar(); toupper(ch); if(ch=='N') goto Loop; } } printf("j=%d\n",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 succeed!!!\n"); fp=fopen("jie.txt","wb+"); if(fp==NULL) { printf("can't open this file.\n"); printf("wait for a second with patience.\nthe system is exiting.\n"); getch(); exit(0); } else { i=0; do{ fwrite(&student2[i],sizeof(struct person),1,fp); i++; }while(i'6'||ch<'1') { printf("Sorry.you put is wrong.\nplease input another choice:\n"); ch=getchar(); getchar(); } switch(ch) { case '1':ass_revise("name"); gets(student.name); break; case '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); 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); 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"); printf("name\t\tnum\tmath\tchinese\tEnglish\tsum\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); printf("Congratulation!you succeed!!!\n"); 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 ON Revising(Y/N)?\n"); ch1=getchar(); getchar(); if(ch1=='y'||ch1=='Y') goto again; } fclose(fp); return_confirm(); clrscr(); } 5.对学生记录进行排序 Order() { FILE *fp; char ch; char ch2; int k; float a[30],b[30],c[30],d[30]; struct person student1[30]; int i; char ch1; fp=fopen("jie.txt","rb"); if(fp==NULL) { printf("can't open this file.\n"); printf("wait for a second with patience.\nthe system is exiting.\n"); getch(); exit(0); } rewind(fp); i=0; while(fread(&student1[i],sizeof(struct person),1,fp)) i++; k=i; do{ for(i=0;i'4') { printf("Sorry.the date 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!you succeed!!!\n"); printf("Go on ordering(Y/N)?\n"); ch1=getchar(); getchar(); }while(ch1=='y'||ch=='Y'); printf("Show all(Y/N)?\n"); ch2=getchar(); getchar(); if(ch2=='y'||ch2=='Y') { rewind(fp); printf("name\t\t\tnum\tchinese\t\tEnglish\t\tmath\tsum\taverage\n"); while(fread(&student,sizeof(struct person),1,fp)) { 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); } } fclose(fp); return_confirm(); } Order1(float *p) { FILE *fp; int i=0; int k; int j; struct person student2; struct person student1[30]; clrscr(); fp=fopen("jie.txt","r+"); if(fp==NULL) { printf("can't open this file.\n"); printf("wait for a second with patience.\nthe system is exiting.\n"); getch(); exit(0); } else { while(fread(&student1[i],sizeof(struct person),1,fp)) i++; k=i; i=0; while(i
本文档为【学生成绩管理系统+++数据结构课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_629444
暂无简介~
格式:doc
大小:288KB
软件:Word
页数:31
分类:互联网
上传时间:2009-11-17
浏览量:87