数据结构工资管理系统课程设计
工资管理系统(课程设计)
工资管理系统(课程设计)工资管理系统(课程设计) 课程设计报告课程设计名称:数据库原理与应用系部:二系学生姓名:班级:学号:成绩:指导教师:开课时间:2011-2012 学年1 学期一.设计题目:工资管理系统系统功能的基本要求:Ø 员工各种信息的输入及维护。
Ø 员工每个工种基本工资的设定。
Ø 加班津贴管理,根据加班时间和类型给予不同的加班津贴;Ø 按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;Ø 员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/6;Ø 能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计。
二.主要内容:主要包括需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库施及程序编制三.具体要求 1. 课程设计的内容独立自主完成,课程设计报告内容完整、格式规范、排版整洁美观;2. 后台数据库采用MS SQL SERVER2005,前台界面语言不限,编写的程序代码,须有较详细的注释说明;四.进度安排课程设计安排:16周星期一讲解课程设计的内容,安排每一天的具体任务,分配并熟悉题目;星期二需求分析:给出系统的功能需求、性能需求,并绘制DFD和DD;星期三概念结构设计:绘制实体属性图(可选),局部ER图和全局ER图;星期四逻辑结构设计:转换、优化、外模式的设计;星期五物理结构设计及数据库实施;17周星期一应用程序编制调试、整理课程设计报告,并检查;星期二根据反馈结果修改课程设计;星期三提交作业上交的材料:课程设计的电子稿、打印稿、源码(SQL代码和程序代码)五.成绩评定考核方法:现场验收(占50%),课程设计报告(占50%)。
考核内容:学习态度(出勤情况,平时表现等)、方案合理性、各阶段的图表与程序编制质量、设计报告质量。
成绩评定:优,良,中,及格,不及格。
特别说明:(1)如发现抄袭,按照不及格处理。
工资管理系统(C# 数据库课程设计
数据库课程设计设计题目:工资管理系统班级: BX0901学号:姓名:目录一绪论 (3)二需求分析 (3)三概要设计 (4)四物理设计 (5)五详细设计 (6)六调试分析 (9)七小结 (16)八参考文献 (16)一、绪论随着计算机技术的飞速发展和经济体制改革的不断深入,传统企业管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成员工工资管理工作。
提高公司企业管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识.基于C#与SQL server数据库技术建立一个通用工资管理系统,该系统为提供了查询、增加记录、删除等功能,功能比较的齐全,并对工资进行了统计如津贴管理、报表统计等。
基本上能满足管理员和公司的要求。
此次数据库课程设计的主要设计如下:原理分析、程序设计过程、程序实现和程序调试以及数据库的设计.需求分析、概要结构设计、逻辑结构设计、物理结构设计和数据库的实施和维护。
主要包括三大功能模块:1.进入界面设计。
2.员工管理界面设计。
二、 需求分析功能需求分析:该通用工资管理系统具备下列功能:管理员通过输入用户名和密码进下该系统后,可以进行一些基本查询(员工信息查询、部门领导信息查询、工资奖金信息查询)、工资管理(基本工资及津贴奖金设定、计算总工资、津贴管理、加班工资管理);通过输入密码,可以进行查询员工的数据(工资,奖金津贴,加班情况)。
具体功能的详细描述如下1.用户名和密码即可进入[工资管理]功能窗体,在其中输入员工的相关信息, 按[查询]就可查找信息。
2.点击[工资查询界面]功能窗体,输入员工号即可查询员工工资信息。
3.点击[津贴查询界面]功能窗体,输入员工号即可查询员工津贴信息. 4.点击[添加员工]功能窗体,输入员工号,点击快速添加即可添加员工。
5.点击[删除员工]功能窗体,输入员工号,即可删除员工。
数据流需求分析:寻找信息 数据库需求分析-—数据流图三、概要设计根据需求分析阶段得到的功能需求,管理员、员工通过输入用户名号和密码进下该系统后,可以进行一些基本查询(员工工资信息查询、津贴信息查询)、还可以进行员工删除和添加员工的操作,员工通过登录并输入密码,可以进行查询自己的数据(工资,津贴)。
数据结构课程设计工资管理系统
海南大学信息科学技术学院数据结构课程设计题目: 工资管理系统学院:信息科学技术学院专业:09 通信工程姓名:学号:指导老师:吴泽晖二零一一年十二月目录一、设计目的 (4)二、功能描述 (4)三、总体设计 (6)3.1功能模块设计 (6)1.主控函数执行流程 (7)2.输入记录模块 (8)3.查询记录模块 (8)4.更新记录模块 (9)1)修改记录 (9)2)删除记录 (9)3)插入记录 (9)4)排序记录 (10)5.统计记录模块 (11)6.输出记录模块 (12)3.2数据结构设计 (12)3.3函数功能描述 (13)四、程序实现 (15)1.程序预处理 (15)2.主函数main() (17)3.主菜单界面 (18)4.表格形式显示记录 (18)5.记录查找定位 (19)6.格式化输入数据 (20)7.增加记录 (21)8.查询记录 (22)9.删除记录 (23)10.修改记录 (25)11.插入记录 (26)12.统计记录 (28)13.排序记录 (29)14.存储记录 (31)5.运行结果1.主界面 (31)2.输入记录 (32)3.显示记录 (33)4.删除记录 (34)5.查询记录 (35)6.修改记录 (36)7.插入记录 (36)8.统计记录 (37)9.排序记录 (37)10.保存记录 (38)六.心得体会 (39)七.参考文献 (39)一、设计目的本程序旨在训练基本的编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。
本程序中涉及结构体、数组、文件等方面的知识。
通过本程序的训练,使我对C 语言的文件操作有了一个更深刻的了解,掌握利用数组存储结构实现工资管理的原理,为进一步开发出高质量的信息管理管理系统打下坚实的基础。
二、功能描述如后图所示,与利用单链表实现的学生管理系统不同的是,此工资管理系统主要利用数组来实现,其数组元素是结构体类型。
整个系统由如下几大功能模块组成。
数据结构工资管理系统课程设计
数据结构工资管理系统课程设计一、引言工资管理是每个企业都必须面对的重要问题,它涉及到员工的薪资核算、社保福利、考勤管理等多个方面。
为了提高工资管理的效率和准确性,我们设计了一个数据结构工资管理系统。
本文将详细介绍该系统的设计原理、功能模块以及数据结构的选择和实现。
二、系统设计原理1. 系统目标该系统的目标是实现自动化的工资管理,包括员工信息的录入、薪资核算、社保福利的管理、考勤记录的统计以及报表的生成等功能。
通过该系统,企业能够提高工资管理的效率和准确性,减少人力资源的投入。
2. 系统架构该系统采用客户端-服务器架构,客户端提供了用户界面,服务器负责处理业务逻辑和数据存储。
客户端和服务器之间通过网络进行通信,实现数据的传输和交互。
3. 数据库设计系统的数据库采用关系型数据库,用于存储员工信息、薪资数据、社保福利数据和考勤记录等。
数据库的设计包括表的定义、字段的设置以及索引的建立,以提高数据的查询效率。
三、功能模块设计1. 员工信息管理模块该模块用于录入和管理员工的基本信息,包括姓名、性别、年龄、职位、部门等。
管理员可以通过该模块添加、修改和删除员工信息。
2. 薪资核算模块该模块用于计算员工的薪资,根据员工的职位、工作时长、绩效评估等因素进行计算。
系统会自动生成薪资单,并将薪资信息存储到数据库中。
3. 社保福利管理模块该模块用于管理员工的社保和福利信息,包括社保缴纳情况、福利待遇等。
管理员可以通过该模块录入和修改员工的社保福利信息。
4. 考勤记录模块该模块用于记录员工的考勤情况,包括上班打卡时间、下班打卡时间等。
系统会自动计算员工的工作时长,并将考勤记录存储到数据库中。
5. 报表生成模块该模块用于生成各种报表,包括薪资报表、社保福利报表、考勤统计报表等。
管理员可以根据需要选择不同的报表进行生成和导出。
四、数据结构选择和实现1. 员工信息的存储员工信息可以使用链表或数组来存储,链表适用于频繁插入和删除操作,数组适用于频繁查询操作。
工资管理系统数据库课程设计源码
一、课程设计主题介绍本次课程设计的主题为工资管理系统数据库,旨在通过设计一个完善的工资管理系统数据库,实现对公司员工工资信息的管理和查询功能。
工资管理系统是企业日常管理中不可或缺的一部分,良好的工资管理系统能够有效提高企业的管理效率和员工的工作积极性,具有重要的实际意义。
二、系统需求分析1. 用户需求:系统应具有权限管理、员工信息管理、薪资发放管理等功能,不同用户拥有不同的操作权限。
2. 数据需求:系统需要存储员工基本信息、薪资信息、考勤信息等数据。
3. 界面需求:系统应具有友好的操作界面,用户操作简单方便。
4. 安全需求:系统要保证数据的安全性,防止未授权人员获取敏感信息。
三、系统设计思路1. 数据库设计:设计员工表、薪资表、权限表等数据库表结构,确保数据存储的规范性和完整性。
2. 功能设计:设计权限管理模块、员工信息管理模块、薪资发放管理模块等系统功能。
3. 界面设计:设计简洁清晰的操作界面,使用户能够轻松上手。
4. 安全设计:采用加密算法保护用户信息,设置严格的权限控制,防止数据泄露和篡改。
四、系统技术选型本系统选用MySQL数据库存储数据,采用Python语言进行后台逻辑开发,使用Django框架进行Web应用开发,前端界面采用HTML、CSS和JavaScript技术实现。
五、系统功能实现1. 权限管理:管理员用户可以设置不同用户的权限,包括查看员工信息、修改薪资、导出报表等操作。
2. 员工信息管理:实现员工信息的增加、修改、删除、查询等功能,包括基本信息、通联方式、部门信息等。
3. 薪资发放管理:实现对员工薪资的发放、调整、查询等功能,包括工资条生成、导出等。
4. 数据统计报表:系统可以生成各类工资统计报表,包括月度工资报表、年度工资报表等。
六、系统调试和测试在系统开发完成后,对系统进行全面的功能测试和性能测试,确保系统稳定可靠、业务流程正常、响应速度合理等。
七、系统部署和运行系统部署到服务器上,对外提供访问服务,确保系统在日常运行中稳定运行。
工资管理系统-课程设计报告报告
《工资管理系统》课程设计报告题目:工资管理系统专业:网络工程班级::指导教师:成绩:计算机学院2017年12月8日目录一、工资管理系统数据库设计 (1)1、项目背景介绍 (1)1.1 数据需求分析及数据字典 (1)1.2 概念结构设计 (2)1.3 逻辑结构设计 (3)1.4 数据库物理设计 (5)二、工资管理系统数据库实施步骤 (5)1、项目实践 (5)1.1 数据库的创建 (5)1.2 表对象的创建 (6)1.3 索引对象的创建 (13)1.4 视图对象的创建 (14)1.5 登录用户的创建 (15)三、工资管理系统数据库管理 (16)1、案例实践 (16)1.1 案例试验数据 (16)1.2 表数据的编辑 (17)1.3 表数据的简单查询 (21)1.4 表数据的联接查询 (18)四、项目总结 (22)五、参考文献 (23)一、工资管理系统数据库设计1、项目介绍工资管理系统的功能是收集员工的个人信息,以便实现按照科室录入个人的基本资料,向各科室发放个人工资和计算个人的实际发放工资,可以让相关财务部门及领导查看各科室人数情况和工资金额,还可以让员工用自己的员工号去查看自己的工资和扣除金额的情况。
工资管理系统的主要功能有:(1)、按照科室录入个人的基本资料,工资和扣除金额的数据;(2)、计算个人的实际发放工资;(3)、按科室、职业分类统计人数和工资金额;(4)、实现员工个人信息和工资的分类查询;(5)、能够删除辞职人员的数据;工资管理:包括与工资发放相关的各种数据处理,以及对这些处理的有机组织规划;人事管理:主要指对各种员工人事信息的管理,包括员工的基本情况和升迁离职情况;工资项目:影响工资计算的各种因素,如:基本工资,福利补贴和奖励工资,扣除的事业保险和住房公积金等等。
用户登录管理:2种权限,一种是管理员权限,可以做任何操作;一种是普通用户权限只可以查看自己的工资及基本信息,不能编辑,也不能查看其他用户信息。
数据结构工资管理系统课程设计
数据结构工资管理系统课程设计随着信息技术的不断发展,数据结构作为计算机科学的基础课程之一,在实际应用中扮演着重要的角色。
本文将探讨数据结构在工资管理系统课程设计中的应用。
一、引言工资管理是企业管理中的重要组成部分,对于企业的正常运营和员工的积极性激励起着至关重要的作用。
设计一个高效可靠的工资管理系统,不仅能提高工资计算的准确性和效率,还能为企业提供决策支持。
数据结构作为一种组织和存储数据的方式,能够帮助我们解决工资管理系统中的各种问题。
二、需求分析在开始设计工资管理系统之前,我们需要进行需求分析,明确系统的功能和特点。
工资管理系统需要实现以下功能:1. 员工信息管理:包括员工的基本信息、薪资等级、考勤记录等。
2. 工资计算:根据员工的考勤记录和薪资等级,自动计算出员工的工资。
3. 工资查询:员工和管理员可以根据不同的条件查询工资信息。
4. 统计报表:生成各种统计报表,如员工工资分布、部门工资统计等。
三、数据结构设计在工资管理系统中,我们需要使用不同的数据结构来存储和组织数据。
以下是几种常用的数据结构及其应用:1. 数组:用于存储员工的基本信息和薪资等级。
2. 链表:用于存储员工的考勤记录,每个节点表示一天的考勤情况。
3. 栈:用于计算员工的工资,通过将考勤记录和薪资等级进行计算。
4. 队列:用于生成统计报表,按照不同的条件将员工工资进行分类和排序。
四、算法设计在工资管理系统中,我们需要设计一些算法来实现系统的各种功能。
以下是几种常用的算法及其应用:1. 遍历算法:用于遍历数组和链表,查找员工的信息和计算工资。
2. 排序算法:用于对员工的工资进行排序,生成统计报表。
3. 查找算法:用于根据不同的条件查询员工的工资信息。
五、系统实现在系统实现过程中,我们需要根据需求分析、数据结构设计和算法设计来编写代码。
在编写代码之前,我们需要进行系统的测试和调试,确保系统的稳定性和功能的正确性。
六、系统优化在系统实现完成后,我们可以对系统进行优化,提高系统的性能和用户体验。
工资管理系统数据库课程设计
工资管理系统数据库课程设计工资管理系统数据库课程设计一、背景介绍现代企业的工资管理已经越来越复杂,需要一个高效、准确的工资管理系统来进行支持。
工资管理系统需要能够自动计算员工工资,但更重要的是需要保护员工信息的安全性。
因此,该系统需要具备高可靠性和高安全性。
二、系统设计要求1. 系统框架设计系统框架应该采用分层架构模式,包括以下几个层次:①用户界面层:实现用户与系统的交互操作。
②业务逻辑层:实现系统的核心业务逻辑。
③数据访问层:实现系统的数据访问和管理。
④数据库层:用于存储系统所需的数据。
2. 数据库设计数据表结构设计如下:①员工表:用于存储员工基本信息,包括员工号、姓名、性别、出生日期、联系电话等字段。
②工资表:用于存储员工工资信息,包括员工号、月份、基本工资、津贴、扣款等字段。
③部门表:用于存储部门信息,包括部门号、部门名称、部门经理等字段。
④职位表:用于存储职位信息,包括职位编号、职位名称、职位描述等字段。
⑤权限表:用于存储用户权限信息,包括用户名、密码、用户类型等字段。
3. 系统功能设计根据需求分析,系统应该包含以下功能:①员工基本信息维护功能:用于添加、修改、删除员工基本信息。
②员工工资信息维护功能:用于添加、修改、删除员工工资信息。
③员工考勤记录查询功能:用于查询员工的考勤记录。
④部门信息维护功能:用于添加、修改、删除部门信息。
⑤职位信息维护功能:用于添加、修改、删除职位信息。
⑥权限管理功能:用于管理用户的权限信息。
三、技术方案1. 数据库管理系统本系统采用MySQL数据库管理系统,因为MySQL是一个成熟的开源数据库系统,能够提供高效、可靠的数据存储和管理服务。
2. 开发工具本系统采用Java语言进行开发,使用Eclipse作为开发工具,采用Java Web开发技术,采用MVC设计模式。
3. 数据库访问框架本系统采用ORM框架Hibernate来进行数据库的访问操作,通过Hibernate能够简化数据库访问操作,提高系统开发效率。
数据结构工资管理系统课程设计
学年第学期《数据结构》课程设计报告题目:人事工资管理系统专业:数字媒体技术班级:姓名:指导教师:成绩:计算机与信息工程系年月日1、设计目的 (2)2、设计内容与要求 (2)1.1设计内容 (2)2.2设计要求 (2)3、总流程图设计 (3)4、程序详细功能设计 (4)5、程序调试 (7)6、设计小结 (7)7、参考文献 (8)附录 (9)11、设计目的在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。
《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。
工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。
2、设计内容与要求2.1设计内容主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。
有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。
2.2设计要求在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
3、总体流程图设计234、程序详细功能设计1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名,基本工资,职务工资,津贴。
2、应用文件保存工资管理数据。
3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出。
4、查看:查看所有职工信息,包括职工号,姓名,基本工资,职务工资,津贴。
45、查找:输入职工的职工号或姓名,并在文件中查找。
工资管理系统的数据库课程设计
课程设计报告书年 月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.存储过程①创建存储过程。
数据结构课程设计之职工工资管理系统(2)
**大学数据结构课程设计报告题目:院(系):计算机工程学院学生姓名:班级:学号:起迄日期:2011.6.20-2011.7.01指导教师:2010—2011年度第 2 学期一、需求分析1.问题描述对单位的职工进行管理,包括插入、删除、查找、排序等功能。
2.基本功能要求职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。
(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。
(2)删除一名职工:从职工管理文件中删除一名职工对象。
(3)查询:从职工管理文件中查询符合某些条件的职工。
(4)修改:检索某个职工对象,对其某些属性进行修改。
(5)排序:按某种需要对职工对象文件进行排序。
3.输入和输出输入和输出,根据输入提示,输入数字或输入长度最长10字符串二、概要设计1.设计思路根据职工管理系统问题的描述和详细需求分析,要达到上述功能,链表的数据结构来存储职工信息,并对其进行相应的插入、删除、修改、查询、排序、保存等操作。
(1)输入功能的实现:要想实现职工管理系统的输入,必须要建立一个职工信息系统的抽象数据类型,其中职工信息以链表的存储方式实现。
(2)系统处理功能的实现:系统管理员根据公司的人员流动情况,在提示信息的提示下,选择相应的服务进行操作。
(3)输出的实现:根据选择的操作,输出与之对应的信息。
(4)根据职工管理系统问题的分析和设计要求,可以得到该职工管理系统可以分为五个模块:职工信息添加模块、职工信息修改模块、职工信息删除模块、职工信息查询模块、职工信息排序模块2.数据结构设计依据给定的数据格式,个人信息由九个字段来组成,即编号、姓名、性别、生日、学历、工龄,职务、电话和住址,外加一个判断关键字。
使用线性结构来组织数据,因为数据占据空间比较大,要对表中某项数据进行操作,所以使用链表比较方便。
(1)定义头结点typedef struct node{char id[10];char name[10];char sex[10];char birth[10]char gl[10];char xueli[10];char zhiwu[10];char phone[10];char address[10];struct node *next;}node,*linklist;(2)基本操作操作int initlist(linklist &L) //建立链表int creatlist(linklist &L) //创建职工信息:int del(linklist &L,char id[10]) //删除职工信息:int searchid(linklist &L,char id[10])//查找职工信息void display(linklist &L)//显示职工信息:3.软件结构设计三、详细设计1.程序中所用到的函数原型,操作实现//初始化链表int initlist(linklist &L){L=(linklist)malloc(sizeof(node));if(!L)return (0);L->next=NULL;return 1;}//创建链表信息int creatlist(linklist &L){ linklist p;p=(linklist)malloc(sizeof(node));scanf(q->data); }p->next=L->next;L->next=p;return(0);}//显示函数实现void display(linklist &L){linklist p;for(p=L->next;p;p=p->next){ printf(p-.>data)//输出职工信息}}//删除int del(linklist &L,char a[10]) //按id删除4{ node *p, *r;声明节点指针p=L->next;r=L;while(p)//节点不为空{if(strcmp(p->a,a)==0){ i=1; r->next=p->next;free(p);//释放查找到的节点printf("删除成功\n");break;}r=p;p=p->next;}if(i==0)printf ("找不到需要删除的信息!\n");return 1;}//查找操作的实现int searchid(linklist &L,char a[10]){node *p;p=L;while(p){if(strcmp(p->a,a)==0){printf(p-.>data)//输出职工信息}p=p->next;}return 1;}2.主函数和其他函数的伪码算法;2.(1)主函数的伪码void main(){ linklist L;initlist(L);while(x)//{ scanf(y) //输入选择数字switch(y){case 1: creatlist(L);break;case 2: scanf(,&id);//输入员工编号xiugai(L,id);//调用修改函数case 3:scanf("%s",&id);// 输入删除员工编号del(L,id);//调用删除函数case 4:scanf(,&a);// 请输入查询方式if(a==1){scanf(&id);//输入员工编号searchid(L,id);//调用查找函数if(a==2){scanf(&name);// 输入查询员工姓名searchname(L,name); //调用查找函数}case 5:scanf("%d",&k)//输入排序方式switch(k)//输入选择{ case 1: sortid(L)//调用排序函数case 2: sortnm(L) //调用排序函数case 3: sortgl(L) //调用排序函数}case 6: display(L)//调用显示函数case 7: save(L);// /调用保存函数case8 :xinlist(L);//调用修改函数case 9:L=load(L); 调用载入函数}2.1新增信息int xinlist(linklist &L)//职工信息的插入姓名并按照升序排列{q=(linklist)malloc(sizeof(node));//申请新节点{scanf(,q->data) //输入员工信息}if(L->next==NULL)//如果只有链表的头结点,没有其他的结点,直接插入在头结点后面{L->next=q;q->next=NULL;}else{if(strcmp(L->next->name,q->name)>0)//位于链表头结点之后的位置{q->next=L->next;L->next=q;}for(p=L->next;p;p=p->next){ if(p->next!=NULL){if(strcmp(p->name,q->name)<0&&strcmp(p->next->name,q->name)>0)//位于两个结点之间{q->next=p->next;p->next=q; }else if(strcmp(p->name,q->name)<0&&p->next==NULL)//链表非空,并且在排序中是最后一个{p->next=q;q->next=NULL;break;}}}}return (0);}2.2修改信息int xiugai(linklist &L,char a[10]){ node *p;//声明节点指针p=L;while(p){if(strcmp(p->a,a)==0)//查找符合要求的员工信息{ i=1; //找到后i=i,做标志scanf(q->data) //输入员工信息p=p->next;}if(i==0)printf("不存在修改的学生!\n");elseprintf("修改成功!\n");return 1;}2.3排序信息程序void sort(linklist &L){linklist La;//声明节点指针linklist p,q,m;//声明节点指针La=(linklist)malloc(sizeof(node));申请新节点La->next =NULL;while(L->next){for(q=L->next ,p=L->next ;p->next ;p=p->next )//依次选出工龄最大的节点{if((strcmp( p->next->a,q->a ))>0 ){m=p;q=p->next ; }}if(q==L->next)//删除符合的节点{L->next =L->next->next ;}else{m->next =q->next ;}q->next =La->next ;//建立新链表La->next =q ;}L=La;display(L);//调用显示函数}2.4保存信息伪码void save(linklist &L) //7保存{FILE *fp; //定义指向文件的指针node *p; // 定义移动指针scanf(outfile)// 提示文件名格式信息if((fp=fopen(outfile,"wb"))==NULL) //为输出打开一个二进制文件,如没有则建立{printf("can not open file\n");exit(1);} p=L; //移动指针从头指针开始while(p!=NULL) //如p不为空{fwrite(p,sizeof(node),1,fp);//写入一条记录p=p->next; //指针后移 }fclose(fp); //关闭文件}2.5载入信息伪码node *load(node *L) //9载入信息{node *p,*q,*h=NULL; //定义记录指针变量FILE *fp; // 定义指向文件的指针char infile[10]; //保存文件名scanf,infile); //输入文件名if((fp=fopen(infile,"rb"))==NULL) //打开一个二进制文件,为读方式{exit(1); }p=(node *)malloc(sizeof(node)); //申请空间h=p; //申请到空间,将其作为头指针while(!feof(fp)) //循环读数据直到文件尾结束{ if(1!=fread(p,sizeof(node),1,fp))break; //如果没读到数据,跳出循环p->next=(node *)malloc(sizeof(node)); //为下一个结点申请空间q=p; //保存当前结点的指针,作为下一结点的前驱p=p->next; //指针后移,新读入数据链到当前表尾 } q->next=NULL; //最后一个结点的后继指针为空fclose(fp); //关闭文件return h; /*返回头指针*/ }3.1新增信息在新增信息中,对按姓名关键字的链表进行插入新节点。
工资系统数据库课程设计
工资系统数据库课程设计一、课程目标知识目标:1. 理解数据库在工资管理系统中的应用和重要性;2. 掌握工资管理系统的基本功能模块及其数据表结构设计;3. 学会运用SQL语句进行工资数据的查询、插入、更新和删除操作;4. 了解数据库的安全性和一致性原则在工资系统中的应用。
技能目标:1. 能够独立设计并实现一个简单的工资管理系统数据库;2. 能够运用所学知识,对工资数据进行有效管理和维护;3. 能够通过数据库查询和分析,解决工资管理中的实际问题;4. 学会使用数据库管理工具(如:MySQL、Oracle等)进行数据操作。
情感态度价值观目标:1. 培养学生对数据库技术在工资管理系统中的应用产生兴趣,提高学习积极性;2. 培养学生严谨、细心的数据处理能力和团队合作精神;3. 增强学生对信息技术的认识,使其意识到信息技术在企业管理中的重要作用;4. 培养学生尊重劳动、诚实守信的品质,提高社会责任感。
课程性质:本课程为实践性较强的课程,以培养学生的实际操作能力和解决问题的能力为主。
学生特点:学生具备一定的数据库基础知识和计算机操作技能,但可能对工资管理系统的实际应用了解不多。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,以案例教学为主,培养学生的实际操作能力和分析解决问题的能力。
在教学过程中,关注学生的学习进度和情感态度,确保课程目标的实现。
通过课程学习,使学生能够将所学知识应用于实际工作中,提高其职业素养。
二、教学内容1. 工资管理系统概述- 了解工资管理系统的基本概念和功能模块;- 分析工资管理系统的业务流程。
2. 数据库设计基础- 学习数据库设计的基本原则和步骤;- 掌握实体关系模型和关系数据库设计方法。
3. 工资管理系统数据库设计- 设计工资管理系统所需的数据表结构;- 学习如何建立实体和关系,并进行属性定义。
4. SQL语句操作- 掌握SQL基本操作(查询、插入、更新、删除);- 学习运用SQL语句对工资数据进行管理。
高校工资管理系统数据库课程设计
⾼校⼯资管理系统数据库课程设计⾼校⼯资管理系统数据库设计⼀、课题介绍1、功能描述:本系统主要针对教师⼯资管理,查询。
详细记录教师⼯资组成,轻松实现教师⼯资的查询,⼯资管理员进⾏删除,插⼊,修改等,且⽤户界⾯友好,容易操作,安全性⾼。
2、性能需求:1、数据精确性:在进⾏向数据库⽂件提取数据时,要求数据记录定位准确,在往数据库⽂件数组中添加数据时,要求输⼊数据准确。
2、时间特征:响应时间应在⼈的感觉和视觉事件范围内.3、可靠性:系统稳定安全,可有效的保存各项相关数据,使数据存储安全可靠4、灵活性:当需求发⽣些变化时,教师⼯资系统的操作⽅式,数据结构,运⾏环境基本不会发⽣变化,变化只是将对应的数据⽂件内的记录改变,或将过滤条件改变即可。
⼆、需求分析1、数据库要求:在数据库中⾄少应该包含下列数据表:(1)登录⽤户表(2)考勤表,记录员⼯考勤数据,⼯资计算要参照这张表;(3)教职⼯⼯种情况表,反映员⼯的⼯种(⾼校五类职⼯:教师、实验员、⾏政⼈员、教师兼职实验员、⾏政⼈员兼职教师)、等级,基本⼯资等信息;(4)教职⼯津贴信息表,反映员⼯的加班时间,加班类别、加班天数、津贴情况等;(5)教职⼯基本信息表;(6)教职⼯⽉⼯资表。
2.需求分析(1)设置系统⽤户登陆功能,即时对系统数据进⾏安全设置与保护。
(2)系统管理员有输⼊信息、查询、修改、删除、统计和各种处理为⼀体,信息导⼊导出⽅便共享。
(3)第统管理员可以实现员⼯信息管理(包括员⼯信息和查看,查询,员⼯基本信息的添加,修改,删除等。
)(4)系统管理员可以实现⼯资标准管理(可以实现对不同职称,不同职务的⼯作⼈员制定不同的⼯资标准。
并且可以实现修改。
)(5)系统管理员可实现⼯资的管理(可以实现⼯资的创建,⼯资的修改,⼯资的统计,⼯资的结算,⼯资的删除等)(6)教职⼯可按姓名和编号查询⼯资情况。
(7)教职⼯可查询⾃⼰的基本信息。
(8)⼯资数据编辑:职⼯⼯资变动时可更改。
数据库应用课程设计—工资管理系统
《数据库应用课程设计》大作业报告班级:电商1701班学号:姓名:课题:工资管理系统目录一.数据库设计 (1)1.需求分析 (1)2.概念结构设计 (1)3.逻辑结构设计 (2)二.数据库及表的创建 (4)1.数据库的创建 (4)2.表的创建 (5)3.表的数据加入 (11)三.数据库查询 (14)1.选择查询 (14)2.聚合函数查询 (15)3.分组和汇总查询 (16)4.连接查询 (17)5.子查询 (18)四.视图和索引 (20)1.视图 (20)2.索引 (22)五.存储过程与触发器 (24)1.存储过程 (24)2.触发器 (26)六.数据库的安全管理 (27)1.登录账号 (27)2.数据库用户账号 (28)一.数据库设计1.需求分析与用户协商,了解用户的需求,了解需要哪些数据和操作(主要是查询),确定系统中应包含的实体有员工信息、部门、考勤、工资。
员工的属性确定为员工编号、姓名、性别、出生日期、银行卡号、联系方式、部门编号、职务、入公司时间;部门的属性确定为部门编号、部门名称、部门负责人、电话;考勤表的属性确定为ID、所属月份、员工编号、应到天数、实到天数、加班天数;工资的属性确定为ID、所属月份、员工编号、基本工资、工龄补、全勤奖、加班费、其它扣款、应发工资、五险一金、所得税、实发工资、发放时间。
其中,每个员工只属于一个部门,每个部门拥有多名员工;每个员工对应多个月份的考勤信息,每个月份的每条考勤信息对应一个员工;每个员工对应多个月份的工资信息,每个月份的每条工资信息对应一个员工。
2.概念结构设计画出工资管理系统的E-R图,如图1-1:图1-1 工资管理系统E-R图3.逻辑结构设计将E-R图转化为关系数据模型,即将实体、属性和实体之间的联系转化为关系模式,如下:(1)员工表(员工编号,姓名,性别,出生日期,银行卡号,联系方式,部门编号,职务,入公司时间);(2)部门表(部门编号,部门名称,部门负责人,电话);(3)考勤表(ID,所属月份,员工编号,应到天数,实到天数,加班天数);(4)工资表(ID,所属月份,员工编号,基本工资,工龄补,全勤奖,加班费,其它扣款,应发工资,五险一金,所得税,实发工资,发放时间)。
数据库工资管理系统课程设计
目录目录 (1)1 设计时间 (3)2 设计目的 (3)3设计任务 (3)4 设计内容 (3)4.1需求分析 (3)4.2系统设计 (4)4.2.1 概念结构 (4)4.2.2 逻辑结构设计 (4)4.2.3 物理结构设计 (5)4.3系统实施 (7)4.3.1数据库实现 (7)4.3.2 数据载入 (9)4.4运行与测试 (10)4.4.1运行与测试 (10)5 总结与展望 (13)参考文献 (13)1 设计时间2011年12月19日~2011年12月25日2 设计目的设计工资管理系统的目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求3设计任务整个系统从符合操作简便,运用灵活实用,安全的要求出发,完成人事,工资管理的全过程,包括档案管理,工资计算,以及各种数据的分类等操作4 设计内容(1)目标:实现月工资计算;实现与工资管理有关的档案管理。
提高工资管理工作效率,降低出错率。
(2)功能要求:档案管理保存有关工资计算以及工资管理所必须的数据能对数据进行查询、统计(3)工资计算:正确计算出个人月工资、部门月工资以及全厂月工资。
能对病假扣款系数进行修正。
能统计工资计算表、个人工资单、部门工资单、工资汇总表四种表格。
4.1需求分析现代企业基本上都引进了计算机软件对公司业务进行管理,工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。
手工进行工资发放工作,需要反复地进行抄写、计算,不仅花费财务人员大量的时间,而且往往由于抄写不慎,,或者由于计算机的疏忽,出现工资发放错误的现象。
计算机进行工资发放工作,不仅能够保证工资核算正确无误、快速输出,而且还可以利用工资数据库对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理。
数据库课程设计工资管理系统
数据库课程设计工资管理系统一、背景在现代社会中,工资管理是企业日常经营中不可或缺的一环。
而为了更好地管理企业工资发放和福利待遇,需要一种完善的管理系统。
数据库课程设计工资管理系统的建立就是为了实现该目标,通过实时更新员工信息和工资情况,让企业能够更加精准、高效的管理员工工资。
二、系统功能该系统作为一款针对企业工资管理的应用系统,其主要功能如下:1.基本信息管理:可进行员工基本信息管理,包括员工姓名、性别、入职时间、工作部门、岗位职责、身份证号等信息。
2.工资管理:在员工信息基础上,还可进行工资管理,包括发放日期、发放金额、所得税情况等信息。
3.福利管理:对企业内部的福利体系进行管理,包括社保、公积金、医疗福利各方面的内容。
4.报表管理:提供各种报表以分析工资结构,同时提供员工查询功能。
5.权限管理:管理员工资信息,确保数据的安全性和数据准确性。
三、系统架构1. 数据库本系统采用MySQL 数据库进行数据存储,能够应对大型企业的数据量。
除此之外,也可以通过数据库的备份和恢复等功能来保障数据的安全与稳定。
2. 系统框架采用MVC 框架,以前端技术HTML、CSS、JavaScript 为基础,后端使用PHP 语言进行开发。
同时采用Ajax 对后台进行数据请求,能够实现数据的快速响应。
3. 系统部署将系统进行打包,可在任何符合系统要求的服务器上进行部署。
其中,需要对于服务器进行相关设置,例如Apache、PHP、MySQL 等环境的安装及配置。
四、开发过程1.需求获取开发工作正式启动之前,需要充分了解企业的工资管理需求,并进行详尽的调研。
通过调研之后,需要将调研结果进行整理,以便更好的开发工作。
2.需求分析在详细了解后,需要将调研结果进行分析,确立该系统应具备哪些需求和功能,以及哪些需求和功能是必须的和优先的。
3.设计在确定需求和功能之后,根据系统架构规划软件系统的开发设计。
通常,设计工作包括数据库表设计、系统组件设计、界面设计、文档编写等工作。
数据库工资管理系统课程设计(大作业)报告
课程设计(大作业)报告课程名称:数据库原理与技术设计题目:工资管理系统院系:信息技术学院班级:2010级应用技术班设计者:马素丹学号:201011020122指导教师:设计时间:2012-6-18——2012-6-21信息技术学院昆明学院课程设计(大作业)任务书课程设计(大作业)报告一、题目分析1、数据:·职工(职工编号、职工姓名、性别、年龄、职称、部门)·工资(职工编号、基本工资、岗位工资、职务工资、交通补贴、误餐补贴、应发工资、养老保险、医疗保险、住房公积金、个人所得税、实发工资)·部门(部门编号、名称、编制、负责人、电话)2、工资管理规则:一名职工只能属于一个部门,一个部门可以有多个职工。
每名职工每月的工资组成为“应发工资=基本工资+岗位工资+职务工资+交通补贴+误餐补贴;实发工资=应发工资-养老保险-医疗保险-住房公积金-扣税;个人所得税应发工资2000元起征:2000元内无税,2500元内的征收超过2000部分的5%,3500元内的征收超过2000元不到2500元的5%及超过2500元的10%,5000元内的15%,5000元以上的征收超过2000元不到2500元的5%、超过2500元不到3500元的10%、超过3500元不到5000元15%,及5000元以上的20%。
可以对各种信息进行增加、修改、删除和查询,如:更新各种基本信息、查询职工的各种相关信息、统计职工当月实发工资等。
二、总体设计i.系统概述论坛管理系统:使用SQL数据库实现后台的添加、修改、删除和查询各项基本信息。
ii.数据流程图3、逻辑模型设计:·职工(职工编号、职工姓名、性别、年龄、职称、部门)·工资(职工编号、基本工资、岗位工资、职务工资、交通补贴、误餐补贴、应发工资、养老保险、医疗保险、住房公积金、个人所得税、实发工资)·部门(部门编号、名称、编制、负责人、电话)4、工资管理系统E-R图:三、实验器材Windows XPMicrosoft SQL sever 2005四、实验步骤1、分析题目,项目主管制定出合理的后台数据库设计项目计划。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构工资管理系统课程设计学年第学期《数据结构》课程设计报告题目:人事工资管理系统专业:数字媒体技术班级:姓名:指导教师:成绩:计算机与信息工程系年月日1、设计目的 (2)2、设计内容与要求 (2)1.1设计内容 (2)2.2设计要求 (2)3、总流程图设计 (3)4、程序详细功能设计 (4)5、程序调试 (7)6、设计小结 (7)7、参考文献 (8)附录 (9)用心整理的精品word文档,下载即可编辑!!1、设计目的在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。
《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。
工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。
2、设计内容与要求2.1设计内容主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。
有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。
2.2设计要求在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
3、总体流程图设计4、程序详细功能设计1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名,基本工资,职务工资,津贴。
2、应用文件保存工资管理数据。
3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出。
4、查看:查看所有职工信息,包括职工号,姓名,基本工资,职务工资,津贴。
5、查找:输入职工的职工号或姓名,并在文件中查找。
若找到,则显示该职工的工资详情;否则提示未找到。
无论查找成功否,应还可选择继续查找或退出。
6、删除:输入职工的职工号,并在文件中查找。
若找到,提示是否确定删除。
若选择是,则删除文件中该职工信息;若选择否,则取消。
若未找到则提示无此职工信息。
无论查找成功否,应还可选择继续查找或退出。
7、修改:输入职工的职工号在文件中查找。
若找到,显示该职工的所有信息,否则提示无此职工信息。
无论查找成功否,应还可选择继续查找或退出。
89、退出:退出程序。
5、程序调试程序调试的任务是排除程序中的错误,使程序能顺利地运行并得到预期的效果。
程序的调试阶段不仅要发现和消除语法上的错误,还要发现和消除逻辑错误和运行错误。
要正确利用编辑时提示的错误信息。
调试阶段出现了很多的问题,主要如下:1、在定义和运用数据类型时出现问题,不清楚字符串的输出用s,而错用为c。
2、忘记“;”或把“;”用错误的输入法输入,造成的错误。
3、大括号混乱造成错误。
4、用文件保存职工信息时,对printf不熟悉,造成使用格式错误,输出内容不符合,通过仔细核对书上的格式才改掉。
5、在读取信息时,不会用scanf,是程序的运行结果混乱,造成职工信息错位,或是直接输出0.00等。
6、设计小结通过这几天的努力,职工工资管理系统的设计已基本完成。
在本次课程设计中,我充分领略了C语言功能的强大,包括函数、数组、指针、结构体、文件等。
职工工资管理系统是一个很实用并且使用广泛的操作系统。
此系统可以减少很多工作量,做到设计合理,便于使用,易于操作;界面友好,容错性高,可在很短的时间内,查找出所需的职工工资资料,提高工作效率。
该系统具有添加、显示、查询、修改、删除等基本功能,以方便对工资的各项管理操作。
每一条记录包括一个职工的工号、姓名、工资等信息,系统的各个功能模块都用函数的形式来实现,可以将职工信息保存在文件中,并从文件中读取出来。
在本次课程设计中,我也发现了自己很多的不足,并学到了许多的知识。
对以前课本中学到的知识有了更深刻的理解,和灵活的运用。
不再像以前一样,知识浅显的明白,死板的套用。
编写程序的过程,让我感觉到了无限的快乐,不仅仅是因为可以将以前学到的相关知识灵活运用,还因为在这个过程中学到了太多以前所没有掌握的东西。
最后我还掌握到了写复杂程序的技巧,在写大程序时应遵守“自顶向下,逐步细化,模块化”的方法进行设计;c语言提供了丰富的数据库和各种功能的函数,我们要善于使用,使我们的程序达到最简洁的这将对我以后的c程序学习产生重要的影响。
通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其具有的强大功能和发展前景。
这会对以后的学习有所帮助。
7、参考文献[1]谭浩强. 《C程序设计》(第三版)北京:清华大学出版社 2006.3.[2]王为青等.《C语言高级编程及实例剖析》北京:人民邮电出版社 2007.3.[3]黄明等.《C语言课程设计》北京:电子工业出版社 2006.3.附录〈源程序〉#include <stdio.h>#include <stdlib.h>#include <string.h>struct worker{char name[30];char ID[10];int salary1,salary2,salary3;};int dq(struct worker wo[]);void show();void bc(struct worker wo[]);void add();void see();void search();void ghcz();void xmcz();void del();void xmsc();void ghsc();void statistics();void modify();void ghxg();void xmxg();void reserve();void back();void author();struct worker wo[100]; //保存所有的职工信息int Number=0; //记录总的职工人数void main(){int choose=0;while(true){show();printf("\t\t====>请选择:");scanf("%d",&choose);system("cls");switch(choose){case 0: exit(0);//退出break;case 1: add();back();//添加职工信息break;case 2: see();back();//查看职工信息break;case 3: search();back();// 查找职工信息break;case 4: del();back();//删除职工信息break;case 5: statistics();back();//统计职工工资break;case 6: modify();back();//修改职工信息break;case 7:reserve();back();//保存数据break;case 8:author();back();//作者信息break;default:break;}fflush(stdin);getchar();system("cls");}}int dq(struct worker wo[]){FILE *fp=NULL;int i=0;fp=fopen("C://worker.dat","rb");while(fread(&wo[i],sizeof(struct worker),1,fp)) i++;fclose(fp);return i;}void show(){printf("\n");printf("\t****************职工工资管理系统****************\n\n"); printf("\t*☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆*\n\n"); printf("\t^^^^^^^^^^^^^^^[1] 添加职工信息^^^^^^^^^^^^^^^^^\n"); printf("\t^^^^^^^^^^^^^^^[2] 查看职工信息^^^^^^^^^^^^^^^^^\n"); printf("\t^^^^^^^^^^^^^^^[3] 查找职工信息^^^^^^^^^^^^^^^^^\n"); printf("\t^^^^^^^^^^^^^^^[4] 删除职工信息^^^^^^^^^^^^^^^^^\n"); printf("\t^^^^^^^^^^^^^^^[5] 统计职工工资^^^^^^^^^^^^^^^^^\n"); printf("\t^^^^^^^^^^^^^^^[6] 修改职工信息^^^^^^^^^^^^^^^^^\n"); printf("\t^^^^^^^^^^^^^^^[7] 保存数据^^^^^^^^^^^^^^^^^\n");printf("\t^^^^^^^^^^^^^^^[8] 作者信息^^^^^^^^^^^^^^^^^\n");printf("\t^^^^^^^^^^^^^^^[0] 退出系统^^^^^^^^^^^^^^^^^\n\n"); printf("\t*★★★★★★★★★★★★★★★★★★★★★★★*\n"); }void bc(struct worker *wo){FILE *fp=NULL;fp=fopen("C://worker.dat","ab+");fwrite(wo,sizeof(struct worker),1,fp);fclose(fp);}//添加职工信息void add(){int numberTemp=0;int i=0;struct worker temp;printf("请输入要添加职工个数:");scanf("%d",&numberTemp);for(i=0;i<numberTemp;i++){printf("输入第%d个职工信息\n",i+1);printf("姓名:");scanf("%s",);printf("工号:");scanf("%s",temp.ID);printf("基本工资:");scanf("%d",&temp.salary1);printf("职务工资:");scanf("%d",&temp.salary2);printf("津贴:");scanf("%d",&temp.salary3);wo[Number++]=temp; //写入到数组bc(&temp); //写入到文件}printf("添加成功\n");}//查看职工信息void see(){int i=0;printf("以下是全部职工\n");printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");while(i<Number){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo [i].salary3);i++;}}//查找职工信息void search(){int n=0;printf("1 按姓名查找\n");printf("2 按工号查找\n");scanf("%d",&n);switch(n){case 1: xmcz();break;case 2: ghcz();break;default: printf("输入错误!\n");break;}}void xmcz()//按姓名查找{char name[30];int i=0;printf("请输入要查找职工姓名:");scanf("%s",name);system("cls");printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");for (i=0;i<Number;i++){if (strcmp(name,wo[i].name)==0){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo [i].salary3);}}}void ghcz()//按工号查找{char id[10];int i=0;printf("请输入要查找职工工号:");scanf("%s",id);system("cls");printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");for (i=0;i<Number;i++){if (strcmp(id,wo[i].ID)==0){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo [i].salary3);}}}//删除职工信息void del(){int n=0;printf("1 按姓名删除\n");printf("2 按工号删除\n");scanf("%d",&n);switch(n){case 1: xmsc();break;case 2: ghsc();break;}}void xmsc()//按姓名删除{FILE *fp=NULL;char name[30];int i=0;int j=0;printf("请输入要删除的职工姓名:");scanf("%s",name);for(i=0;i<Number;i++){if (strcmp(name,wo[i].name)==0){for (j=i;j<Number-1;j++){wo[j]=wo[j+1];}Number--;}}//将剩余数据写入文件擦除以前的数据fp=fopen("C://worker.dat","wb");for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);printf("删除成功;\n");}void ghsc()//按工号删除{FILE *fp=NULL;char id[60];int i=0;int j=0;printf("请输入要删除的职工工号:");scanf("%s",id);for(i=0;i<Number;i++){if (strcmp(id,wo[i].ID)==0){for (j=i;j<Number-1;j++){wo[j]=wo[j+1];}Number--;}}//将剩余数据写入文件擦除以前的数据fp=fopen("C://worker.dat","wb");for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);printf("删除成功;\n");}//统计职工工资void statistics(){int i=0;double s=0.0;double sum[100];for(i=0;i<Number;i++){sum[i]=wo[i].salary1+wo[i].salary2+wo[i].salary3; printf("%s的总工资为:%f\n",wo[i].name,sum[i]); }for(i=0;i<Number;i++){s+=sum[i];}printf("平均工资为:%f\n",s/Number);}//修改职工信息void modify(){int mode=0;printf("请选择修改查找方式\n");printf("1 按姓名查找修改\n");printf("2 按工号查找修改\n");scanf("%d",&mode);switch(mode){case 1: xmxg();break;case 2: ghxg();break;default: printf("输入错误!\n");break;}}void xmxg()//按姓名修改{FILE *fp=NULL;char name[30];int i=0;printf("请输入要修改的职工姓名:");scanf("%s",name);for (i=0;i<Number;i++){if (strcmp(name,wo[i].name));elsebreak;}printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo [i].salary3);printf("请重新输入该职工信息");printf("姓名:");scanf("%s",wo[i].name);printf("工号:");scanf("%s",wo[i].ID);printf("基本工资:");scanf("%d",&wo[i].salary1);printf("职务工资:");scanf("%d",&wo[i].salary2);printf("津贴:");scanf("%d",&wo[i].salary3);//信息修改后重新更新文件里面的数据以保持数据一致性fp=fopen("C://worker.dat","wb");for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);}void ghxg()//按工号修改{FILE *fp=NULL;char id[30];int i=0;printf("请输入要修改的职工工号:");scanf("%s",id);for (i=0;i<Number;i++){if (strcmp(id,wo[i].ID));elsebreak;}printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo [i].salary3);printf("请重新输入该职工信息");printf("姓名:");printf("姓名:");scanf("%s",wo[i].name);printf("工号:");scanf("%s",wo[i].ID);printf("基本工资:");scanf("%d",&wo[i].salary1);printf("职务工资:");scanf("%d",&wo[i].salary2);printf("津贴:");scanf("%d",&wo[i].salary3);//信息修改后重新更新文件里面的数据以保持数据一致性fp=fopen("C://worker.dat","wb");for (i=0;i<Number;i++){fwrite(&wo[i],sizeof(struct worker),1,fp);}fclose(fp);printf("\t=======>修改成功\n");}//保存数据void reserve(){printf("\t=====程序在运行时已自动保存.....\n");}void back(){printf("\t===>按Enter键返回主菜单\n");}//作者信息void author(){printf("\t***☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆***\n\n"); printf("\t^^^^^^^^^^^^^^^学校名称^^^^^^^^^^^^^\n\n"); printf("\t^^^^^^^^^^^^^^学院班级^^^^^^^^^^^^^\n\n"); printf("\t^^^^^^^^^^^^^^^XXX制作^^^^^^^^^^^^^\n\n"); printf("\t***★★★★★★★★★★★★★★★★***\n\n"); }。