数据库课程设计报告_工资管理系统

合集下载

员工工资管理系统_数据库课程设计

员工工资管理系统_数据库课程设计

企业员工工资管理系统设计1一、背景 .........................................................1二、员工工资系统设计 ............................................12.1系统功能分析 ...............................................22.2系统物理模块设计 ...........................................2三、 数据库设计 .................................................23.1数据流需求分析 ............................................23.2概念模型设计 ...............................................53.3逻辑结构设计 ...............................................6四、数据库程序设计 ...............................................4.1用户登录模块 ...............................................674.2 主窗体模块 ...............................................4.3员工信息模块 ...............................................894.4工资信息模块 ...............................................9附录 .............................................................一、背景S家具企业始建于1954年,是一家有着40多年历史的老厂。

数据库设计报告——工资管理系统

数据库设计报告——工资管理系统

数据库设计报告——工资管理系统一、引言工资是公司和员工之间的一种交换方式,是员工为公司所做的工作得到相应报酬的一种形式。

在一个公司或组织中,工资管理系统是一项重要的任务,它涉及到员工信息、薪资核算、工资发放、工资统计等内容。

为了提高工资管理的效率和准确性,设计一个合理的数据库是非常重要的。

二、数据库设计目标1.提供员工信息的录入和管理功能;2.提供员工工资的计算和发放功能;3.提供工资统计和报表生成功能;4.提供数据的安全和备份功能。

三、数据库设计方案1.员工信息表设计2.薪资核算表设计薪资核算表是根据员工的职位和工作时长计算薪资的依据。

薪资核算表包含员工ID、员工姓名、职位、工作时长、基本工资、加班工资、补贴等字段。

根据这些字段进行合理的计算,得出员工的最终工资。

3.工资发放表设计工资发放表记录了每一次工资的发放情况,包括员工ID、员工姓名、发放时间、工资金额等字段。

可以根据这些字段进行工资的发放和工资单的打印。

4.工资统计表设计工资统计表主要用于统计和分析公司员工的工资情况,如平均工资、最高工资、最低工资等。

可以根据职位、部门等维度进行统计,生成相应的报表和图表。

5.数据库安全与备份方案为了保障数据的安全和完整性,需要对数据库进行安全设置。

可以设置访问权限,只允许授权人员进行数据的录入、修改和查询。

此外,还需要定期备份数据库,以防止数据丢失。

四、数据库设计实施1. 选取合适的数据库软件,如MySQL、Oracle等;2.创建数据库,并创建员工信息表、薪资核算表、工资发放表、工资统计表等表结构;3.设计合适的数据录入界面,用于员工信息的录入和管理;4.设计薪资计算和发放功能,确保工资的准确性和及时性;5.设计工资统计和报表生成功能,方便管理层进行分析和决策;6.设置数据库的安全权限,并定期备份数据库。

五、数据库设计总结工资管理系统是一个关键的人力资源管理系统,数据库设计的合理性和准确性直接影响到工资管理的效率和准确性。

通用工资管理系统数据库课程设计

通用工资管理系统数据库课程设计

通用工资管理系统数据库课程设计随着信息技术的快速发展,各行各业都在不断地引入计算机系统来提高工作效率和管理水平。

在企业管理中,工资管理是一个非常重要的环节,直接关系到员工的薪酬福利和企业的运营成本。

为了更好地管理和控制工资发放,许多企业开始引入通用工资管理系统。

通用工资管理系统是一种基于数据库的软件系统,它能够实现对员工工资信息的录入、计算、查询和统计等功能。

在数据库课程设计中,我们将设计一个通用工资管理系统的数据库,以满足企业对工资管理的需求。

首先,我们需要设计员工信息表。

该表包括员工编号、姓名、性别、年龄、职位、部门等字段。

员工编号作为主键,用于唯一标识每个员工。

姓名、性别、年龄、职位和部门等字段用于描述员工的基本信息。

其次,我们需要设计工资信息表。

该表包括员工编号、基本工资、津贴、奖金、扣款等字段。

员工编号作为外键,与员工信息表中的员工编号字段关联起来。

基本工资字段用于记录员工的基本薪酬,津贴字段用于记录员工的额外福利,奖金字段用于记录员工的绩效奖金,扣款字段用于记录员工的罚款或扣除。

接下来,我们需要设计工资发放表。

该表包括员工编号、发放日期、发放金额等字段。

员工编号作为外键,与员工信息表中的员工编号字段关联起来。

发放日期字段用于记录工资的发放日期,发放金额字段用于记录工资的具体金额。

此外,我们还需要设计部门表和职位表。

部门表包括部门编号和部门名称等字段,职位表包括职位编号和职位名称等字段。

这两个表用于描述员工所属的部门和职位信息。

最后,我们需要设计用户表和权限表。

用户表包括用户名和密码等字段,权限表包括权限编号和权限名称等字段。

用户表用于记录系统的用户信息,权限表用于记录用户的权限信息。

通过以上的数据库设计,我们可以实现对员工工资信息的录入、计算、查询和统计等功能。

管理员可以通过系统录入员工的基本信息和工资信息,系统会自动计算出员工的实际工资并记录下来。

员工和管理员可以通过系统查询和统计工资信息,了解自己的薪酬情况和企业的工资发放情况。

数据库课程设计——企业员工工资管理系统

数据库课程设计——企业员工工资管理系统

数据库课程设计——企业员工工资管理系统一、引言在现代企业管理中,员工工资的管理是一个极为重要的环节。

为了提高工资管理的效率和准确性,需要设计和实现一套高效的企业员工工资管理系统。

本文将介绍如何在数据库课程设计中构建一个功能完善的企业员工工资管理系统。

二、系统需求分析企业员工工资管理系统需要满足以下基本需求:1. 员工信息管理:包括员工基本信息(姓名、性别、年龄等)、部门信息、职位信息等。

2. 工资计算:根据员工的基本工资、绩效考核等因素计算工资。

3. 工资发放:自动生成工资发放单,记录工资发放的时间和方式。

4. 工资查询:员工和管理人员能够查询工资详细信息,包括工资单、工资发放记录等。

5. 统计报表:生成各种工资统计报表,如部门工资总额、员工工资排名等。

三、系统设计与实现1. 数据库设计为了满足系统需求,需要设计一组适当的数据库表来存储相关数据。

以下是数据库表的设计方案:- 员工表(Employee):存储员工的基本信息(员工编号、姓名、性别、年龄等)。

- 部门表(Department):存储部门的信息(部门编号、部门名称等)。

- 职位表(Position):存储职位信息(职位编号、职位名称等)。

- 工资表(Salary):存储员工的工资信息(员工编号、基本工资、绩效等)。

- 工资发放表(SalaryPayment):记录工资的发放信息(员工编号、发放时间、发放方式等)。

2. 系统实现利用SQL语言和数据库管理系统,可以实现员工工资管理系统的各项功能需求。

以下是关键功能的实现示例:- 员工信息管理:通过SQL语句实现员工信息的增加、删除、修改和查询操作。

- 工资计算:编写SQL函数或存储过程来计算员工的工资,考虑到绩效考核等因素。

- 工资发放:编写SQL语句插入工资发放记录,记录发放时间和方式等信息。

- 工资查询:编写SQL语句实现员工和管理人员的工资查询功能,根据需要生成工资单。

- 统计报表:通过SQL语句生成工资统计报表,利用聚合函数和分组操作实现部门工资总额、员工工资排名等统计指标的计算。

数据库课程设计--工资管理系统

数据库课程设计--工资管理系统

数据库课程设计设计题目:工资管理系统班级:学号:姓名:任务分配表目录一绪论 (3)二需求分析 (3)三概要设计 (4)四物理设计 (5)五详细设计 (6)六调试分析 (9)七小结 (16)八附件 (16)一、绪论随着计算机技术的飞速发展和经济体制改革的不断深入,传统企业管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成员工工资管理工作。

提高公司企业管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识。

基于C#与SQL server数据库技术建立一个通用工资管理系统,该系统为提供了查询、增加记录、删除等功能,功能比较的齐全,并对工资进行了统计如津贴管理、报表统计等。

基本上能满足管理员和公司的要求。

此次数据库课程设计的主要设计如下:原理分析、程序设计过程、程序实现和程序调试以及数据库的设计。

需求分析、概要结构设计、逻辑结构设计、物理结构设计和数据库的实施和维护。

主要包括两大大功能模块:1.管理员管理界面设计。

2.员工管理界面设计。

二、需求分析功能需求分析:该通用工资管理系统具备下列功能:管理员通过输入用户名和密码进下该系统后,可以进行一些基本查询(员工信息查询、工资奖金信息查询)、工资管理(计算总工资、奖金管理);通过输入密码,可以进行查询员工的数据(工资,奖金,税收等)。

具体功能的详细描述如下1、在首页进行选择,员工与管理员通道2、点击[管理员登陆]3、用户名和密码即可进入 [工资管理]功能窗体,在此可以选择功能,添加,查询,人员列表4、点击[添加]功能窗体,添加员工工资信息。

5、点击[查询]功能窗体,输入员工号即可查询员工信息。

6、点击[人员列表]功能窗体,可查看所有员工的列表,这界面内可以进行删除操作。

7、点击[员工登陆]8、用户名和密码即可进入 [员工工资查询]功能窗体,在此可以选择查询基本信息,查询工资信息。

9、在[查询基本信息],员工可自己查看自己的信息。

10、在[查询工作信息],员工可自己查看自己的工作信息。

工资管理系统数据库设计报告(数据库课程设计)

工资管理系统数据库设计报告(数据库课程设计)

数据库课程设计报告工资管理系统数据库设计报告设计题目:工资管理系统学院:信息技术学院专业:信息管理与信息系统小组成员及分工目录1.引言 (4)1.1编写目的 (4)1。

2项目背景 (4)1.3参考资料 (4)2.需求分析 (5)2。

1功能的分析、 (5)2.2顶层图 (5)2.3数据流程图 (5)2.4数据字典分析 (6)3。

数据库的概念设计 (7)4。

数据库的逻辑设计 (8)5.数据库与数据表的设计—-物理结构设计 (9)5.1数据库与数据表的设计 (9)5。

2数据的完整性设计 (12)6。

数据库操作与实施结果——数据库对象的设计 (13)6。

1建数据库—-工资管理库 (13)6。

2建表 (13)6.3创建视图 (16)6。

4触发器 (16)6。

5建立索引 (18)7.运行和维护 (18)7.1简单查询 (18)7.2复杂查询 (19)7。

3数据库的用户与权限管理 (20)7.4数据库的备份 (22)7.5数据的导出与导入 (23)8 总结 (24)工资管理系统分析和设计1.引言1.1编写目的随着科学的进步,一些公司不断发展壮大急需一套完整的工资管理系统帮助企业的财务主管部门提高工作效率,实现企业工资管理的系统化、规范化和自动化.本系统实现对人员信息、薪资福利、员工社保信息的维护和查询,并能迅速准确地完成考勤的分类汇总,生成工资报表等。

能够使单位实现工资管理的自动化,无疑将给企业管理部门带来很大的方便。

真正实现企业高效、科学、现代化的员工管理。

有利于财务部门对员工工资的管理,减轻人事部们的任务,提高公司效率,节约人力资源从而降低了企业成本.1。

2项目背景a.我们对数据库技术有了初步的了解和具体的应用;因此,做此分析,由各小组成员合作做出一个项目。

让我们对学到的知识系统的结合在一起;考察学生学以致用的能力。

b.由此考察学生的动手能力和合作的精神;以打分的形式作为一次考察记录。

1.3参考资料a.老师发放的软件工程文档模板.b.网络下载有关的资料说明和一些部门的工资管理系统范例.2.需求分析2.1功能的分析、工资管理系统主要完成的功能有:(1) 人员信息管理:企业员工信息(包括员工基本信息、教育经历、个人简历、岗位变更、离职登记、离退休信息等)的维护和查询。

数据库课程设计实验报告-工资管理系统

数据库课程设计实验报告-工资管理系统

延安大学计算机学院实验报告专用纸实验室:软件工程实验室学号:实验日期:2013年11月日(1)。

需求分析工资管理信息系统对企业加强工资管理有着极其重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等等.在做这个管理系统时,我们既咨询了父母又结合了教师等不同行业人士的工资情况,发现该系统受些许因素牵制比如说:公司大小,人员流动性,员工学历等通过我们的了解调查最终总结出系统功能如下:a。

整体结构合理, 模块化结构利于操作。

b。

完整的数据输入,输出,维护.c。

拥有不错的自检性,用户输错或误输均有提示。

d. 拥有较强的容错性,某个用户的错误操作不会引起系统的瘫痪。

e. 程序接口灵活,以便日后操作与维护。

f. 在不影响系统功能的前提下,美化操作界面.(2)。

概念设计○1E-R图错误!数据流图(3).逻辑设计基本信息(员工编号号,姓名,性别,毕业学校,所学专业,学历,电话,住址,从事岗位).考勤信息表(员工编号,姓名,请假天数,矿工天数,月迟到次数,月份).加班信息表(员工编号,姓名,晚班加班(天),周末加班(天),春节加班(天),节假日加班(天),月份)。

岗位信息表(员工编号,姓名,从事岗位,基本工资,部门名称)。

部门信息表(部门编号,部门名称,部门经理,部门人数)根据基本表创建了如下视图:加班津贴(员工编号,姓名,加班薪酬,月份)缺勤扣除表(员工编号,姓名,扣除工资,月份)月工资表(员工编号,姓名,基本工资,扣除工资,加班薪酬,实得工资,月份)年终奖(员工编号,姓名,奖(4).数据字典视图的创建:(5)。

系统的实现开发环境:SQL server 2005及eclipse○,1用SQL语言创建数据库Array 1.基本信息表(JBXX)Create table JBXX(Empno int not null primarykey,Emname varchar(8) not null,Sex char(2)check(Sex=’ 男’or Sex=’女’),School varchar(20)null,Profession varchar(20) null,Education varchar(6) null,Phone char(11) null,Address varchar(15)null)3.加班信息表(OVERTIMEINFORMA TION)Create table OVERTIMEINFORMATION(Empno int not null ,Night int null,Weekend int null,Festival int null,Special int null,Themonth int not null,5。

数据库课程设计-工资管理系统

数据库课程设计-工资管理系统
可维护性
采用模块化设计,降低系统复 杂度,方便后期维护和升级。
用户需求
员工
能够查看自己的工资条和考勤记录, 了解自己的收入情况和出勤状况。
人力资源部门
企业管理层
通过系统报表了解企业整体薪资状况 、人力成本及员工绩效等情况,为企 业战略制定和人力资源管理提供依据 。
能够管理员工信息、工资信息和考勤 信息,生成各类报表,为企业管理层 提供决策支持。
问题解决能力
在项目设计和实现过程中,遇到了很多问题和挑战,通过 不断思考和尝试,我逐渐提高了自己的问题解决能力。
对未来研究的展望
数据库新技术研究
随着大数据、云计算等技术的不断发展,数据库技术也在不断演进。未来可以关注和研究 分布式数据库、图数据库等新技术,以满足不同应用场景的需求。
数据库应用拓展
除了传统的企业级应用外,数据库在物联网、人工智能等领域也有广泛的应用前景。未来 可以探索和研究数据库在这些领域的应用和拓展。
系统评估
功能完整性
评估系统是否实现了所有预定的功能,如工 资录入、查询、统计、分析等。
性能稳定性
测试系统在不同负载下的性能表现,如响应 时间、数据处理速度等。
易用性
评估系统的用户界面是否友好,操作是否简 便易懂。
安全性
检查系统的安全机制,如用户权限管理、数 据加密等是否完善。
改进意见与建议
增加数据校验机制
数据库设计
1 2 3
数据库选型
选用关系型数据库管理系统(RDBMS),如 MySQL、Oracle或SQL Server等,确保数据的 完整性和安全性。
数据表设计
根据业务需求设计合理的数据表结构,包括员工 信息表、工资明细表、部门信息表等,定义主键 、外键和索引等约束条件。

数据库课程设计报告_工资管理系统

数据库课程设计报告_工资管理系统

数据库课程设计报告_工资管理系统一、引言工资管理是每个企业必不可少的一个管理方面,它不仅关系到企业的资金管理,同时也关系到员工的收入与福利。

在当前信息技术不断发展的时代,各种软件系统的应用已经成为了一个企业发展的标配。

因此,我们设计了一款简单实用的工资管理系统。

二、系统的设计思路1. 系统需求分析针对使用系统人员(管理员、普通员工)的需求,我们在系统中加入了以下功能:* 员工信息的录入与修改* 员工工资信息的录入与修改* 工资发放管理* 查看历史工资记录结合上述功能点,我们为系统制定了几条关键需求:* 数据库必须可保证一致性,员工工资信息需在工资发放管理时及时更新* 管理员可查看工资信息,但无权修改工资明细* 操作流程应严谨,避免用户误操作2. 数据库表设计为了实现系统的功能,我们设计了以下表:* employee(员工信息表)* salary(员工工资明细表)* salary_record(工资记录表)employee表主要包括员工的基本信息,包括员工编号、姓名、性别、部门、岗位等。

salary表主要记录员工的工资明细信息,包括年度、月份、基本工资、绩效工资、奖金等。

salary_record表主要记录工资的发放记录,包括年度、月份、发放日期等。

3. 系统架构设计本系统采用了B/S架构,由前端页面和后台服务端组成。

前端页面采用了HTML、CSS、JavaScript等技术进行开发,后台服务端则采用了Java语言并使用了Spring框架。

4. 功能设计系统主要功能有如下几点:* 员工信息管理:管理员可对员工信息进行添加、修改、删除操作。

* 工资信息管理:管理员可对员工工资信息进行添加、修改、删除操作。

* 工资发放管理:管理员可对员工工资信息进行发放操作。

* 工资查询:工资发放后,员工和管理员可以查询员工工资记录。

三、实现技术细节1. 连接池为了防止每次创建一个新的连接造成过度资源的占用,在系统中使用了连接池技术。

工资管理系统课程设计报告

工资管理系统课程设计报告

工资管理需求。
02
存在问题
系统在处理大量数据时可能会出现性能瓶颈,需要进一步优化数据库设
计和查询算法。
03
改进建议
可以考虑采用分布式数据库或云计算技术来提高系统处理能力和扩展性
;同时,可以加强对系统的监控和日志分析,及时发现并解决问题。
06
课程设计总结与展望
课程设计成果总结
工资管理系统的设计与实现
服务器:Tomcat
04
05
操作系统:Windows 10
编码实现
数据模型设计
设计工资条、员工、部 门等数据模型,并实现 数据模型之间的关系。
数据库操作
使用JDBC连接MySQL 数据库,实现数据的增
删改查操作。
业务逻辑实现
实现工资计算、工资条 生成、员工管理、部门
管理等业务逻辑。
界面设计
使用Java Swing设计用 户界面,包括登录界面 、主界面、工资条界面
选用MySQL数据库,保证数据的稳定性和安全性。
数据表设计
设计员工信息表、工资条表、考勤表、奖惩表等数据表,定义字段 、数据类型、约束等属性,实现数据的规范化存储。
数据关系
通过外键关联实现数据表之间的关联,保证数据的一致性和完整性 。
界面设计
01
02
03
界面风格
采用简洁、大气的设计风 格,符合企业用户的审美 习惯。
报告范围
系统需求分析
对工资管理系统的需求进行详细分析 ,包括功能需求、性能需求、安全需 求等。
01
02
系统设计
根据需求分析结果,设计系统的整体 架构、数据库结构、功能模块等。
03
系统实现
依据系统设计,采用合适的编程语言 和开发工具进行系统编码和实现。

工资管理系统的数据库课程设计

工资管理系统的数据库课程设计

课程设计报告书年 月1 设计时间2 设计目的掌握数据库的设计3设计任务设计一个工资管理系统4 设计内容〔1〕目标:1)实现月工资计算;2)实现与工资管理有关的档案管理。

3)提高工资管理工作效率,降低出错率。

〔2〕功能要求:档案管理1)保存有关工资计算以及工资管理所必须的数据2)能对数据进行查询、统计工资计算1)正确计算出个人月工资、部门月工资以及全厂月工资。

2)能对病假扣款系数进行修正。

3)能统计工资计算表、个人工资单、部门工资单、工资汇总表四种表格。

需求分析工资管理信息系统对企业加强工资管理有着极其重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比方拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比方工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等等。

由于设计时间本设计事一个简单模型,该公司目前对工资管理的要求并不高。

因此,针对该公司而言,我们经过了反复地论证,最终确定了工资管理系统的设计方案。

该工资管理系统的主要功能如下图:图4-1概念结构设计图4-2职工技术职称性别 出生日期参加工作日期所属部门人员类别工种类别 技术等级职工号文化程度 现住址籍贯民族工资管理系统职工基本信息 工资结构设置 工资汇总资料输入职工增删职工查询基础工资岗位工资工龄工资岗位工资工龄工资图4-3图4-4工资表岗位津贴住房补贴职务津贴物价补贴房租缺勤扣除工资加班费出勤表职工出勤日数工伤日数 产假日数旷工日数病假日数事假日数 加班日数夜班日数 病假系数图4-5 总ER 图逻辑结构设计职工表〔职工号 技术等级 性别 出生日期 参加工作日期 所属部门 人员类别 工种职别技术职称 文化程度 民族 籍贯 现住址 〕工资表〔技术等级 职工的基本工资 岗位津贴 物价补贴 职位津贴 住房补贴 房租〕出勤表〔职工号 职工出勤 工伤日数 产假日期 病假日期 旷工日期 事假日期 加班日期 夜班日期 病假日期〕物理结构设计职工表4-1字段名称 类型 是否为空 主关键字 取值范围 备注 职工号 char 否 Y 主键 char 否 N 性别 char 否 N 出生日期datetime否N职工出勤表工资表职工号 性别 民族职工号 技术等级物价补贴 岗位津贴物价补贴住房补贴 技术等级加班费 旷工日数加班日数职工代号工伤日数产假日数事假日数病假日数影响影响参加工作datetime 否 N日期所属部门 char 否 N人员类别 char 否 N工种职别 char 否 N技术等级 char 否 N技术职称 char 否 N文化程度 char 否 N民族 char 否 N籍贯 char 否 N现住址 char 否 N工资表4-2字段名称 类型 是否为空 主键字 取值范围 备注 技术等级 char 否 Y 主键 岗位津贴 int 否 N物价补贴 int 否 N职务津贴 int 否 N住房补贴 int 否 N房租 int 否 Nint 否 N缺勤扣除工资加班费 int 否 N出勤表4-3字段名称 类型 是否为空 主键字 取值范围 备注 职工号 char 否 Y 主键 int 否 N职工的出勤日数工伤日数 int 否 N产假日数 int 否 N病假日数 int 否 N旷工日数 int 否 N事假日数 int 否 N加班日数 int 否 N夜班日数 int 否 N病假系数 int 否 N数据库实现职工号 char(10) primary key,create table ZG(char(10) not null,性别 char(10) not null,出生日期 datetime not null,参加工作日期 datetime not null ,所属部门 char (20) not null,人员类别 char(10) not null,工种职别 char (10) not null,技术等级 char (10) not null,技术职称 char (10) not null,文化程度 char (10) not null,民族 char (10) not null,籍贯 char (10) not null,现住址 char (10) ) not null;技术等级 char(10) primary key not null, create table GZ(职工的基本工资 int not null ,岗位津贴 int not null ,物价补贴 int not null ,职务津贴 int not null,住房补贴 int not null,房租 int not null );职工号 char(10) primary key,create table CQ(职工的出勤日数 int ,公伤日数 int not null,产假日数 int not null ,病假日数 int not null,旷工日数 int not null,事假日数 int not null,加班日数 int not null ,夜班日数 int not null ,病假系数 int not null);数据载入职工表的数据图4-6工资表的数据图4-7出勤表的数据图4-8运行与测试设计系统查询功能及要求,写出主要的查询SQL语句,并给出运行结果。

数据库课程设计 工资管理系统

数据库课程设计 工资管理系统

课程设计要求:1.对各个系统进行系统功能需求分析2. 数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)3. 设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定4. 通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引5. 根据系统功能需求设计相应的查询视图6. 要求根据系统功能需求建立存储过程7. 根据功能需求建立相应的触发器以保证数据的一致性8. 通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作)一、需求分析企业的工资管理是公司管理的一个重要内容。

随着科学技术的发展,一些公司的规模也越来越大,职工的数量也在不断的增加,企业的管理工作也变得越来越复杂。

工资管理既涉及到企业劳动人事的管理,同时也是企业财务的重要组成部分。

面对如此大的信息量,单凭传统的表格、手工操作已不能满足实际的需要。

因此,我设计工资管理系统来提高财务管理方面的效率。

通过这个系统可以使信息的管理更加规范,统计更科学。

模块功能分析:(1)部门模块:用来管理部门;(2)工资模块:用来管理员工的工资;(3)职工模块:用来管理工厂的职工信息;二、概念结构设计经分析,本系统的e-r图如下:三、逻辑结构设计 1. 工资管理基本信息表①department(部门)列名数据类型长度是否允许空 备注department_n o(部门号)char 8否主关键字职工属于部门职工姓名型性别学历职工号部门编号部门名称部门名称部门经理部门人数部门编号获得工资应发薪水事故扣薪实发薪水加班天数 加班时间职工号月薪津贴出勤天数加班费department_name(部门名)char 15 否depart_manage(部门经理)char 6 否depart_people(部门人数)int 6 否②staff(职工)列名数据类型长度是否允许空备注staff_no (职工号)char 10 否主关键字staff_name(职工姓名)char 20 否staff_sex (职工姓别)char 25 否默认”男”Enducational(学历)char 10 否dapartment_no(部门号)char 8 否department_name(部门名称)char 15 否③salary(工资)列名数据类型长度是否允许空备注staff_no(职工工号)char 10 否外键m_salary(月薪)int 6 否默认3000Allowance(津贴)int 10 是默认0out_days (出勤天数)int 2 否out_days<=31 andout_days>=0work_overti m(加班时间)datetime10 是w_overtime_ days(加班天数)int 2 否默认0w_overtime_days>=0 andw_overtime_days<=31Deduct(事故扣薪)int 4 否默认0issue_salary(应发薪水)int 4 否iss_salary(实发薪水)Int 4 否①建库create database salary_manageon(name=salary_manage_data,filename='d:\salary_manage_data.mdf',size=25,maxsize=35,filegrowth=5)log on(name=manage_log,filename='d:\salary_manage_data.ldf',size=25,maxsize=35,filegrowth=5)②建表/建立职工表/create table staff(staff_no char(10) primary key,/*职工工号*/staff_name char(20) not null,/*职工姓名*/staff_sex char(25) not null default '男'check( staff_sex in('男','女')),/*性别*/ enducational char(10) default '本科',/*学历*/dapartment_no char(8) not null,/*部门编号*/department_name char(15))/*部门名称*//*建立工资表*/create table salary(staff_no char(10) not null foreign key references staff(staff_no),/*职工工号*/m_salary int default 3000,/*月薪*/allowance int default 0,/*津贴*/out_days int not null check(out_days<=31 and out_days>=0),/*出勤天数*/ work_overtime datetime(10),/*加班时间*/w_overtime_days int default 0 check(w_overtime_days>=0 and w_overtime_days<=31),/*加班天数*/deduct int default 0,/*事故扣薪*/add_money int default 0,/*加班费*/issue_salary int(4) not null,/*应发薪水*/iss_salary int(4) not null)/*实发薪水*//*建立部门表*/create table department(department_no char(8) primary key,/*部门编号*/department_name char(15) not null,/*部门名称*/depart_manage char(6) not null,/*部门经理*/depart_people int(6)/*部门人数*/③添加记录insert into departmentvalues('071011','A部门','王经理',100);insert into departmentvalues('071012','B部门','李经理',200);insert into departmentvalues('071013','C部门','张经理',100);insert into staffvalues('0610','李明','男','本科','071011','A部门');insert into staffvalues('0613','张三','男','专科','071011','A部门');insert into staffvalues('0611','刘丽','女','本科','071012','B部门');insert into staffvalues('0612','张新','男','本科','071013','C部门');insert into salaryvalues('0610',3000,100,30,'2011-10-8',2,50,0,3000,3200); insert into salaryvalues('0611',3000,0,20,'',0,0,500,3000,2500);insert into salaryvalues('0612',3000,100,31,'2011-10-10',1,50,0,3000,3150);四、功能处理1、查询①表查询select * from department /*查询部门表*/select * from staff /*查询职工表*/select * from salary /*查询工资表*/②数据查询select salary.staff_no,staff_name,issue_salary,iss_salaryfrom salary,staffwhere iss_salary>3000 and salary.staff_no=staff.staff_noorder by salary.staff_noselect staff_no,staff_name from staffwhere staff_name like '刘%';2、数据更新①插入(前面已插入)②修改update salaryset iss_salary =1.2*iss_salarywhere iss_salary<2600;③删除delete from staffwhere enducational='专科';3.索引①建立索引create index jon salary(staff_no,issue_salary,iss_salary)create unique index index_staffon staff(staff_name)create unique index index_departon department(depart_people)②查询索引exec sp_helpindex salaryexec sp_helpindex staffexec sp_helpindex department③修改索引exec sp_rename 'salary.j','salary_index'④删除索引drop index index4.视图①创建视图create view table_salary(staff_no ,staff_name,issue_salary,iss_salary)as select salary.staff_no,staff_name,issue_salary,iss_salaryfrom salary,staffwhere salary.staff_no=staff.staff_no②查找视图select * from table_salary③/*修改视图*/Alter view table_salary(staff_no ,staff_name ,department_name,issue_salary,iss_salary)as selectsalary.staff_no,staff_name,department_name,issue_salary,iss_salaryfrom salary,staffwhere salary.staff_no=staff.staff_no;④删除视图drop view table_salary5.存储过程①创建存储过程。

数据库工资管理系统课程设计报告

数据库工资管理系统课程设计报告

数据库原理及应用课程设计《工资管理系统》学生姓名:++++++学生班级:++++++++学生学号:++++++++指导老师:+++++++目录一、开发背景 (3)二、系统功能 (3)三、需求分析 (5)1、数据流图 (5)2、数据字典 (6)1.数据流的描述 (6)2、处理逻辑的描述 (7)3. 数据存储的描述 (8)四.概念结构设计 (9)(1)员工信息属性图 (9)(2)工资种类属性图 (10)(3)津贴属性图 (10)(5)局部E-R图 (11)(6)局部E-R图 (12)(7)总的E-R图 (13)五、逻辑结构设计 ..................................................................... 错误!未定义书签。

1数据库关系模式 .. (14)2规范化处理 (14)3逻辑模型 (14)1.员工信息表 (14)2.工资种类表 (15)3.津贴表 (15)4.加班表 (15)六、物理结构设计 ..................................................................... 错误!未定义书签。

七、数据库实施及应用程序编制 (16)1.创建数据库 (17)2.创建表 (17)3.创建存储过程....................................................................... 错误!未定义书签。

八、课程设计心得体会 (19)一、开发背景现代企业管理非常复杂,并且管理的范围也很广泛。

不仅要管理职工的工资发放,还要管理财务预算结算,银行之间的转账等。

手工管理这些信息几乎不再可能,并且效率低,保密性差。

用计算机管理的优点是查询速度快,保密性好一集成本低。

因此开发专用的工资管理系统,让计算机自动管理工资势在必行。

随着经济的发展,企业正向着大型化、规模化发展,而对于大中型企业,员工、职称等跟工资管理有关的信息随之急剧增加。

工资系统数据库课程设计

工资系统数据库课程设计

工资系统数据库课程设计一、课程目标知识目标:1. 理解数据库在工资管理系统中的应用和重要性;2. 掌握工资管理系统的基本功能模块及其数据表结构设计;3. 学会运用SQL语句进行工资数据的查询、插入、更新和删除操作;4. 了解数据库的安全性和一致性原则在工资系统中的应用。

技能目标:1. 能够独立设计并实现一个简单的工资管理系统数据库;2. 能够运用所学知识,对工资数据进行有效管理和维护;3. 能够通过数据库查询和分析,解决工资管理中的实际问题;4. 学会使用数据库管理工具(如:MySQL、Oracle等)进行数据操作。

情感态度价值观目标:1. 培养学生对数据库技术在工资管理系统中的应用产生兴趣,提高学习积极性;2. 培养学生严谨、细心的数据处理能力和团队合作精神;3. 增强学生对信息技术的认识,使其意识到信息技术在企业管理中的重要作用;4. 培养学生尊重劳动、诚实守信的品质,提高社会责任感。

课程性质:本课程为实践性较强的课程,以培养学生的实际操作能力和解决问题的能力为主。

学生特点:学生具备一定的数据库基础知识和计算机操作技能,但可能对工资管理系统的实际应用了解不多。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,以案例教学为主,培养学生的实际操作能力和分析解决问题的能力。

在教学过程中,关注学生的学习进度和情感态度,确保课程目标的实现。

通过课程学习,使学生能够将所学知识应用于实际工作中,提高其职业素养。

二、教学内容1. 工资管理系统概述- 了解工资管理系统的基本概念和功能模块;- 分析工资管理系统的业务流程。

2. 数据库设计基础- 学习数据库设计的基本原则和步骤;- 掌握实体关系模型和关系数据库设计方法。

3. 工资管理系统数据库设计- 设计工资管理系统所需的数据表结构;- 学习如何建立实体和关系,并进行属性定义。

4. SQL语句操作- 掌握SQL基本操作(查询、插入、更新、删除);- 学习运用SQL语句对工资数据进行管理。

javaMySql数据库课程设计(员工工资管理系统)

javaMySql数据库课程设计(员工工资管理系统)

Java MySql数据库课程设计 - 员工工资管理系统1. 引言在现代企业中,员工工资管理是一项非常重要的任务。

合理管理员工工资不仅可以激励员工的积极性,还可以提高企业的运营效率。

为了更好地管理员工工资,我们决定设计一个员工工资管理系统,使用Java编程语言与MySql数据库进行开发。

2. 功能需求该员工工资管理系统将包含以下功能模块: - 员工信息管理:包括添加员工、删除员工、查看员工信息、修改员工信息等功能。

- 工资管理:包括录入员工工资、计算员工工资、查询员工工资等功能。

- 统计分析:包括统计部门工资总和、统计员工工资平均值等功能。

3. 技术选型为了实现上述功能需求,我们选择使用Java编程语言与MySql数据库进行开发。

以下是我们选择这些技术的原因: - Java是一种面向对象的编程语言,具有良好的可读性和可维护性,适合开发大型项目。

- MySql是一种关系型数据库管理系统,具有高性能和可扩展性,适合处理大量的数据。

4. 数据库设计4.1 数据表设计我们将设计两个数据表来存储员工信息和工资信息。

4.1.1 员工信息表字段名称数据类型说明id int员工IDname varchar员工姓名age int员工年龄gender varchar员工性别department varchar员工部门4.1.2 工资信息表字段名称数据类型说明id int工资IDemployee_id int员工IDmonth varchar月份salary decimal工资金额4.2 数据库查询语句以下是一些常用的数据库查询语句,用于实现系统功能模块:4.2.1 添加员工INSERT INTO employee (id, name, age, gender, d epartment)VALUES (1001, '张三', 25, '男', '技术部');4.2.2 删除员工DELETE FROM employee WHERE id=1001;4.2.3 查看员工信息SELECT*FROM employee;4.2.4 修改员工信息UPDATE employee SET age =26WHERE id=1001;4.2.5 录入员工工资INSERT INTO salary (id, employee_id, month, sa lary)VALUES (1, 1001, '2021-01', 5000);4.2.6 计算员工工资SELECT SUM(salary) FROM salary WHERE employee_ id =1001;4.2.7 查询员工工资SELECT*FROM salary;4.2.8 统计部门工资总和SELECT department, SUM(salary) FROM employee JOIN salary ON employee.id= salary.employee_id GROUP BY department;4.2.9 统计员工工资平均值SELECT employee_id, AVG(salary) FROM salary GROUP BY employee_id;5. 系统架构为了提高系统的扩展性和灵活性,我们将采用三层架构来设计该员工工资管理系统。

数据库设计报告——工资管理系统

数据库设计报告——工资管理系统

数据库设计报告——工资管理系统工资管理系统是一个用于管理公司员工工资信息的数据库系统。

该系统旨在提高工资管理的效率和准确性,减少人工管理过程中的错误和延误。

本数据库设计报告将详细介绍工资管理系统的数据库设计方案。

一、需求分析在进行数据库设计之前,首先需要进行详细的需求分析。

根据用户需求,工资管理系统应具备以下功能:1.员工信息管理:包括员工基本信息、职位、部门等。

2.薪资信息管理:包括员工工资、奖金、津贴等。

3.薪资计算:根据员工基本信息和薪资信息,计算每个员工的实际工资。

4.工资发放:记录每次工资发放的日期、金额等信息。

5.统计分析:能够对员工的薪资进行统计分析,如最高工资、最低工资、平均工资等。

二、数据库设计2.1实体分析根据需求分析,确定了以下实体:员工、部门、岗位、薪资、薪资发放记录。

2.2属性分析具体的实体和属性设计如下:员工(Employee):- 员工编号(EmployeeID):主键,自动生成。

- 姓名(Name)- 性别(Gender)- 出生日期(Birthday)- 手机号码(Phone)- 部门编号(DepartmentID):外键,关联部门表。

部门(Department):- 部门编号(DepartmentID):主键,自动生成。

- 部门名称(DepartmentName)岗位(Position):- 岗位编号(PositionID):主键,自动生成。

- 岗位名称(PositionName)薪资(Salary):- 薪资编号(SalaryID):主键,自动生成。

- 员工编号(EmployeeID):外键,关联员工表。

- 岗位编号(PositionID):外键,关联岗位表。

- 基本工资(BasicSalary)- 奖金(Bonus)- 津贴(Allowance)薪资发放记录(Payment):- 记录编号(RecordID):主键,自动生成。

- 员工编号(EmployeeID):外键,关联员工表。

数据库课程设计报告教师工资管理系统

数据库课程设计报告教师工资管理系统

数据库课程设计报告教师工资管理系统一、引言教师工资管理是教育机构中的一项重要工作,是保障教师合法权益的基础。

然而,由于工资管理涉及数据量大且多变的复杂问题,传统的手动计算已经不能满足教育机构管理的需要。

为此,应该开发一款便捷、高效、精确的教师工资管理系统。

二、系统需求分析教师工资管理系统主要涉及以下几个方面:1. 教师个人信息管理:记录教师的基本资料,并按照年度、学期、月份等进行归档管理。

2. 工资统计计算:根据教师的工龄、职称、工作量等因素,计算教师的工资,并记录在系统中。

3. 工资奖惩管理:根据教师的表现,对教师进行奖惩,并进行自动生成或手动录入。

4. 统计查询功能:提供多种方式的查询功能,以便教育机构管理者实时查询教师的工资情况。

三、系统设计方案1.系统结构系统采用B/S结构,即浏览器(Browser)/服务器(Server)结构。

教育机构管理者可通过浏览器打开系统界面,进行相应的教师工资管理。

2.数据库设计为了提高系统的数据存取效率,保证教师工资管理的可靠性,数据库采用MySQL。

设计数据库主要涉及以下几个表格:(1)教师表格:记录教师基本信息,包括姓名、性别、工号、职称、教龄等。

(2)薪资表格:记录教师每月的工资情况,包括基本工资、津贴、扣减项、实发工资等。

(3)奖惩表格:记录教师的奖惩情况,包括奖金、罚款、奖项等。

3.系统模块设计系统由以下模块所组成:(1)登录模块:输入用户账号和密码进行登录。

(2)个人信息管理模块:对教师基本信息进行新增、修改、删除、查询等操作。

(3)工资统计计算模块:根据教龄、职称、工作量等因素,计算教师工资,并记录在系统中。

(4)工资奖惩管理模块:通过录入奖惩信息,实现奖惩情况对工资的影响。

(5)工资查询模块:提供多种基本查询方式,如按照学期、年度、职称、教龄、工龄等查询。

(6)统计分析模块:根据不同的查询条件,对数据进行分析,帮助教育机构管理者对教师工资情况有清晰的认识。

工资管理系统数据库课程设计报告

工资管理系统数据库课程设计报告

工资管理系统数据库课程设计报告
设计工资管理系统的数据库需要考虑以下几个方面:
1.数据表设计:需要设计一个数据表来存储员工信息,包括员工ID、员工姓名、员工工资、员工职位等字段。

同时还需要设计一个数据表来存储薪资信息,包括薪资ID、员工ID、薪资水平、薪酬结构等字段。

两个数据表需要进行关联关系的设计,以实现员工信息与薪资信息的存储和查询。

2.关系设计:需要设计一个关系来将员工信息和薪资信息进行关联。

可以使用主外键关系来实现,其中员工信息表的主键是员工ID,薪资信息表的主键是薪资ID。

这样可以保证两个数据表的关联关系正确无误。

3.功能设计:需要考虑工资管理系统的各项功能,包括员工信息查询、薪资信息查询、员工信息修改、薪资信息修改等。

需要根据功能设计相应的操作界面和业务逻辑。

4.安全性设计:需要考虑工资管理系统的安全性,包括用户权限管理、数据备份和恢复、安全漏洞检测和修复等。

需要设计合适的安全措施,以保证数据和系统的安全。

5.性能设计:需要考虑工资管理系统的性能,包括查询速度、存储容量、数据更新速度等。

需要根据实际情况进行性能优化,以保证系统正常运行。

6.数据库备份和恢复:需要考虑数据库备份和恢复的能力,包括备份策略、备份文件大小、备份频率、恢复操作等。

需要设计合理的
备份和恢复方案,以保证数据的安全和完整性。

以上是设计工资管理系统数据库课程设计的几个方面,当然还有其他需要注意的问题,需要根据具体情况进行分析和设计。

数据库设计报告——工资管理系统

数据库设计报告——工资管理系统

一、设计目的和要求通过两周的课程设计,加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,设计一个工资管理系统,实现对员工工资的管理及查询功能。

最终结果为设计和完成具有较完善功能和一定规模的数据库应用系统(后台),为此后的软件工程课程设计和毕业设计作准备。

二、设计内容2.1概述项目背景:当今的科技迅速发展,管理系统已经完全通过计算机实现,因此需要根据外界的不断变化来完善管理系统,设计适应其发展的数据库管理系统,提高其性能,完善其功能。

编写目的:用SQL Server 2000建立一个工资管理系统数据库,在该数据库中建立员工基本信息表、员工工种信息表、员工考勤情况表、员工津贴信息表、员工月工资表、年终奖金表、工资等级表、奖金等级表。

按照要求设置好属性和各表的主键,并实现一下功能:(1)员工每个工种基本工资的设定(2)加班津贴管理,根据加班时间和类型给予不同的加班津贴;(3)按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;(4)员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12;(5)企业工资报表。

能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印2.2需求分析1.问题陈述:随着现代化技术的发展,员工管理已经完全通过计算机来实现了,为了高效率的完成员工工资的管理,满足对员工工资的查询及其他相关操作的实现,决定开发设计工资管理系统,并通过使用工资管理系统,使工资管理工作系统化、规范化、自动化,从而达到提高管理效率的目的.使办公人员可以轻松快捷地完成工资管理的任务。

系统后台采用SQL Server 2000建立数据库及其相关表和关系,运用SQL语句实现查询,计算等共能;后台采用Visual Basic所为界面输出,可提供添加删除等更新操作.系统功能模块:2.功能分析:员工管理系统需要对员工的工资、奖金进行管理,还应包括员工的一些基本信息和考勤情况、加班津贴。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库课程设计报告院系:信息管理学院专业:软件工程班级:软件Q1141组长:李艳平()组员:孙俊珍()王毅()左礼振()题目:工资管理系统教师:石黎时间:目录一、设计目的 ............................ 错误!未定义书签。

二、数据库功能分析 ...................... 错误!未定义书签。

信息输入功能................................... 错误!未定义书签。

数据修改删除功能............................... 错误!未定义书签。

查询和统计功能................................. 错误!未定义书签。

三、数据库设计 .......................... 错误!未定义书签。

需求分析....................................... 错误!未定义书签。

概念分析(E-R图) ................................... 错误!未定义书签。

逻辑设计…………………………………………………………………..- 4-物理设计....................................... 错误!未定义书签。

实施与维护..................................... 错误!未定义书签。

四、界面设计及相关代码................... 错误!未定义书签。

数据库的连接操作............................... 错误!未定义书签。

登陆界面....................................... 错误!未定义书签。

管理员操作..................................... 错误!未定义书签。

职工操作....................................... 错误!未定义书签。

五、感想及总结 .......................... 错误!未定义书签。

六、参考文献 ............................ 错误!未定义书签。

一、设计目的工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。

手工进行工资发放工作,需要反复地进行抄写、计算,不仅花费财务人员大量的时间,而且往往由于抄写不慎,出现张冠李戴,或者由于计算机的疏忽,出现工资发放错误的现象。

计算机进行工资发放工作,不仅能够保证工资核算正确无误、快速输出,而且还可以利用工资数据库对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理。

实现企业员工工资管理的系统化、规范化和自动化,能够和人事管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。

二、数据库功能分析信息输入功能1)输入员工的基本信息。

包括:员工编号、姓名、性别、参加工作时间、所属部门、职位等基本信息2)输入员工的工资信息。

包括:岗位基本工资、津贴、考勤等相关信息。

3)输入员工的部门信息。

包括:部门编号、部门名称、部门负责人、部门人数、部门与外界的联系方式。

数据修改删除功能1)修改和删除员工的基本信息。

当单位人员的信息发生变化,如职称的改变,工作部门变动,或调离本单位等,系统应能修改员工的信息或将其从员工信息表中删除。

2)修改和删除员工的工资信息。

员工升职加薪、工资普调是企业中常见的事情,这就需要系统能方便对员工工资进行个别及批量的修改;如员工调离本单位,就应当从员工信息表中删除这个员工信息,将其工资信息表中相应的数据删除。

3)修改和删除部门信息。

当一个部门的负责人或联系方式发生改变时,系统中相关部门信息也能做相应改变。

查询和统计功能1)能够查询指定员工的基本信息2)能够查询部门信息3)查询某个员工的工资信息4)统计部门总人数、共工资、平均工资5)工资表月工资记录的生成功能。

生成当月所有员工或所有部门的工资记录,同时能进行员工工资的计算,即基本工资、奖励金额、应扣金额。

三、数据库设计需求分析:《工资管理系统》针对的用户是小型企业,工资项目比较少,较为固定,工资管理涉及企业管理的多个方面,如员工职务宫中变化、员工考勤情况、员工加班情况等等。

根据这些信息,在每个月的某个固定时间,生成企业对全体员工的月工资。

对于月工资,能够实现按照员工、部门、月、年进行统计分析,产生相应报表。

需求信息整理(DFD图)如下:查询结果第一层 DFD图概念分析(E-R图)总E-R图员工基本信息实体E-R图图二员工部门实体E-R图图三员工考勤实体图五员工月工资实体E-R图逻辑设计1. 数据字典表1 Allowance (员工津贴)表2 Attendance (考勤信息统计)表3 BasicWages(工资标准表格)表 4 EmpBasicInfo (员工基本情况表)2. 关系模式员工基本信息表(所属部门,入公司时间,电话号码)员工津贴表(员工号,加班时间,加班天数,加班工资)员工考勤表(员工号,时间,缺勤天数,考勤工资)基本工资表(职位,基本工资)部门信息表(部门编号,部门名称,部门人数,联系方式)用户登陆(ID号,用户名,密码)3. 视图设计为及时更新数据,减少数据库后台操作,设计了部门工资情况及员工月工资情况两个视图部门工资情况视图:员工月工资视图: A物理设计数据库最终是要存储在物理设备上的,为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。

数据库的物理结构依赖于给定的计算机系统和DBMS。

实施与维护确定了数据库的逻辑结构和物理结构后,就可以用所选用的DBMS提供的数据定义语言(DDL)来严格定义数据库,包括建立表、定义表的约束等。

数据库系统投入运行后,对数据库设计进行评价、调整、修改等维护工作。

四、界面设计及相关代码数据库的连接操作using System;using ;using ;using工资管理系统{ows){if == row["user_id"].ToString()){= row["user_id"].ToString();= row["username"].ToString();if == row["password"].ToString()) {= ;();break;}else{("密码错误!请重新输入!");= "";}}else{i = i + 1;if (i == [str_vtab].{("无此用户信息,请重新输入!");= "";= "";();}}}}#endregion#region登陆信息检查private void button1_Click(object sender, EventArgs e) {if == "" && == ""){("请输入账户和密码!");();}else if == "" && != ""){("请输入账户名");();}else if != "" && == ""){("请输入密码!");();}else if (! && !{("请选择登陆身份!");}else if{if == "001" && == "1001"){Form2 myform2 = new Form2(); ();}else{("用户名和密码错误!");= "";= "";= false;= false;}}else if{Form3 myform3 = new Form3();IDverify("Staff", myform3);}}#endregion#region重置登陆信息private void button2_Click(object sender, EventArgs e) {= "";= "";= false;= false;();}#endregion}}管理员操作1) 查询员工信息2) 查询部门信息3) 查询津贴信息:4) 查询考勤信息:5)员工月工资汇总:6)部门平均工资:namespace工资管理系统{public partial class Form2 : Form{BaseOperate boperate = new BaseOperate(); ows)"emp_no"].ToString() + "\t" + row["emp_name"].ToString() + "\t" + row["emp_pos"].ToString() + "\t " +row["sex"].ToString() + "\t " + row["depart_name"].ToString() + "\t\t" + row["emp_time"].ToString() + "\t" + row["telephone"].ToString());}#endregion#region显示部门信息private void部门信息ToolStripMenuItem_Click(object sender, EventArgs e){string str_sqlcom = "Select * from Department";string str_vtab = "vistual_table";DataSet thisDset = (str_sqlcom, str_vtab);"部门号\t部门名称\t负责人\t 职工人数\t联系电话");foreach (DataRow row in [str_vtab].Rows)"depart_id"].ToString() + "\t" + row["depart_name"].ToString() + "\t\t" + row["depart_head"].ToString()+ "\t " + row["depart_emps"].ToString() + "\t\t" +row["depart_tel"].ToString());}#endregion#region显示部门信息private void津贴信息ToolStripMenuItem_Click(object sender, EventArgs e){string str_sqlcom = "Select * from Allowance";string str_vtab = "vistual_table";DataSet thisDset = (str_sqlcom, str_vtab);"职工号\t\t加班月份\t加班天数\t加班工资");foreach (DataRow row in [str_vtab].Rows)"emp_no"].ToString() + "\t\t" + row["overtime_month"].ToString() + "\t\t "+ row["overtime_days"].ToString() + "\t\t " +row["overtime_pay"].ToString());}#endregion#region出勤统计private void出勤统计ToolStripMenuItem_Click(object sender, EventArgs e){string str_sqlcom = "Select * from Attendance";string str_vtab = "vistual_table";DataSet thisDset = (str_sqlcom, str_vtab);"职工号\t\t考勤月份\t缺勤天数\t扣除工资");foreach (DataRow row in [str_vtab].Rows)"emp_no"].ToString() + "\t\t"+ row["attend_month"].ToString() + "\t\t "+ row["absent_days"].ToString() + "\t\t " +row["absent_pay"].ToString());}#endregion#region员工月工资汇总private void员工月工资汇总ToolStripMenuItem_Click(object sender, EventArgse){string str_sqlcom = "Select * from MonthWages";string str_vtab = "vistual_table";DataSet thisDset = (str_sqlcom, str_vtab);"工号\t月份\t工资\t底薪\t津贴\t考勤");foreach (DataRow row in [str_vtab].Rows)"emp_no"].ToString() + "\t" + row["pay_time"].ToString() + "\t" +row["basic_wage"].ToString() + "\t" +row["overtime_pay"].ToString() + "\t" +row["absent_pay"].ToString() + "\t" + row["month_pay"].ToString());}#endregion#region各部门工资情况private void各部门工资情况ToolStripMenuItem_Click(object sender, EventArgse){string str_sqlcom = "select * from DepartAvgWage";string str_vtab = "vistual_table";DataSet thisDset = (str_sqlcom, str_vtab);"部门\t 月份\t 部门人数\t部门总工资\t部门平均工资");foreach (DataRow row in [str_vtab].Rows)"depart_name"].ToString() + "\t "+ row["pay_month"].ToString() + "\t " +row["depart_emps"].ToString() + "\t\t " +row["sum_wage"].ToString() + " \t " + row["avg_wage"].ToString());}#endregion#region更新数据private void更新数据ToolStripMenuItem_Click(object sender, EventArgs e) {Form4 newform = new Form4();();}#endregion#region退出private void退出ToolStripMenuItem_Click(object sender, EventArgs e){();}#endregion}}7)信息修改:namespace工资管理系统{public partial class Form4 : Form{BaseOperate boperate = new BaseOperate(); ows){if (row["emp_no"].ToString() =={string no = ;string name = "";if == "")name = row["emp_name"].ToString();elsename = string pos = "";if == "")pos = row["emp_pos"].ToString();elsepos = string Sex = "";if (! && !Sex = row["sex"].ToString();else ifSex = else ifSex = string depart = "";if == "")depart = row["depart_name"].ToString();elsedepart = string time = "";if == "")time = row["emp_time"].ToString();elsetime = string tel = "";if == "")tel = row["telephone"].ToString();elsetel = string str_sqlcom2 = "update EmpBasicInfo set emp_name=@name, emp_pos=@pos, sex=@Sex, depart_name=@depart, emp_time=@time, telephone=@tel where emp_no=@no";SqlConnection mycon = ();();SqlCommand cmd = new SqlCommand(str_sqlcom2, mycon);SqlParameter par_no = new SqlParameter("@no", no);SqlParameter par_name = new SqlParameter("@name", name);SqlParameter par_pos = new SqlParameter("@pos", pos);SqlParameter par_sex = new SqlParameter("@Sex", Sex);SqlParameter par_depart = new SqlParameter("@depart", depart);SqlParameter par_time = new SqlParameter("@time", time);SqlParameter par_tel = new SqlParameter("@tel", tel);int result = ();if (result > 0)("信息修改成功!");search = 1;break;}}if (search == 0)("无此员工!");}}#endregion#region添加新员工ows){if (row["emp_no"].ToString() =={("此工号的员工已存在!请重新输入!");search = 1;break;}}if (search == 0){DataRow newRow = ["EmpBasicInfo"].NewRow(); newRow); ows){if (row["depart_name"].ToString() =={int num = (row["depart_emps"].ToString()) + 1;row["depart_emps"] = num;}}(thisDset, "Department");/*更新表Allowance, Attendance*/string no = ;();SqlCommand cmd1 = new SqlCommand("insert into Allowance values (@no ,'201310', '', '')", thisConn);SqlCommand cmd2 = new SqlCommand("insert into Attendance values (@no, '201310', '', '')", thisConn);SqlParameter par_no1 = new SqlParameter("@no", no);();SqlParameter par_no2 = new SqlParameter("@no", no);();/*更新表Staff*/string id = string name = ();string pwd = ("1", "1115");SqlCommand cmd3 = new SqlCommand("insert into Staff values(@id, @name, @pwd)", thisConn);SqlParameter par_id = new SqlParameter("@id", id);SqlParameter par_name = new SqlParameter("@name", name);SqlParameter par_pwd = new SqlParameter("@pwd", pwd);(); ();("添加成功!");}}}#endregion#region删除员工ows){if (row["emp_no"].ToString() =={string str_sqlcom1 = "delete from EmpBasicInfo where emp_no = " + ;();SqlCommand cmd = new SqlCommand(str_sqlcom1, thisConn);();/*更新表Department*/string depart = row["depart_name"].ToString();string str_sqlcom2 = "select * from Department";SqlDataAdapter thisAdp2 = new SqlDataAdapter(str_sqlcom2, thisConn);ows){if (row2["depart_name"].ToString() == depart){int num = (row2["depart_emps"].ToString()) - 1;row2["depart_emps"] = num;}}(thisDset, "Department");/*更新表Allowance, Attendance*/string no = ;SqlCommand cmd1 = new SqlCommand("delete from Allowance where emp_no = @no", thisConn);SqlCommand cmd2 = new SqlCommand("delete from Attendance where emp_no = @no", thisConn);SqlParameter par_no1 = new SqlParameter("@no", no);();SqlParameter par_no2 = new SqlParameter("@no", no);();/*更新表Staff*/string id = SqlCommand cmd3 = new SqlCommand("delete from Staff where user_id = @id", thisConn);SqlParameter par_id = new SqlParameter("@id", id);();();("删除成功!");search = 1;break;}}if (search == 0)("无此员工!");}}#endregion#region关闭修改员工信息窗口private void button4_Click(object sender, EventArgs e) {();}#endregion#region修改部门信息private void button5_Click(object sender, EventArgs e) {if == ""){("请输入部门编号!");();}else{string str_sqlcom = "Select * from Department";string str_vtab = "vistual_table";DataSet thisDset = (str_sqlcom, str_vtab);int search = 0;foreach (DataRow row in [str_vtab].Rows){if (row["depart_id"].ToString() =={string id = ;string tel = "";if == "")tel = row["depart_tel"].ToString();elsetel = int search2 = 0;string head = "";if == ""){head = row["depart_head"].ToString();search2 = 1;}else{string str_sqlcom2 = "select * from EmpBasicInfo";SqlConnection thisConn = ();SqlDataAdapter thisAdp = new SqlDataAdapter(str_sqlcom2, thisConn);ows){if (row2["emp_name"].ToString() =={head = search2 = 1;break;}}}if (search2 == 0){("无此职工信息!请重新输入");= "";();}else{string str_sqlcom3 = "update Department setdepart_head=@head, depart_tel=@tel where depart_id=@id";SqlConnection mycon = ();();SqlCommand cmd = new SqlCommand(str_sqlcom3, mycon);SqlParameter par_id = new SqlParameter("@id", id);SqlParameter par_head = new SqlParameter("@head", head);SqlParameter par_tel = new SqlParameter("@tel", tel);int result = ();if (result > 0)("信息修改成功!");}search = 1;break;}if (search == 0)("无此部门!");}}}#endregion#region关闭修改部门信息窗口private void button6_Click(object sender, EventArgs e){();}#endregion#region修改津贴信息private void button7_Click(object sender, EventArgs e){if == ""){("请输入工号!");();}else{string str_sqlcom = "Select * from Allowance";string str_vtab = "vistual_table";DataSet thisDset = (str_sqlcom, str_vtab);int search = 0;foreach (DataRow row in [str_vtab].Rows){if (row["emp_no"].ToString() =={string no = ;string month = "";if == "")month = row["overtime_month"].ToString();elsemonth = string days = "";if == "")days = row["overtime_days"].ToString();elsedays = string pay = "";if == "")pay = row["overtime_pay"].ToString();elsepay = string str_sqlcom2 = "update Allowance set overtime_month=@month, overtime_days=@days, overtime_pay=@pay where emp_no=@no";SqlConnection mycon = ();();SqlCommand cmd = new SqlCommand(str_sqlcom2, mycon);SqlParameter par_no = new SqlParameter("@no", no);SqlParameter par_month = new SqlParameter("@month", month);SqlParameter par_days = new SqlParameter("@days", days);SqlParameter par_pay = new SqlParameter("@pay", pay);int result = ();if (result > 0)("信息修改成功!");search = 1;break;}}if (search == 0)("无此员工!");}}#endregion#region关闭修改津贴信息窗口private void button8_Click(object sender, EventArgs e) {();}#endregion#region修改考勤信息窗口private void button9_Click(object sender, EventArgs e) {if == ""){("请输入工号!");();}else{string str_sqlcom = "Select * from Attendance";string str_vtab = "vistual_table";DataSet thisDset = (str_sqlcom, str_vtab);int search = 0;foreach (DataRow row in [str_vtab].Rows){if (row["emp_no"].ToString() =={string no = ;string month = "";month = row["attend_month"].ToString();elsemonth = string days = "";if == "")days = row["absent_days"].ToString();elsedays = string pay = "";if == "")pay = row["absent_pay"].ToString();elsepay = string str_sqlcom2 = "update Attendance set attend_month=@month, absent_days=@days, absent_pay=@pay where emp_no=@no";SqlConnection mycon = ();();SqlCommand cmd = new SqlCommand(str_sqlcom2, mycon);SqlParameter par_no = new SqlParameter("@no", no);SqlParameter par_month = new SqlParameter("@month", month);SqlParameter par_days = new SqlParameter("@days", days);SqlParameter par_pay = new SqlParameter("@pay", pay);int result = ();if (result > 0)("信息修改成功!");break;}}if (search == 0)("无此员工!");}}#endregion#region关闭修改考勤贴信息窗口private void button10_Click(object sender, EventArgs e) {();}#endregion#region修改基本工资信息private void button11_Click(object sender, EventArgs e) {if == ""){("请选择职位!");();}else{string pos = string wage = SqlConnection mycon = ();();SqlCommand cmd = new SqlCommand("update BasicWages setbasic_wage=@wage where emp_pos=@pos", mycon);SqlParameter par_pos = new SqlParameter("@pos", pos);SqlParameter par_wage = new SqlParameter("@wage", wage);int result = ();if (result > 0)("信息修改成功!");}}#endregion#region关闭修改工资信息窗口private void button12_Click(object sender, EventArgs e){();}#endregion}}职工操作namespace工资管理系统{public partial class Form3 : Form{BaseOperate boperate = new BaseOperate(); ows){if (row["emp_no"].ToString() =={"emp_no"].ToString() + "\t"+ row["emp_name"].ToString() + "\t"+ row["emp_pos"].ToString() + "\t " +row["sex"].ToString() + "\t "+ row["depart_name"].ToString() + "\t\t" + row["emp_time"].ToString() + "\t" + row["telephone"].ToString());break;}}}#endregion#region显示个人工资信息private void button2_Click(object sender, EventArgs e){string str_sqlcom = "Select * from MonthWages";string str_vtab = "vistual_table";DataSet thisDset = (str_sqlcom, str_vtab);"工号\t姓名\t 月份\t 基本工资\t津贴\t考勤\t月总工资");foreach (DataRow row in [str_vtab].Rows){if (row["emp_no"].ToString() =={"emp_no"].ToString() + "\t"+ + "\t"+ row["pay_time"].ToString() + "\t " + row["basic_wage"].ToString()+ "\t\t" + row["overtime_pay"].ToString() + "\t" +row["absent_pay"].ToString() + "\t " + row["month_pay"].ToString());break;}}}#endregion#region修改个人密码private void button3_Click(object sender, EventArgs e){if == "")("请输入密码!");else if =={if == "")("请输入新密码!");else if == "")("请确认新密码!");else if =={string str_sqlcom = "Select * from Staff";string str_vtab = "vistual_table";DataSet thisDset = (str_sqlcom, str_vtab);foreach (DataRow row in [str_vtab].Rows){if (row["user_id"].ToString() =={string ID = ;string pwd = stringstr_sqlcom2 = "update Staff set password=@pwd where user_id=@ID";SqlConnection mycon = ();();SqlCommand cmd = new SqlCommand(str_sqlcom2, mycon);SqlParameter par_id = new SqlParameter("@ID", ID);SqlParameter par_pwd = new SqlParameter("@pwd", pwd);();();break;}}("密码修改成功!");}else{("两次输入密码不一致!");= "";}}else{("密码输入错误!");= "";();}}#endregion#region退出窗口private void button4_Click(object sender, EventArgs e){();}#endregion}}五、感想及总结李艳平:累并快乐着5天的奋战,课程设计终于完成了,有点小激动,几天的努力终于有了结果。

相关文档
最新文档