人事管理系统(数据库课程设计及及)_第1页
人事管理系统(数据库课程设计及及)_第2页
人事管理系统(数据库课程设计及及)_第3页
人事管理系统(数据库课程设计及及)_第4页
人事管理系统(数据库课程设计及及)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、 数据库实习报告 课题:人事管理系统 课程名称: 数据库原理及应用 学生姓名: 学生学号: 所在专业: 计算机科学与技术 所在班级: 指导老师: 徐龙琴 成绩:目 录 TOC o 1-3 h z u 设计总说明设计概况 名称:人事管理系统 用途:学校等机构 功能:实现对员工信息的管理与维护等功能设计说明学生学籍管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成添加,查询,修改,删除的操作。用ODBC驱动实现前台Java与后台SQL数据库的连

2、接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。该系统实现的大致功能:系统功能的基本要求:员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等。员工各种信息的修改;对于转出、辞职、辞退、退休员工信息的删除;按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;对查询、统计的结果打印输出。3本系统只实现了基

3、本操作功能,对于一些更大型、属性更多、关系更复杂的企业,便利性和安全性仍有不足,使用过程中造成的不便还请谅解!1.人事管理系统概述研究背景人事管理系统是企业管理系统中不可缺少的重要组成部分,它的内容对于企 业的决策者和管理者来说都至关重要,所以人事档案管理系统应该能够为用户提 供充足的信息和快捷的查询手段。 但一直以来人们使用传统人工的方式管理文件 档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产 生大量的文件何数据,这对于查找、更新和维护都带来了不少的困难。随着科学 技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进 入人类社会的各个领域并发挥

4、着越来越重要的作用。意义及目的开发作为计算机应用的一部分,使用计算机对人事档案信息进行管理,具有着手 工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保 密性好、寿命长、成本低等。这些优点能够极大地提高人事档案管理的效率,也 是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管 理软件成为很有必要的事情。本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。所以如何自动高效地管理信息是这些年来许多人所研究的。一个健全的人事管理系统是一个学校或某个集体单位正常运作的必要条件,使人事管理方便快捷而又清晰,面对各种

5、不同种类的信息,需要合理的数据库结构来保存数据信息以及有效地程序结构来支持各种数据的操作的执行。实现集体单位管理系统化,规范化和自动化,从而达到提高人事管理的工作效率和工作质量的目的。2.系统需求分析开发环境和软件本学籍采用Java语言编写前台程序,后台采用SQL Server2005软件管理数据库,调试和运行皆由Eclipse SDK 完成。系统设计与功能分析系统设计的基本思想:用户登录模块系统管理模块1)密码修改2)重新登录3)添加/删除用户4)退出系统信息管理模块1)对学校里所有员工和院系进行统一标号,将每一位员工的信息保存在员工档案记录中2)对新聘的员工,将其信息加入到员工档案记录中;

6、对于转出、退休、辞职、辞退的员工,将其信息从员工档案记录中删除3)当员工信息发生变动时,修改员工档案记录中相应的属性信息查询模块查询员工信息及院系信息其他模块1)计算器2)关于系统的说明3)退出系统功能的基本要求:员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等。员工各种信息的修改;对于转出、辞职、辞退、退休员工信息的删除;按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;对查询、统计的结果打印输出。3.数据库设计 系统概念结

7、构设计系统功能模块图人事管理系统人事管理系统系统管理信息管理信息查询用户登录其他院系信息管理员工信息管理员工信息查询院系信息查询关于计算器退出密码修改重新登录添加/删除用户退出系统添加修改删除添加修改删除数据流程图 系统逻辑结构设计画出系统E-R图员工员工姓名院系编号工资编号岗位编号名族学历婚姻状况性别职称编号身份证号联系方式住址图 4 员工实体图院系院系院系编号号院系名称图 5 院系实体图管理员管理员用户名密码编号图 6 管理员实体图员工院系院系(1)员工(n)管理员(1)属于管理管理员ID管理密码员工编号姓名性别婚姻状况民族学历岗位编号工资联系电话住址身份证号院系编号院系名称职称编号图 7

8、 各实体之间联系图(总体E-R图) 物理结构设计数据库物理设计阶段的任务是根据具体计算机系统的特点,给给定的数据库系统确定合理的存储结构和存取方法。所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。主要体现在索引和存储结构的设置。(1)建立索引1.对员工信息表在属性列:员工编号上建立聚集索引,在属性列:身份证号建立唯一索引;2.对院系信息表在属性列:院系编号上建立聚集索引; (2)存储过程1创建不带参数的存储过程: 查询在信息学院的员工的编号和姓名create procedure s2asselect 员工编号,员工姓名fro

9、m 员工信息where 院系编号 =(select 院系编号from 院系信息where 院系名称=信息学院)goexec s22创建带参数的存储过程: 根据用户输入的员工编号,输出其姓名和学历create procedure s1(员工编号 int,员工姓名 nchar(10) output,学历 nchar(10) output)asselect 学历 = 学历,员工姓名=员工姓名from 员工信息where 员工编号=员工编号godeclare 员工姓名 nchar(10),学历 nchar(10)exec s1 2 , 员工姓名 output,学历 outputselect 员工姓名

10、= 员工姓名, 学历 = 学历(3)存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系,索引,日志,备份等的存储安排及存储结构,以及确定系统存储参数的配置。将日志文件和数据库(表,索引等)分别放在不同的磁盘,可以改进系统的性能,提高系统的安全性,所以,系统应将日志文件存放在不同的磁盘上。 数据库关系图关系模型(1)岗位信息表(岗位编号,岗位名称):其中岗位编号为主键;(2)用户表(管理员ID,密码):管理员ID为主键;(3)员工信息表(员工编号,员工姓名,性别,院系编号,岗位编号,职称编号,婚姻状况,民族,学历,联系方式,住址,身份证号,工资):其中员工编号为主键,院

11、系编号、岗位编号、职称编号均为外键; (4)院系信息表(院系编号,院系名称):其中院系编号为主键;(5) 职称信息表(职称编号,职称名称):其中职称编号为主键。数据库表(1)岗位信息表:(2)用户表:(3)员工信息表:(4)院系信息表:(5)职称信息表:4.系统模块设计概述用户登录模块该模块用于管理员的登录,后台数据库的用户表中给出了三个管理员ID和相对应的密码,只有输入正确方可进入系统。系统管理模块功能如下图所示:(具体见系统运行与测试此模块)信息管理模块功能如下图所示:1)对学校里所有员工和院系进行统一标号,将每一位员工的信息保存在员工档案记录中2)对新聘的员工,将其信息加入到员工档案记录

12、中;对于转出、退休、辞职、辞退的员工,将其信息从员工档案记录中删除3)当员工信息发生变动时,修改员工档案记录中相应的属性(见系统运行与测试此模块)信息查询模块功能如下图所示:(具体见系统运行与测试此模块)其他模块此模块主要用于显示此系统的运行环境、开发环境等信息,考虑到管理员可能要用到数值、统计等计算等,我们还提供了计算器。5.系统运行与测试用户登录系统管理信息管理信息查询其他模块关于计算器退出主界面左边一列最下一个即为退出按钮。优缺点自我评价优点:Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。SQLServer2005数据库高效安全,

13、两者结合可相互利用各自的优势;此系统界面整洁大方,功能较强大,根据界面的布局提示,用户可快速方便地操作,考虑到用户可能要进行统计和数值运算,更加体现了人性化的设计构思;后台的数据库设计基本符合3NF的要求,表格设计了五张,每张表的属性都根据实际情况定义类型和相应的约束,基本涵盖了一个小型企业需要的信息,表和表之间的关系(外键与主键的建立)也基本符合实际要求,为了便于快速查询信息,建立了聚集索引和唯一索引,也建立了有参数和无参数的存储过程;此系统只能供有权限的管理员登录与操作,提高了安全性。缺点:对于员工信息表,当时忘了加“出生日期”这一重要属性,接近尾声时才发现,可是由于时间紧迫,没有修改;五

14、张表之间,岗位信息表和职称信息表与其他表的联系不是太密切,应当直接加入属性,也是由于时间紧迫,没有修改,照成了数据冗余;建立的存储过程在界面代码中未调用,用户只是管理员类型,没有设置具体的权限,使得其他人员无法操作;功能强大的同时,代码相应比较多,虽然注释了不少,可对于普通用户来说,看起来还是比较不方便,这些代码也照成了一定程度上的资源浪费;对于员工信息的查询,只能直接显示院系、职称、岗位编号,无法显示相应的信息。6.课程设计总结在我看来,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。通过这次课程设计,可以巩固我们对数

15、据库基本原理和基础理论的理解,掌握数据库应用系统开发的基本方法,进一步提高我们综合运用所学知识的能力。当我们先确定下来要做的题目时,并不是急着着手写程序。而是大家一起商量这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典,做好这些工作以后,我们各个组员作了一些分工。在主要功能方面我主要负责实现添加和删除用户、用户密码修改的功能的实现,相对于而言,我的工作比较轻松,其中加入了一个计算器类,主要负责计数,这是一个人性化的考虑在里面。我们的分工不同,遇到的困难自然也就不一样了,我们平时都是独立做自己的那一部分,但是会及时将自己的进展告知组员,以便一个的系统的完美完成。当然我们也会

16、集中起来探讨一下各自遇到的问题,大家共同想办法解决,搜索资料、借阅大量书本、向其他同学请教等等都是我们解决问题的方式,最终在大家的努力下,不太完美却是很认真完成的系统诞生了!辛苦在这时显得是那么苍白无力,兴奋的尽头淹没了所有的辛苦。以前也做过课程设计,但是这次的课程设计涉及到的开发工具不一样了,最主要的不一样体现在我们要用到两个开发平台,我们不仅要做出前台数据库,还要与后台开发的数据库进行连接,这是一个全新的认识:我们不可能将大量的数据直接放在代码之中。对于SQL 2005可以熟练的应用,主要得益于老师要求我们平时做的一些实验,所以在后台的设计和操作没有花费太多的时间,虽然平时抱怨实验太多,这

17、个时候还是不会忘记感谢老师平时的严格要求。后台的开发对我来说真的是空前的挑战,首先涉及到的Java语言是在老师的要求下,自己在图书馆借书学得,绝对的半桶水,困难很大也很多,在组员的帮助下也算成功的克服了那些困难,得到一个圆满的结局!当我遇到错误的时候,感到很受打击;值得欣慰的是,在组员的帮助和大量参考书的查阅下,最终成功了!这次课程设计让我懂得遇到困难永不放弃的重要性,我知道了团队合作的重要性,我领悟了只有坚持不懈才会取得胜利.7.附录(代码)关于类:主要功能:显示人事管理系统的一些相关信息源代码:package a;.*; class About extends JInternalFrame

18、 JLabel label = new JLabel(运行环境:Windows);JLabel labe2 = new JLabel(开发环境:JAVA,SQL Server);JLabel labe3 = new JLabel(制作人员:郝中奎、马家权、童孟丹);JLabel labe4 = new JLabel(对应学号:1407;1421;1322);public About()setTitle(关于); Container con=getContentPane();(new GridLayout(4,1);(label);(labe2);(labe3);(labe4);setResiz

19、able(false);setSize(380,220);setVisible(true);setClosable(true);添加和删除用户类:主要功能:用于添加和删除管理员的帐号信息源代码:package a; class AddDeleteUser extends privateJButtonbutACancel,butDCancel,butDelete,butOk;privateJComboBoxcbUserName;privateJLabel jLabel1,jLabel2,jLabel3,jLabel4,jLabel5;privateJPasswordField pas1,pas2

20、,pas3;privateJTextFieldtxtname;publicAddDeleteUser() initComponents();(true);(true);(268,350); private void initComponents() jLabel1 = new JLabel(); jLabel2 = new JLabel(); jLabel3 = new JLabel();txtname = new JTextField(); pas1 = new JPasswordField(); pas2 = new JPasswordField();butOk = new JButton

21、();butACancel = new JButton(); jLabel4 = new JLabel();cbUserName = new JComboBox(); jLabel5 = new JLabel(); pas3 = new JPasswordField();butDelete = new JButton();butDCancel = new JButton();getContentPane().setLayout(null); (新用户名:);getContentPane().add(jLabel1);(30, 30, 70, 20); (输入密码:);getContentPan

22、e().add(jLabel2);(30, 60, 70, 18); (确认密码:);getContentPane().add(jLabel3);(30, 90, 60, 18);getContentPane().add(txtname);(100, 30, 130, 24);getContentPane().add(pas1);(100, 60, 130, 24);getContentPane().add(pas2);(100, 90, 130, 24);(添加);getContentPane().add(butOk);(80, 130, 70, 27);(清空);getContentPan

23、e().add(butACancel);(160, 130, 70, 27); (已有用户名:);getContentPane().add(jLabel4);(30, 180, 80, 18);getContentPane().add(cbUserName);(100, 180, 130, 24); (密码:);getContentPane().add(jLabel5);(30, 210, 60, 18);getContentPane().add(pas3);(100, 216, 130, 24);(删除);getContentPane().add(butDelete);(79, 260, 7

24、0, 27);(清空);getContentPane().add(butDCancel);(160, 260, 70, 27);quals()new JOptionPane().showMessageDialog(null,用户名不能为空!);else if().equals()new JOptionPane().showMessageDialog(null,密码不能为空!);else if().equals()String sql=insert 用户 values(+ () +,+ () +);tryif(sql)new JOptionPane().showMessageDialog(nul

25、l,添加成功!);(); catch(Exception ea);(new ActionListener()public void actionPerformed(ActionEvent e)();();(););howMessageDialog(null,删除成功!);();(); String sql1=select * from 用户;if(sql1)whileString name1=管理员ID);(name1);elsenew JOptionPane().showMessageDialog(null,密码不正确!); catch(Exception el);(new ActionLi

26、stener()public void actionPerformed(ActionEvent e)();); 用户修改密码类:主要功能:用于修改相应管理员帐号的密码源代码:package a;.*; class AmendPassword extends JInternalFrameJLabel lbe1=new JLabel(修改密码);JPanel p=new JPanel();publicAmendPassword() setTitle(修改密码);(lbe1);AmendPanel panel=new AmendPanel(); Container contentPane=getCo

27、ntentPane();(p,North);(panel,Center);setBounds(100, 100, 280, 260);(true);setVisible(true); classAmendPanel extends JPanelJButton b1,b2;JLabel lbe2,lbe3,lbe4,lbe5;JPasswordField pas1,pas2,pas3;JComboBoxtf;publicAmendPanel() lbe2=new JLabel(用户名:); lbe3=new JLabel(输入旧密码:); lbe4=new JLabel(输入新密码:); lbe

28、5=new JLabel(确定新密码:);tf=new JComboBox(); pas1=new JPasswordField(); pas2=new JPasswordField(); pas3=new JPasswordField(); b1=new JButton(确定); b2=new JButton(清空);add(lbe2);(16,10,90,25);(tf);(100,10,120,25);add(lbe3);(16,45,90,25);add(pas1);(100,45,120,25);add(lbe4);(16,80,80,25);add(pas2);(100,80,12

29、0,25);add(lbe5);(16,115,80,25);add(pas3);(100,115,120,25);add(b1);(100,160,60,30);add(b2);(160,160,60,30);setLayout(null);quals()String supdate=update 用户 set 密码=+ ()+ where 管理员ID=+ name +;(supdate);new JOptionPane().showMessageDialog(null,密码更改成功!);elsenew JOptionPane().showMessageDialog(null,两次密码不同!

30、);elsenew JOptionPane().showMessageDialog(null,旧密码不正确!); catch(Exception el);(new ActionListener()public void actionPerformed(ActionEvent e)();();();); 计算器类主要功能:计算功能源代码:package a;.*;.*; .*;.*;public class Calculator extends JInternalFrame implements ActionListenerprivateJTextFielddisplayText=new JTe

31、xtField();privateJButtonbuttonTag=new JButton();privateJButtonbuttonBackspace=new JButton(Backspace);privateJButtonbuttonCe=new JButton(CE);privateJButtonbuttonc=new JButton(C);privateJButton button=new JButton24;private String keys=MC,7,8,9,/,sqrt,MR,4,5,6,*,%,MS,1,2,3,-,1/x,M+,0,+/-,.,+,=;private

32、String numStr1=;private String numStr2=;private String numsave=;private char op;privatebooleanfirstInput=true;privateboolean operatorTag1=true;privateboolean operatorTag2=true;public Calculator()setTitle(计算器);setSize(345,265);Container pane=getContentPane();(null);(320,30);(10,10);(displayText);(60,

33、30);(10,50);(buttonTag);(110,30);(90,50);(this);(buttonBackspace);(65,30);(200,50);(buttonCe);(65,30);(265,50);(this);(buttonc);intx,y;x=10;y=85;for(intind=0;ind24;ind+)buttonind=new JButton(keysind);buttonind.addActionListener(this);buttonind.setLocation(x,y);if(ind%6=0 | ind%6=5)buttonind.setSize(60,30);x=x+60;elsebuttonind.setSize(50,30);x=x+50;if(ind%6=0 | ind%6=4 |ind%24=23)buttonind.setForeground;elsebuttonind.setForeground;(buttonind);if(ind+1)%6=0)x=10;y=y+30;setVisible(true);(true);public void actionPerformed(ActionEvent e)String resultStr=;String str=();charch=(0);if(0)|(1)|(2)|(3)

温馨提示

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

评论

0/150

提交评论