学生成绩信息管理系统_第1页
学生成绩信息管理系统_第2页
学生成绩信息管理系统_第3页
学生成绩信息管理系统_第4页
学生成绩信息管理系统_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

课程论文软件工程题目:学生成绩信息管理系统学院〔系〕:信息工程学院专业班级:学生姓名:指导教师:魏洪涛摘要随着Internet的开展,管理软件在各行各业得到重用。学生管理系统是一个教育单位不可缺少的局部,它的内容对于学校的决策者和管理者来说都至关重要,其中学生成绩管理系统可以使管理人员方便地完成学生注册、成绩登记、修改、打印等功能,而学生也可以通过该系统查询自己的成绩。本文采用结构化方法学对学生成绩信息管理系统进行分析、设计。在需求分析,建立三大分析模型,即数据模型、功能模型、行为模型;概要设计阶段用结构图表达;详细设计阶段的关键模块用流程图表达。关键词:成绩管理系统模型分析目录摘要1目录11前言〔或“绪论〞〕11.1设计任务11.1.1需求说明11.2设计内容12需求分析12.1数据模型22.2功能模型32.3行为模型53概要设计64详细设计95体会136参考文献141前言〔或“绪论〞〕1.1设计任务1.1.1需求说明通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和稳固我的知识。特别是作为高职生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。21世纪以来了,人类经济高速开展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域,使原本的旧的管理方法越来越不适应现在社会的开展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的开展。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大地方便。1.2设计内容〔1〕建立需求分析阶段三个模型〔2〕概要设计阶段具体到结构图〔3〕详细设计可以只针对局部关键的局部或模块进行,用流程图表达〔4〕体会2需求分析学生成绩管理是高等学校教务管理的重要组成局部,其内容较多,为了简化设计,要求设计的管理系统能够完成以下几种功能:〔1〕学生注册登记;〔2〕登记学生成绩;〔3〕修改学生成绩;〔4〕打印一个班级学生的单科成绩;〔5〕求出每个学生一学期中各科的平均成绩;〔6〕打印某一课程成绩处于指定分数段内的学生名单;〔7〕学生可以查询自己的成绩。2.1数据模型数据模型的三个因素为数据对象、属性以及关系。用实体-关系图来建立数据模型。确定系统实体:首先分析"学生成绩管理系统"的用户要求,找出该系统应该包括的实体。显然,学生、课程和成绩都是系统的实体,并且可以初步定义它们的属性。管理员虽然是系统的用户,但其信息与系统处理无关,因此不用作为实体。另外,由于成绩信息包含了选课信息,因此选课信息不用单独记录。最终,确定系统的实体是学生、课程和成绩。接着,我们分析这些实体之间的关联关系。从实际情况得知,一个学生可以选多门课程,一门课程也可以有多个学生选修,但每个学生选一门课程必须有一个成绩。根据上述分析,我们得到如下图的实体关系图。实体属性定义: 学生:学号、姓名、性别、出生年月、名族、入学年月、班级 课程:课程编号、课程名称、课程学分、课程类别、课程学时 成绩:学号、课程编号、分数、考核日期图2-1学生实体属性图2-2课程实体属性图2-3成绩实体属性图2-4实体-关系图2.2功能模型用数据流图来建立功能模型。本系统涉及到的业务工作主要是:学生管理、系别管理、成绩管理和课程管理等方面,系统界面可以分为管理员界面和普通用户界面,整个系统划分为下面的信息:学生根本信息〔学号,姓名,性别,出生年月等〕;学生成绩〔学号,姓名,各科成绩等〕;学生课程信息〔学号,姓名,考试课程名〕。教务人员或管理员进入管理界面后,可以输入学生的根本信息、成绩和课程信息,而学生进入普通用户界面后可以查询自己的成绩,整体数据流图如图2-5所示图2-5整体数据流图对上面的学生成绩管理模块展开如下列图2-6所示。图2-6学生成绩管理展开后的数据流图对查询学生成绩展开如下列图。图2-7查询局部的数据流图绘制第0层DFD的时候,将整个系统看成一个加工,然后找出作用于该加工的外部实体,以及相应的数据输入和输出。对于"学生成绩管理系统"而言,整个系统就是一个加工"学生成绩管理"。从用户的需求描述可知,"教务人员"是数据的源点,"学生"是数据的终点。另外,教务人员需要录入学生信息、课程信息和成绩,说明"学生信息"、"课程信息"和"成绩"是数据流;同样,"查询请求"和"查询结果"也是数据流。根据上述分析,得到如下图的第0层DFD。

绘制下一层数据流图时,细化第0层的加工"学生成绩管理",从而描述系统的主要功能。从第0层DFD得知,"学生信息"是教务人员需要录入的一个信息,因此参加一个加?quot;录入学生信息",同样得到"录入课程信息"、"登记成绩"两个加工。另外,数据流"查询请求"和"查询结果"应该由加工"查询成绩"来完成。这样,我们用"录入学生信息"、"录入课程信息"、"登记学生成绩"和"查询学生成绩"四个加工代替第0层的"学生成绩管理",同时增加这些数据流对应的数据存储,即"学生"、"课程"和"成绩",最后得到如下图的第1层DFD。

为了继续进行分解,我们分析第1层DFD中的加工"查询学生成绩"。学生查询成绩时需要提供合法性检查,因此,"查询学生成绩"可以分解为"合法性检查"和"查询成绩"两个处理步骤,从而形成如下图的第2层DFD。2.3行为模型用状态转换图来建立行为模型。在"学生成绩管理"系统中,学生成绩信息需要采取平安措施,我们可以采取登录方法防止非法使用系统。这样,该系统存在"登录"、"正常"和"出错"等状态的转换。启动系统之后,系统处于"登录"状态。在这种状态下,学生或管理员可以进行登录或取消登录。如果取消登录,系统直接退出;如果登录失败,系统进入"出错处理"状态,在显示错误信息后,又重新回到"登录"状态;如果登录成功,系统进入"正常"状态,即显示操作界面〔管理员操作界面或普通用户操作界面〕,当用户退出。系统整体的状态转换图如图2-8所示。图2-8状态转换图3概要设计1.学生成绩管理软件的数据结构学生成绩一般都是以班级为单位进行管理的,一个班级用一个结点来表示。考虑到插入和删除的方便,这些以班级为单位的结点用链表方式组成一个主目录。每个结点有四个域:〔1〕班级代号;〔2〕课程情况;〔3〕学生情况;〔4〕班级顺序链。课程情况应能反映出大专生所学过的全部课程。因课程是逐年增多的,所以采用链表结构以便能不断插入新的课程。该班学过的课程构成一个课程链表,所以班级结点中的课程情况用课程链表表示。学生情况主要反映学生的学号,姓名,每学期学生的成绩情况。因为学号总是顺序排列的,所以选用一个结构体数组作为反映学生情况的登陆记表。该数组的下标值接上班级结点中的班级号就是学号。例如,设每班学生数不超过40个人,班级号为9612,某学生在登记表中相应分量的下标值为26,那么该学生的学号为961226。另外,学生成绩管理要分6个学期,所以在学生登记表中,开设6个指针域,每个指针指向该生某学期某门课程学成绩的结点。各结点结构如下所示:〔1〕主目录中班级的结点为:班级号课程链班级顺序链学生登记表〔2〕课程链表中的结点:课程代号学期号二叉树链课程顺序链〔3〕分数链表中的结点为:左链学号课程代号成绩分数顺序右链为了便于登记和查询学生的成绩,选择二叉排序来存放学生的成绩。每个班级的每门课程对应一棵二叉树。通过主目录中班级结点的课程链找到指定的课程结点,再通过课程结点中的二叉树指针指向该门课程的成绩二叉排序树。另外通过主目录中班级结点的学生登记表中的学期指针,指向该学生本学期某门课程的分数结点,并以分数结点的分安数顺序链勾链该生各门课程的成绩。在登记成绩和查询分数时,都要用到课程代号。课程代号和课程名称是一一对应的。为了简化程序,课程名称和代号对照表设计为一个向量,向量的下标值就作为课程代号,而向量中的元素就是课程名称,这样可以省去代号域。1.各模块的功能和实现学生成绩管理的相关功能由对应的函数来实现。〔1〕用户登陆用户进入登陆界面后,输入账号密码,系统会连接到数据库进行验证,假设为管理员,那么进入管理员界面,执行相应的操作;假设为普通用户〔学生〕,那么进入普通用户界面。〔2〕学生注册登记学生入学后,首先应是注册登记。从登陆界面可以进入注册界面,注册时应先检查该学生所在班级是否已经登入主目录,未登入那么假设调用新结点后登陆入主目录。然后将新调入的班级结点中对应域赋初值,最后再读入学生的学号和姓名并一一填入学生登记表。这样就完成了一个班级的注册和登记工作。〔3〕登记学生成绩学生注册后才可以登记成绩,所以先要检查这个班级是否已经注册,班级中是否有这个学生。在确认有此学生后,登记该生成绩。这时需完成两个操作。一个查询课程代号,另一个是将成绩填入二叉树。这两个操作分别用两个函数来实现:①查询课程代号;②插入二叉排序树。有了这两个函数,登记学生成绩的工作可以很方便地完成。首先查处课程代号,调用课程结点,填入课程代号和学期号;再在二叉树链域中置初值为NULL,将课程结点插入为课程链表的头结点。接着读入每个学生的学号和成绩,每个学生的每门课程都生成一分数结点插入到相应课程的二叉树中。同时,还要将该分数结点链入该生这学期各科成绩的分数链表中。学生登记表中的学期指针域中存放该分数链表的头结点地址。〔4〕修改学生成绩假设登记的学生成绩有错误,那么调用修改学生成绩的函数便可以加以修改。修改时从主目录出发,查到班级,再从学生登记表中查对学号和姓名,再在与学期匹配的学期指针域中取得该生的学生链表的头指针,然后搜索分数链表,查到指定课程的分数结点,就可修改成绩。〔5〕打印一个班级学生的单科成绩由于学生成绩是用二叉树排序树来存储的,所以采用中序遍历的方法就可以按次序打印出学姓名和成绩。在打印了程序中,从主目录开始查到班级号,就可以从课程结点的二叉树链域中取得成绩二叉排序树的头指针;然后调用中序遍历了程序就可进行打印,同时可求出平均成绩和各个分数段的人数。①求出每个学生一学期中各科的平均成绩此了程序从主目录查对班级号开始,通过学生登记表中每个学生的学期指针取得各自的分数链表的头指针。顺着分数链就可求出该生本学期各科的平均成绩。②打印某一课程成绩处于指定分数段内的学生名单对二叉树序树进行中序遍历,但遍历时应判断当前成绩是否处于分数段内而决定是否打印。〔6〕学生查询成绩学生从登陆界面输入账号密码后,系统连接到数据库检查该用户是否注册等信息,假设信息正确,那么进入普通用户界面,然后调用查询函数即可查看成绩。由以上分析,学生成绩管理系统可以分为三个模块:用户登录及注册模块、普通用户功能模块、管理员功能模块,如图3-1所示,管理员可以完成学生成绩的登记、修改、打印功能,而学生可以完成成绩的查询功能。图3-1系统总体结构图4详细设计系统总体流程图如图4-1所示。图4-1系统总体流程图系统的局部模块设计流程图如下,其中矩形代表“处理〞,菱形代表“选择〞,箭头代表“控制流〞,圆代表“连接〞。图4-2登录模块流程图图4-3登记成绩模块流程图图4-4修改模块流程图图4-5学生查询模块流程图图4-6打印模块流程图5体会以前上课的时候,觉得老师讲的内容都听得懂,所以系统设计应该是件很容易的事,但当自己亲自动手去分析设计每一步时,才觉得自己有很多东西没有理解透彻,比方说建立实体关系图时,就要仔细分析哪些是有实体,哪些是没有必要作为实体的,实体的属性应该考虑哪些以及实体间的

温馨提示

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

评论

0/150

提交评论