




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计(论文)说明书题 目: 学生成绩管理系统学 院: 计算机科学与工程学院 专 业: 姓 名: 学 号: 指导教师: 2012年月 日摘 要随着科学的发展和社会的进步,许多过去由人工处理的繁杂事务开始交付计算机来完成.明显地加快了经济信息化和社会信息化的进程。因此,计算机教育在各国备受重视,计算机知识与能力已成为21世纪人才素质的基本要素之一。本报告简单叙述了学生管理系统的现状,重点介绍了学生成绩管理系统的实现过程:包括系统分析、数据流程分析、功能设计、系统实现、系统测试和调试。C语言是一种通用的程序设计语言,c语言在很多方面继承和发展了以往许多高级程序设计语言的成果经验与特色,具有适应性
2、强、应用范围广、书写格式自由、数据类型丰富、数据结构系统化、运行程序质量高、可移植性好和运行效率高等优点.而数据结构与算法则是对数据进行一定的结构化,通过运用各种算法使系统的实现更简便易行。关键词:管理;需求;模块目录引言31 系统概述32 需求分析32。1安全需求分析32。2 数据需求分析42。3功能需求分析42。4界面需求分析42.5开发环境43 详细设计43。1系统结构43.2各模块功能53.3功能模块的设计63.4数据结构设计84 所遇到的问题和分析解决95 测试结果96 系统特色和关键技术127 结论12参考文献13引言背景:21世纪,科学技术突飞猛进,特别是信息技术和网络技术的迅速
3、发展,各个学校的规模也随之不断增大,有关学生成绩管理工作所涉及的数据量越来越大,如若进行的仍是手工的学生成绩管理,学校就不得不靠增加人力、物力来进行学生成绩管理。即使如此,手工管理仍具有效率低、管理复杂和易出错等诸多问题。所以在学校这样一个具有超大数据量的机构中,通过应用信息技术和网络技术对学生成绩信息进行系统化的管理是必须的.将计算机这一信息处理器应用于学生的个人信息管理已是势必所然,而且这也将为学生信息管理带来前所未有的改变.采用计算机对学生的信息管理是信息科学化和现代的重要标志,它也给各大高校带来了明显的社会效益。主要体现在:极大地提高了管理工作人员的工作效率,大大地减少了以往的资料室所
4、存在的各种弊端,同时也加强和规范学习对于学生信息的管理。目的:本系统运用c语言进行开发,c语言能够简单的进行编译一些程序,来实现对问题的解决。它能够呈现出清晰的界面,使人们能够很好的理解,并能在一些方面给人们更好的服务,所以,它能够被大多数用户所接受.经过这一个学期对数据结构与算法的学习,我们都学到了不少东西,可能学得还不够透彻,但无论如何这都为我们以后的学习打下一定坚实的基础。在通过运用结构体和调用各种数据结构算法与c语言相结合来完成下面的学生成绩管理系统,一方面是为了检查我们一个学期以来的学习成果,另一方面是为了更进一步对数据结构与算法的掌握和运用,同时也让我们清楚的知道自己的掌握水平和不
5、足之处。1 系统概述学生成绩管理系统的主要功能是实现学生成绩和基本信息的管理。如若还没有建立文件可以在运行界面新建文件,在重新运行程序即可进入登陆界面,输入正确的密码即可进入系统.学生成绩信息有学号、姓名、学期、高数、英语、c语言和总分的显示。学生成绩管理包括对学生各科成绩的输入、输出、删除、修改、按总分排序、查找和保存等多种功能。查找有分为按学号和姓名进行查找,然后输出查找学生的全部信息;删除可以通过按姓名或者学号进行查找在进行删除,再对记录进行调整;排序有按学号排序,各科(高数、英语、c语言)成绩由高到低排序或者升序排序,还有总成绩排名等.学生的基本信息的输入、输出与修改,而学生的基本信息
6、则包含有学生的学号、姓名、性别、政治面貌、专业和家庭住址等信息.以上就是对本系统的整个流程和功能的大概描述,管理系统主要突出了系统管理员的权威性,还有界面要简洁、清楚、功能齐全,使用方便,让使用的人一看就知道如何操作。2 需求分析2.1 安全需求分析学生成绩管理系统功能的信息量大,数据安全性和保密性要求最高.这就要求设计不同用户的操作权限和登陆方法:每个使用者都必须通过系统的身份验证才可以进入系统进行其他的操作;系统管理员可以浏览、查询、添加、删除和修改学生信息,但是删除某个学生的基本信息记录时,应该实现对该条记录的相关信息也级联删除。而学生等其他用户则只具有查询、浏览的功能;还有系统的可靠性
7、和可维护性。2。2 数据需求分析本系统的主要数据是学生信息:一是学生成绩信息,二是学生基本资料信息。学生成绩信息包括:数据类型为字符型的学生学号,姓名,学期,还有数据类型为整型c语言,英语,高数,平均成绩和总成绩等。而学生资料信息包括:数据类型为字符型的学生学号,姓名,性别,政治面貌,专业和家庭住址等。2.3功能需求分析(1)使用中文菜单,界面设计和用户输入输出要人性化些;(2) 将学生信息保存在文本文档中,具体对学生信息进行插入删除查询操作时,将保存在文本文档中的学生信息提取出来,保存在自己定义的数据结构中,然后再对该数据结构进行操作,所有操作完成,或者在相应的命令后,再将学生信息保存到文本
8、文档中.(3)具有数据输入功能,输入的数据能最终保存在文件中;(4)具有数据删除功能,能最终从文件中删除;(5)具有多种查询(如按学号查询、按姓名查询、按成绩查询等)及输出功能;(6)其它功能(如各种统计,统计每个学生所有课程的平均分,统计某门课程所有学生的平均分等等)(7)学生信息的修改(比如修改学生姓名,修改学生某门课程的成绩)2。4 界面需求 系统界面要具有广泛的实用性,便于移植。界面友好,操作简便。根据软件的使用环境、用户的要求,系统界面应该简单、友好、易于使用、方便查看、简洁明快。而且系统是在 Windows 环境下的应用软件,软件产品的界面应该与操作系统的界面相切合,产品的主界面因
9、该功能齐全,分类明确,让用户一眼看去就能明白大致的功能.在人们的心理学角度来说,一样东西给人的印象是非常重要的。本人想大家都希望看都本人们使用的东西都是令人神往的吧,还有友好的界面可以给人一种优越感和先进感,因为事情总是不断的完善的,一定是一代比一代好。对于管理员这个特殊的用户的,需要提供各种功能来加强他对整个系统的管理和控制,尽量地使他的操作简便快捷,尤其是要提供给他对数据库进行的直接管理的权限。2。5 开发环境操作系统:Microsoft Windows XP Professional 版本 2002 Service Pack 3 c语言编程软件: Visual C+ 6。03 详细设计3
10、。1 系统结构此学生成绩管理系统主要利用单链表实现,从整体结构看,分为五大功能模块:输入记录模块、查询记录模块、更新记录模块、统计记录模块和输出记录模块。其系统模块构成如图3-1所示.学生成绩管理系统输入记录模块查询记录模块更新记录模块统计记录模块输出记录模块从文件读入从键盘输入按学号查询按姓名查询修改记录删除记录插入记录总人数统计输出至界面排序记录图31 学生成绩管理系统功能模块图本系统的各个模块都是相关联的,因为本系统只是一个简易学生成绩管理系统,系统要输入正确的密码才可以实现系统赋予的权限.3.2 各个模块功能为了满足系统需求要求,系统所需的主要模块与功能如下:(1)输入记录模块.输入记
11、录模块主要完成将数据存入单链表中的工作。在此成绩管理系统中,记录可以从以二进制形式存储的数据文件中读入,也可以从键盘逐个输入学生记录。学生记录由学生的基本信息和成绩信息字段构成。当从数据文件中读入记录时,它就是以记录为单位存储的数据文件中,将记录逐条复制到链表中。(2)查询记录模块.查询记录模块主要完成在单链表中查找满足相关条件的学生记录。在此管理系统中,用户可以按照学生的学号或姓名在单链表中进行查找.若找到该学生的记录,则返回指向该学生记录的指针;否则,返回一个值为NULL的空指针,并输出没有找到该学生的信息。(3)更新记录模块。该模块主要完成对学生记录的维护。在此系统中它实现了对学生记录的
12、修改、删除、排序和插入等操作。而进行了这些操作之后,需要将更新后的数据保存到数据文件中。(4)统计记录模块。完成了对全部学生记录总人数的统计。(5)输出记录模块.该模块主要完成两个任务:一是实现对学生记录的存盘操作,即将单链表中的各节点中存储的学生记录信息写入数据文件中;二是实现将单链表中存储的学生成绩和基本信息在屏幕界面上输出来。3.3 功能模块的设计1 main()函数执行流程本成绩管理系统执行主流程如图33所示.它可以以读的方式打开数据文件,此文件默认为C:student,若该文件不存在,则新建此文件。当打开文件操作成功后,从文件中一次读入一条记录,添加到新建的单链表中,然后执行显示主菜
13、单和进入主循环操作,进行功能选择。在判断输入值时,有效输入为08之间的任意数值,其他输入均为错误输入。若输入为0(即select=0),它会继续判断是否已对更新数据进行存盘,若未存盘,系统则会提示用户是否需要对更新数据存盘进行选择,然后在单击任意键退出系统.若选择1,则调用Add()函数,执行添加学生记录的操作;若选择2,则调用Del()函数,执行删除学生记录操作;若选择3,则调用Qur()函数,执行查询学生记录操作;若选择4,则调用Modify()函数,执行修改学生记录操作;若选择5,则调用Disp()函数,执行显示学生成绩操作;若选择6,则调用Save()函数,执行保存更新操作;若选择7,
14、则调用xueli()函数,执行显示学生基本信息操作;若选择8,则调用Tongji()函数,执行统计学生记录操作.若输入为08之外的值,则调用Wrong()函数,给出按键输入错误的提示。输入记录模块主要实现将数据存入单链表中。当从数据文件中读出记录时,它调用了fread(p,sizeof(Node),1,fp)文件读取函数,执行一次从文件中读取一条学生记录存入指针变量p所指的节点中的操作,并且此操作在main()中执行,即当成成绩管理系统进入显示菜单界面时.若该文件中没有数据,系统会提示单链表为空,没有任何学生记录可操作,此时,应选择1,调用Add()函数,进行学生记录的输入,即完成单链表1中的
15、添加节点操作。3 查询记录模块查询记录模块主要实现了在单链表中按学号或姓名查找满足相关条件的学生记录。在查询函数Qur()中,l为指向保存了学生成绩信息的单链表的首地址的指针变量。为了遵循模块化编程的原则,我们将在单链表中进行的指针定位操作设计成了一个单独的函数Node Locate(Link l,char findmess,char nameornum),参数finemess保存要查找的具体内容,nameornum保存要查找的字段(值为字符串类型的num或者name),若找到该记录,则返回指向该节点的指针;否则。返回一个空指针。开始以可读写的方式打开一个数据文件将此文件的内容读出,并存入一个
16、新的单链表中调用menu()菜单函数进入while主循环输入08中的一个数值,选择相应操作输入是否0为0判断键值,调用相应函数,完成相应功能是否已对修改进行了存盘调用Save()函数,进行写数据文件操作结束图33 主控函数执行流程图4 更新记录模块此模块主要实现了对学生记录的修改、删除和插入操作。因为学生记录是以单链表的结构形式存储的,所以这些操作都在单链表中完成.以下介绍3个模块的详细设计. 修改模块修改记录操作需要对单链表中目标节点的数据域中的值进行修改,它分两步完成。第一步,输入要修改的学号,输入后调用定位函数Locate()在单链表中逐个对节点数据域中学号字段的值进行比较,直到找到该学
17、号的学生记录;第二步,若找到该学生记录,修改包括学号在内的各字段的值,并输入6,对修改后的数据进行保存. 删除模块删除记录操作完成删除指定学号或姓名的学生记录,它也分为两步完成。第一,输入要删除的学号或姓名,输入后调用定位函数Locate()在单链表中逐个对节点数据域中学号字段的值进行比较,直到找到该学号或姓名的学生记录,返回指向该学生记录的节点指针;第二,若找到该学生记录,将该学生记录所在节点的前驱节点的指针域指向目标节点的后继节点。 插入记录插入记录操作完成在最后一条记录的位置后。即输入记录. 排序记录在单链表中,实现插入排序的基本步骤如下:第一、新建一个单链表l,用来保存排序结果,其初始
18、值为待排序单链表的头节点。第二、从待排序链表中取出下一个节点,将其总分字段值与单链表l中的各节点中总分字段的值进行比较,直到在链表l中找到总分小于它的节点.若找到如此节点,系统将待排序链表中取出的节点插入此节点前,作为其前驱.否则,将取出的节点放在单链表l的尾部。第三、重复第二步,直到从待排序链表取出的节点的指针域为NULL,即此节点为链表的尾部节点,排序完成。统计记录模块该模块的实现比较简单,它主要通过循环读取指针变量p所指的当前节点的数据域中各字段的值,并对各个成绩字段进行逐个判断的形式.输出记录模块当把记录输出至屏幕界面时,调用Void Disp(Link l)函数,将单链表l中存储的学
19、生记录信息以一定的格式形式在屏幕上输出。3.3 数据结构设计1 学生成绩信息结构体struct student char num10; char name20; char sex4; char edu10; /政治面貌 char pro10; /专业 char school20; /家庭住址 int part; /高数 int title; /c语言 int ID; / 英语 int time; / 总分;结构体将用于存储学生的基本信息,它将作为单链表的数据域。2 单链表node结构体typedef struct node /定义链表 struct student data; /数据域 str
20、uct node next; /指针域Node,Link; /Node为node类型的结构变量,Link为node类型的指针变量这样定义了一个单链表的结构,结构标记为node,data为结构类型的数据,作为单链表结构中的数据域,next为单链表中的指针域,用来存储其直接后继节点的地址.Node为node类型的结构变量,Link为node类型的指针变量。4 所遇到的问题和分析解决(1)如何打开新的界面以显示记录?直接运用system(”cls");函数建立新的界面,以便更简洁、清楚显示各种功能或结果.(2)若尚未存在所需文件,应如何建立新文件?应用fp=fopen("C:st
21、udent","rb");函数直接写成一个二进制文件。(3)不清楚如何运用结构体与文件中的记录相连接起来? 应用文件数据块读函数fread(p,sizeof(Node),1,fp),则可以实现p指针指向输入数据存放在内存区的起始地址。(4)如何按要求进行学号或姓名的查询?在单链表中进行的指针定位操作设计成了一个单独的函数Node Locate(Link l,char findmess,char nameornum),参数finemess保存要查找的具体内容,nameornum保存要查找的字段(值为字符串类型的num或者name),若找到该记录,则返回指向该节点的指
22、针;否则.返回一个空指针.5 测试结果当用户运行程序进入系统时,其主界面如图51所示。此时系统已经将c:student文件打开,若文件不为空,则将数据从文件中逐条记录读出,并写入单链表中.用户可选择010之间的数值,调用相应功能进行操作。当输入为0时,退出此管理系统。图51 主界面当用户执行了输入记录或已经从数据文件中读取了学生记录之后,即可输入5选项,并按Enter键,查看当前单链表中的学生记录情况,学生成绩界面如图52所示,此时表中有6条记录。图5-2 显示成绩界面当用户执行了输入记录或已经从数据文件中读取了学生记录之后,即可输入5选项,并按Enter键,查看当前单链表中的学生记录情况,学
23、生基本信息表如下图5-3所示,此时表中有5条记录。图5-3当用户输入1并按Enter键后,即可进入数据输入界面,其输入过程如图54所示,当用户输入为0的学号时,它会结束输入过程,显示主菜单.图5-4当用户输入4并按Enter键后,即可进入记录修改界面,其修改学生成绩资料过程如图53:图5-5当用户输入2并按Enter键后,即可进入记录删除界面,然后在选择1或2进行按学号或姓名进行记录删除,再输入要删除的学号或姓名,这里按姓名删除了一条姓名为里了的记录,如图5-6所示:图56当用户输入0时,若系统没保存更新,则提示是否保存,输入y后按Enter键即可保存改动,如图57所示;若已经保存更新则直接提
24、示已经退出系统,按任意键即可关闭运行界面。图576 系统特色和关键技术(1) 自定义数据结构体,用于存储学生的基本信息,然后定义一个单链表结构,并为该链表定义结构变量和指针变量。(2) 运用指针进行下一条记录的地址查找。(3) 运用了链表的插入排序法对学生成绩的总分进行了排序。7 结论经过一段时间的紧张工作,从本设计开发的学生成绩管理系统从最后的测试结果来看,基本上实现了所要求的几大功能:成绩信息的录入、输出和更新等操作,并达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计的方法,即便于系统组合和修改,又便于未参与系统开发的技术维护人员使用和补充.通过本学期对数据结构这门课的学习,我了解到:“数据结构与算法”是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房地产委托代持合同样本
- 销售合同模板:分期付款协议指南
- 酒店装修项目工程合同
- 建筑工程合同争议处理:案例分析及展望
- 包装设计师试题及答案
- 电导率仪操作规程
- 植物学试题+参考答案
- 装饰装修工程分包合同模板
- 相邻土地购置合同
- 环保清洁工程合同书样本
- 装卸作业安全培训课件
- 2022撬装式承压设备系统制造监督检验技术导则
- 高考化学二轮复习 题组14 化学用语练习(含解析)-人教版高三化学试题
- 压力机说明书
- 发展汉语-初级读写-第一课-你好
- 2023年10月中国互联网发展基金会招考2名工作人员笔试历年高频考点-难、易错点荟萃附带答案详解
- 2022年初中英语新课标解读课件
- 疾病预测模型
- 九三学社 入 社 申 请 表
- 工业废弃物在水泥中的应用
- 《线性代数》 课件 2.5初等变换
评论
0/150
提交评论