ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:476.93KB ,
资源ID:17086948      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17086948.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(淮海工学院数据库课程设计Word文档格式.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

淮海工学院数据库课程设计Word文档格式.docx

1、运行系统,在登录页面可以进行身份验证,登录成功后可以修改密码和用户信息,用户不想使用时可以点击退出系统结束操作。功能图如图2.1所示。员工管理系统是将企业的人事管理、工资管理、考勤管理有机相合,综合运用的一个企业管理软件,它使企业的人事管理由以往的手工作业,向自动化、网络化、现代化迈进了一大步。从而使企业的人事管理人员从繁重的人事管理中解放出来,大大提高了工作效率,减轻了管理人员的工作量。所谓的C/S架构即Client/Server(客户机/服务器) 结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。客

2、户端和服务器端的程序不同,用户的程序主要在客户端,服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体的业务。开发比较容易,操作简便,但应用程序的升级和客户端程序的维护较为困难。图2.1 项目结构图2.2 可行性分析2.2.1 操作可行性分析 员工管理系统并不是一个很复杂的软件。员工信息系统工程实施的目标就是要带给某单位看得见的效益,其开发过程中也要考虑到人力,资金和时间的约束。因此,在设计中重点是员工信息系统中的方便快捷,能提供给单位管理者以优质高效的服务并提高管理的效率,为单位带来良好的效益。员工管理,员工查询,薪资考核和奖惩落实,员工管理系统都必不

3、可少,加之界面设计的简约化,操作的简易化,在公司、企业内部应该是行得通的。系统是为一个团体设计的,考虑到了个人的方面。综合考虑,工具应当能够使每个操作者简单运用。2.2.2 经济可行性分析在开发过程中用到一台电脑,1024G硬盘,8G内存,因特尔微处理器, Windows操作系统,由老师带领我们一起完成,个人即可完全承担开发任务,能够通过较小的投入得到较大的回报,因此以达到经济可行性需求,能够有比较理想的回报。2.2.3 技术可行性分析该系统使用C/S 结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server

4、端来实现,降低了系统的通讯开销。该系统只要有一台能上网的电脑就能使用,即客户端零维护。同时系统的扩展非常容易,只要能连上局域网,直接登录就可以使用了。使用内部局域网也保障了软件数据的安全3 系统总体设计3.1 数据库设计3.1.1 结构属性结构属性主要包括了数据库名称、数据库类型、访问模式、逻辑标识、物理标识、存储模式、存储介质以及读写方式。如下表3-1结构属性表所示:表3-1 结构属性表数据库名称Test数据库类型MySQL访问模式DataAdapter存储模式简单存储存储介质HDD读写方式DataSet + SqlDataAdapter3.1.2 逻辑结构数据库逻辑结构是从逻辑的角度分析数

5、据库的构成,即创建数据库后形成的逻辑概念之间的关系。SQL的逻辑结构主要应用于面向用户的数据组织和管理,与传统关系模型术语相比,在SQL中,视图对应外模式,基本表对应模式,存储文件对应内模式。如下图3.1为数据库设计的E-R模型图图3.1 数据库E-R图3.1.3 表的定义用户信息表(UserInformation)字段类型说明大小是否为空User_ID int员工编号NOT NULLUser_Name varchar员工姓名20Password密码Popedom 权限部门信息管理(DepartmentInformation)D_Number部门编号D_Name部门名称D_Count部门人数员

6、工基本信息表(EmployeeInformation)E_Number-员工编号E_Name-姓名E_Sex-性别2E_BornDate-出生日期30E_Marriage-婚姻状态4E_Politics政治面貌E_SchoolAge学历E_EnterDate进入公司时间E_InDueFormDate转正时间E_Department部门E_Headship职务E_Estate状态E_Remark备注500培训信息表(TrainInformation)T_Number培训编号T_Content培训内容100T_Name培训员工姓名T_Datedouble培训天数T_Money培训费用奖罚信息表(E

7、ncouragementPunishInformation)EP_NumberEP_NameEP_Date奖罚时间EP_Address奖罚地点50EP_Causation奖罚原因200EP_Remark薪资信息表(WageInformation)W_NumberW_NameW_BasicWage基本工资W_JiXiaoWage绩效工资W_Boon福利W_Bonus奖金W_CountMethod计算方法W_FactWage实发工资将ER图转化成关系图:工资(编号,奖金,姓名,备注,实发工资,绩效工资,福利,基本工资)培训(编号,时间,地点,内容,天数)员工(编号,姓名,性别,职务,学历,出生日期

8、,政治面貌,进入时间,转正时间,现今状态)用工单位(编号)部门(编号,名称)奖罚(编号,时间,地点,原因)3.1.4 关键技术视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。存储过程就是将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库

9、提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。存储过程的优点:1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。3.存储过程可以重复使用,可减少数据库开发人员的工作量4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触

10、发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如Update、 Insert、 Delete 这些操作时,SQL Server 就会自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。 触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外,触发器还有其它许多不同的功能:(1) 强化约束(Enforce restriction)触发器能够实现比CHECK 语句更为复杂的约束。(2) 跟踪变化Auditing changes触发器可以侦测数据库内的操作,不允许数

11、据库中未经许可的指定更新和变化。(3) 级联运行(Cascaded operation)。触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项内容。例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更新,插入)而该操作又导致该表上触发器被触发。(4) 存储过程的调用(Stored procedure invocation)。在物理结构中,数据的基本存取单位是存储记录。有了逻辑结构以后,就可以设计存储记录结构,一个存储记录可以与多个逻辑记录相对应。存储记录就包括记录的组成,数据项的类型和长度等。3.2 界面设计系统由六大窗口组成,分别是主操作台窗口、登录窗口、信息管理窗口、

12、信息查询窗口、帮助窗口、关于窗口。其中主操作台窗口调用其它五个窗口,其它五个窗口不可互相调用。(信息查询和信息管理窗口是指一套窗口)下面就各窗口的功能及实现思想与方法做一一分析:1.主操作台窗口。主操作台窗口为系统运行进行操作管理的主要界面,它主要包含有菜单栏,按钮栏等控件,通过这些控件,系统可调用其它窗口,调用其它窗口的方法为先实例化一个其它inner窗口的对象,然后通过对象来调用。菜单栏上有系统管理、信息管理、信息查询、帮助和关于共计5个菜单按钮。每个菜单按钮下含有一个下拉菜单(包含若干子菜单选项)。系统管理按钮负责调用修改密码等窗口,信息管理按钮负责调用信息管理相关窗口,信息查询按钮负责

13、调用信息查询相关窗口,帮助按钮负责调用帮助窗口,关于按钮负责调用关于窗口。左侧有一个常用功能工具栏,有五个快捷按钮方便用户进行一些经常使用的操作。分别是员工基本信息查询、员工基本信息管理、修改密码、退出系统和简易财务计算器。具体效果如下图3.2图3.2 主操作台界面窗口设计效果图 2.登录窗口。登录窗口提供系统登录功能。登录窗口的控件主有文本框、按钮等。3.信息管理窗口。信息管理窗口可以向各个数据表中添加、删除和修改相对应的记录信息。如下展示了员工奖惩信息、部门信息、薪资信息和员工培训等管理界面。 4.信息查询窗口。通过信息查询窗口可查看全部表的数据。信息查询窗口可通过交互式操作完成。5. 密

14、码修改窗口。密码修改窗口可修改用户表的对应用户的密码。但密码窗口只实现新密码参数到主操作台窗口的传递与检查两次新密码输入是否相同。6.帮助和关于窗口:提供一些系统相关的信息和必要的软件使用帮助。3.3 时序设计时序设计也就是通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。3.3.1 顺序图设计在该系统中,顺序图主要包括密码修改顺序图如图3.31、员工信息修改如图3.32、用户登陆图3.33、添加用户如图3.34。顺序图是将系统与用户关系表示为一个二维图。纵向是时间轴,时

15、间沿竖线向下延伸。“”叉号代表的是生命终止。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。图3.31 密码修改时序图图3.32用户信息修改时序图 图3.33 登录时序图图3.34 添加用户时序图3.3.2 活动图设计在该系统中,活动图主要包括密码修改如图3.35、员工信息修改如图3.36、添加用户如图3.37。图3.35 密码修改活动图图3.36 用户信息修改活动图图3.37 添加用户活动图3.4 接口设计接口是提供给其他模块或者系统使用的一种约定或者规范。因此接口必须要保证足够的稳定性和易用性

16、。3.4.1 稳定性接口必须相对稳定,否则将导致接口的使用者和提供者为了适应新接口而不断修改接口的实现,可能重复进行无用功,严重时影响整个软件开发进度。首先,接口的语义必须明确。包括接口调用方法、接口名称、参数的类型和名称。抽象的接口名称或者参数名称使人困惑或者理解错误。其次,采用版本定义来区分接口的差异。比如提供接口版本查询功能,接口实现着提供接口版本的查询功能。3.4.2 易用性接口是提供给第三方使用的,较难使用的接口会给使用者带来不便。比如参数过于抽象,这将会导致接口的调用者在使用接口时,需要将基本数据类型的值组成一个参数类型,然后才能调用接口。这样的接口设计非常糟糕,既不便于使用又不便

17、于编译器优化。除非接口的参数个数超过5个,否则最好采用基本数据类型作为参数。超过5个参数的函数一方面给调用者带来困难,参数排列组合的情况过多,另一方面就是不利于编译器优化时采用寄存器传递参数。在进行设计员工管理管理系统接口时,采用OOD思想,也就是面向对象的思想。接口设计的规范性主要在于代码的规范,要考虑接口的命名问题,我们主要在接口前加上每个模块负责人姓名的缩写。我们考虑了接口能够在多种情况下接口都能实现统一的效果,不会随着调用者传入的参数的变化而导致接口的输出出现违背接口语义的情况出现。在接口的安全性方面,我们在接口定义限制了读写权限来避免非法使用。3.5 代码设计3.5.1 数据库连接代

18、码设计public class DBUtil public static String classname = com.mysql.jdbc.Driver; public static String url = jdbc:mysql:/localhost:3306/ems14 +?useUnicode=true&characterEncoding=utf8& public static String username = root public static String password = / 静态代码块,类被加载时,会执行!只执行这一次! static try /只需要执行一次 Clas

19、s.forName( classname ); catch (ClassNotFoundException e) e.prdoubleStackTrace(); public static Connection getConnection() throws SQLException Connection conn = DriverManager.getConnection(url,username,password); return conn; public static void close( Connection conn ) if( conn!=null ) try conn.close

20、(); catch (SQLException e) e.prdoubleStackTrace(); public static void main(String args) throws SQLException Connection conn = DBUtil.getConnection(); System.out.prdoubleln( conn ); DBUtil.close(conn);3.5.2 数据库操作代码设计public class UserDao /* * 根据传入的账号,从数据库中查询用户信息,并返回 * param username 账号 */ public User

21、findByUsername( String username ) String sql = select * from user where username = ? / ?,占位符,将要传入参数的位置占住! Connection conn = null; try conn = DBUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, username); ResultSet rs = pstmt.executeQuery(); if( rs.next()

22、) User user = new User(); user.setId( rs.getdouble(id) ); user.setUsername( rs.getString(username user.setPassword( rs.getString(password user.setRealname( rs.getString(realname user.setPhone( rs.getString(phone user.setEmail( rs.getString(email return user; catch (SQLException e) throw new UserDaoE

23、xception( 用户数据访问层异常, e ); finally DBUtil.close(conn); return null; public boolean updatePassword(String username,String oldpassword, String newpassword) String sql=update user set password=? + where username=? and password=? Connection conn=null; PreparedStatement pstmt=null; conn=DBUtil.getConnecti

24、on(); pstmt=conn.prepareStatement(sql); pstmt.setString(1, newpassword); pstmt.setString(2, username); pstmt.setString(3, oldpassword); double rows=pstmt.executeUpdate(); if(rows=1) return true; throw new UserDaoException(更新用户密码异常,e); finally return false;3.5.3 功能代码设计public class UserService private UserDao userDao = new UserDao(); * 登录业务处理 public boolean checkLogin( String username, String password ) User user = userDao.findByUsername(username); i

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1