学生管理系统的分析设计与实现(共42页).doc
精选优质文档-倾情为你奉上目录1 引言1.1课题背景本课题的名称是学生管理系统的分析、设计及实现,是在我们学生学习数据库系统知识后对我们学到知识的检验。该管理系统可以说是一个综合性的学校学生管理系统,它集成了学校学院班级管理系统、学生成绩管理系统、学生学籍、档案管理系统等多种功能,因而具有较强的实用性和先进性。我选此课题的原因是基于时代和现在科学技术的需要,随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。并且目前国家越来越重视科学教育和中国人口众多的原因,在校学生呈现逐年增长的趋势,而学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,这就对学校的管理部门提供了一个严重的挑战,如果一个学校还一直都是靠传统人工的方式管理学校班级、学生成绩,这种管理方式存在着许多缺点,如:效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难。那么这个学校离淘汰的命运不远了。随着科学技术的不断提高,计算机对学生信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本低等。这些优点能够极大地提高学生信息管理的效率,方便系统管理员对学生成绩等信息的添加,修改,删除,查询,留言等操作,同时一样的方面学生对自己各科成绩查询,学习的交流。因此用计算机创建的学生管理系统走进每个校园时必然的,事实也证明如此。开发更完善、功能更强大的学生信息管理系统成为许多计算机开发人员的奋斗目标。1.2课程设计目的学生的人数不断增加,必然导致信息趋于复杂化,使用学生管理系统对学生信息等的管理,进一步提高了办学效益和现代化水平.帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。通过学生管理系统的分析、设计及实现,熟练掌握 C#、SQL Server 2005等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件开发的流程,提高自身分析问题、解决问题的能力。1.3课程设计任务本课程设计任务是通过开发一个数据库学校学生管理系统,学习数据库系统的设计与开发,采用 C#和SQL Server2005等软件为开发工具。通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理。2需求分析2.1 可行性分析首先,我对此课题做了可行性分析,得出如下结论:现在我国的大中专院校,特别是小学到高中的学校的学生信息管理水平普遍不高,有的还停留在纸介质基础上,这种管理手段已不能适应时代的发展,因为它浪费了了许多的人力和物力。在当今信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替。可见在国家越来越重视教育的今天,学生管理系统的市场需求是很大的。学生管理系统是适应时代发展的需要,提高管理的效率而开发设计的。通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为学校领导及各部门管理人员提供全面、准确的各种数据。实现了学生管理的简单化和规划化,提高了学校的工作效率,从而使学校能够以少的投入获得更好的社会效益与经济效益。由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是奔腾3以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言介绍如下:C#(C Sharp)是微软(Microsoft)为.NET Framework量身订做的程序语言,C#拥有C/C+的强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C+与Java一样亦为对象导向(object-oriented)程序语言。其次,经过综合分析,确定了系统需求的几个方面功能: 要求有良好的人机界面; 较好的权限管理; 原始数据修改简单方便,支持多条件修改; 方便的数据查询,支持多条件查询; 相应的权限下,删除数据方便简单,数据稳定性好; 数据计算自动完成,尽量减少人工干预;2.2功能模块分析根据课程设计任务书和以上介绍的内容,可以分析设计出系统的总体功能模块,如图2-1所示:学 生 管 理 系 统学生信息管理模块系统维护模块系统退出模块班级管理模块成绩管理模块 图2-1 学生管理系统总体功能模块示意图 学生管理模块实现对学生个人信息的管理,包括个人基本信息管理、学籍管理、奖惩记录管理等,以及完成相应信息的查看、添加、修改、删除等基本操作。如图2-2所示;学 生 管 理 模 块基本信息查看学籍管理奖惩记录管理新生添加功能 图2-2 学生管理模块示意图 成绩管理模块实现对在校学生各科有效成绩的科学管理,包括成绩的添加、修改、删除等功能,对不同级别用户实现分成次阶梯式查询,如对学生本人的普通用户,只提供查询本人的各科成绩,对老师就增加了查看所教班级全体学生成绩的权力,依次类推,对数据库超级管理员即学校管理部门主要负责人有可以查看本校全体学生成绩以及添加、删除、修改等权力。如图2-3所示:成 绩 管 理 模 快成绩查询成绩添加成绩修改成绩删除 图2-3 成绩管理模块示意图 班级管理模块实现对学校各学院、各专业的班级进行有效的管理,实现班级浏览、班级查询、班级添加、班级修改、班级删除等功能。如图2-4所示:班 级 管 理 模 块班级浏览班级查询班级添加班级修改班级删除 图2-4 班级管理模块示意图 系统维护模块实现对数据库的具体操作,包括用户的添加和删除,密码修改,数据字典操作等功能,数据字典操作又包括组织机构设置和参数类型设置,组织机构设置又包括学院设置、专业设置、学制设置、学科设置、班主任设置、班级设置等等功能,参数类型设置实现对数据属性的设置与修改。如图2-5所示:系 统 维 护 模 块用户管理添加用户删除用户密码修改数 据 字 典学院设置专业设置学制设置学科设置班主任设置班级设置 图2-5 系统维护模块 系统退出模块完成系统的退出或当前界面的退出功能,如图2-6所示:系 统 退 出 模 块系统的退出当前界面的退出 图2-6 系统退出模块2.3 数据流程分析 经过对学校学生管理实际问题的抽象,我们可对数据库中数据的流程做出分析,其分析结果如下。 1、对学生管理模块,其数据流程如图2-7所示:学生管理模块管理部 门教务处学生班主任学生情况统计、查询 图2-7 学生管理模块数据流程示意图 2、对成绩管理模块,其数据流程如图2-8所示:课程管 理教务处课 程成 绩 管 理教师学 生成绩查询统 计分 析管 理输出结果 图2-8 成绩管理数据流程示意图 3、经分析,班级管理和成绩管理的数据流程基本上是相同的,在此就不在赘述。 4、系统维护模块的数据流程如图2-9所示:数 据 字典 模 块教务处专业设置学制设置班级设置班主任设置学院设置学科设置数据库 图2-9 系统维护模块数据流程示意图3数据库设计3.1 概念结构设计通过对系统的调研与分析,系统主要应完成的功能有:用户管理、学院管理、班级管理、学生学籍管理、成绩管理、课程管理、奖惩信息管理、班主任信息管理、个人信息查询等功能。经分析知,在本系统执行时,先根据不同的操作人员即用户的需要来进入相应的模块,然后可以输入数据或者进行其它的查询或浏览等操作。因此,总体来说,本系统属于一个事务型管理系统。可画图如下,如图3-1所示:接受数处理中学院管理班级管理学籍管理成绩管理课程管理奖惩信息管理个 人 信 息 图3-1 事务型管理系统示意图根据系统结构设计抽象出信息结构,对数据库建模,可得该系统的几个主要实体的具体信息,经分类、聚集画出图形,如下各个图形所示。(1)、用户聚集,如图3-2所示:1用 户用 户 编 号用 户 名 称密 码权 限 级 别 图3-2 用户聚集图 (2)、学院聚集,如图3-3所示:2学 院2.1学院编 号2.3学院名称2.2学院专业 图3-3 学院聚集图 (3)专业聚集,如图3-4所示:3 专业3.1专业编号3.3专业名称3.2所属学院3.4学 制 图3-3专业聚集 (4)班级聚集,如图3-5所示:4班 级4.1班级编号4.3班级名称4.2所属专业4.4班主任老师编号 图3-5 班级聚集图 (5)学生聚集,如图3-6所示:5学生5.1学生编号5.9家庭住址5.10身份证号5.11家庭电话5.12宿舍电话5.13移动电话5.14电子邮件5.2学生姓名5.3学生性别5.4所属班级5.5入学时间5.6出身日期5.8籍 贯5.7学 号 图3-6 学生聚集图 (6)、班主任聚集,如图3-7所示:6.7班主任入职日期6班主任6.1班主任编号6.2班主任姓名6.3班主任电话6.6班主任出生日期6.8班主任性别6.5籍 贯6.4所担任班级编号 图3-7 班主任聚集 (7)科目聚集,如图3-8所示:7科目7.1科目编号7.3科目名称7.2授课教师7.4考试编号 图3-8 科目聚集表 由以上聚集图,经初步设计分E-R图,然后合并各分E-R图,再消除各分E-R图的属性冲突、命名冲突、结构冲突后,得总E-R图,如图3-9所示:设有2学院设 置4班 级n1n12.12.34.14.33专业3.13.21容纳n5学生5.15.25.35.55.65.75.85.95.105.115.125.135.147科目含有nm被任命6班主任6.16.26.36.56.66.76.8117.17.3m考试7.4教学n包含奖惩信息记录学籍信息记录1nn3.4 图3-9 系统总E-R图 其中椭圆中的数字是和以上聚集图中数字相对应的,即每一个数字都是一个实体独一的属性,为了简化图形,特此用数字表示。3.2逻辑结构设计根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。 数据库School中包含以下15个表:Colleges(学院表)、Speciality(专业表)、SpeYears(学制表)、Class(班级表)、ChangeTypesRecode(学籍变动记录表)、ChangeTypes(学籍变动类型表)、PunishmentAwardsRecode(奖惩记录表)、PunishmentAwardTypes(奖惩记录类别表)、AdminInfo(管理员表)、Admin_Level(管理员级别表)、Students(学生表)、Teachers(班主任表)、Sepc_Subjects(专业科目关系表)、Subjecss(科目表)、Examination(考务表)。1、 Colleges(学院表) 表3-1 学院表字段名数据类型长度是否主键是否外键描述备注College_IDChar(2)5是否学院编号College_NameNvarchar(50)10否否学院名称2、 Speciality(专业表) 表3-2 专业表字段名数据类型长度是否主键是否外键描述备注Speciality _IDChar(4)4是否专业编号Speciality _NameNvarchar(50)50否否专业名称Speciality_CollegeChar(2)2否是所属学院参照Colleges表主键Speciality_Years int 4否是学制参照表主键3、 SpeYears(学制表) 表3-3 学制表字段名数据类型长度是否主键是否外键描述备注SpeYears _IDInt4是否学制编号默认值:Identity(1,1)SpeYears_NameNvarchar(50)50否否学制名称SpeYears_YearsInt4否否学制时间单位:年4、 Class(班级表) 表3-4 班级表字段名数据类型长度是否主键是否外键描述备注Classes _IDChar(8)8是否班级编号Classes _NameNvarchar(50)50否否班级名称Class_SpecialityChar(4)4否是所属专业参照Speciality表主键ClassHeadTeacherInt4否是班主任老师编号参照Teachers表主键5、 ChangeTypesRecode(学籍变动记录表) 表 3-5学籍变动记录表字段名数据类型长度是否主键是否外键描述备注ChangeTypesRecode _IDInt4是否记录编号默认值:Identity(1,1)ChangeTypes _IDInt4否是变动类型参考ChangeTypes表主键ChangeReasonNvarchar(500)500否否变动原因ChangeStudentIDInt4否是变动学生编号参照Students表主键ChangeDateDateTime8否否变动时间6、 ChangeTypes(学籍变动类型表) 表3-6学籍变动类型表字段名数据类型长度是否主键是否外键描述备注ChangeTypes _IDInt4是否学籍变动类型编号默认值:Identity(1,1)ChangeTypes _NameNvarchar(50)50否否变动类型名称 7、 PunishmentAwardsRecode(奖惩记录表) 表3-7奖惩记录表字段名数据类型长度是否主键是否外键描述备注PunishmentAwardsRecode _IDInt4是否奖惩记录编号小于0表示惩罚,大于0表示奖励PunishmentAwardsType _IDInt4否是奖惩记录类别参考PunishmentTypes表主键 PunishmentAwardStudentIDInt4否是获奖学生编号参照Students表主键PunishmentAwardContentNvarchar(500)500否否获奖信息PunishmentAwardReasonNvarchar(500)500否否获奖原因PunishmentAwardDateDatetime8否否获奖时间8、 PunishmentAwardTypes(奖惩记录类别表) 表3-8奖惩记录类别表字段名数据类型长度是否主键是否外键描述备注PunishmentAwardTypes _IDInt4是否奖惩记录类型编号编号大于零表示奖励,小于零表示惩罚PunishmentAwardTypes _NameNvarchar(50)50否否奖惩记录类型名称9、 AdminInfo(管理员表) 表3-9 管理员表字段名数据类型长度是否主键是否外键描述备注Admin_IDInt4是否管理员编号默认值:Identity(1,1)Admin_NameNvarchar(50)20否否管理员名Admin_PasswordVarchar(50)50否否管理员密码Admin_LevelInt否否权限级别10、 Admin_Level(管理员级别表) 表3-10管理员级别表字段名数据类型长度是否主键是否外键描述备注Admin_level _IDInt4是是管理员编号Admin_levelnameNchar(10)4否否管理员名字11、 Students(学生表) 表3-11 学生表字段名数据类型长度是否主键是否外键描述备注Student_IDInt4是否学生编号默认值:Identity(1,1)Student_NameNvarchar(50)50否否学生姓名Student_SexNchar2否否学生性别 StudentClassChar(6)6否是所属班级参照Classes表主键StudentNumVarchar(50)50否否学号StudentEnterYearDatetime8否否入学时间StudentOriginNvarchar(50)50否否籍贯StudentBirthDayDatetime8否否出生日期StudentCardVarchar(50)50否否身份证号StudentAddressNvarchar(50)50否否家庭住址FamilyTelVarchar(50)50否否家庭电话DormTelVarchar(50)50否否宿舍电话MobileVarchar(50)50否否移动电话EmailVarchar(50)50否否电子邮件12、 Teachers(班主任表)表3-12 班主任表字段名数据类型长度是否主键是否外键描述备注Teacher_IDInt4是否班主任编号默认值:Identity(1,1)Teacher_NameNvarchar(50)20否否班主任姓名Teacher_TelVarchar50否否班主任电话Teacher_Sex Nchar2否否班主任性别Teacher_InDateDateTime8 否否班主任入职日期Teacher_BirthdayDateTime8否否班主任出生日期Teacher_OriginNvarchar(50)10否否籍贯13、 Sepc_Subjects(专业科目关系表) 表3-13 专业科目关系表字段名数据类型长度是否主键是否外键描述备注Sepc _IDChar(4)4是否专业编号联合主键Subjects _IDint4是否科目编号联合主键14、 Subjecss(科目表)表3-14科目表字段名数据类型长度是否主键是否外键描述备注Subjects _IDInt4是否科目编号默认值:Identity(1,1)Subjects _NameNvarchar(50)20否否科目名称15、 Examination(考务表)表3-15考务表字段名数据类型长度是否主键是否外键描述备注Admin_level _IDInt4是是管理员编号Admin_levelnameNchar(10)4否否管理员名字3.3数据库和数据库表的建立首先建立数据库School,用SQL语句在SQL Server Management StudioExpress中创建数据库,并同时创建日志文件,代码如下:drop database Schoolcreate database Schoolon primary(name=studentMange,filename='d:School.mdf',size=3mb,maxsize=unlimited,filegrowth=10%)log on(name=studentLog,filename='d:School.ldf',size=1mb,maxsize=unlimited,filegrowth=5%)打开数据库use School,然后再用create table语句逐一创建表,创建表的代码如下,只举两例:学院表create table Colleges(College_ID char(2) primary key , -学院编号College_name varchar(50) -学院名称)学制表create table SpeYears (SpeYears_ID int primary key identity(1,1), -学制编号SpeYears_Name varchar(50), -学制名称SpeYears_Years int -学制时间)4系统实现4.1 数据库的连接 在该系统中,针对VS2005版本的特殊性,采用了两种方法对数据库进行连接,一种是附加数据库,另一种是在VS2005安装了精简版的SQL数据库服务SqlExpress前提下,编写特定连接代码进行连接。 下面结合数据库连接图形进行具体解释。如图4-1所示:图4-1数据库连接图 本系统主要采取第二种方法,选择“默认连接”,进入下一个界面后输入用户名和密码就可登录系统,其部分代码实现如下:private void btn_moren_Click(object sender, EventArgs e) try string userid = SystemInformation.ComputerName; string strConnectionString = "Data Source=" + userid + "Initial Catalog=School;Integrated Security=True" SqlServerConnection.LianJie(strConnectionString); string strsql = "select * from Colleges" DataTable dt = SqlServerConnection.ExecDataTable(strsql); this.Hide(); UserLoginForm user = new UserLoginForm(); user.Show(); catch MessageBox.Show("连接数据库失败!n请确定服务是否开启", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); 第一种方法则要附加数据库后,在输入的信息全部正确的情况下,点击“确认连接”按钮后才可成功登录,这主要是对管理员以上级别的用户实现登录,代码如下:private bool YZ()/验证输入 if (txt_fwq.Text = "") MessageBox.Show("服务器名称不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); return false; else if (txt_database.Text = "") MessageBox.Show("数据库名称不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); return false; else if (txt_userID.Text = "") MessageBox.Show("用户名不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); return false; else return true; private void LJ()/连接 if (YZ() string server = txt_fwq.Text; string database = txt_database.Text; string name = txt_userID.Text; string pwd = txt_userPwd.Text; try SqlServerConnection.LianJie(server, database, name, pwd); string strsql = "select * from Colleges" DataTable dt = SqlServerConnection.ExecDataTable(strsql); this.Hide(); UserLoginForm user = new UserLoginForm(); user.Show(); catch MessageBox.Show("连接数据库失败!请确定信息是否正确n或者服务是否开启", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); 4.2 系统功能模块设置 1、在数据字典模块中的一个重要功能就是组织机构设置设置,此项实现对数据库的具体操作。含有学院设置、专业设置、学制设置、学科设置、班主任设置、班级设置等功能,实现增加、修改、删除、查询操作。对话框如图4-2所示: 图4-2 组织机构设置对话框 2、学生管理模块,实现新生的添加以及学生信息的查询、删除修改等功能,其中添加新生的对话框设置如图4-3所示:图4-3新生添加对话框 3、成绩管理模块,实现对学生各课程成绩的添加、修改、删除以及按条件的对成绩进行统计,并实现了可按条件查询成绩的重要功能,查询成绩对话框设计如图4-4所示:图4-4成绩查询对话框 4、班级管理模块,实现对全校班级的有效管理,完成了对班级的浏览、添加、删除功能,对班级信息的查询对话框设置如图4-5所示:图4-5班级信息查询对话框 5、用户管理模块,实现对用户的添加、删除、密码修改等功能,其添加用户对话框如图4-6所示:图4-6 添加用户对话框5功能测试及实现 该程序实现了学生管理系统应有的功能,即学生管理功能、成绩管理功能、班级管理管理功能和系统维护功能。下面显示的是以少量数据对该系统进行的功能测试,它表明该系统能完好正确的运行,即该系统的功能都已经按要求顺利实现。5.1登陆界面在数据库连接时点击“默认连接”按钮后,程序运行出现登陆界面,要求用户输入用户名和密码,当用户名和密码均正确时才能进入系统,如图5-1所示:图5-1 用户登录对话框5.2主界面用户登陆系统以后,将出现主界面,用户可以选择要执行的操作,如图5-2所示:图5-2 系统主界面5.3各功能模块的实现1、各功能的实现均与设计对话框相符合,如学生管理,当用户在主界面选择了一个特定学生时,只要单击“学生管理”控件再选择查看就能快速的显示出该学生的具体信息,管理员还可以进行修改有关信息。界面如图5-3所示:图5-3学生基本信息查看功能的实现 2、学生管理模块的功能也都一一实现了,如对学生成绩的添加,在成绩管理模块中选择添加成绩功能后,弹出如下对话框,在选择了学院、专业、班级、名字后就可输入相应的成绩了,还可实现对成绩的修改。如图5-4所示:图5-4 添加成绩功能的实现 3、在班级管理模块中,添加、删除、查询、修改等功能也都一一实现了,如下图为在班级信息浏览界面实现查询的功能,如图5-5所示: 图5-5 班级信息浏览与查询功能的实现 4、在系统维护模块中,学院设置、专业设置、学制设置、学科设置、班主任设置、班级设置等功能顺利实现,下图为在班主任设置中,实现对班主任的添加、修改、删除以及原有班主任信息的浏览,如图5-6所示: 图5-6 班主任设置各功能的实现 5、该系统还实现了对用户的有效管理,超级管理员有添加、删除用户的功能,如图5-7所示:图5-7 用户管理功能的实现6 结束语经