您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 绩效管理 > 数据库学生考勤管理系统设计报告
1课程设计说明书课程设计名称:数据库系统课程设计课程设计题目:学生考勤管理系统学院名称:信息工程学院专业:计算机科学与技术班级:100451学号:10045124姓名:评分:教师:20年月日由每位学生填写、由任教教师保存待查2一、需求分析:用户是系统的最终使用者,根据分析,本系统应当包括学生、班主任、任课老师、院系领导、学校领导、系统管理员六类用户。由于没有做前台以及设置管理权限等,所以目前为止可以为这几类用户提供这方面的人查询需求。比如学生可以查看自己的个人信息并且进行一些修改,还可以查看自己所在班级的信息;班主任可以查看自己的信息、所带班级信息以及学生信息;授课老师可以查看自己教授的课程的信息以及所带班级信息;还有就是提供了一些请假信息查询、出勤情况查询以及一些相关规定产生的处理结果。通过这个数据库,不仅能妥善管理相关的学生信息,还能处理一些考勤方面的情况。更需要说明的是这里面还包含一些简单的选课系统雏形,如有需要的话,改善后还能当做选课系统进行使用。下面具体说说各个实体间的需求分析:1.学生用户需求描述:学生对本系统的主要需求是:在线请假以及查看在校期间所有的上课出勤信息。在线请假需求:学生请假的全过程当中,学生可以随时查看请假的详细进展情况。查看出勤信息需求:学生可以查看在校期间所有学期上课出勤的详细信息,如:查看“数据库系统”这门课程在整个学期请假、旷课多少次等信息。其它需求:查看本人的基本信息,如本人的所属的院系、年级、专业、班级、学号、姓名、性别等。2.任课老师用户需求描述:任课老师对系统的主要需求是:管理所教班级学生的上课出勤信息以及3查看所教班级学生的上课出勤信息。管理学生上课出勤需求:随着时间的变化,自动列出还没有在网上公布的学生上课出勤信息,系统自动根据学生请假系统,决定学生上课出勤的最终结果。查看学生出勤信息需求:查看所教班级学生整个学期出勤情况。3.班主任用户需求描述导员对本系统的主要需求是:审批本班学生本学期的在线请假以及查看本班学生本学期所有课程的上课出勤信息。审批学生请假需求:本班学生本学期在线请假申请后,自动提示导员有等待审批的请假信息,导员针对请假申请信息进行学生请假审批。查看学生上课出勤信息需求:查看本班学生整个学期有关课程的出勤统计信息及详细信息。其它需求:查看本班学生的基本信息等。二、系统功能分析:1.功能需求描述根据各类用户的需求描述,系统应当具备请假系统、考勤管理系统、后台管理系统这三大主要功能。请假系统功能需求:通过班主任以及院系领导批准请假信息。请假最长时间不能超过1个月,特殊情况除外。考勤管理功能需求:任课老师通过考勤管理系统,对学生上课出勤信息进行公开。请假系统要借助班主任才能完成,考勤管理系统要借助请假系统、班级课表安排才能完成,然而每学年课表都在变化,班主任安排也有在变化,学生也在变化,因此必须要求后台管理系统能根据系统需求,动态的、准确4的更新系统数据。2.系统功能划分根据系统用户的需求,将本系统按功能划分成三大功能模块:请假系统、考勤系统、后台管理模块,涉及到六大类用户:学生、任课教师、班主任、院系领导、学校领导、系统管理员。3.请假系统模块本模块的功能是在线请假的实现及管理,主要涉及三大类用户:学生、班主任及院系领导用户,学生通过此功能模块进行在线请假及查看请假记录信息;班主任在线审批学生请假及查看请假记录信息;院系领导在线审批学生长时间的请假及查看请假记录信息。4.考勤系统模块本模块的功能是学生考勤信息统计的实现、查看及管理,涉及六大类用户中的所有用户。学生在线查看自己所有学年的出勤信息;任课老师在线管理学生出勤信息;班主任、院系领导、学校领导查看不同的范围的学生出勤信息。5三、系统结构设计1.学生考勤系统的E-R模型n1n1nmn1n1m1nnn1教师班级学生学院领导学院专业课程假条开设考勤属于属于授课聘请班主任管理请假学号姓名性别班级专业院系编号名称编号专业名称所属学院编号姓名性别所属院系课程号课程名课程性质编号名称编号姓名性别所属院系职称编号姓名性别所属专业所属学院班主任编号学号……原因62.数据字典设计3.数据库表的逻辑结构设计名字:班级信息描述:每一个班级的具体信息定义:班级信息=班级编号+班级名称+班主任编号名字:学生上课出勤纪录表描述:每一位学生的出勤信息定义:学生信息=学号+表编号+考勤状态+课程名称名字:学生信息描述:每一位学生的具体信息定义:学生信息=学号+姓名+性别+院系+班级名字:请假条信息描述:每一请假条的具体信息定义:请假条信息=请假编号+班级名称+学生学号+请假原因+请假天数+课程名称+备注名字:教师信息描述:每一位教师的具体信息定义:教师信息=编号+姓名+性别+所属院系名字:课程信息描述:每一门课程的具体信息定义:课程信息=课程编号+课程名+班级名称+教师编号名字:班主任信息描述:每一位班主任的具体信息定义:班主任信息=编号+姓名+性别73.数据库表的逻辑结构设计(1)学生表student数据类型可否为空键引用列名char(10)否主键学生学号varchar(30)否学生姓名char(5)否性别char(10)否班级名称char(40)否院系名称(2)教师表teacher数据类型可否为空键引用列名char(10)否主键任课老师编号char(20)否任课老师姓名char(5)否性别Char(10)否院系名称8(3)班主任表classteacher数据类型可否为空键引用列名char(5)否主键班主任编号char(20)否班主任姓名char(5)否性别(4)学生上课出勤记录表kaoqin_record数据类型可否为空键引用列名char(10)否主键上课出勤编号char(10)否外键学生学号char(10)否学生上课考勤状态char(10)否课程名称9(5)课程信息表course数据类型可否为空键引用列名char(10)否主键课程编号char(20)否课程名称char(10)否班级名称Char(10)否外键任课老师编号(6)班级表classes数据类型可否为空键引用列名char(10)否主键班级编号char(20)否班级名称Char(5)否外键班主任编号10(7)请假信息表qingjia数据类型可否为空键引用列名Char(10)否主键请假编号char(10)否外键班级名称Char(10)否外键学生学号varchar(200)否请假原因char(13)否课程名称Char(10)否请假天数Nchar(20)否备注4.约束条件(举例一个)对性别的约束:([性别]='男'OR[性别]='女')115.视图的创建:1.班主任带班情况代码:SELECTTOP1000[班主任姓名],[班级名称],[班级编号],[班主任编号]FROM[学生考勤管理系统改进版].[dbo].[班主任带班情况]2.教师授课情况代码:SELECTTOP1000[任课老师编号],[任课老师姓名],[课程编号],[课程名称],[班级名称]FROM[学生考勤管理系统改进版].[dbo].[教师教授班级情况]123.学生请假情况代码:SELECTTOP1000[学生学号],[学生姓名],[班级名称],[课程名称],[请假原因],[任课老师名称],[请假天数],[备注]FROM[学生考勤管理系统改进版].[dbo].[学生请假情况]136.触发器的建立(举例一个)触发器实现的效果是:当请假天数超过三天时,处理方案为重修;小于三天(含三天)时,补课。代码:ALTERtrigger[dbo].[请假处理]on[dbo].[请假信息表]afterinsert,updateasupdate请假信息表set请假信息表.备注='重修'where请假天数3update请假信息表set请假信息表.备注='补课'where请假天数414触发效果截图:7.存储过程做了一个存储过程:教师授课缺勤情况代码:ALTERproc[dbo].[教师授课缺勤情况]@选定教师char(20)as15select学生学号,任课老师名称from学生上课出勤记录表where@选定教师=任课老师名称and学生上课考勤状态='否'执行存储过程执行结果出勤记录表168.数据库关系图:1.班级-班主任2.教师-课程信息173.学生-出勤-请假四:心得体会本次试验开始的时候一头雾水,不知从何下手,目标是作出前台,可实际上做起来才知道难度。不过现在做出来了,特别有成就感,一字一句都是我自己的想法。感受不好说,上面都是我的心血,都在上面了。不足之处当然还有,比如实现的查询有限,表和表之间的联系还不够,这些不是一点两点能够解决的;另外表的创建至关重要,以后自己得注意了。当然课设之后还回去不断完善,我喜欢上了数据库这东西。五.参考文献181.(王珊、萨师煊)、《数据库系统概论》、高等教育出版社、2006年5月第4版2.(钱雪忠、罗海池、陈国俊)、《数据库原理及技术》、清华大学出版社、2009年2月第一版3.(李红)、《数据库原理与应用》、高等教育出版社、2003年1月第1版4.(DusanPetkovic)、《SQLServer初学者指南》、清华大学出版社、翻译:(冯飞、薛莹)5.(严冬梅)、《数据库原理》、清华大学出版社
本文标题:数据库学生考勤管理系统设计报告
链接地址:https://www.777doc.com/doc-5710767 .html