Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

【数据库】学生档案管理系统

$
0
0


问题描述

要求:模拟一个学生档案管理系统,系统用户是相关的教师和学生,日常的主要管理工作有:实现对学生档案信息的增加、删除、修改、查询等功能,学生基本信息的查询和管理、学生档案变动信息的查询和管理等。根据上述需求进行分析,系统至少应该实现如下功能:
(1)软件学院各年级的班级管理功能,包括班级信息(记录编号、年级、班级等信息)的查询、添加、删除、修改。
(2)学生信息管理功能,包括学生基本信息(学号、姓名、性别、民族、出生日期、籍贯、入校日期、所在院系、职务等信息)的查询、修改、删除、增加。
(3)教育经历管理功能,包括(教育经历编号、学号、开始日期、终止日期、学生名称、职务等信息)添加、查询、删除、修改。
(4)档案管理功能,包括(退学、休学、调转管理)的查询、添加、修改、删除。
(5)系统管理功能,包括(包括编号、姓名、密码、权限等信息)的添加、删除、修改、查询。

问题分析

传统的纸质档案的管理为每个学校的档案管理带来了一定麻烦,文件系统下的档案管理同样也显出弊端,在日益信息化的现在,用数据库来管理数据信息已然成为大的趋势。
我们小组准备针对此做一个学生档案管理系统。针对的用户有三类用户,分别为学生、教师与档案管理员。学生与教师只能进行查询而不能进行增删改查等功能,后述管理类型的功能只有管理员有权限进行,因此三者登录后所看见的界面就是不同的,无权使用该功能的用户我们直接就不让其看见此选项卡。
在设计数据库时,考虑到学生档案实际上就是由学生基本信息、奖惩记录等组成,因此我们认为没有必要为其建一张新的表或是将其看做一个实体,因为若是将其单独作为一个实体则其属性将会与学生的属性产生大量的重复,数据库中将会有大量的冗余,这是十分不科学的。我们通过建立视图即建立一个档案的虚表对其进行操作。我们认为权限表也是没有必要的,从实际角度来看,用户的权限是固定不变的,也是显而易见的,单独将其拿出建表反而觉得有些多余。根据我们的思考以及一些现实状况,我们对此进行了数据库的设计。
具体的数据库实现我们准备使用PowerDesigner进行E-R图与表的转换,之后用SQL Server2008进行数据库的建立。逻辑层的实现我们准备通过C#.Net Framework 3.5进行代码的编写,运用ADO.NET与LINQ相结合的方式对数据层数据进行操作。UI层我们设计了友好的人机交互界面以及通过PS手段对窗口进行美化,方便用户使用,也让用户有一个良好的使用环境。

系统的分析与说明


系统的流程分析



系统功能分析

本系统主要包括学生基本信息管理、班级信息管理、学生教育经历管理、学生基本档案信息管理、系统用户管理5大模块。系统基本功能块和功能如下所示:

学生信息管理模块

学生信息模块为经过授权的学生用户提供该学生对应档案的基本信息查询——包括学生学号,姓名,性别,电话,出生年月,籍贯,家庭住址,入校日期,职务,档案号,学院,专业,年级以及班级。对于除本人之外的学生,学生用户没有查看权限。经过授权的教师用户可以通过输入学生学号查看数据库中所有学生的基本信息。
学生信息模块为经过授权的档案管理员提供查看所有学生的基本信息的功能,同时提供学生基本信息添加,修改及删除功能。添加学生信息,档案管理员须完整填写学生学号,姓名,性别,出生年月,籍贯,入校日期以及档案号(电话,家庭住址及职务为选填信息),同时要对应为学生选择学院,专业,年级和班级;删除学生信息,档案管理员要输入对应学生学号,存在此学生则从数据库中删除,级联删除学生所有的教育记录以及奖惩记录;修改学生信息,档案管理员需先输入要修改的学生学号,若有此学生系统会显示学生相关信息,档案管理员只需在需要修改的信息项上直接修改并提交。

班级信息管理模块

班级信息管理模块,就是专门查询班级信息查询的模块,该模块的为同学,老师和档案管理员提供有关班级信息的查询功能。首先该模块根据登录用户的不同身份,判断为用户提供不同的功能。当学生作为系统用户登录的时候,则不能进行班级的查询。当教师作为系统用户登录的时候,则只能对班级信息的进行基本的查询。班级信息的查询功能通过教师户输入的需要查询的班级信息情况(需要查询班级所属的学院名称,专业,以及班级所在的年级和班级名称等情况),向教师反馈回所查询的班级的人数和具体学生的姓名和班号,同时教师还可以得到此班级的管理老师的相关信息。当档案管理员作为系统用户的时候,则可以对班级的信息进行查询,修改,添加和删除。班级的添加,修改和删除与班级信息查询的基本原理都比较相似,都是通过档案管理员输入的有关需要查询的班级的相关信息,其中,在班级信息修改模块中可以选择班级号作为需要修改班级的输入参数,通过这个班级号查找出需要修改的班级信息,按照管理员输入的信息进行修改。在班级信息添加模块中,则可以在该系统数据库班级表中添加到一个新的班级,添加新班级的时候需要管理员输入班级所属的学院,专业,年级名称和班级名称。在班级信息删除模块中,则可以在该系统数据库班级表中删除一个班级,删除的班级需要时班级表中实实存在的一个班级,删除班级的时候需要档案管理员输入需要删除班级的所属学院,专业,年级名称和班级名称。
 

档案信息管理模块

档案相关信息模块为经过授权的学生用户提供该学生学籍状况以及奖惩记录的查询——学籍状况包括“在读”,“休学”,“退学”,“转出”4中状态;奖惩记录记录学生所获各种奖励或惩罚的事件、地点、日期及编号信息。对于本人之外的学生,学生用户无查看权限。经过授权的教师用户可以通过输入学生学号查看数据库中所有学生的档案相关信息。
档案相关信息模块为经过授权的档案管理员提供所有学生的信息查看功能,同时提供学籍状况管理功能以及奖惩记录管理功能。学籍状况管理可以修改学生的学籍状况;奖惩记录管理需先输入学生学号显示该生所有奖惩记录,然后可以对应添加,修改,删除相应记录项。

教育经历管理模块

本模块主要是负责管理学生的教育经历,从小学一直到现在的教育经历。共分为4个模块,分别为:教育经历的查询、教育经历的添加、教育经历的删除与教育经历的修改。
对于登录的用户,我们首先判断其登录身份,是学生组用户,教师组用户或者是档案管理员。若是学生身份登录的用户,我们只能允许其查询自己的教育经历,而若是以教师身份及管理员身份登录的用户,我们允许其查询所有的用户的教育经历。
对于教育经历管理(包括教育经历的添加、删除、修改),只针对于管理员开放,即只有管理员有权限对其进行操作。用户输入完整的教育经历信息既可以添加到教育经历的表中。对于教育经历的修改选项卡,用户通过输入教育经历编号选择要修改的属性,输入要变更的新值,对教育经历进行修改。对于教育经历的删除,管理员可以通过进行学号查询出教育经历编号,再进行删除,若管理员已经知道了教育经历编号则可以直接进行删除。

用户信息管理模块

本系统用户主要是教师、学生以及档案管理员。只有档案管理员有权力对于用户进行添加及删除。若用户向管理员提交申请修改密码,则可以由管理员对于用户的密码进行修改。而这一模块对于普通用户是不可见的。
对于管理功能,教师与学生所在的用户组是不可见的,所以直接就根据用户登录的身份来决定该模块是否对其可见。非管理员用户组直接对于管理模块均不可见。
本系统提供的系统用户管理模块选项卡只针对于档案管理员可见,此模块用于系统用户的维护,因为在学生信息管理模块中已经提供学生用户的删除功能,因此此处只提供教师组用户的删除功能与教师组与学生组用户的密码维护功能。
管理员是不可以修改同组同权限的管理员密码的。
对于密码的维护,我们在登陆界面时以提供自己用户对于自己密码的修改功能,此处每个用户仅仅只能修改自己的密码,无权修改他人的密码。

数据库的设计与实现


 局部E-R图

1、学生-奖惩记录

学生与奖惩记录之间是多对多的关系,一个学生可以对多个奖惩记录,一个奖惩记录也可以对多个学生(比如获得同样的奖项或惩罚)。一个学生可以没有任何奖惩记录,也可以有多个奖惩记录。一个奖惩记录至少对应一个学生。若无学生对应,则此条奖惩记录应当不存在。

2、学生-教育经历

学生与教育经历也是多对多的关系。一个学生可以拥有多个教育经历,一个教育经历也可以对应多个学生(同班同校的同学)。一个学生至少拥有一个教育经历(在此我们不考虑其直接上大学的可能),一个教育经历至少要对应于一个学生,否则我们认为此教育经历可以是不存在。

3.学院-专业-班级-学生-教师
专业与学院之间是多对一的关系,一个学院可以有多个专业,但是一个专业只能对应一个学院
教师与班级之间是一对多的关系,一个教师可以属于多个班级,但是一个班级只能有一个教师
班级与学生之间是一对多的关系,一个班级可以有多个学生,但是一个学生只能属于一个班级
班级与专业是多对一的关系,一个专业可以有多个班级,但是一个班级只能属于一个专业。

数据库的整体E-R图


数据库的PDM




(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经允许请勿用于商业用途)




作者:xiaowei_cqu 发表于2013-3-23 0:39:08 原文链接
阅读:112 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>