数据结构课程设计---学生成绩管理系统.doc_第1页
数据结构课程设计---学生成绩管理系统.doc_第2页
数据结构课程设计---学生成绩管理系统.doc_第3页
数据结构课程设计---学生成绩管理系统.doc_第4页
数据结构课程设计---学生成绩管理系统.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

学生成绩管理系统 摘要 学生成绩管理系统是典型的信息管理系统,是学校教务管理的重要组成部分,其处理信息量很大。本课程设计是用C语言实现对学生的成绩管理作一个简单的模拟,用菜单选择操作方式完成七项功能分别为,登记学生资料,保存学生资料,删除学生资料,修改学生资料,查询学生资料,统计学生资料,对学生资料进行排序,利用单链表定义每个学生记录。关键词 程序设计;C语言;数据结构;学生成绩管理系统目录1 引言 31.1 课程设计目的 31.2 课程设计内容 31.3 课程设计目标 42 系统需求与功能分析 42.1 系统需求分析 42.2 系统功能分析 53.总体结构设计 53.1系统的结构设计 53.2系统管理流程图 64 系统详细设计和系统实现 75系统测试 106心得体会 157参考文献 161. 引言11课程设计目的学生成绩管理是一个学校不可缺少的部分,它的内容对于学校的管理者和学生以及老师来说都至关重要,所以一个良好的学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。学生成绩管理系统对学校加强学生成绩管理有着极其重要的作用.由于学校学生的数量日益庞大,对于如何管理如此庞大的学生成绩数据显得更为复杂,传统的手工成绩管理不仅工作量大,而且容易出现问题,随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点。例:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高管理者管理的效率。 因此,开发设计这样一套学生成绩管理软件成为很有必要的事情。该学生成绩管理系统采用C语言设计,针对学生成绩及其数据特点,可以全面实现对学生成绩的插入、查询、修改、删除、统计和输出等功能的计算机管理,全面提高学生成绩管理的效率。1.2课程设计的内容在程序设计中,可以用许多种数据结构来处理数据存储,对于该学生管理系统而言线性表无疑是最好的选择,考虑到学生成绩管理系统一经建立不仅进行查询而且需要频繁的进行插入和删除,所以采用单链表存储结构实现。这种内存的动态分配策略使我们在编写算法是无需考虑有多少空间资源可用于实现数据结构,算法在需要内存的时候向内存申请,当不需要的时候释放内存空间。为了简便起见,成绩管理系统记录中只包括学号、姓名、语文成绩、数学成绩、英语成和成绩存放下一个结点地址的next域等数据项。为学生成绩设计一个类型内中包含存储学生成绩信息的单链表以及对单链表进行各种操作的成员函数。对学生成绩信息要求完成如下功能:(1) 登记:将学生成绩信息输入成绩管理系统;(2) 插入:将学生的成绩信息插入;(3) 删除:将满足条件的学生信息删除;(4) 查询:查询满足条件的学生;(5) 显示:将学生成绩信息显示在屏幕上;(6) 保存:将成绩信息保存;(7) 排序:按关键字对成绩信息排序;(8) 分类合计:对成绩信息分类;(9) 退出:退出成绩管理系统;1.3课程设计的目标 建立学生成绩信息管理系统,采用计算机对学生成绩信息进行管理,进一步提高成绩信息管理效率、为广大在教师提供便利快捷的成绩录入功能,同时为学生成绩查询提供更加快捷便利的通道。2.系统需求与功能分析2.1系统需求分析 (1) 在管理界面能够完成学生成绩的输入、修改、删除、插入、保存、显示、排序,统计等功能; (2) 在成绩查询界面能够实现学生成绩的查询、显示等功能。2.2系统功能分析要设计一个学生成绩管理系统,其功能包括:(1) 输入函数 getchar():输入若干条学生信息(2) 输出函数 printdata:打印链表记录(3) 菜单选择函数menu():选择菜单(4) 显示函数system(cls):显示所有记录(5) 删除函数 Del():按姓名或学号查找,删除记录(6) 查找函数Qur():查找并显示记录(7) 统计函数Tongji():按需求统计学生信息(8) 主函数main()(9) 插入函数Insert(): 插入学生信息(10) 保存函数Save():保存记录过的学生信息(11) 排序函数Sort():按学号排序(12) 修改函数Modify():修改学生信息3. 总体机构设计3.1系统的结构设计 通过对学生成绩信息管理系统的功能分析,可以定义出系统的总体结构模块图,如图3.1,学生成绩管理系统输入学生信息更新学生信息查询学生成绩统计学生成绩从键盘输入从文件中获取修改学生成绩删除学生成绩排序学生成绩按照学号查找按照姓名查找按照课程名及分数段进行统计按照学号删除按照姓名删除按课程得分降序排列图3.1 系统的总体结构模块图3.2系统结构流程图前面的分析中已经定义了系统各个模块,属于静态建模的范围。在系统运行时刻的动态模型应该由系统的流程决定。当用户运行该系统后可以来进行学生成绩信息插入管理、学生成绩信息查询管理、学生成绩信息删除管理、学生成绩信息修改管理及学生成绩信息输出等操作,具体的流程如图3.2所示。 登记不保存 删除 查询 数据保存退出系统数据输入进入系统 修改 插入 统计 排序 呈现 图3.2 学生成绩系统流程图主模块应负责应用程序的主界面,由它调用其他模块.因此主模块应具有操作性好、界面清晰的特点,使用户能够很方便地找到所需功能。根据功能需求的结果分析,主界面应该由学生成绩信息插入管理,学生成绩信息查询管理、学生成绩信息修改管理、学生成绩信息删除管理和学生成绩信息输出管理组成,可以通过输入相应的数字进入相应的功能模块。4. 系统详细设计和系统实现系统总体设计完成后,就可以根据需求对各个模块进行实现了。在本系统中需要编程实现的主要有学生成绩信息插入、学生成绩信息查询、学生成绩信息修改、学生成绩信息删除和学生成绩信息输出等7个模块。(1) 学生成绩插入模块程序设计思路:生成一个新结点s,在单链表上查找新结点s的插入位置p;将学生信息赋给s结点的数据域;修改有关结点的指针域,将s结点的后继指向原p结点的后继结点,而p结点的后继则指向s结点。流程图如下图4.1所示。开始插入数据输入学生成绩信息调用函数采用单链表保存数据结束图4.1学生成绩插入模块流程图(2)学生成绩查询模块程序设计思路:按姓名查找:从链表的头结点开始,一次将链表中的结点的数据域与姓名进行比较,若找到则查找成功,返回该结点位置;若没找到,则查找失败。按学号查找:原理同上。流程图分别如下图4.2所示。按姓名或者学号进行查找判断 Y N抱歉没有该同学输出该同学信息结束图4.2学生成绩查询模块流程图(3)学生成绩修改模块首先要查找与要修改数据相匹配的信息,若没有则返回失败。否则把相应的信息输出,然后再重新输入新的数据并保存到单链表。(4) 学生成绩删除模块程序设计思路:假设有两个指针r和p,p指向要删除的结点,r指向p的前驱结点;从链表的头结点开始,依次向后进行搜索,当r-next=p并且p-data=x时,则待删除结点p的前驱结点r被找到;修改p的前驱结点r的指针域,将r的后继指向被删除结点p的后继结点;删除p结点并释放该结点所占用的存储空间。其流程如图4.3:开始删除操作 输入姓名或学号姓名或学号一致 执行删除功能返回主菜单图4.3学生成绩删除模块流程图5. 系统测试与分析在完成了系统各方面的设计后,并不是可以运行就完成的,为了保证系统性能的稳定性跟安全性等,就要对系统做测试。5.1登录界面显示图5.1 登录界面显示此登录界面是预先设定好作为菜单来显示的,在主函数中以menu()来实现的,在函数中,是通过switchcase来实现选择功能的,用户可以通过需要进行选择,方便了用户的使用,非常人性化。5.2 登记学生资料图5.2 登记学生资料当系统中没有保存学生信息时,就会提示没有学生记录!也就是说不能从文件中 导出,这时就需要用户进行学生资料的导入,当输入的学号已经存在时,系统提示用户重新输入一个未被占用的学号信息,否则就重新分配内存空间。5.3保存学生资料图5.3 保存学生资料该操作是将用户输入的学生信息进行保存,用文件的方法进行调试,当用户输入对象的个数超过0时,显示保存成功,否则提示,系统连接为空。5.4删除学生资料删除后结果紧跟其后:图5.4-1删除学生资料图5.4-2 成功删除后学生信息显示界面这里又是通过switchcase函数的调用,让用户进行选择,共有两种方法:1.按照学号 2.按照姓名,操作完成后,系统会自动提示,该学生已经成功删除,当再次显示的时候,函数中的链表就不再指向该学号,从而起到删除的作用。删除完成后,再次保存一下学生资料,不然系统仍然默认为原始人数。5.5修改学生资料图5.5-1 修改学生资料通过选择到达修改界面:此时将呈现出现有的学生资料,按照要求将新的信息输入其中,再保存资料,如果输入的学号系统中未显示,那么系统则提示没有资可以修改。图5.5-2修改后学生资料显示界面5.6查询学生资料图5.6查询学生资料按照选择,则会呈现出用户需要查找的所有信息,每次呈现出来的时候都要用之前定义的printheader()函数,这个很好地将数据按照格式化的形式显现出来。此为按照学号查找的例子,按照姓名查找是同样道理。5.7 统计学生资料图5.7统计学生资料统计学生资料主要还是用的switchcase函数,通过选择,用printheader(),printdata(r),printf(END)等函数用表格的形式将符合条件的学生信息全部显示出来,不过唯一不足的就是所有的学生信息没有能够连贯起来,每个学生信息前面都有表头,没处理好。6.心得体会 谈起自己对于这次数据结构课程设计的体会,自己有好多感触啊。对于自己来说是个挑战,因为自己一直想把书上的例题成绩管理系统做好,但自从上了实验课,自己就以各种理由去推掉这事。但没想到,这学期还有课程设计,自己强制的把懒惰心理抛开,利用课余时间去研究,看课本,但我发现看课本,只是一些基本概念类的,对自己有些帮助,但帮助不大,只是让我加深了对概念的理解。自己借助了网络,这一大的资源平台,一搜索“学生成绩管理系统课程设计”,出来了好多,自己当时不知打开哪个好,自己千挑细选,选择了一个,看到他编写的程序,自己发现设计一个完整的学生成绩查询系统,需要各个模块组合一下。于是,自己分模块的设计,在设计过程中,自己坦言参考过别人的程序,但自己也是经过思考,不断修改完成了各个模块的设计。可以说,自己在做之前,想的很完美,有哪些功能,但到自己操作起来,自己真的不知所措。其中,我也曾想放弃过,当时的自己很低落,有种失败感,不敢挑战自己。但看到同学们也都在忙,我感觉容许自己有失败感,但我应该鼓起勇气,挑战自己。从开始到课程设计结束,自己感觉自己成长了,学会遇到问题,不是一直的苦恼,而是应该想各种办法去解决。其次,通过这次课程设计,我真正懂得了:要想把知识真正学好,要勤动脑,多动手

温馨提示

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

评论

0/150

提交评论