数据结构课设报告学生成绩管理系统Word版Word格式文档下载.docx
《数据结构课设报告学生成绩管理系统Word版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构课设报告学生成绩管理系统Word版Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
明显地加快了经济信息化和社会信息化的进程。
因此,计算机教育在各国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。
本报告简单叙述了学生管理系统的现状,重点介绍了学生成绩管理系统的实现过程:
包括系统分析、数据流程分析、功能设计、系统实现、系统测试和调试。
C语言是一种通用的程序设计语言,c语言在很多方面继承和发展了以往许多高级程序设计语言的成果经验与特色,具有适应性强、应用范围广、书写格式自由、数据类型丰富、数据结构系统化、运行程序质量高、可移植性好和运行效率高等优点。
而《数据结构与算法》则是对数据进行一定的结构化,通过运用各种算法使系统的实现更简便易行。
关键词:
管理;
需求;
模块
引言…………………………………………………………………………3
1系统概述…………………………………………………………………3
2需求分析…………………………………………………………………3
2.1安全需求分析…………………………………………………………………3
2.2数据需求分析…………………………………………………………………4
2.3功能需求分析…………………………………………………………………4
2.4界面需求分析…………………………………………………………………4
2.5开发环境………………………………………………………………………4
3详细设计…………………………………………………………………4
3.1系统结构………………………………………………………………………4
3.2各模块功能……………………………………………………………………5
3.3功能模块的设计………………………………………………………………6
3.4数据结构设计…………………………………………………………………8
4所遇到的问题和分析解决………………………………………………9
5测试结果…………………………………………………………………9
6系统特色和关键技术……………………………………………………12
7结论………………………………………………………………………12
参考文献……………………………………………………………………13
引言
背景:
21世纪,科学技术突飞猛进,特别是信息技术和网络技术的迅速发展,各个学校的规模也随之不断增大,有关学生成绩管理工作所涉及的数据量越来越大,如若进行的仍是手工的学生成绩管理,学校就不得不靠增加人力、物力来进行学生成绩管理。
即使如此,手工管理仍具有效率低、管理复杂和易出错等诸多问题。
所以在学校这样一个具有超大数据量的机构中,通过应用信息技术和网络技术对学生成绩信息进行系统化的管理是必须的。
将计算机这一信息处理器应用于学生的个人信息管理已是势必所然,而且这也将为学生信息管理带来前所未有的改变。
采用计算机对学生的信息管理是信息科学化和现代的重要标志,它也给各大高校带来了明显的社会效益。
主要体现在:
极大地提高了管理工作人员的工作效率,大大地减少了以往的资料室所存在的各种弊端,同时也加强和规范学习对于学生信息的管理。
目的:
本系统运用c语言进行开发,c语言能够简单的进行编译一些程序,来实现对问题的解决。
它能够呈现出清晰的界面,使人们能够很好的理解,并能在一些方面给人们更好的服务,所以,它能够被大多数用户所接受。
经过这一个学期对《数据结构与算法》的学习,我们都学到了不少东西,可能学得还不够透彻,但无论如何这都为我们以后的学习打下一定坚实的基础。
在通过运用结构体和调用各种数据结构算法与c语言相结合来完成下面的学生成绩管理系统,一方面是为了检查我们一个学期以来的学习成果,另一方面是为了更进一步对数据结构与算法的掌握和运用,同时也让我们清楚的知道自己的掌握水平和不足之处。
1系统概述
学生成绩管理系统的主要功能是实现学生成绩和基本信息的管理。
如若还没有建立文件可以在运行界面新建文件,在重新运行程序即可进入登陆界面,输入正确的密码即可进入系统。
学生成绩信息有学号、姓名、学期、高数、英语、c语言和总分的显示。
学生成绩管理包括对学生各科成绩的输入、输出、删除、修改、按总分排序、查找和保存等多种功能。
查找有分为按学号和姓名进行查找,然后输出查找学生的全部信息;
删除可以通过按姓名或者学号进行查找在进行删除,再对记录进行调整;
排序有按学号排序,各科(高数、英语、c语言)成绩由高到低排序或者升序排序,还有总成绩排名等。
学生的基本信息的输入、输出与修改,而学生的基本信息则包含有学生的学号、姓名、性别、政治面貌、专业和家庭住址等信息。
以上就是对本系统的整个流程和功能的大概描述,管理系统主要突出了系统管理员的权威性,还有界面要简洁、清楚、功能齐全,使用方便,让使用的人一看就知道如何操作。
2需求分析
2.1安全需求分析
学生成绩管理系统功能的信息量大,数据安全性和保密性要求最高。
这就要求设计不同用户的操作权限和登陆方法:
①每个使用者都必须通过系统的身份验证才可以进入系统进行其他的操作;
②系统管理员可以浏览、查询、添加、删除和修改学生信息,
但是删除某个学生的基本信息记录时,应该实现对该条记录的相关信息也级联删除。
而学生等其他用户则只具有查询、浏览的功能;
③还有系统的可靠性和可维护性。
2.2数据需求分析
本系统的主要数据是学生信息:
一是学生成绩信息,二是学生基本资料信息。
学生成绩信息包括:
数据类型为字符型的学生学号,姓名,学期,还有数据类型为整型c语言,英语,高数,平均成绩和总成绩等。
而学生资料信息包括:
数据类型为字符型的学生学号,姓名,性别,政治面貌,专业和家庭住址等。
2.3功能需求分析
(1)使用中文菜单,界面设计和用户输入输出要人性化些;
(2)将学生信息保存在文本文档中,具体对学生信息进行插入删除查询操作时,将保存在文本文档中的学生信息提取出来,保存在自己定义的数据结构中,然后再对该数据结构进行操作,所有操作完成,或者在相应的命令后,再将学生信息保存到文本文档中。
(3)具有数据输入功能,输入的数据能最终保存在文件中;
(4)具有数据删除功能,能最终从文件中删除;
(5)具有多种查询(如按学号查询、按姓名查询、按成绩查询等)及输出功能;
(6)其它功能(如各种统计,统计每个学生所有课程的平均分,统计某门课程所有学生的平均分等等)
(7)学生信息的修改(比如修改学生姓名,修改学生某门课程的成绩)
2.4界面需求
系统界面要具有广泛的实用性,便于移植。
界面友好,操作简便。
根据软件的使用环境、用户的要求,系统界面应该简单、友好、易于使用、方便查看、简洁明快。
而且系统是在Windows环境下的应用软件,软件产品的界面应该与操作系统的界面相切合,产品的主界面因该功能齐全,分类明确,让用户一眼看去就能明白大致的功能。
在人们的心理学角度来说,一样东西给人的印象是非常重要的。
本人想大家都希望看都本人们使用的东西都是令人神往的吧,还有友好的界面可以给人一种优越感和先进感,因为事情总是不断的完善的,一定是一代比一代好。
对于管理员这个特殊的用户的,需要提供各种功能来加强他对整个系统的管理和控制,尽量地使他的操作简便快捷,尤其是要提供给他对数据库进行的直接管理的权限。
2.5开发环境
操作系统:
MicrosoftWindowsXP
Professional版本2002
ServicePack3
c语言编程软件:
VisualC++6.0
3详细设计
3.1系统结构
此学生成绩管理系统主要利用单链表实现,从整体结构看,分为五大功能模块:
输入记录模块、查询记录模块、更新记录模块、统计记录模块和输出记录模块。
其系统模块构成如图3-1所示。
图3-1学生成绩管理系统功能模块图
本系统的各个模块都是相关联的,因为本系统只是一个简易学生成绩管理系统,系统要输入正确的密码才可以实现系统赋予的权限。
3.2各个模块功能
为了满足系统需求要求,系统所需的主要模块与功能如下:
(1)输入记录模块。
输入记录模块主要完成将数据存入单链表中的工作。
在此成绩管理系统中,记录可以从以二进制形式存储的数据文件中读入,也可以从键盘逐个输入学生记录。
学生记录由学生的基本信息和成绩信息字段构成。
当从数据文件中读入记录时,它就是以记录为单位存储的数据文件中,将记录逐条复制到链表中。
(2)查询记录模块。
查询记录模块主要完成在单链表中查找满足相关条件的学生记录。
在此管理系统中,用户可以按照学生的学号或姓名在单链表中进行查找。
若找到该学生的记录,则返回指向该学生记录的指针;
否则,返回一个值为NULL的空指针,并输出没有找到该学生的信息。
(3)更新记录模块。
该模块主要完成对学生记录的维护。
在此系统中它实现了对学生记录的修改、删除、排序和插入等操作。
而进行了这些操作之后,需要将更新后的数据保存到数据文件中。
(4)统计记录模块。
完成了对全部学生记录总人数的统计。
(5)输出记录模块。
该模块主要完成两个任务:
一是实现对学生记录的存盘操作,即将单链表中的各节点中存储的学生记录信息写入数据文件中;
二是实现将单链表中存储的学生成绩和基本信息在屏幕界面上输出来。
3.3功能模块的设计
1main()函数执行流程
本成绩管理系统执行主流程如图3-3所示。
它可以以读的方式打开数据文件,此文件默认为C:
\\student,若该文件不存在,则新建此文件。
当打开文件操作成功后,从文件中一次读入一条记录,添加到新建的单链表中,然后执行显示主菜单和进入主循环操作,进行功能选择。
在判断输入值时,有效输入为0~8之间的任意数值,其他输入均为错误输入。
若输入为0(即select==0),它会继续判断是否已对更新数据进行存盘,若未存盘,系统则会提示用户是否需要对更新数据存盘进行选择,然后在单击任意键退出系统。
若选择1,则调用Add()函数,执行添加学生记录的操作;
若选择2,则调用Del()函数,执行删除学生记录操作;
若选择3,则调用Qur()函数,执行查询学生记录操作;
若选择4,则调用Modify()函数,执行修改学生记录操作;
若选择5,则调用Disp()函数,执行显示学生成绩操作;
若选择6,则调用Save()函数,执行保存更新操作;
若选择7,则调用xueli()函数,执行显示学生基本信息操作;
若选择8,则调用Tongji()函数,执行统计学生记录操作。
若输入为0~8之外的值,则调用Wrong()函数,给出按键输入错误的提示。
⑵输入记录模块
主要实现将数据存入单链表中。
当从数据文件中读出记录时,它调用了fread(p,sizeof(Node),1,fp)文件读取函数,执行一次从文件中读取一条学生记录存入指针变量p所指的节点中的操作,并且此操作在main()中执行,即当成成绩管理系统进入显示菜单界面时。
若该文件中没有数据,系统会提示单链表为空,没有任何学生记录可操作,此时,应选择1,调用Add()函数,进行学生记录的输入,即完成单链表1中的添加节点操作。
3查询记录模块
查询记录模块主要实现了在单链表中按学号或姓名查找满足相关条件的学生记录。
在查询函数Qur()中,l为指向保存了学生成绩信息的单链表的首地址的指针变量。
为了遵循模块化编程的原则,我们将在单链表中进行的指针定位操作设计成了一个单独的函数Node*Locate(Linkl,charfindmess[],charnameornum[]),参数finemess[]保存要查找的具体内容