ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:45KB ,
资源ID:22604100      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22604100.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计学生成绩管理系统Word文件下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计学生成绩管理系统Word文件下载.docx

1、 (3)?程序所能达到的功能;1. 数据输入功能,输入的数据能最终保存在文件中;2.数据删除功能,能最终从文件中删除;3. 排序功能,根据自己设计的数据结构,设计排序算法4.多种查询(如按学号查询、按姓名查询、按成绩查询等)及输出功能;6. 学生信息的修改(比如修改学生姓名,修改学生某门课程的成绩) 7. 其它功能(如各种统计,统计每个学生所有课程的平均分,统计某门课程所有学生的平均分等等)2、 概要设计1. 数据结构:数组(顺序存储结构)2. 程序模块:(1)先编入系统所需的库函数,使程序可运行#include um=n&rm.term=k)若找到则显示学生记录并跳出循环;if(rm.num

2、!=n&rm.term!=k)若没有则提示“该学号不存在,或没有这个学期的成绩!”。按姓名及学期来查找学生记录模块: 用函数void searchname(Student *r)来实现 主要功能也是用来查找学生记录的。首先会有提示输入姓名及学期,再用for循环语句和if判断语句来进行查找,if(rm.name0 = n0) & (rm.term = k)若找到则显示学生记录并跳出循环;if(rm.name0!=n0&=k)若没有则提示该姓名不存在,或没有这个学期的成绩!按学号及学期修改信息: 用函数void change(Student *r)来实现 主要功能是用来修改学生记录。首先也要有个判

3、断语句,判断学生是否存在,这个是通过学号及学期来判断的,这里会有提示输入学号及学期,之后是for和if语句,if(rm.num=n & rm.term=k)若存在则先输出修改之前的信息,查看是否正确。若正确,则修改此学生记录,这里有个while循环语句,和switch-case选择语句,用来选择修改哪科成绩,和是否进行再修改记录(通过选择Y或y来实现)。最后将修改过后的记录保存到文件中去,并输出提示文件已修改并写入。插入学生资料模块: 用函数Student *insert(Student *r);实现 主要功能是用来添加学生资料,成绩。若显示没有此学生的信息,就可以使用本模块来进行添加。在此模

4、块代码中定义了另一个指针数组:Student *y = (Student *)new Studentnum+1;用来存放新添加的学生记录。再利用for循环进行输入新学生记录,for(m=0;mnum;m+)最后会有一个提示语句cout是否继续输入?(继续,输入y,否则输入其他)endl;若输入y则继续输入,否则将返回主菜单。按学号及学期删除学生记录模块 用函数void shanchu(Student *r)来实现 主要功能是用来删除学生记录。首先有个读文件的操作,之后会有判断语句,根据所输入的学号及学期,来显示删除前的信息记录,添加for循环语句,循环把后一位的信息提前一位,整体数量减一,来进

5、行全局变量的修改,之后再把修改过后的信息记录保存到文件中去。按数据结构成绩(冒泡)降序排序模块用函数void maopao(Student *r) 来实现 主要功能时是用来对学生的记录来按单科成绩(这里以数据结构成绩为例)进行排序。这样方便对某科成绩有个大致的了解。首先会有一个读文件操作,为排序做基础。本排序使用冒泡排序。它有两个优点:一是很容易写出代码;二是具有稳定性,这里的稳定性是指原序列中相同两元素的相对顺序仍然保持到排序后的序列。冒泡排序时进过n-1趟子排序完成的,第i趟子排序从第1个数至第n+1个数,若第i个数比后一个数大(则升序,小则降序。本程序一律采用降序)则交换两数。排序之后,

6、将排序之后的结果写入文件,再打开文件的时候,里面显示的就是按单科成绩排序后的结果。按总分(选择)降序排序: 用函数void xuanze(Student *r)来实现 主要功能时是用来对学生的记录来按总分成绩进行排序。这样方便对学生总体有个大致的了解。本排序使用选择排序。其基本思想是:n个记录的文件的直接选择排序可进过n-1趟直接选择排序得到有序结果:初始状态,无序区为R1.n,有序区为空。第一趟排序 在无序区R1.n中选出关键字最小的记录Rk,将它与无序区的第一个记录R1交换,使R1.n和R2.n分别变为记录个数增加1个的新有序区记录和记录数减少1个的新无序区。 . 第i趟排序 第i趟排序开

7、始时,当前有序区和无序区分别为R1.i-1和R(1in-1)。该趟排序从当前无序区中选出关键字最小的记录Rk,将它与无序区的第一个记录与R交换,使R1.i和R分别变成为记录个数增加1个的新有序区和记录个数减少1个的新无序区。这样,n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。统计各科总分及平均分模块: 用函数void tongji(Student *r)来实现 主要功能是计算总分和各科平均分,计算完之后将总分保存到文件中。4、 测试与分析进入主界面选择输入学生信息输入结束后的界面::23 赵月 3 12 李丽 3 31 王虎 3 选择,输出了学生信息:3,按学号及学期查询

8、学生信息:4,按姓名及学期查询学生信息:5,按学号及学期修改学生信息:6,插入学生信息:17 王万 3 7,按学号及学期删除学生信息:8,按数据结构降序排序:9,按总分降序17 王万 3 81.10,统计各科成绩的总分和平均分:11,退出:5、 总结 课程设计终于结束了感觉有很多的收获,通过课程设计我又一次巩固了所学的知识,对学习到的理论知识进行了巩固,真正的理解及体会了。平时有很多知识都是似懂非懂,通过平时上机操作,自己也了解了一些,但在这次的课设上,之前的困惑也通过这次的课设解决了一些,虽然还是不能够全面的理解,但是有进步就很有成就感。在课程设计中遇到不少困难,通过查阅资料,询问同学,在应

9、用课本的前提下,拓展课外知识,完成了此次课程设计,虽然还有许多不足之处,但是从中我学到了许多东西。我懂得了我们不能拘泥于所学知识,应对其灵活运用。 通过此次课程的设计使我认识到对知识的掌握不全面,而且感觉我们在学习专业知识的同时还需要再加强其他方面知识的学习,因为编程有时候涉及到其他方面的知识,只有了解了其他方面的知识才能收集资料,然后编程。在编程的过程中,又重新复习了课本,从中学到了许多以前未学到的知识,感觉非常有成就感,特别当自己把程序一点点完善时,让我对自己更加有信心,让我对数据结构这门课程也更感兴趣了,以前我一直感觉枯燥难学的数据结构,在编程的过程中我也愿意去认真研究学习了。 这次数据

10、结构课程设计中,多亏了同学的耐心帮助。如果没有同学的指导改错,我会花更多的时间去找错误。在以后的学习过程中,我一定会认真负责地对待课本中的每一个知识点,进一步充实自己,提高自己。争取在不断的练习中提高自己的层次。也希望可以在以后的专业课当中多增加一些实践的内容,只有多动手,我们才能不断提高。6、附录:源程序清单 erm; cout请输入第i+1ri.num; if(i=1) for(n=0;ni;n+) if(rn.num=ri.num) cout该学号已存在! t=1; if(t=1) ame;请输入 高等数学 成绩:ri.mark1;请输入 数据结构 成绩:ri.mark2;请输入 大学英

11、语 成绩:ri.mark3; ri.sum=ri.mark1+ri.mark2+ri.mark3; ri.average=(ri.mark1+ri.mark2+ri.mark3)/3; fp=fopen(,w+); if(!fp) 文件不能打开 exit(0); for(n=0; fprintf(fp,%d %s %.1f %.1f %.1f %d %.1f %.1f,rn.num,rn.name,rn.mark1,rn.mark2,rn.mark3,rn.term,rn.sum,rn.average);n fclose(fp); cout文件已经写入um,rn.name,&rn.mark1,

12、&rn.mark2,&rn.mark3,&rn.term,&rn.sum,&rn.average); fclose(fp); umsetw(6)rm.namesetw(7)rm.mark1setw(10) rm.mark2setw(10)rm.mark3setw(8)rm.termsetw(6)rm.sumrm.average00 else未输入任何信息!rm.term=k) umrm.mark2 setw(8) break; if(rm.num!=k) ame0 = n0) & (rm.term = k) um if(rm.name0!=k) um=n & rm.term=k) int j;

13、 cout 修改前的信息如下 -学号姓名高等数学数据结构大学英语学期总分平均分rm.num 可以修改的项目如下 j; switch(j) case 1: coutrm.mark1; break; case 2:输入新的 数据结构 成绩:rm.mark2; case 3:输入新的 大学英语 成绩:rm.mark3; 是否要继续修改此学生的其他成绩记录?(Y/N) fflush(stdin); f %.1f %.1f %d %.1f %.1fum,ro.name,&ro.mark1,&ro.mark2,&ro.mark3,&ro.term,&ro.sum,&ro.average); Student

14、 *y = (Student *)new Studentnum+1; erm;请输入学号:rnum.num;请输入姓名:rnum.name;rnum.mark1;rnum.mark2;rnum.mark3; rnum.sum=rnum.mark1+rnum.mark2+rnum.mark3; verage=(rnum.mark1+rnum.mark2+rnum.mark3)/3; num+;n; while(n= if(fp=fopen()=NULL) return r; int n,k,t=0;请输入要删除学生的学号:请输入要删除成绩的学期:k; for(int m=0;m+) if(rm.

15、num=n&rm.term=k) for(int k=m;kk+) f %.1f %.1f %d %.1f %.1f,rn.num,rn.name,rn.mark1,rn.mark3,rn.mark3,rn.term,rn.sum,rn.average); fprintf(fp, fclose(fp); cout if(t=0)对不起,该学号不存在! ark2rm+1.mark2) max=rm+1; rm+1=rm; rm=max; 排序完毕 if(fp=fopen(w)=NULL) 对不起,文件不能打开! exit(0); for(n=0;n+) fprintf(fp,对不起,未输入任何信息! umrj.sum) max=j; Student temp; temp=rmax; rmax=ri; ri=temp;排序完毕!ark1; summark2=summark2+rm.mark2; summark3=summark3+rm.mark3;

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

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