摘 要
计算机飞速发展的今天,计算机的应用已在社会的各个领域深入开来,无论是在商业,工业还是政府部门都早已普及,如今就连教育行业也把计算机应用到各个方面的工作中,本次毕业设计就是把计算机应用到学校学生信息管理中的范例。
本设计采用Microsoft SQL Server 2005作为数据库,利用C#作为开发工具,针对教育系统中学生信息的数字化管理而开发。本系统可使教职员工减轻工作压力,比较系统的对教务、教学上的各项服务和信息进行管理,同时,可以减轻劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。本系统有较好的兼容性。本系统力求系统全面性、通用性,它可适用于不同的教育机构。
关键词
学生信息管理 三层结构 角色 Web服务
目 录
第一章 学生信息管理系统概述
1.1 系统的主要功能
1.2 设计方法概述
1.3 学生信息管理系统的现状分析
1.3.1 学生信息管理系统应用的现状
1.3.2 管理系统开发的目的
第二章 系统开发平台
2.1 数据库系统的选择
2.2 系统开发工具的选择
第三章 系统框架设计
3.1 系统开发梗概
3.2 系统开发的步骤
3.3 系统的逻辑体系结构
第四章 系统概要和数据库设计
4.1 系统功能模块图
4.2 功能的说明
5.1 数据库及表的设计
5.2 数据库中的数据库关系图
5.3 数据库中存储过程的设计
5.3.1 存储过程的含义
5.3.2 存储过程的应用
第五章 系统详细设计及实现
5.4 系统模块设计
5.4.1 主窗口的设计
5.4.2 查询
5.4.3 密码修改
5.4.4选修课选课
第六章 开发系统遇到的问题和获得的经验
6.1 系统开发过程中遇到的问题
6.1.1 数据库连接
6.1.2 数据库中的表设计
6.1.3用户权限问题
6.2 从系统开发中获得的经验
第七章 系统评价
7.1 系统的特点
7.2 系统的缺点
7.3 系统总结
7.4 将来可能提出的要求
致 谢
参考文献
引 言
学生信息管理系统(Student Information Management System),以下简称SIMS,是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统(Management Information System)。它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高,计算机科学日渐成熟, 使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。这些优点能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。用计算机制作的学生信息管理系统还可以通过功能强大的Internet网及时的向学生的家长传递该生在校的最新成绩,有助于学校与家长的信息互动,为更好地把握学校的教育方针起到了一定的促进作用!因此,开发这样一套管理软件成为很有必要的事情。
第一章 学生信息管理系统概述
1.1 系统的主要功能
学生信息管理系统具有以下功能:
学籍管理:对学生的信息档案进行管理,主要包括学生档案信息的修改、删除、添加、档案查询及档案输出等,其中档案查询可以根据学号、姓名查询需要的信息;档案输出可以输出学生档案、成绩、课程表等。学生档案记录主要包括:学号、姓名、出生日期、年龄、性别、政治面貌、入学时间、个人简介、照片、家庭住址、邮编、所在系别以及所学专业等字段。
成绩管理:对学生的成绩进行管理,主要就是成绩查询,成绩查询可以按学号、姓名进行查询。成绩记录主要包括:学期、学号、姓名、课程号以及成绩字段等。
课程管理:学生可以通过该模块进行课程表查看、打印课程表。
选修课选择:对学生报选修课进行管理,学生可以对自己喜爱的课程进行选择。
系统维护:教师对学生的密码进行管理,主要包括增加新用户和用户修改。其中用户修改可以实现对学生的密码修改和学生用户名的删去。
系统辅助工具:通过该模块用户可以打开一些辅助工具,如记事本和记事本。
退出系统:离开本学生信息管理系统。
1.2 设计方法概述
本学生信息管理系统是采用面向对象的程序设计思想进行编制的,整个系统由若干个表单、类、报表以及一个主菜单组成,有项目管理器统一管理全部程序的编写和调试。用户可以通过主菜单或总表单调用系统的各项功能。
1、面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装和可重用性,便于程序的维护与扩展。
2、所谓的对象是一种抽象的名称,用来对应实现世界存在的“东西”。一个窗口、一个按钮、一个菜单都可视为一个对象,而按钮对象、菜单对象、又会出现在窗口对象中,因此按钮对象、菜单对象便是窗口的组件之一。对象内部的数据是不能随意更改的,必须由外部向其传递信息,再由对象按其方法加以处理。用户无需知道其任何细节,操作是封闭的,对象之间能通过函数调用相互通信。
3、类可视为一个产品模具、一个模块。在面向对象设计中,类是对象的原型,是对象的制作器。类的概念是面向对象程序设计最重要的特征。所谓类,是指由数据结构及其相关操作所形成的集合,描述该类任一对象的共同的行为特征,是对一组性质相同的对象的程序描述,概括了对象的共同性质和数据。
4、面向对象设计的核心是类的设计。
5、设计的学生信息管理系统也是建立在一系列类基础之上的,其编程的思想是:先根据一定的需要创建一系列的子类或直接调用PB提供的基类,编制程序时,由这些类派生出相应的对象,所派生出的对象继承了其父类所有的功能,而且具有很好的封装性,这样就可利用派生出的对象像搭积木一样来设计自己的程序。打个比方,就比如要制造一台机器,首先要制造各种零件的模具,然后用制造好的模具生产出所需的零件,所有这些做完后,剩下的就只是如何把这些零件组装起来,这样一台机器就很容易制造出来了。实际编程也是如此。每个表单都是由一定数量的对象按某一种方式组合在一起的,程序编制的核心是类的设计。
1.3 学生信息管理系统的现状分析
1.3.1 学生信息管理系统应用的现状
随着我国国民经济建设的蓬勃发展和社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。建设一个科学高效的信息管理系统是解决这一问题的必由之路。而各大高校对学生信息管理也面临着同样严峻的形势。学生信息管理作为高校内部的一种学生基本档案管理也是如此,由于高校的在校人数较多,每一位学生的具体实际情况也不尽相同,如果没有一个完整的管理系统去完成,将使工作变得复杂冗烦,并且对于工作的效率也将使一个致命的打击,使无论如何也无法适应现代社需要的。
1.3.2 管理系统开发的目的
为了适应现代化社会的发展,管理系统就应运而生了,目的很简单就使为使现代管理中排除复杂和不准确性,并且适应现代发展。系统开发后,可以对工资进行管理、查询、打印等一系列的功能的实现。便于工作效率的提高。
第二章 系统开发平台
2.1 数据库系统的选择
数据库选择的原则很简单,主要目的就是为了系统做服务的,当然最简单的任务就是简单易于操作,且要具有可以随时修改的功能,最重要的一点就是数据库要对数据的操作要准确,还要尽可能的精确。这些都是数据库选择的最基本要求。因此本系统选择了SQL作为系统的数据库。SQL数据库是在大学期间学习的最为透彻的数据库之一,并且也符合上述的条件,因此,工资管理系统选择此数据库作为系统数据库。
2.2 系统开发工具的选择
纵观现今市场上的一大批的开发工具,可以说另人眼花缭乱,很难做出取舍,有些易于操作,但不是很适合工资管理系统,有些适合,但是开发起来较为复杂和困难。因此开发工具的选择也是同样的重要,要选择便于上手操作容易的开发工具。C#虽然现在不多使用,但是,对于工资管理系统来说,不可以说不是个很好的开发工具。因为它具备一系列的功能,简单、易操作,并且不失大方。作为工资管理系统毕竟不是供娱乐的软件,因此不可以做得太过于花哨,更应该接近于朴实大方。所以,工资管理系统利用C#开发是再好不过的工具了。
第三章 系统框架设计
3.1 系统开发梗概
学生信息管理系统顾名思义,就是对学生信息的管理,其实所要实现的功能就是对学生信息进行管理,要实现的功能就是对学生有关信息的录入、查询、修改,数据的备份。每个过程都是需要精密的设计。
3.2 系统开发的步骤
(1)系统的构思。基于以上的原因,所以对系统进行构思,目的就是利于社会发展,符合工作的需要。
(2)系统的设计。鉴于系统所要实现的功能,产生了学生信息的录入、查询、修改,数据备份,以及相关信息的打印。
(3)数据库的建立。根据系统需要,需要建立学生信息表、成绩信息表、课程信息表、管理员密码表、选修课信息表等。
(4)各个窗体的建立。窗体又很多,登陆窗口,主窗口,各个查询、修改窗口,数据初始化、备份窗口。
(5)系统的测试。当把系统完成后,要对系统进行测试,测试是否可用和是否存在错误。
(6)系统的维护。如果测试结果没有出现问题,那么就是系统产生后的维护问题了。系统维护是很重要的方面,当系统出现问题时就要利用系统维护来维护数据了。这个包括数据初始化和数据备份。
系统开发步骤从大体上可以分为这些,以上进行的是对开发步骤的简要分析,开发过程中肯定要比这个所说的要细,因为根据不同的需要要进行一些改变,如果不改变是不适应实际应用中的要求的,每个单位大小能力都不同,自然需要根据自己的能力来进行不同的开发。
3.3 系统的逻辑体系结构
本系统采用当前流行的B/S设计模式,基于Windows.NET平台构建Web应用程序,把系统划分为数据层、业务逻辑层和表示层。逻辑体系结构如(图3-1)所示:
表示层 |
业务逻辑组件层 |
数据层 |
SQL Server |
图3-1 |
(1) 表示层:即用户接口层,是由ASP.NET技术的Web窗体和Web用户控件组合起来构成的。表示层运行在客户端浏览器上,产生用户视图。在业务逻辑层发生变化时通过改变表示层的组合以及做一些简单的调整就可以很好地适应新的业务逻辑层。
(2) 业务逻辑层:这一层是从整个系统功能设计中抽取大量具有共性的模块,把它们统一设计成为系统公共的可重用的组件。由COM+组件服务管理器统一配置管理组件。
(3) 数据层:用来管理和存储数据,实现数据访问功能,设计数据库,定义数据表结构、表的索引、数据表之间的关联,定义数据库中的视图以及操作数据的存储过程,设计数据库的安全等等。该层由数据库管理系统如SQL Server来管理和控制。
第四章 系统概要和数据库设计
4.1 系统功能模块图
系统首页 |
系统维护
|
退出系统 |
密码验证 |
主表单 |
退出系统 |
学籍管理 |
成绩管理 |
选修课选择择 |
系统辅助工具 |
图 4-1
以上(图 4-1)为功能模块图,各个部分的功能在功能模块介绍中将介绍.
4.2 功能的说明
登陆窗口的功能是让使用者选择进入系统,学生和教师进入的系统是不同的。学生登陆系统只能进行学号、姓名查询,选课;教师登陆可以对学生的有关信息进行删去、修改、录入。
教师进入系统后可以看到菜单上显示录入、查询、修改、打印、数据初始化、数据备份、退出。录入菜单是对员工信息、员工工资以及员工密码的录入。查询,包括对员工信息和员工工资的查询。修改中包括对员工信息和员工工资的修改,还有对管理员和员工密码的修改,以及对工龄的修改。打印菜单的功能是打印工资,其中可以对打印进行设置。数据初始化是针对新的使用者,可以初始化系统中的演示数据。数据备份,对系统中已经存在的数据进行备份,以防不测事件发生。数据初始化和数据备份是系统的维护方面的功能。
员工进入系统后,输入自己的编号和密码后进入查询系统,毕竟员工不是管理员,只可针对自己的信息进行查询、修改,查询可以查询两个方面,一个是查询信息,一个是查询工资,另一个功能就是可以对自己的密码进行修改,这个功能就类似于现在很多服务窗口行。
5.1 数据库及表的设计
数据库是所有系统设计中的灵魂部分,没有数据库的系统是毫无价值的,是个残废的系统,所以,数据库是个很重要的部分。下面就详细介绍数据库的设计。
首先看学生信息表(图 5-1)
图 5-1
可以看出,学生信息表里其他都可以为空,但是学生序列(考号)不可为空,因为学生序列是主键,主键不可以为空。
其次看用户密码表(图 5-2)
图 5-2
在用户密码表中用户编号、用户名、密码、用户角色都不可以为空,因为这两个在数据库中都是起到关键的作用,所以,不可以为空。
第三,学生成绩信息表(图5-3)
图5-3
从此表中可以看出,虽然很多信息不是主键,但是,同样是不可以为空的,因为为空之后,学生信息成绩将不准确,因此同样也不可以为空。
第四,学生课程表信息表(图5-4)
图5-4
表中的“xingqi”即星期,“one”即1-2节课,“two”即3-4节课,“three”即5-6节课,“four”即7-8节课,其中除星期外都可以为空。
第五、选修课信息表(图5-5)
图5-5
系统中所以到的其他的表都与以上的表设计类似,这里就不作详细的介绍了。
5.2 数据库中的数据库关系图
数据库关系图是数据库中对象的图形表示。数据库关系图可以是数据库结构的整体或部分图片;它包括表的对象、表所包含的列和它们之间的关系。
创建一个SQL表关系图会得到许多好处。 因为数据库关系图的最重要的好处是保护数据的完整性,这样,数据库中的信息数据就不可以随便被删去了。 除了数据库,还有另一个巨大的好处:SQL表关系图使用许多对象/关系映射器,创建一个结构化的对象模型。通过数据库关系图,我们能更清楚地掌握数据库中各个表之间的关系和约束。本系统的数据库关系图如下(图5-6)所示。
图5-6
5.3 数据库中存储过程的设计
5.3.1 存储过程的含义
当开发一个应用程序时,为了易于修改和扩充,经常会将负责不同功能的语句集中起来而且按照用途分别独立放置,以便能够反复调用,而这些独立放置且拥有不同功能的语句,即是“过程”(Procedure)。SQL Server 2005的存储过程包含一些Transact-SQL语句并以特定的名称存储在数据库中(存储过程也是一种数据库对象)。可以在数据库中声明对象、有条件的执行以及其他各项强大的程序设计功能。
5.3.2 存储过程的应用
本系统应用一些存储过程来实现对学生信息的增加、删去、修改。如对学生学号的增加、删去、修改,见(图5-7)、(图5-8)和(图5-9)。
图5-7
图5-8
图5-9
第五章 系统详细设计及实现
5.4 系统模块设计
5.4.1 主窗口的设计
主窗口也就是工资管理系统登陆进入的敞口,其上附着主菜单,想要实现功能通过对菜单的操作实现,也就相当于所有功能的汇总。
在主窗口中还体现着整个系统的功能和架构。如下(图5-10)所示:
图5-10
5.4.2 查询
查询菜单中包括学生学号查询、学生姓名查询和查询成绩和课程表图。现只例举学号查询,见(图5-11)。
图5-11
在(图5-11)中可以查询莫一个学生的信息,莫个班级的学生信息,甚至整个系别的学生信息,可以查询到的基本信息有考号、班级、学号、姓名、性别。若要查看其他的信息,则可以通过单击“查看基本信息”,弹出(图5-12)所示的窗体。
图5-12
此窗体有权限设置,老师可以对学生的基本信息进行增加、删去、修改,而学生不可以对信息进行修改。若是以学生身份登陆则窗体中的菜单是灰色不可用。其中“导入excell”菜单按钮可以将“datagridview控件”中数据信息导入excell表格中,导出后如(图5-13)所示。
图5-13
5.4.3 密码修改
此系统的教师登陆身份就相当于其他系统中的管理员身份,他可以对其他用户的用户名和密码进行修改,他也可以增加用户和删去用户。学生可以通过注册获得权限登录系统,但学生不可以对已经注册过的信息自己进行修改,只能在老师的指导下进行修改。如(图5-14)所示。
图5-14
5.4.4选修课选课
此功能是学生的特权。只有学生可以选课,在选课过程中,每一位学生最多只能选修四门课程,若超出了这个规定则会跳出错误提示消息框,要求你重新选课。若你选课已经完毕,可以查看到你所选课的课目。见(图5-15)
图5-15
第六章 开发系统遇到的问题和获得的经验
6.1 系统开发过程中遇到的问题
6.1.1 数据库连接
打开SQL Server 2005是,连接到服务器的一些参数为:服务器类型为“数据库引擎”,服务器名称“.”,身份验证“windows 身份验证”,点击链接后,进入microsoft SQL Server Management Studio,在安全性/登陆名,打开sa的属性,修改SQL Server身份验证的密码,此密码设置和C#中与数据库连接的属性一致。关闭microsoft SQL Server Management Studio,重新打开,选择“SQL Server身份验证”的身份验证,登录名为“sa”,密码为刚才设置的密码,点击链接即可。
6.1.2 数据库中的表设计
一开始,我在设计数据库中表时,设计了两张不同的表:xuehao和name,在表示层分别对学生的学号和姓名进行查询并进行修改。但是后来,我发现这样的设计并不合理,因为,若要增加一名学生信息,则要在学号查询窗体和姓名查询窗体里都要增加才能实现对此学生信息的增加成功。这样就大大增加了对学生信息的管理难度,且这样的操作完全是徒劳。后来,我把这两张表整合到一张xuehao表里了,即在表xuehao里添加所需的字段,姓名查询窗体中的datagridview控件数据源也选择表xuehao。这样,在其中一个窗体中对学生信息进行修改后,在另一个窗体中进行查看都是一致的,确保系统的严密性性和一致性。
6.1.3用户权限问题
此系统用户登陆一共有两个角色:学生和教师,即是一般用户和管理员用户。若以学生身份登陆则只可以进行查询操作,只有教师身份才可以对学生的信息进行增加、删去、修改操作。但是,我在获得用户登录权限是遇到了困难,输入过代码后,系统在运行过程中并不能区别学生和教师的权限。这个问题我思考了一段时间但没能解决,后在老师的辅导下,我攻克了这个难题。之后,我掌握了问题的解决方法。在用户登陆的时候,获得一个角色,这个角色要一个窗体一个窗体的传递到后面的窗体才可以使用。
6.2 从系统开发中获得的经验
若想开发一个比较成功的系统,系统开发出来可以将它投入使用,能实现它的开发价值,那在系统开发前要对系统的结构和数据库中的表、存储过程作认真周密的思考与规划。在开发过程中要认真和细心,因为每一个再小的环节可能导致整个系统无法正常运行。在遇到问题的时候要镇定,冷静的思考胜过一切徒劳。擅于运用网络资源。寻求他人的帮助也未尝不可。
第七章 系统评价
7.1 系统的特点
学生信息管理系统的特点很鲜明,就是利用计算机来管理学生信息系统,并且还具备了学生自主查询的功能,更加大大较快了工作效率,而且在系统中还具备了,初步的系统维护。
学生信息管理系统利用一系列的功能实现了学生信息的增加、删去、修改,学生信息的查询、用户密码修改、学生选课、课程表查询等功能。
虽然这些功能很简单,但是,在毕业设计过程中却也是要花一番功夫的,并不是很简单就可以完成的。所以,学生信息管理系统还是有可取之处的。
7.2 系统的缺点
学生信息管理系统虽然说是利用了计算机管理学生信息系统,但是,这只是大型系统的雏形,而且开发人员少,周期短等各方面因素造成系统的维护方面并不是很好,而且这个系统只能给较小学校作为管理系统,并不是很适应大高校,因为高校的要求更高,而且要求的方面要更加精准,不可以存在什么漏洞,此次开发的学生信息管理系统必然存在漏洞或者是没有考虑全面的方面。而且,系统界面做的并不是很美观,有些地方很不适合学生信息管理系统。可是,总得来说,还是可以说是一个完整的系统吧。
而且学生信息管理系统的保密措施并不是很好,像管理员密码只要能看到谁都可以输入,这在学生信息管理中并不是很好的方面,按道理应该是处理的更好些,要不系统其实就没有什么安全系数的。
7.3 系统总结
在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对学生管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。虽然网络在学生管理系统中的应用不是很多,但是未来的发展方向,在本次开发过程由于硬件的限制,未能实现网络功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信本学生管理系统是一套学校在日常管理中必不可少的管理软件,通过开发这个系统,我掌握了开发项目的过程,了解了基本知识,巩固了我对Visual studio 2005和SQL Server 2005的学习,但在这次毕业设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
7.4 将来可能提出的要求
上面也分析了,因为开发系统时各方面的原因,在将来可能会提出进一步晚上系统,将可能发生的问题缩减到最小,并且进一步开发系统,使系统适应各种类型、各种方面的公司,并且吧系统做到最完美,界面舒服大方。
以上也说了,学生信息管理系统的安全系数并不是很高,可以任由人进入,因此还是有待于要完善的,比如说,可以增加一个登陆口令,或者是声音识别,再或者是指纹识别。这些功能在以前看起来遥不可及,但是,现在想要实现这些功能也不是不可能的。一旦实现这些功能之后,将会更适应现代各行业的需求,所以,在这方面可以多下点功夫。
虽然这些可能提出的要求说起来很简单,但是,实施中还使会遇到很多问题,这有待于充实自身的知识之后才可以完成的目标,当然,还使会希望自己把系统做的更好,更合理。
在论文即将完成之际,回顾紧张但又充实的学习和开发过程,我在此向所有关心我的及帮助我的老师和同学们致以最真诚的感谢。
在本次毕业设计中,我从指导老师——郑友庆老师,身上学到了很多东西。他认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到很大的提高,这对于我以后的工作和学习都有一种巨大的帮助,在此感谢他耐心的辅导。在撰写论文阶段,郑老师几次审阅我们的论文,提出了许多宝贵意见,没有他的指导,我们就不能较好的完成课题设计的任务。
另外,我还要感谢在这几年来对我有所教导的老师,特别是胡佩祥老师,他们孜孜不倦的教诲不但让我学到了很多知识,而且让我掌握了学习的方法,更教会了我做人处事的道理,在此表示感谢。同时,在系统开发过程中还有同组的同学也给了我不少帮助,这里一并表示感谢。
[1] 邵鹏鸣主编.《C#面向对象程序设计》【M】.第1版.北京:清华大学出版社,2008年,P127—454。
[2] 周奇主编,《SQL Server 2005数据库基础及应用技术教程与实训》【M】.第1版.北京:北京大学出版社,2008年,P88—168。
[3] 陆丽娜主编,《软件工程》【M】.第1版.北京:经济科学出版社,2000年,P41—163。
[4] 丁亚涛主编,《C言语程序设计》【M】.第2版.北京:高等教育出版社,2006年,P114—181
。