报告—学生成绩管理系统的开发设计Word文件下载.docx
《报告—学生成绩管理系统的开发设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《报告—学生成绩管理系统的开发设计Word文件下载.docx(35页珍藏版)》请在冰点文库上搜索。
6.系统测试...............................29
6.1. 软件测试与调试简介..........................29
6.1.1软件测试的目的.......................29
6.1.2软件测试的方法.......................29
6.2. 软件测试步骤.............................29
6.3. 本系统测试..............................29
7.心得体会..............................29
8.参考文献..............................30
工作安排
刘 冲:
需求分析、数据流图、论文庾震峰:
需求分析、数据字典
张堂隆:
代码实现、U-R图、数据库分析、界面设计张伟全:
需求分析、功能模块图
郑一帆:
需求分析、界面设计、论文
1.问题定义
学生成绩管理系统是每所学校都必须面对的工作,一直以来人们使用传统的人工方式管理文件档案,这种管理方式效率低、保密性差,随着学生数量的增加,其工作量也大大增加,这必然增加了信息管理者的工作量和劳动强度,同时产生大量的文件和数据,这给学生信息的查找、更新和维护都带来了不少困难。
目前各类学校管理人员对学生成绩等信息的记录、查询和数据统计等工作非常繁重,还有相当一部分学生成绩管理还停留在纸介质的基础上,这种管理方法很落后,并且会浪费许多人力和物力。
随着科学技术的不断提高,计算机科学与技术日渐成熟,计算机已进入人类社会生活的各个领域,以往传统的手工管理模式必然被计算机信息管理方法取代。
使用计算机对学生成绩信息进行管理,具有检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等优点,这些优点能够极大地提高学生成绩信息管理的效率。
因此,开发一套能为用户提供充足信息和快速查询手段的学生成绩管理系统,是非常必要的。
本学生成绩管理系统模块是为了实现学校人力资源的优化和学生成绩管理的科学管理而设计的,通过试用本系统,可以更加有效的管理学生成绩信息,能针对不同的用户分别设置了不同的功能,其中包括学生的基本信息,成绩信息并且具有信息的增加,查询,修改等功能,而且能快速统计学生成绩的相关数据。
2.可行性分析
2.1系统要求:
A功能:
本系统应该实现学生成绩信息的管理与查询,具体包括学生信息查询,如姓名,五门课程平时成绩,成绩总评等;
同时可以对以上信息进行修改,删除和添加。
另外还要做到可以对学生成绩信息以及成绩信息查询和维护。
B性能:
查询效率尽可能做到精准,信息维护功能做到简单易用,不需过多对人员的培训。
C输入:
对于查询功能,应做到可以单条件和组合条件输入;
对于维护功能,要有输入、修改学生信息和成绩。
D输出:
能按要求在显示器上显示所需内容并能打印成有条理的表格。
E安全与保密:
对于不同权限用户,设置不同权限,对重要数据可以考虑加密存储。
考虑到数据保存,条件允许的情况下可以让系统定时自动保存,省去手工保存的繁杂程序。
F本模块由系统主界面调入,实现学生成绩管理子功能。
G完成期限:
1个星期
2.2条件、假定和限制:
开发时间:
1个星期经费来源:
个人筹集
最迟完成时间:
2007年12月29日
2.3决定可行性的主要因素:
资金到位
-14-
开发人员无较大变动
2.4对现有系统的分析
现有系统为部分人工记录,设备落后,工作重复量大、枯燥,错误率高,查询复杂、花费时间长。
2.5技术可行性分析
本系统将大大改善数据处理速度,并且更加方便的对数据进行管理,同时可以减少人力资源的浪费以及工资支出。
2.6对设备的影响
1.只需添置低档计算机,如果条件允许可添加打印机以便查询能方便打印成资料作参考
2.对现有软件的影响
对现有软件不会产生冲突,对使用的操作系统来说有很好的兼容性、稳定性。
2.7对用户的影响
需要短时间来熟悉新系统,但不需要大量的培训。
2.8技术可行性评价
在以上限制条件下利用现有技术和人员,完全可以实现预期目标。
开发人员应尽职尽责, 尽量在规定期限内完成项目。
2.9系统经济可行性分析
1)支出
①基建投资
xxxRMB
②其他一次性支出
③经常性支出每月xxxRMB2)效益
①一次性收益
②经常性收益每月xxxRBM
③收益/投资比
a/b
④投资回收周期
x个月
2.10社会因素可行性分析
1)法律因素
所有技术资料都由提出方保管。
合同制定确定违约责任
2)用户使用可行性
使用本软件人员要求有一定计算机基础。
2.11其他可供选择方案
1)引进已有管理系统
操作人员需要重新上机培训,可以避免大量开发费用
2)将程序开发工作移交专业软件公司制作
不需学校投入大量相关人力,但相对物力比本方案要多
2.12结论意见
本系统可以马上开始实施,并尽可能做到提前完成。
从人力资源优化角度来说,可以充分利用学校已有人力资源。
从开发成本角度来说,将支出成本降到最底。
所以在三个可选择的方案中推荐此方案为最佳方案。
3.系统需求分析
3.1系统分析
学生成绩管理系统的要求是能够管理学生成绩信息,主要涉及到学生的基本信息、
成绩信息和学校的课程信息的管理。
学生的成绩是需要由人工录入的,因此系统就需要设计一个学生成绩信息录入的窗口来录入期考成绩,并且在这个窗口中放入一个数据窗口来实现录入这方面信息的功能。
系统还要求具有查询期考成绩的功能,因此为了显示查询结果,就要设计一个数据窗口,并将其放在查询期考成绩的窗口中实现查询功能。
系统要求能够录入授课计划和学生基本信息,必须设计录入授课计划窗口和录入学生基本信息窗口来实现相应功能。
由于该系统是学校管理学生成绩信息的系统,因此必须具有一定的保密性,需要特定的人员才可以修改,因此需要设计一个用户登陆的窗口,使具有访问权限的用户才能
登录此系统。
系统的主窗口要能够在用户选中相应操作后,调出相应的窗口来使用户在窗口中完成相应的功能。
3.2系统应解决的问题
3.2.1合理的设计数据库
尽量合理地减少数据库数据的冗余,使重复的数据保持在最小限度,这样将不必要
的多占用存储空间,减少产生混乱影响的危险,还能提高计算机的运行速度。
作为学生成绩管理系统,必须能解决以下方面的问题:
能录入信息。
所需录入的表有①学生成绩信息表;
②学生基本信息表;
③授课计划表;
④学生补考信息表。
3.2.2设计出良好的界面
界面的友好与否是用户评价一个软件优劣的重要方面。
因为该系统涉及到学生成绩的真实性,所以该系统要具有一定的保密性和权限控制,首先应设计一个用户的登陆窗口界面,要求只能由特定的人员对该系统进行操作。
此外还应设计登陆后系统的主窗口,要求能够显示学生成绩的基本信息,可以实现数据的录入,更新,删除、查询、统计等功能。
3.2.3实现基本功能和一些特殊功能的操作
该系统要求除了能实现信息的各种基本功能之外,还要求能够根据用户的需要进行
操作。
例如要查询学生成绩,要求可以按照科目、班级等多种方式查询。
这些功能基本上能满足用户操作的需要,这样用户操作起来就更简单方便。
3.2.4尽量减少用户的键盘输入
这样可减少用户的工作量,提高用户的工作效率。
3.3业务流程图
学生档案
录入档案
教师
查询档案
管理员
成绩公布
统计分析
考试成绩单
管理成绩
成绩查询
学生
用户信息
管理用户
3.4数据流程图
3.5功能分析图
3.5.1用户管理功能:
为了数据的安全性考虑,防止人为的破坏数据,实行了账号及密码管理。
可以设置
不同的管理员登录时,所能操作的功能根据授权不同而不同。
一般来说,管理员具有新增用户、修改用户、删除用户、密码修改等功能。
3.5.2学籍管理功能:
系统可以自动生成学号及学生名册,可以根据需要按姓名、学号、专业、年级等不
同字段进行查询打印。
该模块还可以对学籍变动进行处理,包括学生的退学、休学、复学等,及时更新学籍库。
另外还可以导出为其它数据格式的文件,如:
EXCEL、DBF文件,实现不同学生管理软件之间的信息交换。
3.5.3修改密码功能
用户可以根据实际需要自行修改自己的登陆密码。
3.5.4成绩管理功能
实现对学生课程考核成绩的添加、修改、删除、分析统计。
成绩录入后,系统根据成绩库中所有字段进行多条件组合查询学生成绩,并可以将查询结果另存为EXCEL、TXT和DOC等格式的文件。
其中分析统计是整个系统的重要组成部分,包括:
(1)成绩综合查询:
选择了专业以后,如果该专业的成绩库存在,系统会在查询条件的“名称”下拉列表中自动添加该年级系科专业的所有课程。
当查询条件多于一个时,先选择多个条件之间的
关系:
“and”、“or”。
条件设置完毕后点击【查询】按钮即可按设置的条件检索出满足查询条件的数据。
(2)专业成绩统计表:
通过这个窗口,可以生成每个科目的各个学期所有课程成绩的统计报表,比如考试人次、缺考人数、最高分、晟低分、平均分、不及格人数和不及格率等。
在窗口的下拉列表框中选择好年级、学期、系科名称,再选择专业即可统计出该报表。
(3)专业成绩明细表:
通过这个窗口,可以生成每个年级成绩的详细情况。
(4)学生单科成绩排名:
在窗口的下拉列表框中选择好年级、学期、考试类别、课程即可统计出该科目学生相应课程的成绩排名。
(5)学生总分成绩排名:
在窗口的下拉列表框中选择好年级、学期、考试类别、课程可以统计出学生所有相关课程总分成绩排名。
(6)分数段成绩统计:
该模块可以对各科目各科成绩分数段总人数进行统计,比如用户可以统计全年级9O分以上的学生共多少人,80~70分多少人,70-60分多少人,不及格多少人来综合的反映出年级分数段分布情况。
(7)学期综合成绩表:
一般每学期考试结束后,学校应公布学生的成绩,该统计表即可满足需要。
并且选择根据查询条件统计出本学期学生补考后的补考成绩。
(8)学生学籍明细表:
该模块提供在学生毕业时,打印学生学籍及所学课程的成绩详细信息。
作为学生存档材料。
选择年级,左边学生基本信息栏中会列出本年级的所有学生名单,点击要查询的学生信息行。
在“专业”栏目中的“学号”输入框中会自动将该学生的学号添加进来,然后点击【查询】即可统计出该学生的学籍成绩明细。
3.6数据字典
编号:
001 名称:
学号 别名:
学生编号
简述:
唯一标识学生的身份
002
名称:
课程信息目录
别名:
课程目录
组成:
1.课程号
2.课程名
3.开课学期4.课程性质
003 名称:
教师信息 别名:
管理学生课程和成绩
id+名字+班级+科目
备注:
老师的授课班数为不超过8
004 名称:
学生信息 别名:
学生的详细资料
学生学号+学生名字+性别+生日+年龄+民族+政治面貌+籍贯+备注+学院+班级
005 名称:
学生成绩相关信息 别名:
学生成绩
学生通过系统查询所要看到的信息输入数据流:
学生成绩表、课程信息表
输出数据流:
学生某门课程成绩及相关信息
1.课程信息目录(数据结构)
2.学生成绩信息表(数据结构)
3.查询的学号
编号:
006 名称:
学生成绩表 别名:
学生成绩表
各任课老师向学校提交各科学生成绩表
学号、课程号、成绩
007
计算平均成绩
输入信息:
每个学生每门课成绩、每门课学分、读取的学生课程门数
数据存储:
课程信息表
输出信息:
学生平均成绩
激发条件:
学期结束
简要说明:
可通过相关SQL语句完成
加工逻辑:
平均成绩为每门课成绩*每门课学分/总学分
修改密码
统计
查询
删除
成绩管理
修改
添加
学籍管理
密码修改
删除用户
用户管理
修改权限
新增用户
4.系统设计
4.1功能结构图设计
结合以上的分析,我们认为要作出一个较为完善且成熟的系统,需具有如下的功能模块:
学生成绩管理系统
教师帐户
管理员帐户
用户登陆
班级管理
课程管理
4.2数据库结构设计
4.2.1数据库需求分析:
数据库设计是对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其
应用系统,使之能有效地存取数据,满足用户的信息要求和处理要求。
数据库设计包括数据库的结构设计和数据库的行为设计,数据库的结构设计是根据给定的应用环境,进行数据库的模式或子模式的设计。
数据库的行为设计是确定数据库用户的行为和动作,即应用程序的设计。
本系统的数据库设计采用基于E—R模型的数据库设计方法。
首先,根据调研结果
分析系统中存在哪些实体,并确定各实体的属性,再找出各实体间的联系,确定各联系的派生属性,最后按照数据库设计原则产生本系统的所有数据库结构并优化。
本系统中存在的实体有:
学生、课程、教师、班级,各实体都有自己相应的属性,其中“学生”实体和“成绩”实体存在查询”联系,这种联系为多对多联系(即一名学生可选多门课程,一门课程也可被多个学生选),其派生属性为成绩。
为了减少数据冗余,便于数据的统计和查询,本系统的主要数据项设计如下:
a.管理员信息,包括数据有:
name(用户名),password(密码),
b.教师信息,包括数据有:
name(用户名),password(密码),id,班级,科目。
c.学生信息,包括数据有:
学生学号,学生名字,性别,生日,年龄,民族,政治面貌,籍贯,备注,学院,班级
d.课程信息,包括数据:
课程号,课程名,开课学期,课程性质
e.班级信息,包括数据:
各个年级所有的班级.
4.2.2数据库概念结构设计
通过对以上数据的的分析,得出学生成绩管理系统的实体有:
管理员,教师,学生,课程,
班级.实体具体的描述E-R图如下:
实体之间关系E-R图
4.2.3数据库逻辑结构设计
首先将宾馆管理信息系统的数据库概念结构转化为SQL2000数据库系统所支持的实际数据模型,即:
数据库的逻辑结构。
其各个表格的设计结果如下
教师信息数据表
(一个teacher可以有多个class和subject)
管理员信息数据表
学生信息数据表
(shenfen是政治面貌,date是入学日期,score是分数,memo是学生备注,province是籍贯)
学院信息数据表
班级信息数据表
课程信息数据表
5.系统实现
5.1源程序
下面我们给出部分重要的源代码
1.连接数据库:
//连接数据库
TRY
{
if(!
m_db.OpenEx(_T("
DSN=student;
"
),CDatabase:
:
noOdbcDialog))
this->
MessageBox("
连接数据库失败."
);
return;
}
CATCH(CDBException,ex)
AfxMessageBox(ex->
m_strError);
AfxMessageBox(ex->
m_strStateNativeOrigin);
AND_CATCH(CMemoryException,pEx)
pEx->
ReportError();
AfxMessageBox(_T("
memoryexception"
));
AND_CATCH(CException,e)
TCHARszError[100];
e->
GetErrorMessage(szError,100);
AfxMessageBox(szError);
END_CATCH
2.身份验证:
voidCStudent_systemDlg:
OnOK()
//TODO:
Addextravalidationhere
//身份验证
CStringsql;
CRecordsetrs(&
m_db);
this->
UpdateData(true);
if(m_radio.GetCheck()==1) //单选框控件函数,返回值为1时是管理员登陆
sql="
select*frommanagerWHERE(id="
+m_id+"
)"
;
//要执行的SQL语句
else //教师登陆
的记录
sql="
select*fromteacherWHERE(id="
//要执行的SQL语句,查询name为m_name
rs.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
if(!
rs.IsEOF()&
&
!
rs.IsBOF()) //打开查询记录
rs.GetFieldValue("
password"
sql);
//得到数据(用户密码)if(sql==m_password)
if(m_radio.GetCheck()==1)
else
managerobj;
obj.setdb(&
EndDialog(true);
obj.DoModal();
teacherobj;
this->
密码不正确!
该用户不存在."
rs.Close();
UpdateData(false);
3.下面以