课程设计说明书.docx
《课程设计说明书.docx》由会员分享,可在线阅读,更多相关《课程设计说明书.docx(40页珍藏版)》请在冰豆网上搜索。
课程设计说明书
教职工档案管理系统(后台)
院(系)名称信息工程学院
专业班级软件工程
学号070112062
学生姓名宋耀文
指导教师邵开丽
2009年月日
教职工档案管理系统的设计与实现
摘要
这次课程设计从最开始的系统需求分析起步,逐步分析了设计一个教职工档案管理系统需要完成的功能,以及具体的设计步骤。
按照需求分析进行抽象以及具体设计,提出了管理系统数据库的具体结构,再由必要的功能做起,按模块的顺序逐步实现系统功能。
设计的整个过程经历了需求分析、概念设计以及详细设计及编码阶段。
系统最终实现了对操作人员的登录检测,对教职工档案信息信息的分类管理、信息添加以及修改与删除,还完成了必要的统计和信息的打印功能。
系统使用VB作为编码语言,配合使用SQLServer2000强大的数据库功能完成了对教职工档案管理系统的设计工作。
在具体设计过程中参考了许多优秀的设计方案和经典的设计方法,为操作人员的数据添加和查询提供了极大方便。
关键词:
VB,分析,数据库,教职工档案管理
目 录
1绪论
1.1研究背景
教职工档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以教职工档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
1.2开发意义
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对教职工档案信息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高教职工档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套人事档案管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
1.3本文的组织结构
第一章:
绪论。
本章主要介绍研究背景,开发意义。
第二章:
需求分析。
本章主要介绍数据库需求分析,系统功能分析等。
第三章:
系统概要设计。
本章主要介绍系统概要设计,数据库结构设计,数据库的连接。
第四章:
数据库模块详细设计。
本章主要介绍用户管理,对数据库的增删改查操作。
第五章:
系统运行与测试。
本章主要介绍本系统的运行环境与测试。
第六章:
系统的使用说明与安装。
2系统需求分析
系统的需求分析中根据网络购物商城的一般流程,分析了系统的具体功能,对系统作了总体的规划,提出了系统的设计目标,介绍了系统的开发及运行的环境。
2.1系统功能分析
经过调查、分析,本网站针对网络商城会员具有以下功能。
(1)提供操作人员登录、登出。
(2)提供添加、删除和修改操作人员的方法。
(3)提供档案信息的分类查询。
(4)提供档案信息的快速分类统计。
(5)提供档案信息的添加、删除和修改的方法。
2.2设计目标
通过分析,主要实现如下目标:
(1)编写登录模块,设置登录用户的用户名和密码。
(2)编写主模块,设置通过菜单选项进入系统不同的子模块。
(3)编写基本信息操作模块。
(4)编写简历的操作模块和奖惩记录的操作模块。
(5)对系统管理员和一般操作人员分别管理,区分权限。
2.3开发及运行环境
1、硬件平台:
(1)CPU:
P41.8GHz。
(2)内存:
256MB以上。
2、软件平台:
(1)操作系统:
WindowsXP/Windows2000。
(2)数据库:
SQLServer2000。
(3)开发工具:
VisualBasic6.0
3系统概要设计
系统概要设计首先对数据库的编码进行设计,方便数据信息的处理,其次是根据需求分析,对数据库的结构进行设计,建立相关的数据表,最后构画出系统功能的结构图。
3.1数据库结构设计
3.1.1数据库概念结构设计
根据软件工程所学知识和以上对本次毕业设计系统的分析,最终画出系统的实体关系图(E-R图)如下所示。
图3.1系统实体关系图
3.1.2数据库逻辑结构设计
由3.2.1的实体关系图可以得到系统的关系模式为:
教职工信息(职工号,姓名,性别,民族,出生年月,婚姻状况,籍贯,毕业学校,毕业时间,最高学历,专业,政治面貌,任教单位,任教学科,联系方式,照片)
简历信息(职工号,姓名,起始年月,终止年月,工作学习单位,职务,证明人)
奖惩信息(职工号,姓名,时间,地点,奖励或惩罚)
3.1.3数据库物理结构设计
1、数据库的设计
CREATEDATABASEJZGDA
ON(
NAME=JZGDA,
FILENAME=’E:
\SQLSERVER\JZGDA.MDF’,
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=5MB
)
LOGON(
NAME=JZGDA,
FILENAME=’E:
\SQLSERVER\JZGDA.MDF’,
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=5MB
)
2、表的设计
(1)oper(用户信息表)
图3.1oper的结构
CREATETABLEoper(
用户名char(10)COLLATEChinese_PRC_CI_ASNULL,
密码char(6)COLLATEChinese_PRC_CI_ASNULL,
级别char(10)COLLATEChinese_PRC_CI_ASNULL
)
(2)jbxx(基本信息表)
图3.2jbxx的结构
CREATETABLEjbxx(
职工号int(4)COLLATEChinese_PRC_CI_ASNOTNULL,
姓名char(10)COLLATEChinese_PRC_CI_ASNULL,
性别char(10)COLLATEChinese_PRC_CI_ASNULL,
民族char(10)COLLATEChinese_PRC_CI_ASNULL,
出生日期datetime(8)COLLATEChinese_PRC_CI_ASNULL,
婚姻状况char(10)COLLATEChinese_PRC_CI_ASNULL,
籍贯char(20)COLLATEChinese_PRC_CI_ASNULL,
毕业学校char(20)COLLATEChinese_PRC_CI_ASNULL,
最高学历char(10)COLLATEChinese_PRC_CI_ASNULL,
毕业时间datetime(8)COLLATEChinese_PRC_CI_ASNULL,
专业char(20)COLLATEChinese_PRC_CI_ASNULL,
政治面貌char(20)COLLATEChinese_PRC_CI_ASNULL,
任教单位char(10)COLLATEChinese_PRC_CI_ASNULL,
任教学科char(20)COLLATEChinese_PRC_CI_ASNULL,
职称char(10)COLLATEChinese_PRC_CI_ASNULL,
联系方式char(20)COLLATEChinese_PRC_CI_ASNULL,
照片image(16)COLLATEChinese_PRC_CI_ASNULL
)
(3)jl(简历信息表)
图3.3jl的结构
CREATETABLEjl(
职工号int(4)COLLATEChinese_PRC_CI_ASNULL,
姓名char(10)COLLATEChinese_PRC_CI_ASNULL,
起始年月datetime(8)COLLATEChinese_PRC_CI_ASNULL,
终止年月datetime(8)COLLATEChinese_PRC_CI_ASNULL,
工作或学习单位char(50)COLLATEChinese_PRC_CI_ASNULL,
职务char(10)COLLATEChinese_PRC_CI_ASNULL,
证明人char(10)COLLATEChinese_PRC_CI_ASNULL
)
(4)jc(奖惩信息表)
图3.4jc的结构
CREATETABLEjc(
职工号int(4)COLLATEChinese_PRC_CI_ASNULL,
姓名char(10)COLLATEChinese_PRC_CI_ASNULL,
时间datetime(8)COLLATEChinese_PRC_CI_ASNULL,
地点char(50)COLLATEChinese_PRC_CI_ASNULL,
奖励或处分char(50)COLLATEChinese_PRC_CI_ASNULL
)
3.2系统功能设计
3.2.1数据库功能设计
(1)教职工信息视图
图3.5教职工信息视图的结构
CREATEVIEWdbo.教职工信息视图
AS
SELECTdbo.jbxx.职工号,dbo.jbxx.姓名,dbo.jbxx.性别,dbo.jbxx.民族,dbo.jbxx.出生日期,
dbo.jbxx.婚姻状况,dbo.jbxx.籍贯,dbo.jbxx.毕业学校,dbo.jbxx.最高学历,
dbo.jl.起始年月,dbo.jl.终止年月,dbo.jl.工作或学习单位,dbo.jl.职务,dbo.jl.证明人,
dbo.jc.时间,dbo.jc.地点,dbo.jc.奖励或处分
FROMdbo.jbxxINNERJOIN
dbo.jcONdbo.jbxx.职工号=dbo.jc.职工号INNERJOIN
dbo.jlONdbo.jbxx.职工号=dbo.jl.职工号
(2)存储过程
表jbxx存储过程创建代码
USE[JZGDA]
GO
CREATEPROCEDURE[jbxx表的存储过程]
(@职工号_1[int](4),
@姓名_2[char](10),
@性别_3[char](10),
@民族_4[char](10),
@出生日期_5[datetime](8),
@婚姻状况_6[char](10),
@籍贯_7[char](20),
@毕业学校_8[char](20),
@最高学历_9[char](10),
@毕业时间_10[datetime](8)
@专业_11[char](20)
@政治面貌_12[char](10)
@任教单位_13[char](10)
@任教学科_14[char](20)
@职称_15[char](10)
@联系方式_16[char](20)
@照片_17[image](16))
ASINSERTINTO[JZGDA].[dbo].[jbxx]
([职工号],
[姓名],
[性别],
[民族],
[出生日期],
[婚姻状况],
[籍贯],
[毕业学校],
[最高学历],
[毕业时间],
[专业],
[政治面貌],
[任教单位],
[任教学科],
[职称],
[联系方式],
[照片]),
VALUES
(@职工号_1
@姓名_2
@性别_3
@民族_4
@出生日期_5
@婚姻状况_6
@籍贯_7
@毕业学校_8
@最高学历_9
@毕业时间_10
@专业_11
@政治面貌_12
@任教单位_13
@任教学科_14
@职称_15
@联系方式_16
@照片_17)
GO
(3)本系统所创建的触发器
oper表的触发器:
CREATETRIGGERoper的触发器ON[dbo].[oper]
FORINSERT,UPDATE,DELETE
ASselect*fromoper
3.2.2系统功能结构设计
根据需求分析和数据库的设计,构画出教职工档案管理系统功能结构图,如图3.1所示。
图3.6系统功能结构图
3.3数据库的连接
通过DSN访问数据库:
在系统级别上预先定义好数据源DSN,在定义DSN的过程中指定数据源需要的ODBC驱动程序,数据库文件的实际路径和名字,在程序中需要引用预先定义好的数据源名(DSN)即可。
本设计是通过DSN和数据库建立连接并访问数据库的,代码如下:
PublicFunctionexesql(ByValsqlAsString)AsADODB.Recordset
sql=Trim$(sql)
Setconn=NewADODB.Connection
Setrst=NewADODB.Recordset
conn.ConnectionString="DSN=JD;UID=sa;PWD=;"
conn.Open
Setrst.ActiveConnection=conn
rst.LockType=adLockOptimistic
rst.CursorType=adOpenKeyset
rst.Opensql
Setexesql=rst
Setrst=Nothing
Setconn=Nothing
EndFunction
4系统模块详细设计
4.1登录管理模块
登录模块是为保证信息的安全,只允许由用户名和密码的用户进入对系统进行相关的操作,当输入正确时即可进入系统。
登入界面pass.frm,效果图如图4.1所示。
图4.1登录界面
4.2系统主模块
系统主模块提供对系统管理员和一般操作员的信息管理、统计和打印操作。
主模块menu.frm,效果图如图4.3所示。
图4.3系统主模块
主模块menu.frm的主要代码:
PrivateSubMDIForm_Load()
IfNotuserlevel="系统管理员"Then
menu11.Enabled=False
menu32.Enabled=False
menu34.Enabled=False
menu21.Enabled=False
menu41.Enabled=False
EndIf
EndSub
PrivateSubmenu11_Click()
edks.ShowvbModal
EndSub
PrivateSubmenu13_Click()
prade.ShowvbModal
EndSub
PrivateSubmenu14_Click()
End
EndSub
PrivateSubmenu19_Click()
tj.ShowvbModal
EndSub
PrivateSubmenu21_Click()
edks1.ShowvbModal
EndSub
PrivateSubmenu23_Click()
prade2.ShowvbModal
EndSub
PrivateSubmenu32_Click()
setuser.ShowvbModal
EndSub
PrivateSubmenu34_Click()
IfMsgBox("本功能要清除系统中所有数据,真的初始化吗?
",vbYesNo,"确认初始化操作")=vbYesThen
Calldeldata("oper")
Calldeldata("jbxx")
Calldeldata("jl")
Calldeldata("jc")
MsgBox"系统初始化完毕,下次只能以1234/1234(用户名/密码)进入本系统",vbOKOnly,"信息提示"
EndIf
EndSub
PrivateSubmenu41_Click()
edks2.ShowvbModal
EndSub
4.3信息管理模块
信息管理模块是一个集查询、添加、修改、删除的综合模块,它可以将用户需要的信息显示出来,并进行相关的操作。
信息管理模块edks.frm,效果图如图4.4所示。
图4.4信息管理模块
信息管理模块edks.frm的主要代码:
PrivateSubcomm1_Click()
flag=1
add.ShowvbModal
EndSub
PrivateSubComm2_Click()
DimNum1AsString
flag=2
Num1=Adodc1.Recordset.Fields("职工号")'不能用DataDrid导航,应使用Find方法指向修改的记录
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Find("职工号='"&Num1&"'")
add.ShowvbModal
EndSub
PrivateSubForm_Load()
EndSub
PrivateSubretCom_Click()
UnloadMe
EndSub
PrivateSubselcmd1_Click()
IfTrim(Text1
(1).Text)<>""Then
IfNotIsDate(Trim(Text1
(1).Text))Then
MsgBox"出生日期输入错误,应为yy-mm-dd类型",vbOKOnly,"信息提示"
Text1
(1).SetFocus
ExitSub
EndIf
EndIf
condstr=""'条件表达式
IfTrim(Text1(0).Text)<>""Then
Ifcondstr=""Then
condstr="姓名like'"+Trim(Text1(0).Text)+"'"
Else
condstr=condstr+"and姓名like'"+Trim(Text1(0).Text)+"'"
EndIf
EndIf
IfTrim(Text1
(1).Text)<>""Then
Ifcondstr=""Then
condstr="出生日期='"+Format(Trim(Text1
(1).Text),"yyyy.mm.dd")+"'"
Else
condstr=condstr+"and出生日期='"+Format(Trim(Text1
(1).Text),"yyyy.mm.dd")+"'"
EndIf
EndIf
IfTrim(Text1
(2).Text)<>""Then
Ifcondstr=""Then
condstr="籍贯like'"+Trim(Text1
(2).Text)+"'"
Else
condstr=condstr+"and籍贯like'"+Trim(Text1
(2).Text)+"'"
EndIf
EndIf
IfOpt1.Value=TrueThen
Ifcondstr=""Then
condstr="性别='男'"
Else
condstr=condstr+"and性别='男'"
EndIf
ElseIfOpt2.Value=TrueThen
Ifcondstr=""Then
condstr="性别='女'"
Else
condstr=condstr+"and性别='女'"
EndIf
EndIf
Ifcondstr<>""Then'有条件
Adodc1.RecordSource="select*fromjbxxwhere"+condstr
Adodc1.Refresh
Else'无条件
Adodc1.RecordSource="select*fromjbxx"
Adodc1.Refresh
EndIf
recs=Adodc1.Recordset.RecordCount
Ifrecs=0Then
MsgBox"没有任何满足条件的记录",vbOKOnly,"信息提示"
EndIf
EndSub
PrivateSubselcmd2_Click()
Text1(0).Text=""
Text1
(1).Text=""
Text1
(2).Text=""
Opt1.Value=False
Opt2.Value=False
EndSub
PrivateSubText1_KeyPress(IndexAsInteger,KeyAsciiAsInteger)
Callendata(KeyAscii)
EndSub
4.3.1添加模块
添加模块是录入信息的重要渠道,通过本模块可以将数据写入后台数据库,是先前后台的交互。
添加模块add.frm,效果图如图4.5所示。
图4.5添加模块
添加模块add.frm的主要代码:
PrivateSubCommand1_Click()
IfTrim(Text1
(1).Text)=""Then
MsgBox"加*数据项不能为空,请重新设置",vbOKOnly,"信息提示"
Text1
(1).SetFocus
ExitSub
EndIf
IfTrim(Text1(4).Text)<>""Then
IfNotIsDate(Trim(Text1(4).Text))Then
MsgBox"出生日期输入不正确,重新输入",vbOKOnly,"信息提示"
Text1
(1).SetFocus
ExitSub
EndIf
EndIf
Ifflag=1Then'添加操作
recs=recs+1
edks.Adodc1.Recordset.AddNew
EndIf
edks.Adodc1.Recordset.Fields("职工号")=Trim(Text1(0).Text)
edks.Adodc1.Recordset.Field