学生成绩管理系统 高质量C语言程序.doc_第1页
学生成绩管理系统 高质量C语言程序.doc_第2页
学生成绩管理系统 高质量C语言程序.doc_第3页
学生成绩管理系统 高质量C语言程序.doc_第4页
学生成绩管理系统 高质量C语言程序.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生成绩管理系统摘要:学生成绩管理系统是学校不可或缺的一个组成部分,随着计算机技术的逐渐发展,计算机在教育系统中的应用得到了巨大的发展。教务管理正在逐步迈向管理信息现代化。但是我国的教务管理信息化水平还处在初级阶段,主要表现在对学生的成绩管理、学生的课程管理还是采用原有的人工管理方式。学校的规模不断扩大,学生数量急剧增加,有关学生的各种数据也成倍增长。面对庞大的信息量, 这时的人工管理几乎无法实现,在这种情况下用数据库进行管理变的尤为必要,这可以发挥计算机的优势,就需要有教务管理系统来提高学生成绩管理工作的效率。过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量和减少人为的错误。 本次我们组选的就是学生成绩管理系统,要实现对学生成绩、课程的相关管理。关键词:成绩管理、C语言项目、程序设计、程序分析目录:1、 设计目的和要求1.1目的1.2要求2、 总体设计2.1模块设计2.2类的分析与设计3、 详细设计3.4学生成绩查询功能模块设计3.4.1详细功能描述3.4.2设计思想3.4.3主要代码3.5学生信息统计功能模块设计3.5.1详细功能描述3.5.2设计思想3.5.3主要代码3.6学生成绩排序功能模块设计3.6.1详细功能描述3.6.2设计思想3.6.3主要代码4、 调试分析5、 总结6、 答辩记录7、 教师意见1、设计目的和要求1.1目的以本班同学的高等数学、大学物理、C语言、大学英语的成绩为基础,建立一个可以实现以下功能的学生成绩管理系统。1.2要求A信息维护信息数据以文件形式保存,要求能够实现对学生信息数据的维护,其中包括增加、删除以及修改学生信息。B信息查询要求能够能够实现按学生姓名和学号两种方式查询学生各课成绩。C成绩统计输入任意课程名和一个分数段,统计该课程在该分数段的学生信息。D成绩排序对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果。2、总体设计2.1模块设计根据设计目的和要求,我们首先将程序分成四个模块,分别为信息维护、信息查询、成绩统计及成绩排序。而在各个主模块中,我们又将其分成若干个小模块,从而实现程序设计的要求。其中,模块设计如下:信息维护1、增加学生信息2、删除学生信息3、修改学生信息;信息查询-1、按学号查询2、按姓名查询;成绩统计;成绩排序1、按高数排序2、按大物排序3、按C语言排序4、按英语排序。所以最终实现的功能有:1、增加学生信息2、删除学生信息3、修改学生信息4、按学号查询成绩5、按姓名查询成绩6、成绩按某门课程某个分数段统计7、成绩按某门课程排序。一个方便学校使用的学生成绩管理系统,这个系统的功能比较完善。使用类内函数和主函数中的switch语句实现多分支选择结构,进而实现该系统的各项功能。该系统能实现7项功能。设计本次实验所用到的知识点有:类、指针、数组,构造函数,动态内存分配,switch语句、if语句、while()语句等。2.2类的分析与设计student类中的构造函数是来实现当类生成对象时用于对数据的初始化。例如是对学生姓名的初始化,stud.math是对学生高等数学成绩的初始化,而stud.Clanguage是对学生c语言成绩的初始化。而student类将有内在联系的,成组出现的学生姓名,学号,各科成绩结合在一起,形成一种组合型数据结构。 3.详细设计3.4学生成绩查询模块3.4.1详细功能描述该部分是通过学号,姓名来对学生信息进行查询3.4.2设计思想我们采用通过学号,或姓名选择查询方式,查询已录入的学生的数据信息。当输入学生学号或姓名,执行程序后会将学生信息输出到屏幕,同时执行完这一部分后会自动回到主菜单以便进行进一步管理。 3.4.3主要代码int chaxunxuanze()int i; printf(tt1. 按学号查询n); printf(tt2 .按姓名查询n); printf(tt按其它数字键退出 n); scanf(%d,&i); return i;void chaxun_xuehao(struct Student_type stud) /按学号查找并显示一个记录 int u; int i=0; printf(输入要查询学生的学号:); scanf(%d,&u);for(i=0;iSIZE;i+) if(u=studi.num)printf(%-8s%4d%4d%4d%4d%4dn,,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English); /输出该学生信息 void chaxun_xingming(struct Student_type stud) /按姓名查找并显示一个记录 char s10; int i=0; printf(输入要查询学生的姓名:); scanf(%s,s);for(i=0;iSIZE;i+) if(strcmp(,s)=0)printf(%-8s%4d%4d%4d%4d%4dn,,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English); /输出该学生信息 3.5统计数据功能模块设计3.5.1详细功能描述该部分是用来统计已录入的学生的数据信息中符合要求的学生信息。3.5.2设计思想我们设计的是先让使用者选择要统计的科目和分数段,通过几个简单的程序判断科目,至于分数段则是用比较的方法,然后输出已录学生的信息。3.5.3主要代码void tongji(struct Student_type stud) /按分数段统计人数 int i,j,a,max,min,k,l,q,p,w; k=0,l=0,p=0,q=0,w=0; printf(你想统计哪科成绩: 1高数 2大物 3C语言 4英语 n); scanf(%d,&j); printf(请输入两个分数:n); scanf(%d%d,&max,&min); if(maxmin) a=max;max=min;min=a; if(j=1)for(i=0;imin&studi.mathmax)k+;printf(%-8s%4d%4d%4d%4d%4dn,,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English); else if(j=2)for(i=0;imin&studi.physicmax)l+;printf(%-8s%4d%4d%4d%4d%4dn,,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English); else if(j=3)for(i=0;imin&studi.Clanguagemax)p+;printf(%-8s%4d%4d%4d%4d%4dn,,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English); else if(j=4) for(i=0;imin&studi.Englishmax) q+;printf(%-8s%4d%4d%4d%4d%4dn,,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English); printf(分数段的人数为 :%d,w); 3.6数据排序功能模块设计3.6.1详细功能描述该部分是用来对学生的不同成绩进行排序,并显示在屏幕上。3.6.2设计思想我们设计的是先让使用者选择要排序的科目,通过IF 语句判断,然后进入相应的子函数中。再通过选择法进行排序。 3.6.3主要代码void paixu_math(struct Student_type stud) /*按高树成绩排序*/ int i,j,k=0,p,q,r,w;double y;char x10;int t;for(i=0;iSIZE-1;i+)/*选择法法排序*/ k=i;for(j=i+1;jstudk.math)k=j;p=studi.physic;studi.physic=studk.physic;studk.physic=p;q=studi.math;studi.math=studk.math;studk.math=q;r=studi.English;studi.English=studk.English;studk.English=r;w=studi.Clanguage;studi.Clanguage=studk.Clanguage;studk.Clanguage=w;t=studi.num;studi.num=studk.num;studk.num=t;strcpy(x,);strcpy(,);strcpy(,x);for(i=0;iSIZE;i+)printf(%-10s%8d%4d%4d%4d%4dn,,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English);void paixu_physic(struct Student_type stud) /*按大物成绩排序*/ int i,j,k=0,p,q,r,w;double y;char x10;int t;for(i=0;iSIZE-1;i+)/*选择法法排序*/ k=i;for(j=i+1;jstudk.physic)k=j;p=studi.physic;studi.physic=studk.physic;studk.physic=p;q=studi.math;studi.math=studk.math;studk.math=q;r=studi.English;studi.English=studk.English;studk.English=r;w=studi.Clanguage;studi.Clanguage=studk.Clanguage;studk.Clanguage=w;t=studi.num;studi.num=studk.num;studk.num=t;strcpy(x,);strcpy(,);strcpy(,x);for(i=0;iSIZE;i+)printf(%-10s%8d%4d%4d%4d%4dn,,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English);void paixu_Clanguage(struct Student_type stud) /*按C语言成绩排序*/ int i,j,k=0,p,q,r,w;double y;char x10;int t;for(i=0;iSIZE-1;i+)/*选择法法排序*/ k=i;for(j=i+1;jstudk.Clanguage)k=j;p=studi.physic;studi.physic=studk.physic;studk.physic=p;q=studi.math;studi.math=studk.math;studk.math=q;r=studi.English;studi.English=studk.English;studk.English=r;w=studi.Clanguage;studi.Clanguage=studk.Clanguage;studk.Clanguage=w;t=studi.num;studi.num=studk.num;studk.num=t;strcpy(x,);strcpy(,);strcpy(,x);for(i=0;iSIZE;i+)printf(%-10s%8d%4d%4d%4d%4dn,,studi.num,studi.math,studi.physic,studi.Clanguage,studi.English);void paixu_English(struct Student_type stud) /*按英语成绩排序*/ int i,j,k=0,p,q,r,w;double y;char x10;int t;for(i=0;iSIZE-1;i+)/*选择法法排序*/ k=i;for(j=i+1;jstudk.English)k=j;p=studi.physic;studi.physic=studk.physic;studk.physic=p;q=studi.math;studi.math=studk.math;studk.math=q;r=studi.English;studi.English=studk.English;studk.English=r;w=studi.Clanguage;studi.Cla

温馨提示

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

评论

0/150

提交评论