《2021-2022年收藏的精品资料软件工程实验报告学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《2021-2022年收藏的精品资料软件工程实验报告学生成绩管理系统.doc(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 计算机科学与技术学院软件工程课程设计报告 (2013/ 2014 学年 第 1 学期)学生姓名: 黄世强学生专业: 计算机科学与技术 学生班级: 计算机102001 学生学号: 201020010110指导教师: 张继福 2014年1月17日 目 录1 问题的定义12可行性研究22.1 技术可行性22.2 经济可行性22.3 操作可行性23 项目开发计划33.1 项目背景33.2 项目目标33.3 项目功能44 需求分析54.1 业务流程图54.2 性能要求54.3 数据流图54.4 数据字典75 概要设计105.1 系统功能模块图105.2 模块功能说明106 数据库设计126.1 外部接
2、口与用户界面126.2 内部接口126.3 E-R图126.4 数据结构设计137 详细设计 157.1 系统程序流程图157.2 界面设计228 测试报告238.1 测试系统模块238.2测试摘要258.3 不足之处259 用户手册269.1编写目的269.2背景269.3运行环境26附录271 问题的定义随着互联网的发展,利用INTERNET 技术来实现“无纸办公”这个概念已经深入人心,校园网作为学校信息化建设的一个平台在完成资源共享、互联网访问、教务管理、电子备课等方面发挥了重要作用。服务教学、提高教学水平和效果是校园网建设的核心目标和核心价值,本系统立足于校园实际,着眼于未来发展,建成
3、符合标准化协议、通用性较强、实用的系统,以提高高校的现代化管理水平,实现信息资源的共享。该项目主要是服务于教学方面,进一步方便教师的工作和学生的学习,从而从侧面达到提高学校的教学方面软件质量。可以说它适用于每一所高校,因此很有开发价值。我们不敢说该产品是所有该系列产品中最好的,但是我们这里要强调的是它具有使用范围广,实用性强,使用简单,所花经费少等优点。我们可以肯定的说它将在高校的使用过程中其优点将得到最充分的体现。主要功能有三方面:管理员,登陆,进入系统,可以进行管理员操作。进行学生信息、教师信息、课程信息的编辑、查询、删除、修改、添加、打印等操作。学生,登陆,进入系统,可以进行查询、修改、
4、打印等操作。教师,登陆,进入系统,可以进行查询、学生成绩录入、修改、打印等操作。软件系统目标为一下几点:本系统具有很强的可靠行,可以对录入的学生信息进行效验,对数据进行修改、删除,规定各种权限。本系统中的模块具有很强的可续性,可以方便管理人员的修改与维护。本系统操作方便、灵活、简单。本系统可高效、快速的查询到学生的基本信息。2可行性研究2.1 技术可行性 该系统将大大改善数据处理的速度,并且更加方便的对数据进行管理,同时可以大大减少人力资源的浪费以及工作的支出。另外还可以提高查询的效率,降低查询的错误率,修改数据方便等。因为原来的系统是人工操作,所以效率比较低,相对于以前的系统,本小组开发的学
5、生管理系统在效率上会更高,耗费最短的时间处理更多数据。2.2 经济可行性 校园内部局域网络已经建成;每个人电脑均已配置;硬件投入不需要很大,另外,学校对系统的开发大力支持。因此经济上是可行的。2.3 操作可行性 为了对学生成绩的管理方便,开发人员完成了全面的调查与分析,同时与目标用户进行了多次深入沟通,主要用于大中专院校学生日常管理工作,以规范的学生档案为基础,实现了学生考勤,学籍变更、学生奖惩、考试成绩、教师考勤等电算化管理,实现学校人力资源的优化和学生成绩管理的科学管理而设计的,通过试用本系统,可以更加有效的管理学生成绩信息,其中包括学生的基本信息,成绩信息并且具有信息的增加,查询,修改等
6、功能,所以经过研究与探讨,该软件操作是可行的。3 项目开发计划 3.1 项目背景随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能以为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生成绩管理信息进行管理,具有手工管理所无法比拟的有点。例如,检索迅速、查找方便、可靠性高、存储量高、保密性好、寿命长、成本低等。这些有点能够极大地提高学生档案管理的效率,也是企业科学化、正规化管理,与世界接轨的重要条件。因此,开发大学成绩管理系统很有必要。学生成绩管理系统是一个学校不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学
7、生成绩管理系统应该为用户提供充足的信息和快捷的查询手段。同时,学生成绩管理是各大学的主要日常管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,学生成绩日常管理工作及保存管理日趋繁重、复杂。高校都迫切需要研制开发一款属于自己的功能强大,操作简单,具有人性化的学生成绩管理系统。 3.2 项目目标在我国,各大中小学校的各类信息管理系统并非一个新的课题,但也有的学校根本就没有信息任何管理系统,所有的工作几乎还是手工操作来完成。计算机技术在日新月异的发展,信息化是社会进程的必然趋势,学校管理只有只有快,准,精才能发挥其价值。本系统是将现代化的计算机技
8、术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标:系统应具有实用性、可靠性和适用性,同时注意到先进性。对各个数据库进行动态管理,防止混乱。能够按照用户选择的不同的条件进行简单查询和复合查询。能够对查询结果进行分类汇总。注意数据的安全性,具有数据备份和恢复的功能。方便用户的操作,尽量减少用户的操作。3.3 项目功能 登录管理:为了保证系统的安全性,可以根据不同的用户权限来提供不同的服务。分为管理员登录和用户(教师、学生)登录两个子模块。账户管理:分为用户管理和修改密码两个
9、子模块。其中用户管理子模块又包含了添加用户、修改用户和删除用户两部分。信息查询:在各基本表的基础上进行信息查询。分为学生资料查询和学生成绩查询两个子模块。4 需求分析4.1 业务流程图 经过对现有的资源以及软件分析,并多次与学生、老师、管理员等进行沟通后、将整个成绩查询业务流程抽象描述如下图4.1所示。 教师 成绩信息数据库 学生 登陆查询登录成绩表查询信息 登录 信息管理管理员 图4.1 学生成绩管理业务流程图4.2 性能要求为了满足用户的要求,系统必须要有高的运作速度,用户填写的信息输入到系统,系统必须能快速及时作出响应,迅速处理各项数据、信息,显示出所有必需信息,所以要求很高的信息量速度
10、和大的主存容量;由于要存贮大量的数据和信息,也还要有足够大的磁盘容量;安全性也是系统最重要的性能需求之一,学生信息管理系统必须有可靠的安全措施,以保证用户的各项信息安全。4.3 数据流图 该数据流图主要体现出了学生信息的录入以及教师将考核信息存入数据库,最终交给管理员。学生也可以通过软件从数据库查询自己的成绩信息以及个人信息。总体说明了系统管理员、学生、教师之间拥有的权利以及能够进行的一些操作。数据流图见下图4.2和4.3。 图4.2 顶层数据流图 图4.3 一层数据流图4.4 数据字典4.4.1 数据流 数据流里面包括了录入信息、成绩写入数据库、查询结果以及成绩表等几方面。具体信息如下表4-
11、1、4-2、4-3、4-4。 表4-1 录入信息的数据字典数据流编号:1数据流名:录入信息简述:用于写入学生各课成绩数据流来源:密码检验数据流去向:成绩登记数据流项组成:录入信息学生学号学生姓名+性别+班级各课成绩 表4-2 成绩写入的数据字典数据流编号:2数据流名:成绩写入记录库说明:用于学生成绩写入数据流来源:成绩登记数据流去向:成绩写入记录数据流项组成:成绩写入记录各课成绩数据流编号:3数据流名:查询结果说明:用于显示学生查询的信息结果数据流来源:学生信息查询数据流去向:学生数据流组成:查询信息学生信息各课成绩数据流编号:4数据流名称:成绩表简述:学生成绩通知,在下学期前发给学生数据流来
12、源:成绩管理数据流去向:学生数据项组成:学号+学生姓名+课程名+成绩 数据流量:1张/学期 表4-3 查询结果的数据字典 表4-4 成绩表的数据字典394.4.2 数据存储 数据存储里面主要包括了五张表。具体信息见表4-5、4-6、4-7、4-8、4-9。 表4-5 学生表数据字典数据存储编号:001数据存储名称:学生表简述:登记学生信息数据存储组成:学号+姓名+性别+班级+专业+系部相关联的处理:成绩管理,课程管理 表4-6 管理员表数据字典数据存储编号:002数据存储名称:管理员表简述:增加、修改、查询学生学籍数据存储组成:学号+身份证号+高考号+姓名+性别+家庭住址+ 系部班级 相关联的
13、处理:学籍管理,成绩管理,课程管理 表4-7 教师表数据字典数据存储编号:003数据存储名称:教师表简述:教师上课安排数据存储组成:教师姓名+所教课程+上课班级相关联的处理:课程管理数据存储编号:004数据存储名称:学生选课表简述:学生选课课程信息存储数据存储组成:姓名 +系部班级+课程名称+课程编号+学号相关联的处理:课程管理,成绩管理 表4-8 学生选课表数据字典 表4-9 学生成绩表数据字典数据存储编号:005数据存储名称:学生成绩表简述:存放学生各科考试成绩数据存储组成:姓名 +学号+系部班级+课程名称+课程编号相关联的处理:课程管理,成绩管理4.4.3 处理 处理主要分为身份验证和查
14、询登记。具体信息见表4-10和4-11。 表4-10 身份验证数据字典处理逻辑编号:01处理逻辑名称:身份验证简述:检查输入信息的合法性输入的数据流:学号+密码处理过程:根据输入的学号和密码,检索用户,确定用户类别,以确定该用户的权限,显示查询信息输出的数据流:学生选课信息,学生成绩,学生学籍,密码修改处理频率:频繁 表4-11 查询等级数据字典处理逻辑编号:02处理逻辑名称:查询登记简述:查询专业表及课程表,成绩表输入的数据流:教师名+教师号+密码处理过程:根据输入的信息,确定用户类别,根据用户类别,显示查询信息输出的数据流:学生成绩,班级表,课程表处理频率:频繁 5 概要设计 5.1 系统
15、功能模块图 根据前面的需求分析以及对软件的开发可能性学生成绩管理系统功能模块图一共分为学生子模块、教师子模块、管理员子模块等基本模块。且在学生子模块下面又包括了学生选课以及成绩查询模块;教师子模块下面包括了教师选课模块;管理员子模块包括了信息维护模块。成绩管理系统功能模块图如下图5.1所示。 图5.1学生成绩管理系统功能模块图 5.2 模块功能说明 1.在学生子模块中,学生可以在该模块中进行选课、退课,成绩查询,并且还可以对自己的个人信息进行增删查改等操作。 2. 在教师子模块中,教师可以在该模块中进行选课、退课,成绩录入,并且还可以对自己的个人信息进行增删查改等操作。 3.在管理员子模块中,
16、管理员可以在此模块中维护本软件的远行,并且还可以对自己的个人信息进行增删查改等操作,还可以对教师学生的信息进行增删查改的操作。 4. 在学生选课模块中,学生可以登录后在数据库中选择自己所需要选择的课程进行提交、修改、选择等操作。 5. 在学生成绩查询模块中,学生可以登录自己的信息后,查询自己所需要的科目成绩,当然可以进行选择后查询自己各个学期的或者一学年的成绩。 6. 在教师选课模块中,教师可以在数据库中选择自己所要教授的课程以及班级。在这里教师可以查到课程的有关信息。 7. 在管理员修改信息模块中,管理员可以管理学生以及教师的一些基本信息。包括修改、查询、删除等操作。 6 数据库设计6.1
17、外部接口与用户界面在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用Visual Studio .NET进行编程。总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。6.2 内部接口内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块
18、间传输。6.3 E-R图 初步E-R图和三范式E-R图如图6.1和6.2所示。其中6.1是初步E-R图,包括常用的实体以及属性。清楚的说明了学生、教师、管理员可以进行的一些操作以及反馈信息。图6.2是满足三范式的E-R图。具体信息如图6.1和6.2所示。 图6.1 初步E-R图 图6.2 三范式E-R图6.4 数据结构设计 根据数据库的原理再加上E-R图的设计,将进行数据结构设计。在数据库下创建5个主要数据表。其结构如下所示: 1. 班级信息表(ClassInfo),如表6-1所示。 表6-1 ClassInfo表字段类型描述ClassID自动编号班级编号(主键)ClassName文本班级名称
19、SpecialtyName文本专业名称ClassNumber文本教书编号Length数字学制Teacher文本班主任EnrolmentTime日期/时间入校时间Remark备注备注 2. 课程表(Course),如表6-2所示。 表6-2 Course表字段类型描述CourseID自动编号课程编号(主键)ClassID数字班级编号Course文本课程名称Semester文本学期 3. 成绩表(ScoreInfo),如表6-3所示。 表6-3 ScoreInfo表字段类型描述ScoreID自动编号成绩编号(主键)Semester文本学期StudentNumber文本学生学号Course文本课程S
20、core数字分数 4.专业表(SpecialtyInfo),如表6-4所示。 表6-4 SpecialtyInfo表字段类型描述SpecialtyID自动编号专业编号SpecialtyName文本专业名称(主键)Remark备注备注5. 学生信息表(StudentInfo),如表6-5所示。 表6-5 StudentInfo表字段类型描述StudentID自动编号自动编号(主键)StudentNumber文本学号Name文本姓名Sex文本性别Address文本家庭住址Telephone文本联系电话ClassID数字班级编号Remark备注备注7 详细设计7.1 系统程序流程图7.1.1 学生基
21、本信息模块 学生基本信息模块包括了学生的个人信息以及成绩查询的选项。在这里学生可以根据自己的需求选择要进行的操作。进行相应的操作就会把相应的信息输出,以便能够清楚的查询自己所需要的知识。流程图如下图7.1所示。 图7.1学生基本信息流程图7.1.2 学生选课模块 该模块主要包括了学生在选课数据库里进行选课的一些操作。学生可以在这里输入信息,然后选择自己想要选择的课程。当然,学生在这里也可以查询课程的一些相关信息。流程图如下图7.2所示。 图 7.2学生选课流程图7.1.3学生成绩查询模块 该模块主要提供学生对成绩的查询信息。学生可以在此输入学号和密码后,查询自己想要查询的课程的成绩信息。流程图
22、如下图7.3所示。 图7.3学生成绩查询流程图7.1.4 教师基本信息模块该模块主要说明了教师的一些基本信息。包括自己的授课查询以及对学生成绩的查询等一些操作。流程图如下图7.4所示。 图7.4教师基本信息流程图7.1.5 教师选课模块 本模块主要说明了教师能够进行自己授课的一些选择。可以在选课信息表里选择自己要教授的课程。流程图如下图7.5所示。 图7.5教师选课流程图7.1.6 管理员基本信息模块 该模块主要说明了管理员应该具备的一些权利以及对一些信息的管理以及查询。管理员可以在这里进行学生成绩的管理以及教师选课的一些信息管理。流程图如下图7.6所示。 图7.6管理员基本信息流程图7.1.
23、7 管理员信息维护模块 该模块主要说明了管理员可以对一些信息进行维护的操作。其中,这些信息可以是学生的或者是教师的信息都可以在这里进行维护。流程图如下图7.7所示。 图7.7管理员信息维护流程图7.2 界面设计用户登陆:该系统根据用户的身份实现了不同的功能,用户登陆时需要选择一种登陆方式(默认情况下是学生),系统再根据用户选择的登陆方式到相应的表中去搜索。例如,登陆时选择了教师登陆方式,系统将会在教师信息表中搜索是否存在与该用户的输入相符的信息,如果存在则进入教师主页,否则提示用户输入有误,请重新输入。7.2.1 学生用户界面学生的初始密码是由管理员指定的。学生登陆后,可以按照要求自行修改使用
24、密码。首先需要输入原始密码,如果原始密码没有输入正确将不能修改密码,只有在原始密码正确的基础上,用户才能继续下面的操作。新密码设定后,系统还要求用户再输入一次重复密码,避免因为误输而导致密码丢失。查询指定学期成绩:学生可以查询自己指定学期的成绩和所有的成绩。方便学生了解自身情况。选课系统:学生选课系统是针对学生进行网上选课而设计的,学生可以自主选择自己想修的课程。7.2.2 教师用户界面查询授课计划:教师可以利用该系统实现查询授课计划的功能,教师不仅可以看到自己本学期要授的课程信息,还能查看选修对应课程的学生名单,同时可以添加对应课程的学生成绩。帮助教师提高了工作效率。查询学生基本信息:教师可
25、以查询学生的基本信息,以帮助教师了解学生情况。7.2.3 管理员界面 学生基本信息管理:学生基本信息管理包括学生基本信息添加、学生基本信息修改、学生基本信息删除。下面给出的是学生信息添加界面教师基本信息管理:教师基本信息管理包括教师基本信息添加、教师基本信息修改以及教师基本信息删除。8 测试报告8.1 测试系统模块 首先进入该软件如下图8.1所示,可以进行用户的选择。 图8.1 登录系统进入教师模块可以对学生的成绩进行录入,包括课程编号、课程名、学分、平时成绩、实验、卷面成绩等信息。如下图8.2所示。 图8.2 教师模块 进入学生模块后,可以输入学号来进行成绩的查询。其中成绩包括平时成绩、实验
26、成绩、卷面成绩等信息。如下图8.3所示。 图8.3学生模块 进入管理员模块后,可以进行学生基本信息录入、查询学生信息、班级信息、删除等操作。也可以将成绩按照综合成绩排或者学分来排序。入下图8.4所示。 图8.4 管理员模块8.2测试摘要 软件所要实现的功能及程序的关系如下表8-1: 表8-1 软件测试功能8.3 不足之处 测试的时候有些算法还需简化,由于安全性与权限及运行速度要达到一个平衡。我们还有待找到一个平衡支点。要使软件更加的安全和权限更好的分配给不同的用户。设计时还应该尽可能多的设计更好的模块。使得模块功能更多,但结构更简洁。使每个人都能轻易的掌握操作原理以及技巧。9 用户手册9.1编
27、写目的 编写该文档是为了指导普通用户使用操作该程序。处理和查询想要知道的数据,并为测试提供依据。该文档的阅读者为普通用户和测试人员。9.2背景1)待开发系统软件名称:学生成绩管理系统;2)本项目的任务提出者是学校信息管理系统的各位老师,由本小组负责开发,用于太原科技大学广大师生成绩查询及管理;3)开发背景:本系统属于太原科技大学网络管理系统的学生成绩管理模块,实现的是网络管理系统中关于学生成绩管理的子功能,通过此软件,提高用软件工程分析问题、解决问题的能力,同时增强对数据库和VC的使用能力。9.3运行环境 9.3.1硬设备1)至少具有奔腾III800,128M内存配置的计算机;2)Micros
28、oft鼠标,或其他兼容鼠标;3)至少500M的磁盘空间;4)至少32MB的存储器。 9.3.2支持软件操作系统:WIN98,WIN2000,WINXP和Vista等执行程序:visual C数据库:SQL Sever 2000 9.3.3数据结构本系统的使用需要连接SQL Server数据库,当需更新数据库时,可以新建数据库,并且在数据库中按需要新建各个表格,存储在相应的文件夹中。附录程序源代码如下:#include#include#include#includeusing namespace std;class stu char number10;char name20;public:stu
29、(char a10,char b20) strcpy(number,a); strcpy(name,b);char* getnumber() return number;char* getname() return name;class stu1 : public stu char sex4;char sushenumber8;char telephone10;public:stu1(char a10,char b20,char c4,char d8,char e10):stu( a, b) strcpy(sex,c); strcpy(sushenumber,d); strcpy(teleph
30、one,e);friend void main();class stu2 : public stu char classnumber8;char classname10;double score,pingshigrade,shiyangrade,juanmiangrade,zonghegrade,lastscore;public:stu2(char a10,char b20,char f8,char g10,double aa,double bb,double cc,double dd,double ee,double ff):stu(a,b) strcpy(classnumber,f); s
31、trcpy(classname,g); score=aa; pingshigrade=bb; shiyangrade=cc; juanmiangrade=dd; zonghegrade=ee; lastscore=ff;friend void main();void main()char c; string password;int flag7=0;int s=0;cout欢迎进入学生成绩管理系统endl;cout请输入你的登录密码endl; do do c=getch(); if(c=char(13) break; password+=c;cout*; while(1);coutn; if(
32、password=123456) flag7=1;char number10;char name20;char sex4;char sushenumber8;char telephone10;int i=0,I=0,j=0;int ja;ja=0;ofstream *file50; stu1 *s50; stu2 *s150; char classnumber8;char classname10;double score,pingshigrade,shiyangrade,juanmiangrade,zonghegrade,lastscore;bool flag=0;int p;char c6;
33、do cout请输入你的身份:endl; cout1 管理员endl;cout2 老师endl;cout3 学生p; if(1=p&p=3) flag=1; else cout错误指令!请重新输入。endl;while(flag=0);if(p=1) cout欢迎进入管理员模块endl; char c4; do cout请输入您要进行的操作endl; cout1 学生基本信息录入endl; cout2 查询学生基本信息endl; cout3 查询班级学生信息endl; cout4 删除功能endl; cout5 按综合成绩实现排序功能endl; cout6 按实得学分实现排序功能m; swit
34、ch(m) case 1: char c; do cout请输入学号number; cout请输入姓名name; cout请输入性别sex; cout请输入宿舍号码sushenumber; cout请输入电话号码telephone; fileja=new ofstream(d:a.txt,ios:app); *fileja学号number姓名name性别sex宿舍号码sushenumber电话号码telephoneendl; ja+; si=new stu1(number,name,sex,sushenumber,telephone); i+; cout数据录入成功,想继续输入吗(y/n)c;
35、 flag=0; do if(c!=y&c!=n) cout错误指令!请重新输入!c; else flag=1; while(flag=0); while(c=y); break; case 2: /查询学生基本信息 char n20; char c1;int a; do int flag1=0; cout请输入查询的方式endl; cout1 学号查询endl; cout2 姓名查询a; if(a=1) cout请输入你要查询的学生的学号n; for(int j=0;ji;j+) if(strcmp(n,(*sj).getnumber()=0) flag1=1; cout你要查询的学生是: (*sj).getnumber()endl; cout学号(*sj).getnumber()姓名(*sj).getname()性别(*sj).sex宿舍号码(*sj).sushenumber电话号码(*sj).telephoneendl; if(a=2) cout请输入你要查询的学生的姓名endl;