薪酬管理-职工工资管理系统课程设计报告 精品
公司员工工资管理系统课程设计

公司员工工资管理系统课程设计公司员工工资管理系统课程设计一、课程设计概述本课程设计旨在帮助学生深入了解公司员工工资管理系统的运作原理和实现过程,掌握相关的技术和工具,能够设计和开发出简单实用的工资管理系统。
课程设计分为两个部分,第一部分为理论学习,第二部分为实践操作。
二、理论学习1.公司员工工资管理系统概述:介绍工资管理系统的基本概念、应用场景、功能特点和思想原则,学生需要理解员工工资管理系统在企业内部的位置和作用。
2.需求分析:从设计和使用的角度出发,了解员工的工资管理的主要需求和问题,并掌握如何进行需求分析和需求定义。
3.系统设计:学生需要掌握如何进行系统设计,包括系统的整体架构设计、数据库设计和界面设计等。
4.系统开发:学生需要掌握基本的程序开发技术,如Java、Python等主流编程语言,掌握数据库使用和连接等技术,实现一个简单可用的员工工资管理系统。
三、实践操作1.系统构建:学生参考所学习的理论知识,设计并实现一个简单的员工工资管理系统,包括员工信息管理、工资计算、工资结算等功能。
2.系统测试:学生对所设计的员工工资管理系统进行测试和修复,包括功能测试、性能测试、兼容性测试等环节,确保系统的稳定性和可用性。
四、课程设计要求1.按时完成理论学习和实践操作任务。
2.以小组形式完成线上线下协作。
3.撰写课程设计报告,包括系统需求分析、系统设计和实现、测试和修复等环节的具体过程和结果。
4.课堂展示和答辩,展示所设计的员工工资管理系统,并回答审评师的问题及提出的建议。
五、评分标准1.理论知识掌握情况(占20%)。
2.系统设计和实现的质量与复杂度(占30%)。
3.系统测试和修复的质量(占20%)。
4.课程设计报告质量(占20%)。
5.课堂展示和答辩表现(占10%)。
六、结语公司员工工资管理系统课程设计旨在培养学生的系统设计和开发能力,掌握实践技能,培养解决问题的能力。
课程设计不仅是理论学习,还注重实践操作和团队协作,以实现培养学生综合素质的目标。
员工工资管理系统_数据库课程设计

企业员工工资管理系统设计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多年历史的老厂。
工资管理系统设计报告.doc

员工工资管理系统一、摘要 (2)二、系统分析 (2)2.1编写目的 (2)2.2项目背景 (2)2.3定义 (2)2.4参考资料 (3)2.5目标 (3)2.6运行环境 (3)2.7条件与限制 (4)2.8.数据描述 (4)2.9态数据 (4)2.10据库介绍 (5)2.11功能划分 (5)2.12功能描述 (5)2.13数据精确度 (6)2.14时间特性 (6)2.15适应性 (6)2.16硬件接口 (7)2.17软件接口 (8)2.17故障处理 (8)2.19其它需求 (8)三、系统设计 (9)3.1用户界面 (9)3.2组织结构图 (15)3.3数据流程图 (16)3.4系统流程图 (17)3.5 ER图 (18)3.6数据字典 (20)3.7逻辑设计 (24)四、调试及总结 (24)五、附录(代码) (27)一、摘要某某单位现有1000名员工,下设6个科室,由于人员繁多,因此员工的工资发放问题越来越成为单位一个很大的麻烦,以往在人工管理的阶段不时出现工资发放错误的问题,为了解决这个问题,提高工资发放的效率,同时减少不必要的人工开支,方面员工工资的管理,决定开发员工工资管理系统。
二、系统分析2.1编写目的为进一步明确开发目的,明确软件需求、安排项目规划与进度、组织软件开发与测试,保证系统开发的正确性与可行性,特撰写此文档,为系统提供了详细的说明以及开发环境和步骤,可供系统开发人员、系统维护人员以及使用者阅读。
员工工资管理系统为公司的工资发放提供了方便、快捷的通道,同时,此软件支持经常保持修改,易运行,易查询等优点本文档供项目经理、设计人员、开发人员参考。
2.2项目背景本项目由某某单位委托,由管理学院学生自主开发和维护,主管部门为济南大学信息学院老师。
该软件系统与其他:本软件系统是建立在公司工资管理基础之上,与员工工资密切密切相关。
2.3定义VF:Microsoft Visual Foxpro 数据库开发系统。
职工管理系统课程设计报告

职工管理系统课程设计报告1.引言职工管理系统是一种企业管理软件,它的主要作用是帮助企业管理职工的基本信息、工资、考勤、培训等内容。
本文将介绍我们小组设计的职工管理系统。
2.概述职工管理系统拥有多个功能模块,包括人事管理、工资管理、考勤管理、培训管理等。
其中,人事管理模块包括职工的基本信息、职务信息、部门信息等;工资管理模块包括职工的薪资计算、社保、公积金等;考勤管理模块包括职工的出勤记录、加班、请假等;培训管理模块则包括职工的培训计划、课程安排、培训记录等。
3.功能设计我们小组的职工管理系统,采用了Java语言进行开发,使用MVC 架构模式进行开发。
具体功能设计如下:3.1人事管理模块人事管理模块用于管理职工的基本信息、职务信息、部门信息等。
其中,职工的基本信息包括姓名、性别、出生日期、身份证号等;职务信息包括职务名称、职级、任职时间等;部门信息包括部门名称、部门经理、部门编号等。
除此之外,人事管理模块还可以进行权限管理,设置不同角色的权限不同。
3.2工资管理模块工资管理模块包括职工的薪资计算、社保、公积金等。
职工的薪资计算需要考虑个人工资、绩效、考勤等因素,同时还要进行税前扣减、税后扣减等计算。
社保、公积金等则需要根据国家政策进行计算。
3.3考勤管理模块考勤管理模块用于管理职工的出勤记录、加班、请假等。
出勤记录需要记录职工的出勤时间、迟到早退、旷工等,加班需要统计职工的加班时间和加班费用,请假需要记录职工的请假类型、请假时间等。
3.4培训管理模块培训管理模块用于管理职工的培训计划、课程安排、培训记录等。
培训计划需要包括培训的目标、内容、时间、地点等,课程安排需要包括课程名称、讲师、授课时间、授课地点等,培训记录需要记录职工的培训情况、培训效果等。
4.技术选型我们小组采用了Spring Boot、MyBatis等技术进行开发,前端采用了Bootstrap、jQuery等技术进行开发。
其中,Spring Boot提供了优雅的开发方式,MyBatis则提供了便捷的数据库交互方式,Bootstrap、jQuery则为前端提供了丰富的UI组件和JavaScript库。
职工工资管理系统c++程序设计报告

职工工资管理系统c++程序设计报告职工工资管理系统是一种用于管理员工薪资的软件系统。
下面是一个使用C++编写的职工工资管理系统的程序设计报告。
## 设计与实现### 设计该系统的设计主要考虑到以下几个方面:1. 功能需求:设计一个能够记录职工的基本信息、薪资信息、请假信息、加班信息等的系统。
2. 数据库设计:设计一个可以存储数据的数据结构,包括表格和字段。
3. 界面设计:设计一个用户友好的界面,方便用户进行操作。
4. 安全性:设计一个安全性措施,保证数据的安全性和隐私性。
### 实现1. 数据库设计:使用MySQL数据库进行数据存储。
2. 界面设计:使用Qt Creator开发界面。
3. 程序实现:使用C++语言进行程序实现。
#### 功能实现1. 记录职工基本信息:包括职工ID、姓名、性别、出生日期、身份证号码、联系方式等。
2. 记录薪资信息:包括基本工资、基本工资+津贴、基本工资+补贴、奖金等。
3. 记录请假信息:包括请假日期、请假原因、请假时间等。
4. 记录加班信息:包括加班日期、加班时间、加班地点、加班原因等。
5. 记录职工基本信息与薪资信息的关联关系。
6. 记录加班信息与请假信息的关联关系。
7. 显示当前职工的工资信息、请假信息、加班信息等。
8. 允许用户对职工的工资信息、请假信息、加班信息等进行编辑和删除。
## 性能测试为了测试系统的性能和稳定性,我们使用了以下方法:1. 模拟大量数据的操作:在系统中添加大量数据,并对其进行各种操作。
2. 进行并发测试:在系统中添加并发用户,并对系统进行各种操作。
3. 进行压力测试:在系统中添加大量压力,并通过增加并发用户等方式对系统进行压力测试。
通过以上方法,我们测试了系统的性能和稳定性,并得到了以下结果:- 系统在高并发情况下能够稳定运行。
- 系统在低并发情况下也能够流畅运行。
- 系统在高压力情况下能够快速响应,并保持稳定运行。
- 系统在低压力情况下也能够流畅运行。
课程设计(工资管理系统)

课程设计(工资管理系统)一、课程目标知识目标:1. 让学生理解工资管理系统的基本概念,掌握其功能模块和工作流程。
2. 使学生掌握工资管理系统中的数据录入、查询、修改和删除等基本操作。
3. 帮助学生了解我国工资制度的相关法律法规,并能在实际操作中运用。
技能目标:1. 培养学生运用信息技术解决实际问题的能力,能独立操作工资管理系统。
2. 提高学生的团队协作能力,通过小组讨论和分享,共同解决操作过程中遇到的问题。
3. 培养学生分析、设计和优化工资管理系统的能力,为将来从事相关领域工作打下基础。
情感态度价值观目标:1. 培养学生认真负责的工作态度,注重细节,确保工资管理数据的准确性。
2. 激发学生对信息技术学科的兴趣,提高学习积极性,树立学习信心。
3. 增强学生的法律意识,使他们在实际操作中遵循国家法律法规,养成良好的职业道德。
分析课程性质、学生特点和教学要求,本课程旨在通过理论教学与实际操作相结合,帮助学生掌握工资管理系统的相关知识,培养实际操作能力。
课程目标具体、可衡量,便于学生和教师在教学过程中明确预期成果,并为后续教学设计和评估提供依据。
二、教学内容1. 工资管理系统概述- 了解工资管理系统的基本概念、功能和作用- 分析工资管理系统的类型及适用场景2. 工资管理系统模块介绍- 学习工资管理系统的主要模块,如员工信息管理、工资项目管理、工资计算、报表生成等- 掌握各模块的功能和操作方法3. 工资管理系统的操作流程- 学习工资管理系统的操作流程,包括数据录入、查询、修改、删除等- 掌握工资管理系统的权限设置和安全管理4. 工资管理系统在实际应用中的案例分析- 分析实际企业工资管理案例,了解工资管理系统的应用场景- 学习企业工资管理中的法律法规及合规要求5. 教学实践与操作- 安排学生进行工资管理系统的实际操作,巩固所学知识- 组织小组讨论,分享操作经验,解决实际问题6. 工资管理系统优化与拓展- 学习如何根据企业需求,优化工资管理系统功能- 探讨工资管理系统的发展趋势和新技术应用教学内容依据课程目标,遵循科学性和系统性原则,结合教材相关章节,制定详细的教学大纲。
工资管理系统课程设计报告

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

目录一、实验题目 (1)二、实验目的 (1)三、实验要求 (1)四、实验内容 (1)五、系统设计 (2)5.1 需求分析 (2)5.2 活动图 (2)5.3 设计数据库表 (2)5.4 设计类 (3)5.5 状态图 (4)5.6 时序图 (4)5.7 协作图 (7)5.8 组件图 (7)5.9 部署图 (7)六、心得体会 (8)员工薪资管理一、实验题目题目五:员工薪资管理二、实验目的通过这次课程设计,要掌握UML(统一建模语言),并能运用UML在Rational Rose中建模。
三、实验要求系统功能的基本要求:1)系统分为两类用户:管理员和一般用户。
一般用户只具有查询功能。
2)员工基本信息的录入。
3)员工各种信息的修改。
4)对于转出、辞职、辞退员工信息的删除。
5)计算员工的实际发放工资,按科室、职业分类统计人数和工资金额。
6)实现分类查询,对查询、统计的结果打印输出。
7)其他功能。
四、实验内容对系统进行需求分析,完成对系统的建模,建立数据库表,完成UML中的9大图:Use case diagram(用例图)、Class diagram(类图)、Object diagram(对象图,Rose中没有)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)的绘制。
五、系统设计5.1 需求分析分析的第一步是确定系统能够做什么?谁来使用这个系统?这些分别叫角色(actors)和用例(use cases)。
用例描述了系统提供什么样的功能。
薪资管理系统的角色定为管理员和一般用户,管理员能使用系统的全部功能,一般用户只具有查询功能。
系统的用例有:录入信息、删除信息、修改信息、查询、计算工资。
薪酬管理课程设计报告(DOC)

薪酬管理课程设计报告(DOC)武昌工学院经济与管理学院薪酬管理课程设计报告题目关于麦当劳薪酬设计方案的课程设计报告姓名学号***********专业年级人力资源管理1303班指导教师王丹职称讲师2021年 6 月 8 日小组成员任务分配表目录一、个体承担的角色、工作过程及结果二、总体薪酬方案设计三、总结与体会附录一内部问卷调查法附录二访谈提纲附录三岗位评价指标与标准关于麦当劳薪酬设计方案课程设计报告一、个体承担的角色、工作过程及结果我在本次实训中主要负责形成岗位评价方案的工作。
主要内容是针对企业的人员结构和岗位构成,目的是为了形成岗位评价方案。
二、薪酬方案设计企业基本情况1.麦当劳的公司的发展历史1902 年10月5日,麦当劳创办人雷.克罗克在美国伊利诺伊州芝加哥诞生。
1940年理查德.麦当劳与莫里斯.麦当劳兄弟在美国加利福尼亚州的圣贝纳迪诺创建了“Dick and Mac McDonald”餐厅,是今日麦当劳餐厅的原型。
1948年餐厅引入“快速度服务系统”原则,简称“快餐厅”。
1960年雷.克洛克正式将“Dick and Mac McDonald”餐厅更名为“McDonald"s”。
1962年麦当劳售出第10亿个汉堡包,罗纳德麦当劳叔叔在华盛顿市首度亮相。
1967年麦当劳在加拿大开设第一家国际餐厅。
1968年“巨无霸”面世,麦当劳成立国际业务部。
1972年麦当劳资产值达到10亿美元。
1990年麦当劳在中国大陆及苏联来对每一个岗位做出详细的要求和规定,必须要熟练掌握才能上岗。
工作经验占30%,麦当劳对工作经验也有很大要求,主要是对技术方面的要求,如麦当劳中的经理层很大一部分来自熟练且优秀的普通员工,没有好的技术知识和工作经验,即使有高的学历也没有用,相反,只要有好的技术知识和工作经验,即使学历并不尽人意,麦当劳也会给予提升机会并给予培训。
③劳动条件分为危害程度三个层次,工作环境4个层次。
薪酬课程设计报告

课程设计报告课程名称《薪酬管理》课程设计题目牛尊乳业有限公司薪酬制度设计指导教师姜雨设计起止日期2013.9.16——2013.9.22系别人力资源系专业人力资源管理专业学生姓名李道远高炫博高景谦胡天麒班级/学号人力1002班966 970 969 936成绩________________ ___《薪酬管理课程设计》任务书授课班级:人力1001-02课程编码:0BS05607设计内容:薪酬制度设计一、目标要求本课程设计是一个薪酬制度设计流程模拟。
目的是通过模拟薪酬制度制作,培养学生熟悉薪酬管理内容、掌握薪酬管理技术的能力,让学生充分印证各项薪酬管理技术和技巧。
本设计中,学生被要求通过分析实例企业现状、根据企业战略制定薪酬战略;通过薪酬调查确定薪酬水平和薪酬结构;通过职位评价熟悉职能薪酬定位;通过整体薪酬结构的设计熟悉薪酬不同构成部分各自的功用;最后通过薪酬软件直接计算薪酬设计结果,得到具体的管理文件,完成薪酬管理的完整过程。
二、任务要求和工作进度本课程设计主要由设计制度框架、进行薪酬调查、进行职位评价、绩效与福利薪酬设计、整合薪酬制度,及陈述答辩几个过程组成。
具体工作进度如下:1. 第一阶段,分组。
选择案例企业及模拟部门,设计薪酬制度框架,进行外部薪酬调查,绘制薪酬结构线;(提交薪酬结构线图线和调查统计表)2. 第二阶段,根据职能划分员工类别,进行工作分析,进行内部职位评价;(提供职务说明书、付酬要素定义表和职位评价结果)3. 第三阶段,选择短期激励策略、设计绩效激励计划,制定福利策略;4. 第四阶段,整合部门资源,完成薪酬制度。
(提供薪酬制度全本)5. 课程设计陈述答辩。
(有答辩评分标准)三、课程设计方式设计分组进行,以4人一组为单位,实施组长负责制;每 4课时为一个阶段模块,分五个模块进行。
四、课程设计考核方法本课程设计成绩由3部分组成:态度考核、结果考核、过程考核。
态度考核通过出勤和课堂表现核定,占总分10%;结果考核通过设计任务的阶段性成果核定,占总分的50%;过程考核通过陈述答辩进行,占总分的40%。
员工薪资管理系统课程设计

员工薪资管理系统课程设计学院:班级:学号:姓名:余黎晨李雪敏敬翰林颜学宏指导教师:李竹林目录一:绪论1.1设计目的1.2设计内容1.3开发背景1.4开发环境1.5组内成员及分工二:需求分析2.1题目分析2.2功能分析2.3数据流图2.4数据字典2.5系统功能三:系统分析与设计3.1概念结构设计3.2逻辑结构设计3.3 物理结构设计四:数据库实施及运行4.1建基本表4.3功能实现4.4完整代码五:设计心得及体会一:绪论1.1设计目的员工薪资系统的主要目的是通过操作计算机代替手工劳动,能够在该系统内完成员工的信息录入,查询,删除等操作,方便公司的高效化,规范化管理,有利于员工更好更方便了解自己的薪资信息。
系统开发的总体任务就是实现员工薪资管理的系统化、规范化和自动化。
1.2设计内容题目6:员工薪资管理1)背景资料a)某单位现有1000名员工,其中有管理人员、财务人员、技术人员和销售人员。
b)该单位下设4个科室,即经理室、财务科、技术科和销售科。
c)工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在工资中扣除。
d)每个员工的基本资料有姓名、性别、年龄、单位和职业(如经理、工程师、销售员等)。
e)每月个人的最高工资不超过3000元。
工资按月发放,实际发放的工资金额为工资减去扣除。
2)设计要求:a)进行需求分析,编写数据字典。
b)设计E-R图。
c)实现按照科室录入个人的基本资料、工资和扣除金额的数据。
d)计算个人的实际发放工资。
e)按科室、职业分类统计人数和工资金额。
f)实现分类查询。
g)能够删除辞职人员的数据。
h)开发工具不限。
1.3开发背景当今社会,随着企业人数的不断增加,企业员工薪资的管理工作也越来越复杂,资金是企业生存的核心部分,而资金流动也是关键环节,随着计算机的普及,计算机管理系统已经原来越来越广泛的应用于各个中小型企业中,用计算机取代手工对企业管理的操作也是势在必行的,并且人为操作容易造成信息错误,纸质材料不易保存,可能会导致企业运转出现滞缓现象,影响企业发展。
工资管理系统数据库课程设计报告

工资管理系统数据库课程设计报告
设计工资管理系统的数据库需要考虑以下几个方面:
1.数据表设计:需要设计一个数据表来存储员工信息,包括员工ID、员工姓名、员工工资、员工职位等字段。
同时还需要设计一个数据表来存储薪资信息,包括薪资ID、员工ID、薪资水平、薪酬结构等字段。
两个数据表需要进行关联关系的设计,以实现员工信息与薪资信息的存储和查询。
2.关系设计:需要设计一个关系来将员工信息和薪资信息进行关联。
可以使用主外键关系来实现,其中员工信息表的主键是员工ID,薪资信息表的主键是薪资ID。
这样可以保证两个数据表的关联关系正确无误。
3.功能设计:需要考虑工资管理系统的各项功能,包括员工信息查询、薪资信息查询、员工信息修改、薪资信息修改等。
需要根据功能设计相应的操作界面和业务逻辑。
4.安全性设计:需要考虑工资管理系统的安全性,包括用户权限管理、数据备份和恢复、安全漏洞检测和修复等。
需要设计合适的安全措施,以保证数据和系统的安全。
5.性能设计:需要考虑工资管理系统的性能,包括查询速度、存储容量、数据更新速度等。
需要根据实际情况进行性能优化,以保证系统正常运行。
6.数据库备份和恢复:需要考虑数据库备份和恢复的能力,包括备份策略、备份文件大小、备份频率、恢复操作等。
需要设计合理的
备份和恢复方案,以保证数据的安全和完整性。
以上是设计工资管理系统数据库课程设计的几个方面,当然还有其他需要注意的问题,需要根据具体情况进行分析和设计。
C语言课程设计报告-工资管理系统

C语言课程设计报告-工资管理系统一.系统功能设计一个职工工资管理系统,其功能包括:(1)职工基本工资信息录入包括工号,姓名,应发工资,奖金,扣款,应发工资,扣税,实发工资。
(2)职工基本工资信息保存(3)职工基本工资信息查询按照工号查询按照姓名查询(4)职工基本工资信息显示在屏幕上显示所有的职工基本工资信息。
(5)职工基本工资信息更新能够实现修改,删除,插入,排序功能。
(6)职工基本工资信息统计统计公司员工工资在各等级的人数主界面系统主界面应有如下功能选项录入职工基本工资信息查询职工基本工资信息保存职工基本工资信息删除职工基本工资信息插入职工基本工资信息修改职工基本工资信息统计职工基本工资信息排序职工基本工资信息显示职工基本工资信息退出代码如下:#incl ude <stdio.h>typed ef st ructemplo yee{ char num[10]; //保存职工编号 char name[15]; //保存职工姓名 floa t jbg z; //保存职工基本工资f loatjj; //保存职工奖金f loatkk; //保存职工扣款float yfgz; //保存职工应发工资 fl oat s k; //保存职工税款f loatsfgz; //保存职工实发工资}ZG GZ;voidmenu(){ pr intf(" Empoy ee Sy stem\n"); pr intf("--<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@--<-<-<@\n"); pr intf(" *1 i nputr ecord *2 dele te recor d\n");print f(" *3 sear ch reco rd *4 mo dify rec ord\n"); pri ntf("*5 in sert re cord *6countr ecord\n");p rintf(" *7sortrecor d *8 sav e reco rd\n"); prin tf("*9 dis play rec ord *0 q uit re cord\n"); pr intf("--<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@ --<-<-<@--<-<-<@\n"); pr intf("Plea se en ter y ou ch oice(0-9)\n");}i nt in put(Z GGZ a[],in t k){ intj,x; ch ar st r[10];j=x=0;while(1) {p rintf("----------------------------\n"); prin tf("请输入职工的编号:(按0返回主菜单)"); sc anf("%s",s tr); str cpy(a[k].n um,st r);f or(j=0;j<k;j++) {if(st rcmp(a[j].num,s tr)==0){ prin tf("已经有工号为%s的员工信息!请重新输入员工号。
工资管理系统课程设计报告

工资管理系统课程设计报告Last updated on the afternoon of January 3, 2021课程设计报告题目:工资管理系统专业:网络工程班级:姓名:指导教师:成绩:计算机学院2017年12月8日目录823一、工资管理系统数据库设计1、项目介绍工资管理系统的功能是收集员工的个人信息,以便实现按照科室录入个人的基本资料,向各科室发放个人工资和计算个人的实际发放工资,可以让相关财务部门及领导查看各科室人数情况和工资金额,还可以让员工用自己的员工号去查看自己的工资和扣除金额的情况。
工资管理系统的主要功能有:(1)、按照科室录入个人的基本资料,工资和扣除金额的数据;(2)、计算个人的实际发放工资;(3)、按科室、职业分类统计人数和工资金额;(4)、实现员工个人信息和工资的分类查询;(5)、能够删除辞职人员的数据;工资管理:包括与工资发放相关的各种数据处理,以及对这些处理的有机组织规划;人事管理:主要指对各种员工人事信息的管理,包括员工的基本情况和升迁离职情况;工资项目:影响工资计算的各种因素,如:基本工资,福利补贴和奖励工资,扣除的事业保险和住房公积金等等。
用户登录管理:2种权限,一种是管理员权限,可以做任何操作;一种是普通用户权限只可以查看自己的工资及基本信息,不能编辑,也不能查看其他用户信息。
1.1数据需求分析及数据字典1.需求分析工资管理系统就是对员工工资的管理,所以首先我们需要知道的是员工有哪些信息,并且是怎样进行分类的。
工资信息包含1:员工基本信息(姓名,年龄,所在部门和职务:如经理、工程师、销售员等);2:部门信息;3工资表。
部门表应包括部门号及其名称,工资应该包含对应部门对应员工的工资。
员工唯一对应的是员工编号,所以员工编号是主键,其他的都不能是,根据员工编号我们可以查找员工的基本信息,还有员工的工资信息等。
综合分析对工资管理系统分四个表:1)员工基本信息表(员工编号,姓名 ,性别, 年龄,出生年月, 籍贯,职务,电话号码,部门编号);2)部门表(部门编号,部门名称,部门负责人,联系电话);3)工资清单表(工资编号,员工编号,基本工资,福利补贴,奖励工资,事业保险金,住房公积金);4)实发工资表(工资编号,员工编号,所得工资);概念结构设计实体间的联系:1:员工基本信息表 workers:(员工编号w_number、姓名w_name、性别sex、年龄age、出生日期birthday、籍贯native、电话号码w_tel、所在部门编号dep_number)。
c语言课程设计报告 职工工资管理系统

一.设计需求说明一、职工工资管理系统功能设计要求1. 输入记录:将每一个职工的姓名、ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。
•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5. 删除记录:可删除数据文件中的任一记录。
6.恢复记录:能恢复被删除的任一记录。
7. 统计: (A) 计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
8.保存数据文件功能。
9.打开数据文件功能。
经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。
程序运行结果如下表所示(记录个数至少8 个)。
二.模块设计分析系统功能模块图:工作程序分析①输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组em[],先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。
同时将数据储存在ckerk_list文件中并自动保存至磁盘。
注:如首次使用,尚未输入数据,请先输入数据。
输入的数据将自动保存。
再次选择输入功能时原数据将被覆盖。
②保存:将输入的资料存入磁盘读取文件clerk_list,若文件不存在,打印“打开失败并退出。
若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。
教师工资管理系统课程设计报告

教师工资管理系统课程设计报告一、题目教师工资管理系统课程设计报告二、设计要求1.分析教师工资管理系统的功能需求,说明系统功能包括哪些方面;2.设计教师工资管理系统的概念模型、数据模型和数据库结构;3.采用面向对象的程序设计方法,设计教师工资管理系统的功能模块及其实现;4.设计相应的用户界面,实现对教师信息的查询、修改和删除等操作;5.实现系统中数据的导入导出功能,方便管理和操作;6.测试系统的功能和性能,撰写测试报告。
三、设计思路教师工资管理系统是一款功能比较复杂的管理软件,它主要用于对学校里的教师的工资进行管理。
在进行设计时,首先需要分析系统的功能需求,确定系统的功能模块。
其次,需要以面向对象的程序设计方法,设计教师工资管理系统的功能模块。
最后,还需要测试系统的功能和性能,以保证系统的稳定性和可靠性。
四、具体实现1.需求分析我们所需要的教师工资管理系统可以分为以下3个功能模块:(1)教师信息管理模块:这个功能模块主要用于管理教师的基本信息,包括姓名、性别、职称、工龄、电话和住址等方面。
管理员可以在这个模块中对教师的基本信息进行添加、修改和删除等操作。
(2)工资管理模块:这个功能模块主要用于管理教师的工资信息,包括基本工资、津贴、奖金等方面。
管理员可以在这个模块中对教师的工资信息进行添加、修改和删除等操作。
(3)报表统计模块:这个功能模块主要用于生成报表,包括教师基本信息报表、教师工资报表等方面。
管理员可以在这个模块中按照时间周期对教师的工资进行查询和统计等操作。
2.设计概念模型和数据模型在进行概念模型的设计时,我们需要先了解教师工资管理系统的数据内容。
教师工资管理系统中主要涉及到两个实体,分别是教师和工资。
其中,教师包含以下属性:编号、姓名、性别、职称、工龄、电话和住址等;工资包含以下属性:编号、基本工资、津贴、奖金等。
我们可以根据这些属性设计出以下的概念模型:教师:编号(PK)、姓名、性别、职称、工龄、电话、住址工资:编号(PK)、基本工资、津贴、奖金在设计数据模型时,我们需要把概念模型中的实体和属性转化为实际的数据表。
工资管理系统课程设计

工资管理系统课程设计课程设计:工资管理系统1. 课程设计目的和背景:工资是员工劳动的回报,对于企业和员工来说都有重要的意义。
工资管理系统是一种可以自动化处理和管理企业工资支付和相关数据的系统。
本次课程设计旨在设计一个简单的工资管理系统,实现基本的工资计算和管理功能,提高企业工资管理的效率和准确性。
2. 课程设计内容和步骤:2.1 需求分析:分析企业对工资管理系统的具体需求,包括工资计算、工资发放管理、员工信息管理等功能。
2.2 系统设计:设计合适的系统架构,确定相关的数据库表结构和字段,设计用户界面和交互流程。
2.3 功能实现:2.3.1 员工信息管理功能:包括员工信息的录入、查询、修改和删除等功能。
2.3.2 工资计算功能:根据员工的工作时长、工作岗位和薪资级别等信息,计算每个员工的工资,并生成工资明细。
2.3.3 工资发放管理功能:记录每个员工的工资发放情况,包括工资发放日期、发放方式等信息。
2.3.4 统计报表功能:生成工资报表和统计报表,方便企业进行数据分析和业务决策。
2.4 系统测试和验证:对系统进行功能性测试和性能测试,确保系统能够正常运行和满足需求。
3. 课程设计成果:3.1 完整的工资管理系统:包括员工信息管理、工资计算、工资发放管理和统计报表等功能的实现。
3.2 系统设计文档:包括需求分析、系统设计、数据库设计等的详细文档。
3.3 系统操作手册:包括系统安装、配置和使用的详细说明。
3.4 系统演示和报告:展示系统的功能和操作,总结系统设计和实现的经验和教训。
4. 课程设计评估:根据系统的功能性和性能的完整度和质量,以及文档和报告的详细程度和准确性,对课程设计进行评估和打分。
5. 学习收获:通过课程设计,学生能够深入了解工资管理系统的设计和实现过程,掌握系统设计和数据库设计的相关知识和技能,提高对工资管理和信息系统的理解和应用能力。
同时,通过团队合作和完成项目的经验,培养学生的团队合作和项目管理能力。
工资管理信息系统课程设计报告

统实现提供详细的指导。
系统实现
根据系统设计,采用合适的编 程语言和开发工具进行系统编
码和实现。
系统测试
对实现的系统进行全面的测试 ,确保系统的稳定性和准确性
。
02
工资管理信息系统需求分析
功能需求
员工信息管理
系统需要提供对员工基本信息 的增删改查功能,包括员工姓 名、性别、年龄、职位、入职
01定量评估结果系使用后,工资核算效率提高了50%以上,准确性得到了显著提升。
02
定性评估结果
大部分用户对系统表示满意,认为系统提高了工资管理的便捷性和透明
度。
03
对比评估结果
相较于传统的手工管理方式,该系统在效率、准确性和便捷性等方面具
有明显优势。同时,系统还存在一些需要改进的地方,如进一步优化操
在此添加您的文本16字
开发语言:Python
在此添加您的文本16字
Python是一种解释型、高级编程语言,具有简洁明了的 语法和强大的功能库,适用于快速开发各种应用。
在此添加您的文本16字
数据库:MySQL
在此添加您的文本16字
MySQL是一款流行的关系型数据库管理系统,具有高性 能、稳定性和易用性,适用于存储和管理工资信息数据。
数据库设计
数据库选型
选用关系型数据库管理系统(如 MySQL、Oracle等),确保数据的 完整性和安全性。
数据表设计
根据系统需求,设计合理的数据表结 构,包括员工信息表、工资明细表、 部门信息表等。
数据关系设计
定义数据表之间的关系,如员工与部 门之间的从属关系、工资明细与员工 信息的关联关系等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一、需求分析 (2)二、概要设计 (2)三、详细设计 (5)四、调试分析 (18)五、用户手册 (19)六、测试数据 (19)七、附录 (23)一、需求分析职工工资管理系统功能设计要求(1)输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。
•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
(2)显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
(3)修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
(4)查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
(5)删除记录:可删除数据文件中的任一记录。
(6)统计: (A)计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2000元、2000~1000元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
(7)保存数据文件功能。
例如:职工工资信息表ID号姓名基本工资职务工资津贴医疗保险- 公积金- 总工资01 张望1286 794 198 109 135 203402 李明1185 628 135 94 114 174003 王小民 895 438 98 64 73 129404 张效章 1350 868 210 116 150 216205 彭山745 398 84 61 68 1098⋯⋯⋯⋯⋯⋯⋯⋯各项平均工资1092.2 625.2 145 88.8 108(要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)二、概要设计1、程序总体功能框架:2、一些数据结构的介绍:struct worker 定义职工的结构体{int num; 职工工号char name[20]; 职工姓名int jibengongzi; 职工的基本工资int zhiwugongzi; 职工的职务工资int jintie; 职工的津贴int yiliaobaoxian; 职工的医疗保险int gongjijin; 职工的公积金int qiansan; 职工前三项工资(基本工资、职务工资、津贴)之和 int sum; 职工的总工资}worker[100]; 建立最多为100,、名为worker的结构体3、定义主要的函数:void menu();void Input();void Modify();void Search();void Add();void Delete();void Show();void Exit();4、几个主要函数介绍:○1清屏函数:system("cls");将前面操作的屏幕清楚,但不会清除数据○2菜单函数:menu();显示主菜单,便于选择○3输入函数:Input();用于输入数据○4修改函数:Modify(); 用于修改数据○5查找函数:Search(); 用于查找信息○6添加函数:Add(); 用于增加信息○7删除函数:Delete(); 用于删除信息○8显示函数:Show(); 用于显示信息○9退出函数:Exit(); 用于退出该系统○10选择函数:select();用于选择显示信息或返回到菜单○11保存信息的函数:save():用于保存信息○12保存人数的函数:P();用于保存已保存数据的人数5、本程序模块结构⑴主函数模块int main(){system("cls");menu();}执行主函数后,执行菜单函数。
⑵菜单函数模块void menu(){int n;system("cls");printf("\n\n\n");printf("\t\t***********************************************\n");printf("\t\t** **\n");printf("\t\t** If you were the first to enter the system **\n");printf("\t\t** please select Input! **\n");printf("\t\t** **\n");printf("\t\t** 1-------Input **\n");printf("\t\t** 2-------Modify **\n");printf("\t\t** 3-------Search **\n");printf("\t\t** 4-------Add **\n");printf("\t\t** 5-------Delete **\n");printf("\t\t** 6-------Show **\n");printf("\t\t** 7-------Exit **\n");printf("\t\t** **\n");printf("\t\t***********************************************\n");printf("\t\t\n");printf("\n\n");printf("\t\tInput your choose(1-7):");scanf("%d",&n);if(n>=1&&n<=7){switch(n){case 1:Input();break;case 2:Modify();break;case 3:Search();break;case 4:Add();break;case 5:Delete();break;case 6:Show();break;case 7:Exit();break;}}elsemenu();}菜单函数中包括输入函数、修改函数、查找函数、添加函数、删除函数、显示函数、退出函数。
根据菜单中各个函数代表的数字选择相应的数字进行操作。
三、详细设计#include "stdio.h"#include "string.h"struct worker //定义结构体{int num;char name[20];int jibengongzi;int zhiwugongzi;int jintie;int yiliaobaoxian;int gongjijin;int qiansan;int sum;} worker[100];void menu(); //定义几个主要的函数void Input();void Modify();void Search();void Add();void Delete();void Show();void Exit();int main() //主函数{system("cls");menu();}void menu() //菜单函数{int n;system("cls"); //清屏printf("\n\n\n"); //菜单界面printf("\t\t***********************************************\n");printf("\t\t** **\n");printf("\t\t** If you were the first to enter the system **\n");printf("\t\t** please select Input! **\n");printf("\t\t** **\n");printf("\t\t** 1-------Input **\n");printf("\t\t** 2-------Modify **\n");printf("\t\t** 3-------Search **\n");printf("\t\t** 4-------Add **\n");printf("\t\t** 5-------Delete **\n");printf("\t\t** 6-------Show **\n");printf("\t\t** 7-------Exit **\n");printf("\t\t** **\n");printf("\t\t***********************************************\n");printf("\t\t\n");printf("\n\n");printf("\t\tInput your choose(1-7):"); //选择需要进行的功能,选择1-7之间的数scanf("%d",&n);if(n>=1&&n<=7){switch(n) //根据选择不同的数,实现不同的功能{case 1:Input();break;case 2:Modify();break;case 3:Search();break;case 4:Add();break;case 5:Delete();break;case 6:Show();break;case 7:Exit();break;}}elsemenu(); //如果选择的数不在1至7之间,返回菜单重新输入}void Input() //输入函数{int i,p;clrscr();printf("\n\nHow many people?(0-100):"); //输入需要输入信息的职工人数scanf("%d",&p);if(p>=0&&p<=100) //输入职工的信息{printf("\n\n");printf("Please input data:\n");printf("\n");f1();for(i=0;i<p;i++){input(i);worker[i].sum=worker[i].jibengongzi+worker[i].zhiwugongzi+worker[i].jintie-worker[i].yiliaobaoxian-worker[i].gongjijin; //计算职工的总工资worker[i].qiansan=worker[i].jibengongzi+worker[i].zhiwugongzi+worker[i].jintie; //职工前三项工资(基本工资、职务工资、津贴)之和}}elseInput(); //如果输入的职工人数超过100,返回输入函数重新输入save(p); //保存输入的职工信息select(); //选择显示信息或返回到菜单}void Modify() //修改函数{int i,j=-1,d,k,t,n;char m[20];FILE *fp; //定义一个文件指针system("cls"); //清屏n=P();printf("\n\n");printf("Choose the way you want to modify:\n"); //选择通过何种方式修改信息printf("\n\n"); //选择方式的界面printf("\t\t****************************************\n");printf("\t\t* *\n");printf("\t\t* 1.By name to modify *\n");printf("\t\t* *\n");printf("\t\t* 2.By number to modify *\n");printf("\t\t* *\n");printf("\t\t****************************************\n");printf("\ninput your selection:");scanf("%d",&d);if(d!=1&&d!=2){printf("\ninput error! Press any key to continue.");getchar();Modify(); //选择的数字错误,返回修改函数重新选择}else if(d==1){do{printf("\nPlease input the name:"); //输入需要修改职工的姓名scanf("%s",m);for(i=0;i<n;i++)if(strcmp(m,worker[i].name)==0)j=i;if(j==-1)printf("\nNot find!Please input again!\n"); //没有找到该职工,重新输入}while(j==-1);}else{do{printf("\nPlease input the num:"); //输入需要修改职工的工号scanf("%d",&k);for(i=0;i<n;i++)if(k==worker[i].num)j=i;if(j==-1)printf("\nNot find!Please again!\n"); //没有找到该职工,重新输入}while(j==-1);}printf("\nWhat do you want to modify?\n\n"); //需要修改信息的界面printf("\t\t**************************************\n");printf("\t\t* *\n");printf("\t\t* 2.number *\n");printf("\t\t* *\n");printf("\t\t* 3.jibengongzi 4.zhiwugongzi *\n");printf("\t\t* *\n");printf("\t\t* 5.jintie 6.yiliaobaoxian *\n");printf("\t\t* *\n");printf("\t\t* 7.gongjijin *\n");printf("\t\t* *\n");printf("\t\t**************************************\n");printf("\nPlease input your selection:"); //选择需要修改的信息scanf("%d",&t);switch(t) //通过选择的数字,实现修改该信息{case 1:printf("\nbefore modify:%s",worker[j].name);printf("\nchange to:");scanf("%s",worker[j].name);printf("\nafter modify:%s",worker[j].name);break;case 2:printf("\nbefore modify:%d",worker[j].num);printf("\nchange to:");scanf("%d",&worker[j].num);printf("\nafter modify:%d",worker[j].num);break;case 3:printf("\nbefore modify:%d",worker[j].jibengongzi);printf("\nchange to:");scanf("%d",&worker[j].jibengongzi);printf("\nafter modify:%d",worker[j].jibengongzi);break;case 4:printf("\nbefore modify:%d",worker[j].zhiwugongzi);printf("\nchange to:");scanf("%d",&worker[j].zhiwugongzi);printf("\nafter modify:%d",worker[j].zhiwugongzi);break;case 5:printf("\nbefore modify:%d",worker[j].jintie);printf("\nchange to:");scanf("%d",&worker[j].jintie);printf("\nafter modify:%d",worker[j].jintie);break;case 6:printf("\nbefore modify:%d",worker[j].yiliaobaoxian);printf("\nchange to:");scanf("%d",&worker[j].yiliaobaoxian);printf("\nafter modify:%d",worker[j].yiliaobaoxian);break;case 7:printf("\nbefore modify:%d",worker[j].gongjijin);printf("\nchange to:");scanf("%d",&worker[j].gongjijin);printf("\nafter modify:%d",worker[j].gongjijin);break;default:printf("Error!choice again!!\n");break;}getchar();printf("\n");f2();worker[j].sum=worker[j].jibengongzi+worker[j].zhiwugongzi+worker[j].jintie-worker[j].yiliaobaoxian-worker[j].gongjijin; //职工的总工资output(j);printf("\nSave it?\n\n1.Yes 2.No\n"); //询问是否保存修改后的信息scanf("%d",&i);if(i==1)save(n); //保存修改后的信息printf("\nPress any key to back!"); //返回到菜单getchar();menu();}void Search() //查找函数{int i,j=-1,k,d,n;char m[20];n=P();system("cls"); //清屏printf("Choose the way you want to search:\n"); //选择通过何种方式查找信息printf("\n\n"); //选择方式的界面printf("\t\t****************************************\n");printf("\t\t* *\n");printf("\t\t* 1.By name to search *\n");printf("\t\t* *\n");printf("\t\t* 2.By number to search *\n");printf("\t\t* *\n");printf("\t\t****************************************\n");printf("\n\n");printf("Please input your selection:"); //选择查找的方式scanf("%d",&d);if(d==2){do{printf("\nPlease input the number:"); //输入需要查找的职工工号scanf("%d",&k);for(i=0;i<n;i++){if(k==worker[i].num)j=i;}if(j==-1)printf("Not find!Please input again!\n"); //没有找到该职工,重新输入}while(j==-1);printf("\n");f2();output(j); //输出信息}else if(d==1){do{printf("\nPlease input the name:"); //输入需要查找的职工姓名scanf("%s",m);for(i=0;i<n;i++)if(strcmp(m,worker[i].name)==0)j=i;if(j==-1)printf("Not find!Please input again!\n"); //没有找到该职工,重新输入}while(j==-1);printf("\n");f2();output(j); //输出信息}if(d!=1&&d!=2){printf("\nInput error! Press any key to continue."); //输入错误,按enter键继续getchar();Search(); //返回到查找函数}select(); //选择显示信息或返回到菜单}void Add() //添加函数{int i,k,m,n;FILE *fp; //定义一个文件指针system("cls"); //清屏n=P();printf("\n\nHow many people do you want to add:"); //输入需要添加的职工人数scanf("%d",&m);k=m+n;if(k<=100){printf("\n\nPlease input their information:\n\n"); //输入添加的职工信息f1();for(i=n;i<k;i++){input(i);worker[i].sum=worker[i].jibengongzi+worker[i].zhiwugongzi+worker[i].jintie-worker[i].yiliaobaoxian-worker[i].gongjijin; //职工的总工资}if((fp=fopen("D:\\zggz.txt","ab"))==NULL) //如果文件为空,则不能打开文件{printf("\nCan not open file.\n"); //不能打开文件getchar();menu(); //返回到菜单}for(i=n;i<k;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1) //判断是否写入了数printf("file write error.\n"); //文件写入错误fclose(fp); //关闭文件select(); //选择显示信息或返回到菜单}Add(); //返回到添加函数}void Delete() //删除函数{int i,j=-1,d,k,t,n;char m[20];FILE *fp; //定义一个文件指针system("cls"); //清屏n=P();fp=fopen("D:\\zggz.txt","rb"); //打开只读文件printf("\n\n");printf("Choose the way you want to delete:\n"); //选择通过何种方式删除信息printf("\n\n"); //删除函数的界面printf("\t\t****************************************\n");printf("\t\t* *\n");printf("\t\t* 1.By name to delete *\n");printf("\t\t* *\n");printf("\t\t* 2.By number to delete *\n");printf("\t\t* *\n");printf("\t\t****************************************\n");printf("\ninput your selection:"); //选择删除的方式scanf("%d",&d);if(d!=1&&d!=2){printf("\ninput error! Press any key to continue."); //输入错误,按enter键继续getchar();Delete(); //返回到删除函数}else if(d==1){do{printf("\nPlease input the name:"); //输入需要删除的职工姓名scanf("%s",m);for(i=0;i<n;i++)if(strcmp(m,worker[i].name)==0)j=i;if(j==-1)printf("\nNot find!Please again!\n"); //没有找到该职工,重新输入}while(j==-1);}elsedo{printf("\nPlease input the num:"); //输入需要删除的职工工号scanf("%d",&k);for(i=0;i<n;i++)if(k==worker[i].num)j=i;if(j==-1)printf("\nNot find!Please again!\n"); //没有找到该职工,重新输入}while(j==-1);}printf("\n");f2();for(i=j;i<n-1;i++)worker[i]=worker[i+1]; //删除信息后,将后面的职工信息按原来的顺序补充for(i=0;i<n-1;i++)output(i);printf("Save it?\n\n1.Yes 2.No\n"); //询问是否保存删除后的职工信息scanf("%d",&i);if(i==1)save(n-1); //保存删除后的职工信息printf("\nPress any key to back!"); //按enter键继续getchar();menu(); //返回到菜单}void Show() //显示函数{int i,p,a=0,b=0,c=0,j=0,k=0,l=0,m=0,n=0;p=P();system("cls"); //清屏f2();for(i=0;i<p;i++)output(i);printf("\nnaverage salary:\n");for(i=0;i<p;i++) //各项工资的总和{j+=worker[i].jibengongzi;k+=worker[i].zhiwugongzi;l+=worker[i].jintie;m+=worker[i].yiliaobaoxian;n+=worker[i].gongjijin;printf("%13d %11d %12d %7d %15d",j/p,k/p,l/p,m/p,n/p);printf("\n(qian san xiang)renshu baifenbi\n");for(i=0;i<p;i++) //统计前三项工资在各个范围内的人数{if(worker[i].qiansan>3000)a++;else if(worker[i].qiansan>=2000 && worker[i].qiansan<=3000) b++;else if(worker[i].qiansan>=1000 && worker[i].qiansan<=2000) c++;}//显示前三项工资在各个范围内的人数及所占人数的百分比printf(" over 3000:%-7d%6d%%\n",a,(a*100/p));printf(" 2000~3000:%-7d%6d%%\n",b,(b*100/p));printf(" 1000~2000:%-7d%6d%%\n",c,(c*100/p));printf("\n");printf("Press any key to back.");getchar();menu(); //返回到菜单}void Exit() //退出函数{int i,p,a=0,b=0,c=0,j=0,k=0,l=0,m=0,n=0;p=P();system("cls"); //清屏f2();for(i=0;i<p;i++)output(i);printf("\nnaverage salary:\n");for(i=0;i<p;i++) //各项工资的总和{j+=worker[i].jibengongzi;k+=worker[i].zhiwugongzi;l+=worker[i].jintie;m+=worker[i].yiliaobaoxian;n+=worker[i].gongjijin;}printf("%13d %11d %12d %7d %15d",j/p,k/p,l/p,m/p,n/p);printf("\n(qian san xiang)renshu baifenbi\n");for(i=0;i<p;i++) //统计前三项工资在各个范围内的人数{if(worker[i].qiansan>3000)a++;else if(worker[i].qiansan>=2000 && worker[i].qiansan<=3000)b++;else if(worker[i].qiansan>=1000 && worker[i].qiansan<=2000)c++;}//显示前三项工资在各个范围内的人数及所占人数的百分比printf(" over 3000:%-7d%6d%%\n",a,(a*100/p));printf(" 2000~3000:%-7d%6d%%\n",b,(b*100/p));printf(" 1000~2000:%-7d%6d%%\n",c,(c*100/p));printf("\n");getchar();system("cls"); //清屏printf("\n\n\n\n\n\n\n\n"); //退出系统的界面printf("\t***********************************************************\n");printf("\t ** **\n");printf("\t ** Thank you for the use of staff wage management system! **\n");printf("\t ** **\n");printf("\t ** **\n");printf("\t ** Good-bye! **\n");printf("\t ** **\n");printf("\t***********************************************************\n");printf("\t\t\n\n");getchar();}f1(){printf("num name jibengongzi zhiwugongzi jintie yiliaobaoxian gongjijin\n\n");}f2(){printf("num name jibengongzi zhiwugongzi jintie yiliaobaoxian gongjijin sum\n\n");}input(int i) //将输入的信息保存到结构体中{scanf("%d %s %d %d %d %d %d",&worker[i].num,worker[i].name,&worker[i].jibengongzi,&worker[i].zhiwugongzi,&worker[i].jintie,&worker[i].yiliaobaoxian,&worker[i].gongjijin);}output(int i) //输出信息{printf("%-3d%-5s %-12d %-12d %-8d %-14d %-10d %-7d\n\n",worker[i].num, worker[i].name,worker[i].jibengongzi,worker[i].zhiwugongzi,worker[i].jintie,worker[i].yiliaobaoxian,worker[i].gongjijin,worker[i].sum); }select() //选择函数{int i;printf("\n\n");printf("\t\t\t* Successful! *\n");printf("\n\n");printf("What do you want to do now?\n\n1.Show all data 2.Back\n"); //选择显示信息或返回scanf("%d",&i);if(i==1)Show(); //返回到显示函数else if(i==2)menu(); //返回到菜单}save(int n) //向文件中输入数据{FILE *fp; //定义一个文件指针int i;if((fp=fopen("D:\\zggz.txt","wb"))==NULL) //判断打开的写入文件是否为空{printf("\nCan not open file.\n");return NULL;}for(i=0;i<n;i++)if(worker[i].num!=0)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1) //判断是否写入了数printf("file write error!\n"); //写入文件错误fclose(fp); //关闭文件}P(){FILE *fp; //定义一个文件指针int i;if((fp=fopen("D:\\zggz.txt","rb"))==NULL) //判断打开的只读文件是否为空{printf("\nCan not open file.\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp); //读取文件fclose(fp); //关闭文件return (i-1);}四、调试分析1、使用getchar()可以使字符一个个地存入缓冲区。