[计算机软件及应用]SQL人事档案管理系统.doc_第1页
[计算机软件及应用]SQL人事档案管理系统.doc_第2页
[计算机软件及应用]SQL人事档案管理系统.doc_第3页
[计算机软件及应用]SQL人事档案管理系统.doc_第4页
[计算机软件及应用]SQL人事档案管理系统.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

i 沈阳理工大学课程设计专用纸 no摘 要由于计算机技术的飞速发展,数据库技术作为数据管理的一个有效的手段,在各行各业中得到越来越广泛的应用。因此,本文围绕一个“人事档案管理系统”程序的设计和应用系统的开发课题为背景,详细介绍了以vb和sql server为语言编写管理系统的过程。该程序通过vb的ado数据对象来实现vb前台与后台sql server数据库的连接,并具有典型的数据库应用系统的特征,完成了系统结构与现实生活的紧密结合。该程序在设计过程中严格遵循软件工程学的方法,用分阶段的生命周期计划严格管理,逐一介绍开发本系统的步骤:系统分析、系统设计、系统实现、系统实施。首先对现行人事档案管理系统进行分析,并找出其存在的问题,并提出解决方案,主要讲述了程序的总体设计、详细设计阶段,对程序进行不断修正和改进。在系统结构设计中先后用数据流图、系统的功能结构图分析了系统所需要的各种数据。在系统的设计中,详细的展现了系统的各个功能模块、所需的数据库表及表字段、系统菜单的设计等。在系统的实现中,给出了系统的界面登录、实现表单中相应的功能控件的事件代码等。在系统的实施概况中给出了系统的开发环境、系统的运行与维护、系统的安全性与可靠性设计。同时利用sql server的强大数据库功能,直到形成一个完善的可行性系统.优美、秀丽的界面,方便实用的查询与维护功能共同构成了“人事档案管理系统”。关键词:vb;sql server;数据库;人事管理系统目 录第1章 系统功能概述11.1 设计目的及意义11.2 功能模块划分11.3 系统结构总图2第2章 数据库设计22.1 需求分析22.2 e-r模型32.3 关系模型52.4 表结构设计52.4.1 表的建立52.4.2 信息表62.4.3 基本数据6第3章 系统各功能模块的详细设计73.1 进入系统页面73.2 登录页面93.2.1 员工登录93.2.2管理员登录143.3 档案存入与转出页面163.4 编辑页面173.4.1 档案存入173.4.2 档案转出223.5 查询26总 结28参考文献29沈阳理工大学 29 沈阳理工大学课程设计专用纸 no第1章 系统功能概述1.1 设计目的及意义 掌握数据库的创建方法。掌握用一种语言(如vb)开发数据库应用程序的方法。本系统开发的目的一方面从提高人事档案管理工作的效率出发,摆脱过去由人用纸和笔进行的费时费力的繁重工作,即利用成熟的计算机系统来实现档案管理工作的自动化。本系统根据企业管理的一些实际情况而编制的一套自动化、界面设计良好、体现人本主义原则、系统效率较高、灵活方便、快捷迅速,适用于大量数据、采用动态链接的人事档案管理系统。本系统采用sql server 2000作为后台数据库,这样是数据能够得到统一,并增强了管理的安全性。1.2 功能模块划分在主控窗体中(mid窗体)点击各菜单实现登录人事档案管理系统。具体功能包括:员工和管理员的登录和注册功能:实现用户成功登录系统,当用户明不正确或者密码错误时,提醒用户重新输入或者注册,当三次登录失败时,强制性退出操作界面。存入档案管理:用于输入员工的档案信息,包括档案编号、职员编号、档案类型、档案存放位置、档案存放日期等。该模块不能修改已输入的档案信息可删除已存入档案信息。链接档案修改模块可修改存入档案信息。 转出档案管理:用于将员工的档安转出,填写的内容包括档案编号、转出日期、转出目的地、转出事由等。该模块不能修改已输入的档案信息可删除已存入档案信息。链接档案修改模块可修改存入档案信息。档案查询:根据档案编号、职员编号、档案类型、档案存放位置、档案存放日期来查询档案信息。欢迎使用档案管理系统1.3 系统结构总图员工登录管理员登录档案查询档案存入档案查询档案转出档案添加信息移动档案修改档案删除档案添加信息移动档案删除图1.1系统结构总第2章 数据库设计2.1 需求分析 本系统是用于添加,查找,删除人事档案。本系统主要有两部分组成,一部分是数据库设计部分,另一部分为窗体设计部分。数据库中包含四个表,档案存入信息(档案编号、职员编号、档案类型、档案存放位置、档案存放日期),档案转出信息(档案编号、转出日期、转出目的地、转出事由)。启动封面窗体(主窗体)的时候要求:图片背景、欢迎类文字,主控窗体设计为mdi窗体,含有主菜单:文件、帮助。文件菜单包含以下子菜单及其功能:员工登录:显示员工登录窗体管理员登录:显示管理员登录窗体退出:结束程序。帮助菜单包含以下子菜单及其功能:关于:显示版权对话框。以上各窗体设为mdi主窗体的子窗体 分别设计各个登录窗体功能:用户通过界面登录系统,登录后提醒合法用户;用户名错误或者密码错误时提醒错误或者注册,并提醒用户共有三次操作机会;当选择注册时,通过随机文件追加用户信息,并提醒注册成功。员工登陆成功进入查询窗体进行条件查询。管理员登录成功则进入档案存入与转出主窗体,子窗体分别为:档案存入、档案转出、查询、退出。档案存入窗体可以浏览和录入各档案信息。该窗体以文本框显示当前档案记录,用按钮首记录、末记录、前一个、后一个,控制记录指针的移动,用一个标签label显示:当前记录号/记录总数。单击返回按钮,可以关闭本窗体,返回档案存入与转出窗体。可以对记录进行添加、删除、确认、修改、取消操作;档案转出窗体则没有修改操作;查询窗体可以按各种条件查找,这些条件放在组合列表框combo中,供用户选择。在文本框中输入要查询的内容,单击查询按钮,查询结果用网格控件显示。2.2 e-r模型实体e-r图:档案类型档案存放位置职员编号档案存入档案编号档案存放时间图2.1档案存入信息图转出目的地转出日期档案编号档案转出转出事由图2.2档案转出信息图关系e-r图:员工 1 属于 1 1档案转出档案存入 图2.3员工关系e-r图管理员 1管理 n n档案转出档案存入 图2.4管理员关系e-r图2.3 关系模型员工帐号:(职员编号、密码)。管理员帐号:(管理员帐号、密码)。档案存入信息:(档案编号、职员编号、档案类型、档案存放位置、档案存放日期)其中,“档案编号”是主码,“职员编号”是外码,参照员工信息表主码“职员编号”。档案转出信息:(档案编号、转出日期、转出目的地、转出事由)其中,“档案编号”是外码,参照档案存入信息表主码“档案编号”。2.4 表结构设计2.4.1 表的建立create table 员工注册(职员编号 char(40) primary key, 密码 char(40),);create table 管理员注册(管理员帐号 char(40) primary key, 密码 char(40),);create table 存入(档案编号 char(40) primary key, 职员编号 char(40), 档案类型 char(40), 档案存放位置 char(40), 档案存放日期 datetime, foreign key(职员编号)references 员工注册 (职员编号);create table 转出(档案编号 char(40), 转出日期 datetime, 转出目的地 char(60), 转出事由 char(100), foreign key(档案编号)references 存入 (档案编号);2.4.2 信息表表2.1员工帐号表表2.2管理员帐号表表2.3档案存入信息表表2.4档案转出信息表2.4.3 基本数据员工帐号表里输入的结果如下:表2.5员工帐号数据管理员信息表里输入的结果如下:表2.6管理员帐号数据档案存入信息表里输入的结果如下:表2.7档案存入数据档案转出信息表里输入的结果如下:表2.8档案转出数据按如下步骤,根据向导配置系统数据源: 开始设置 控制面板 管理工具 数据源(odbc) 系统dsn添加驱动程序选为sql server成功 给出该数据源的名称、描述、服务器 更改默认数据库为(自己所建的数据库) 测试 成功 确定 确定。第3章 系统各功能模块的详细设计3.1 进入系统页面窗体设计为mdi窗体,含有主菜单:文件、帮助。文件菜单包含以下子菜单及其功能:员工登录:显示员工登录窗体管理员登录:显示管理员登录窗体退出:结束程序。帮助菜单包含以下子菜单及其功能:关于:显示版权对话框。图3.1系统页面代码实现如下:private sub mdgy_click() load frmsplash frmsplash.showend subprivate sub mfglydl_click()管理员登录.show mdiform1.hideend subprivate sub mftc_click()endend subprivate sub mfygdl_click() 员工登录.show mdiform1.hide 隐藏form1end sub3.2 登录页面3.2.1 员工登录员工登陆界面:“职员编号”、“密码”均由label控件输入,背景设为透明,之后介绍的界面中的字符均由此方法输入,故将不做说明。给出可以输入字符的空白由textbox控件做成,可进行字体大小与颜色的修改。按钮由commandbutton设置,选择由optionbutton添加adodc (visible=false),用来与数据库相连。图3.2员工登录代码实现如下: private type userinfo zh as string * 10 mima as string * 10 end type dim u as userinfo dim counter as integer dim g as booleanprivate sub command1_click() dim z as string * 10, m as string * 10 z = trim(text1.text) m = trim(text2.text) if option1.value = true then f = false open app.path + user.dat for random as #1 i = 0 do while not eof(1) i = i + 1 get #1, i, u if z = u.zh and m = u.mima then msgbox 你是合法用户 unload me 查询.show f = true exit do end if 登录成功 loop close #1 if f = false then 非法用户时运行 counter = counter + 1 if counter 3 then jia ru msg$ = 用户不存在或密码错误!是否注册?注册 单击 + vbcrlf + 否则 单击 title$ = 操作进程确认 x = msgbox(msg$, vbyesno + 32, title$) if x = 6 then option2.value = true elseif x = 7 then msgbox 请重新输入! msgbox 您总共有三次操作机会! text1.text = text2.text = 员工登录.show end if end if if counter = 3 then msgbox 重试次数已到,即将退出本系统! end exit sub end if end if 添加 end if if option2.value = true then 注册 open app.path + user.dat for random as #2 i = 0 g = false while not eof(2) i = i + 1 get #2, i, u if z = u.zh then msgbox 该用户名已存在! 请重新选择! g = true end if wend close #2 open app.path + user.dat for random as #2 if g = false then u.zh = z u.mima = m put #2, , u msgbox 注册成功 end if close #2 end ifend subprivate sub command2_click()unload me欢迎使用.showend subprivate sub command3_click() text1.text = text2.text = text1.setfocusend sub用户合法时,运行结果见图3.3所示:登录后,直接进入查询窗体。图3.3合法用户登录 用户不合法时,运行结果见图3.4示。图3.4不合法用户登录单击“是”按钮时,运行结果如图3.5示:图3.5注册操作如果已注册则出现提示如图3.6示:图3.6已注册提示重新输入多次提示如图3.7示: 图3.7错误提示3.2.2管理员登录管理员登录窗体如图3.8示:图3.8管理员登录代码实现如下: private type userinfo zh as string * 10 mima as string * 10 end type dim u as userinfo dim counter as integer dim g as booleanprivate sub command1_click() dim z as string * 10, m as string * 10 z = trim(text1.text) m = trim(text2.text) if option1.value = true then f = false open app.path + user.dat for random as #1 i = 0 do while not eof(1) i = i + 1 get #1, i, u if z = u.zh and m = u.mima then msgbox 你是合法用户 unload me 档案存入与转出.show f = true exit do end if 登录成功 loop close #1 if f = false then 非法用户时运行 counter = counter + 1 if counter 3 then jia ru msg$ = 用户不存在或密码错误!是否注册?注册 单击 + vbcrlf + 否则 单击 title$ = 操作进程确认 x = msgbox(msg$, vbyesno + 32, title$) if x = 6 then option2.value = true elseif x = 7 then msgbox 请重新输入! msgbox 您总共有三次操作机会! text1.text = text2.text = 管理员登录.show end if end if if counter = 3 then msgbox 重试次数已到,即将退出本系统! end exit sub end if end if 添加 end if if option2.value = true then 注册 open app.path + user.dat for random as #2 i = 0 g = false while not eof(2) i = i + 1 get #2, i, u if z = u.zh then msgbox 该用户名已存在! 请重新选择! g = true end if wend close #2 open app.path + user.dat for random as #2 if g = false then u.zh = z u.mima = m put #2, , u msgbox 注册成功 end if close #2 end if end subprivate sub command2_click() text1.text = text2.text = text1.setfocusend subprivate sub command3_click()unload me欢迎使用.showend sub运行结果:用户合法是,登录后进入档案存入与转出窗体。3.3 档案存入与转出页面图3.9档案存入与转出代码实现如下:private sub command1_click()unload me档案存入.showend subprivate sub command2_click()unload me档案转出.showend subprivate sub command3_click()unload me查询.showend subprivate sub command4_click()unload me欢迎使用.showend sub3.4 编辑页面这个页面上可以显示所有的记录数,同时还可以进行添加,删除,修改,前后移动记录数的功能,要实现此功能则必须用adodc (visible=false)控件与数据库相连,在运行中隐藏此控件。3.4.1 档案存入档案存入的编辑图3.10如下:图3.10档案存入编辑代码实现如下:private sub cmdadd_click()adodc1.recordset.addnewcmdadd.enabled = falsecmddel.enabled = falsecmdok.enabled = truecmdesc.enabled = trueend subprivate sub cmddel_click()x = msgbox(确实要删除当前记录吗?, vbyesno + vbquestion, 确认)if x = vbyes then adodc1.recordset.delete adodc1.recordset.movenext if adodc1.recordset.eof thenadodc1.recordset.movelast end ifelse adodc1.refreshend ifend subprivate sub cmdesc_click()adodc1.refreshcmdadd.enabled = truecmddel.enabled = truecmdok.enabled = falsecmdesc.enabled = falseend subprivate sub cmdfirst_click()adodc1.recordset.movefirst 记录指针移到首记录(显示首记录)cmdfirst.enabled = false 让首记录按钮无效cmdpre.enabled = false 让前移按钮无效cmdnext.enabled = true 让后移按钮有效cmdlast.enabled = true 让末记录按钮有效在label6上显示当前记录号/记录总数:label6.caption = 记录: & adodc1.recordset.absoluteposition & / & adodc1.recordset.recordcountend subprivate sub cmdlast_click()adodc1.recordset.movelast 移到末记录 cmdfirst.enabled = true cmdpre.enabled = true cmdnext.enabled = false cmdlast.enabled = falselabel6.caption = 记录: & adodc1.recordset.absoluteposition & / & adodc1.recordset.recordcountend subprivate sub cmdn_click()dim n as integern = text6.textadodc1.recordset.move nif adodc1.recordset.bof then 如果记录指针移到首记录之前,adodc1.recordset.movefirst 则记录指针移到首记录上cmdfirst.enabled = falsecmdpre.enabled = falseend ifif adodc1.recordset.eof then 如果记录指针移到了末记录之后 adodc1.recordset.movelast 则记录指针移到末记录上 cmdnext.enabled = false cmdlast.enabled = falseend iflabel6.caption = 记录: & adodc1.recordset.absoluteposition & / & adodc1.recordset.recordcountend subprivate sub cmdnext_click()adodc1.recordset.movenext 记录指针移到下一条记录cmdfirst.enabled = truecmdpre.enabled = trueif adodc1.recordset.eof then 如果记录指针移到了末记录之后 adodc1.recordset.movelast 则记录指针移到末记录上 cmdnext.enabled = false cmdlast.enabled = falseend iflabel6.caption = 记录: & adodc1.recordset.absoluteposition & / & adodc1.recordset.recordcountend subprivate sub cmdok_click()adodc1.recordset.updatecmdadd.enabled = truecmddel.enabled = truecmdok.enabled = falsecmdesc.enabled = falseend subprivate sub cmdpre_click()adodc1.recordset.moveprevious 记录指针移到前一条记录cmdnext.enabled = truecmdlast.enabled = trueif adodc1.recordset.bof then 如果记录指针移到首记录之前, adodc1.recordset.movefirst 则记录指针移到首记录上 cmdfirst.enabled = false cmdpre.enabled = falseend iflabel6.caption = 记录: & adodc1.recordset.absoluteposition & / & adodc1.recordset.recordcountend subprivate sub command1_click() form1.show unload meend subprivate sub command2_click()档案存入与转出.show unload meend subprivate sub form_load()cmdfirst.enabled = false 首记录按钮无效cmdpre.enabled = false 前移按钮无效cmdnext.enabled = true 后移按钮有效cmdlast.enabled = true 末记录按钮有效cmdadd.enabled = true 添加按钮有效cmddel.enabled = true 删除按钮有效cmdok.enabled = false 确定按钮无效cmdesc.enabled = false 取消按钮无效label6.caption = 记录: & adodc1.recordset.absoluteposition & / & adodc1.recordset.recordcountend sub选择删除时,运行结果如图3.11示:图3.11存入档案删除选择修改时,运行结果如图3.12示:图3.12存入档案修改代码实现如下:private sub command1_click()if adodc1.recordset.eof or adodc1.recordset.bof then msgbox 请选择要修改的行 exit subend ifform2.show 显示form2form1.hide 隐藏form1end subprivate sub command2_click() 档案存入.show unload meend sub3.4.2 档案转出档案转出的编辑图3.13如下:图3.13档案转出编辑代码实现如下:private sub cmdadd_click()adodc1.recordset.addnewcmdadd.enabled = falsecmddel.enabled = falsecmdok.enabled = truecmdesc.enabled = trueend subprivate sub cmddel_click()x = msgbox(确实要删除当前记录吗?, vbyesno + vbquestion, 确认)if x = vbyes then adodc1.recordset.delete adodc1.recordset.movenext if adodc1.recordset.eof then adodc1.recordset.movelast end ifelse adodc1.refreshend ifend subprivate sub cmdesc_click()adodc1.refreshcmdadd.enabled = truecmddel.enabled = truecmdok.enabled = falsecmdesc.enabled = falseend subprivate sub cmdfirst_click()adodc1.recordset.movefirst 记录指针移到首记录(显示首记录)cmdfirst.enabled = false 让首记录按钮无效cmdpre.enabled = false 让前移按钮无效cmdnext.enabled = true 让后移按钮有效cmdlast.enabled = true 让末记录按钮有效在label6上显示当前记录号/记录总数:label9.caption = 记录: & adodc1.recordset.absoluteposition & / & adodc1.recordset.recordcountend subprivate sub cmdlast_click()adodc1.recordset.movelast 移到末记录 cmdfirst.enabled = true cmdpre.enabled = true cmdnext.enabled = false cmdlast.enabled = falselabel9.caption = 记录: & adodc1.recordset.absoluteposition & / & adodc1.recordset.recordcountend subprivate sub cmdn_click()dim n as integern = text5.textadodc1.recordset.move nif adodc1.recordset.bof then 如果记录指针移到首记录之前,adodc1.recordset.movefirst 则记录指针移到首记录上cmdfirst.enabled = falsecmdpre.enabled = falseend ifif adodc1.recordset.eof then 如果记录指针移到了末记录之后 adodc1.recordset.movelast 则记录指针移到末记录上 cmdnext.enabled = false cmdlast.enabled = falseend iflabel5.caption = 记录: & adodc1.recordset.absoluteposition & / & adodc1.recordset.recordcountend subprivate sub cmdnext_click()adodc1.recordset.movenext 记录指针移到下一条记录cmdfirst.enabled = truecmdpre.enabled = trueif adodc1.recordset.eof then 如果记录指针移到了末记录之后 adodc1.recordset.movelast 则记录指针移到末记录上 cmdnext.enabled = false cmdlast.enabled = falseend iflabel5.caption = 记录: & adodc1.recordset.absoluteposition & / & adodc1.recordset.recordcountend subprivate sub cmdok_click() 单击确认按钮adodc1.recordset.updatecmdadd.enabled = truecmddel.enabled = truecmdok.enabled = falsecmdesc.enabled = falseend subprivate sub cmdpre_click()adodc1.recordset.moveprevious 记录指针移到前一条记录cmdnext.enabled = truecmdlast.enabled = trueif adodc1.recordset.bof then 如果记录指针移到首记录之前, adodc1.recordset.movefirst 则记录指针移到首记录上 cmdfirst.enabled = false cmdpre.enabled = falseend iflabel5.caption = 记录: & adodc1.recordset.absoluteposition & / & adodc1.recordset.recordcountend subprivate sub command1_click()档案存入与转出.show unload meend subprivate sub form_load()cmdfirst.enabled = false 首记录按钮无效cmdpre.enabled = false 前移按钮无效cmdnext.enabled = true 后移按钮有效cmdlast.enabled = true 末记录按钮有效cmdadd.enabled = true 添加按钮

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论