职工工资管理系统方案
职工工资管理系统设计与实现

《JA V A程序设计》课程设计报告设计题目:职工工资管理系统设计与实现学院名称:专业班级:姓名:学号:目录一需求分析。
..。
.。
..。
..。
.。
.。
.。
..。
.。
3二概要设计。
.。
.。
..。
.。
..。
..。
.。
.。
.。
.。
.。
.。
.。
3三详细设计.。
.。
..。
.。
.。
.。
.。
.。
.。
.。
.。
.。
.。
53.1 数据库设计。
.。
.。
.。
.。
.。
.。
.。
.。
.。
.。
33.2 模块及窗体设计。
.。
.。
.。
.。
.。
...。
..。
.。
.。
.。
.。
.。
.3 3.2.1 数据库模块设计。
.。
..。
.。
.。
..。
.。
.。
..。
.。
.。
53.2.2 用户登录识别模块...。
..。
..。
...。
.。
.。
..。
63.2.3管理员模块。
.。
...。
..。
.。
.。
..。
.。
..。
8职工基本信息管理。
.。
..。
.。
..。
.。
.。
9职工工资管理.。
..。
.。
.。
.。
.。
..。
.。
.。
.。
.。
203。
2。
4 普通用户模块。
.。
.。
.。
..。
.。
.。
..。
.。
.。
.。
28 职工信息...。
.。
.。
..。
.。
..。
.。
.。
..。
.。
283.2。
5 系统管理模块.。
.。
.。
.。
.。
...。
.。
.。
.。
..。
.153.2。
5 主窗体菜单设计。
.。
.。
..。
.。
.。
.。
.。
.。
.。
15 四软件测试.。
..。
.。
.。
.。
.。
.。
..。
.。
.。
.。
.。
.。
...。
36五总结。
.。
.。
.。
..。
..。
.。
.。
.。
.。
.。
.。
.。
36 参考资料:.....................................................。
..17一需求分析本系统的主要目的就是实现职工工资管理系统设计与实现,使职工工资管理工作更加容易, 高效地管理企业职工工资,从而提高工作效率,降低管理成本。
二概要设计/************************************************************************概要设计阶段主要是粗略描述整个软件的框架,并从业务的角度描述软件的模块、工作流程等。
工资管理系统

一、工资管理系统的需求分析工资管理系统包括信息浏览查询、数据库维护、基本信息管理.1。
系统功能需求(1)员工可以进入此系统查询工资和查看基本的信息。
(2)管理员可以对员工的信息进行添加,删除,修改。
并对数据库中的数据维护,包括数据备份,导入数据,导出数据。
满足上述需求的系统主要包括下面几个模块(1)数据库维护模块:管理员要对数据库内所有的数据进行备份和恢复,并可实现数据导入导出功能.(2)基本信息管理模块:实现对员工基本信息的管理操作,包括员工基本数据信息的添加、修改、删除和查询等功能。
(3)信息浏览查询模块:用户对系统中的信息进行查询。
可根据条件查询员工历史工资数据(如按月份查询、按姓名查询、按部门查询等)。
2数据库维护模块数据备份:将一个月的数据进行复制.数据导入:每天将数据导入到数据库中。
数据导出:每天下班将数据导出数据库。
3基本信息管理模块删除员工信息:如果有员工辞职则删除该员工的信息.添加员工信息:如果聘用了新员工则添加员工信息.修改员工信息:如果有员工的信息有所变动则修改。
4信息浏览查询模块查询员工信息:员工查询自己的信息。
查询工资:员工查询自己的工资情况。
功能需求细化:①在工资管理系统中,需要员工的参与,员工可以查询工资的历史数据并领取工资,还可以通过员工编号查看员工的基本信息。
②管理员是此系统的核心,管理着整个系统。
他要对所有的员工的信息的管理,对数据进行添加,删除,修改。
管理员还要对系统进行相关维护操作,数据备份,数据恢复,数据导入等以及更新数据库。
(1)系统用户参与的总的用例图管理员和员工都可发从用户这个参与者中泛化而来,用户是指此系统的所有使用者,以登录系统完成相应的操作.系统用户参与的总的用例图如下图所示.从图中可以清楚地看到泛化关系与各个参与者所参与的用例。
图2.1系统用户参与的总的用例图(2)工资统计的用例图此用例图清晰看出工资发到员工手里的过程。
有四个参与者,包括经理,职工,行政部门,业务部门。
工资管理系统数据流程图

P9
扣税
S3 工资计算表
个人所得税的计算一般由用户设定各级纳税基数和各段纳税率,然后系统自动生成相应的计算公式。个人所得税计算采用分级累进制。首先,设定纳税基数,一般把实发工资项目设置为纳税基数。第二,定义税率表。一般系统提供了国家颁布的工资、薪金所得所适用的 9 级超额累进税率。税率为 5%~45% ,级数为 9 级。单位可根据需要调整费用基数、附加费用以及税率。最后,系统跟据用户的设置自动计算并生成个人所得税申报表。会计分录如下:
1. 工资管理系统的数据流程图,如图:
2. 主要数据字典
1) 数据项的定义
数据项编号
数据项名称
类型及宽度
简述
取值范围
I1
考勤日期
Char ( 10)
标示其他部门提交的职工考勤信息的年月
I2
工资日期
Char10)
标示职工工资的年月
I3
职工编码
Char10)
唯一用来标示职工的编码
I4
部门名称
Char(20)
D3 实发工资
1 次 / 月
P7
分摊工资
S3 工资计算表
根据工资计算文件将工资费用按部门和按职工的岗位类别进行分配,并与相应的会计科目对应,便于转账处理。会计分录如下:借:生产成本-基本生产成本
制造费用—工资
营业费用-工资
管理费用 — 工资
在建工程—工资
应付福利费—工资
贷:应付工资
S6 工资费用分配表
1 次 / 月
P8
计提福利费
S3 工资计算表
根据工资计算文件将工资费用按国家有关规定计提福利费,应付福利费的计提比例为工资总额的 14% ,并与相应的会计科目对应,便于转账处理。会计分录如下
工资管理系统的系统初始设置

工资管理系统的系统初始设置工资管理系统的系统初始设置一、引言工资管理是企业中非常重要的一项管理工作,它关系到员工福利、薪酬制度、绩效考核等多个方面,对于企业的发展和员工的积极性起到至关重要的作用。
为了更好地管理企业的薪酬体系,提高薪酬效率,降低管理成本,建立一套科学、合理、高效的工资管理系统是必不可少的。
二、系统要求1.系统目标:建立一个全面的、可靠的、高效的工资管理系统,满足企业对员工薪资、绩效评估、补贴待遇等方面的需求;2.功能要求:包括员工信息管理、薪资发放管理、绩效考核管理、社保代缴管理等功能模块;3.数据安全:系统要求具备良好的数据安全性,包括权限控制、数据备份、数据加密等功能;4.性能要求:系统能够高效地处理大量数据,保证快速响应和高并发访问;5.用户友好:系统界面简洁明了,操作简单易懂,用户能够快速上手使用。
三、系统架构1.硬件层面:系统需部署在稳定可靠的服务器上,保证系统的稳定性和安全性;2.软件层面:系统采用分层架构,包括前端展示层、业务逻辑层、数据访问层等;3.数据库层面:系统使用关系数据库管理系统,对薪资、员工信息等数据进行存储和管理;4.网络层面:系统需保证局域网内各终端能够正常访问系统,并对外提供安全的网络访问接口。
四、系统模块设计1.员工信息管理模块:包括员工基本信息、家庭情况、工作经历等的录入、修改、查询和删除;2.薪资发放管理模块:包括工资和奖金的计算、发放,扣款和个税的计算等功能;3.绩效考核管理模块:包括绩效考核指标的设定、考核标准的制定,绩效评估的录入和统计等功能;4.社保代缴管理模块:包括社保代缴费用的计算、缴费记录的管理等功能;5.报表统计模块:包括工资报表、绩效报表、社保费用报表等报表的生成和导出功能。
五、系统部署1.系统安装:根据硬件要求,安装操作系统和数据库管理系统;2.系统配置:进行系统参数设置,配置数据库连接和访问权限;3.系统部署:将系统部署在服务器上,确保系统能够正常运行;4.数据录入:按照实际情况导入员工信息和历史数据;5.系统测试:进行系统功能测试、性能测试和安全测试,确保系统的稳定性和安全性。
工资管理系统的数据库课程设计

课程设计报告书年 月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. 系统能够进行工资计算,根据员工的工作时长、工作内容及考勤情况自动计算;3. 系统能够进行工资支付,完成自动转账、现金支取等不同支付方法的支持;4. 系统能够进行工资统计,方便管理人员对于工资总额和人数的了解和掌握;5. 系统能够进行工资核算,能够自动统计个税、公积金、社保等各种个人所得税的变化和涨幅;6. 系统能够进行工资查询和打印,方便员工对于自己工资情况的了解和查询。
三、系统设计在上述需求分析的基础之上,设计的职工工资管理系统分为系统管理和员工界面两个部分。
1. 系统管理部分系统管理部分主要包括权限设置、薪资管理、考勤管理、人员管理以及报表管理等子系统。
(1)权限设置权限设置是系统管理部分的基础。
分为管理员、办公室、财务三个角色。
管理员具有最高权限,能够查看系统所有数据以及进行人员、薪资、权限和考勤的管理。
办公室只能查看薪资、人员等信息,不能进行数据的编辑。
而财务只能进行薪资支付和统计的管理。
(2)薪资管理薪资管理是本系统最主要的功能之一,它能够完整地记录每个人的工资标准,结算方式,考勤信息等。
管理员可以针对每个人不同的情况进行薪资的调整。
并且每个员工只能看到自己的个人薪资信息。
同时,薪资管理中还加入了自动统计、二次恢复等功能,能够快速恢复删除薪资记录等。
工资管理系统

工资管理系统
一、建立工资类别方案
注意:单类别才能用于核算工资数据,而汇总类别主要用于汇总多个单类别的工资数据,且只能查看,不能进行数据的计算工作。
二、系统维护
系统参数:要求结账与总账期间同步。
三、设置
(1)导入或新增部门资料:
(2)导入并修改或新增职员资料:
(3)增加银行资料:
(4)工资项目设置:
(5)工资计算公式设置:
(6)所得税设置:
四、工资业务
(1)设置工资数据输入过滤器
(2)工资数据录入:
(3)利用“工资计算”功能计算工资:
(4)所得税计算:
引入本期所得税:
(5)工资费用分配:
(6)福利费用分配:
五、变动
六、查看各种工资报表
七、期末结账
现金管理系统
一、初始数据录入
二、现金处理
1、登记现金日记账
2、库存现金对账
三、银行存款处理
1、登记银行存款日记账
2、录入银行对账单
3、进行建行账户的银行对账
4、生成银行存款余额调节表
四、生成现金流量表。
员工工资管理系统

员工工资管理系统引言随着企业规模的不断扩大和业务范围的增加,员工工资管理问题成为公司不可回避的问题。
在过去的时间里,很多公司采用手工管理的方式,但是这种方式效率低、数据维护困难,还容易出现人为错误。
而如今,随着信息技术的快速发展和大数据的涌现,更多的企业选择对员工的工资进行信息化管理。
员工工资管理系统为企业提供了高效、准确的工资管理方案,具有非常明显的优势,越来越受到企业的欢迎和青睐。
一、员工工资管理系统的概述员工工资管理系统是一种基于计算机网络的信息化管理系统,它主要用于企业管理和维护员工档案、计算员工工资、发放工资和相关福利等工作。
它能有效地降低企业员工工资管理成本和提高管理效率,而且还可以减少人工错误和管理难度,提高管理的精度和准确性。
二、员工工资管理系统的功能1.人事档案管理员工工资管理系统能够对员工的个人信息进行全面、系统的管理,包括员工个人信息、部门归属、工资级别、工作经验和持证情况等。
2.工资计算管理员工工资管理系统能够为企业提供快速、准确的工资计算功能,包括了计算基本工资、绩效工资、加班工资、奖励和惩罚等内容,同时还能进行个税计算和社会保险的缴纳等工作。
3.工资发放管理员工工资管理系统能够提供方便、快捷的工资发放服务,比如实现企业银行工资发放、银行代扣代缴个税和社保等功能,大大降低了企业的管理工作量和工资发放难度。
4.员工福利管理员工工资管理系统能够对员工的相关福利进行跟踪、记录和管理,包括工龄补贴、节日福利、年终奖金和其他相关福利等内容。
5.统计报表管理员工工资管理系统能够生成各类工资统计报表,帮助管理者全面了解员工工资情况、福利状况和企业经济状况等,以便更好地进行决策和调整。
三、员工工资管理系统的优势1.提高工资管理准确性传统的人工方式进行工资管理,容易出现人为漏洞和错误,而员工工资管理系统可以规范化工作流程,避免出现人为疏漏,提高工资管理的准确性。
2.降低工资管理成本由于员工工资管理系统能够自动化进行部分管理工作,比如工资计算、福利管理等等,减少了人员的工作量和管理成本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C++程序设计》课程设计任务书适用专业:生物工程设计题目:职工工资管理系统一、已知技术参数或设计前提1、学校教职工共一千多人。
2、存储每位教职工的个人信息:基本工资、津贴、房帖、交通补贴、房租、储蓄、交通费、会费信息。
3、该系统可对职工的信息进行查询、添加、修改、删除和储存。
并且该系统可对职工的个人所得税、应发工资、应扣工资、实际工资做出自动计算。
二、设计内容及要求1、实现对职工信息如基本工资、津贴、房帖、交通补贴、房租、储蓄、交通费、会费信息的录入,将数据文件导入工资信息,将工资信息导入磁盘文件。
2、可利用职工的编号对相应职工的信息进行查询、浏览职工的相应信息。
3、可对系统进行维护,包括对在职职工的信息的查询、修改;对非在职职工的信息的删除。
4、要通过文件记录职工工资的信息。
三、课程设计工作计划1、确定题目,成立设计小组,做用户需求分析(10月11日)2、查阅资料,进行问题分析,制定方案,确定成员分工(10月13日-10月20日)3、根据方案编写程序并进行调试(10月21日-11月05日)4、撰写设计说明书,完成设计(11月06日-11月10日)5、提交设计内容,答辩(11月10日-11月25日)四、相关教材及参考书目1、《C++程序设计》作者:刘娜娜出版社:北京航天航空大学出版社。
20082、《C++程序设计实用教程【M】》作者:苏仕华出版社:清华大学出版社。
2006目录一、需求分析 (4)二、系统总体设计 (4)三、模块功能实现 (5)四、系统的软硬件环境 (8)五、系统的使用说明 (9)六、结束语............................................ 错误!未定义书签。
附录A:程序源代码................................ 错误!未定义书签。
附录B:程序调试记录 . (9)教师评语 (45)一、需求分析从远古的货币发放到现代的工资发放,公司越来越需要对员工工资进行管理发放和合理存根。
而此套程序就是为方便公司对员工工资管理而设计,其程序操作起来简单、易懂,内容包含有:月份、工人编号、姓名、基本工资、津贴、房帖、交通补贴、房租、储蓄、交通费、会费,而程序会自动计算出员工的个人所得税、应发数、应扣数、实发数等。
其操作功能有:浏览数据、增加数据、修改数据、查询数据、删除数据、存储文件、退出等。
相信此程序会使公司对员工工资的管理和发放带来很大的帮助。
二、系统总体设计冯文宇张丽苹负责模块:浏览数据、增加数据王鑫负责模块:修改数据、储存数据金璐负责模块:修改数据、删除数据三、模块功能实现程序由7个功能模块组成,功能模块图如下添加数据:将职工的发放月份、编号、姓名、基本工资、津贴、房帖、交通补贴、房租、储蓄、交通费、会费输入。
浏览数据:输入职工编号后不但能显示出职工的月份、编号、姓名、基本工资、津贴、房帖、交通补贴、房租、储蓄、交通费、会费,系统还会自动算出其个人所得税、应发工资、应扣工资和实际工资。
修改数据:输入职工编号后可通过代码对基本工资、津贴、房帖、交通补贴、房租、储蓄、交通费、会费进行修改。
增加数据:本功能可容纳大量的数据,对任何大中小企业均适用,仍通过上述信息进行输入储存。
删除数据:输入职工编号后就会将职工的全部资料删除,快捷方便。
储存文件:将输入的职工信息从数据文件中导入当月工资信息,再将当月工资信息导出到磁盘文件.dat中。
退出系统:退出工作界面四、系统的软硬件环境1、软件环境系统可以运行在Windows XP/200X等操作系统上。
系统编辑编译环境为Visual C++ 6.0。
2.硬件环境本系统在计算中心实验室的计算机上编辑测试。
测试用计算机的主要配置是CPU 2.4GHz,256M内存,80G硬盘。
本系统可以运行在使用Windows操作系统的品牌机或兼容机上,具有80486,50MHz以上的处理器都可以运行本管理系统。
五、系统的使用说明(1)主界面画面(2)添加职工信息的方法(如图示所示)请选择(输入相应的数字):→输入1→当输入的职工编号为-1时表示输入结束。
请输入月份编号姓名基本工资津贴房帖交通补贴房租储蓄交通费会费→输入月份编号姓名基本工资津贴房帖交通补贴房租储蓄交通费会费→当录入结束时编号输入-1.(3)删除职工信息的方法(如图所示)请选择(输入相应的数字)→输入2→当输入的编号为-1时表示输入结束。
请输入要删除的职工的编号→输入要删除的职工的编号→成功删除编号为x的记录→输入结束输入-1.(4)修改职工的工资信息的方法(如图所示)请选择(输入相应的数字)→输入3→当输入职工编号为-1时表示结束修改。
请输入所需修改职工的编号→输入职工编号→请选择(输入相应的数字)→输入相应数字→请输入修改后的值→输入修改后的值→输入-1结束修改。
(1、基本工资2、津贴3、房帖4、交通补贴5、房租6、储蓄7、交通费8、会费0、退出修改系统)(5)按职工编号查找记录的方法。
请选择(输入相应的数字)→输入4→当输入的编号为-1时表示结束输入。
请输入要查找的职工的编号→输入相应的职工的编号→显示相应编号的职工的信息→结束查找输入-1.(6)列出所有记录的方法。
请选择(输入相应的数字)→输入5→共有记录x,显示所有记录。
(7)请选择(输入相应的数字)→输入6→当月工资信息将自动导入(8)将当月工资信息导出的磁盘文件的方法。
请选择(输入相应的数字)→输入7→成功将工资信息存入文件。
(9)安全退出系统的方法。
请选择(输入相应的数字)→输入0→确定要退出程序吗?[Y/N]→输入Y→安全退出系统。
六、结束语:调试:按照界面提示输入便可得到以上截图的效果。
总结:该程序完成了题目要求,总体来说,1、主要优点有:1)界面美观。
2)具有清屏功能,使界面保持整洁、清晰。
2、主要缺点有:1)程序没有设置成多文件形式,可修改性差。
2)程序没有缩进,可读性差。
3)没有使用动态内存分配,内存浪费情况严重。
3、此次课程设计的心得体会此次C++课程设计我们做的题目是职工工资管理系统,刚开始做的时候,以为做这个会像顺水推舟一般容易,结果发现我们的C++知识竟是如此的匮乏,没给人掌握的C++知识对编程还远远不够,而就算是已经掌握的理论知识用在实践上还是那样的困难,编程错误百出,等到没有错误了,运行时还是会发现很多功能无法实现。
本次课程设计让我深刻体会到了理论与实践的差距,正所谓知易行难,理论运用到实际还需要我们不断的练习,努力编程。
而我们认为本次课程设计最大的收获就是能体会如何把C++理论知识运用到实际当中去以及在没有老师的帮助下如何自学,如何自己通过各种方式(图书、网络等)来独立完成任务,同时它还培养了我们独立思考的能力及严密的逻辑思维能力。
可以说这次课程设计让我们受益匪浅。
附录1、程序源代码# include <iostream># include <fstream># include <string># include <iomanip># include <stdlib.h>using namespace std;struct worker_inf{int month;int code;string name;float get[4];float pay[4];float tax;float theory_num;float reduce_num;float practice_num;worker_inf *next;};///////////////////////////////////////////////////// ////////////class worker{private:worker_inf *head;void print(worker_inf *);worker_inf *find(int);public:worker(){head=NULL;}worker_inf *get_head(){return head;}int listcount();void additem(int month,int code,string name,float get[4],float pay[4]);void removeitem(int);int menu();void changemonth();void changeitem(int);void list();void search(int);float tax_num();float theorynumber();float reducenumber();float practicenumber();};///////////////////////////////////////////////////// /////////////int worker::listcount(){if(!head)return 0;worker_inf *p=head;while(p){n++;p=p->next;}return n;}///////////////////////////////////////////////////// /////////////void worker::additem(int month,int code,string name,float get[4],float pay[4]){if(!head){head=new worker_inf;for(int i=0;i<4;i++){head->get[i]=get[i];head->pay[i]=pay[i];}head->code=code;head->month=month;head->name=name;head->next=NULL;}worker_inf *t=head;while(t && t->code!=code)t=t->next;if(t){cout<<"操作失败:编号为"<<code<<"的记录已经存在!"<<endl; return;}worker_inf *p=head;while(p->next)p=p->next;worker_inf *p1=new worker_inf;p1->code=code;for(int i=0;i<4;i++){p1->get[i]=get[i];p1->pay[i]=pay[i];}p1->code=code;p1->month=month;p1->name=name;p1->next=NULL;p->next=p1;return;}///////////////////////////////////////////////////// ///////////////void worker::removeitem(int code){worker_inf *t=find(code);if(!t)return;worker_inf *p=head;if(head==t){head=head->next;delete p;cout<<"成功删除编号为"<<code<<"的记录!"<<endl<<endl; return;}while(p->next!=t)p=p->next;worker_inf *p1=p->next;p->next=p1->next;delete p1;cout<<"成功删除编号为"<<code<<"的记录!"<<endl<<endl; return;}///////////////////////////////////////////////////// ///////////int worker::menu(){int select=-1;cout<<"\t\t\t\t\t\t**************修改菜单**************"<<endl<<endl;cout<<"1.基本工资"<<endl<<endl;cout<<"2.津贴"<<endl<<endl;cout<<"3.房帖"<<endl<<endl;cout<<"4.交通补贴"<<endl<<endl;cout<<"5.房租"<<endl<<endl;cout<<"6.储蓄"<<endl<<endl;cout<<"7.交通费"<<endl<<endl;cout<<"8.会费"<<endl<<endl;cout<<"0.退出修改系统"<<endl<<endl;cout<<"[请选择(输入相应数字)]:";cin>>select;if(select<0||select>9){cout<<"对不起您输入错误!请重新输入【0-9】:"<<endl;cin>>select;}return select;}///////////////////////////////////////////////////// ////////////int menu();void worker::changeitem(int code){worker_inf *p=find(code);if(!p){cout<<"不存在职工编号为"<<code<<"的职工工资信息"<<endl;return;}int select;while(1){float m;select=menu();if(select==0){system("cls");break;}cout<<"请输入修改后的值";cin>>m;if(select<=4){n=select-1;p->get[n]=m;}else{n=select-5;p->pay[n]=m;}tax_num();theorynumber();reducenumber();practicenumber();cout<<"修改成功"<<endl;}}///////////////////////////////////////////////////// ///////////////void worker::changemonth(){worker_inf *p=head;while(p){if(p->month==12)p->month=1;p->month++;p=p->next;}}///////////////////////////////////////////////////// /////////////////void worker::print(worker_inf *p){cout.precision(0);cout<<p->month<<" ";cout<<p->code<<" ";cout<<p->name<<"\t";for(int i=0;i<4;i++){cout<<setiosflags(ios::fixed)<<p->get[i]<<"\t";}for(int j=0;j<4;j++){cout<<p->pay[j]<<"\t";}cout<<p->tax<<"\t";cout<<p->theory_num<<"\t";cout<<p->reduce_num<<"\t";cout<<p->practice_num<<endl<<endl;return;}///////////////////////////////////////////////////// //////////////////void worker::list(){if(listcount==0){cout<<"错误:当前的列表为空!"<<endl;return;}worker_inf *p=head;cout<<"共有记录:"<<listcount()<<endl;cout<<"月份\t编号\t姓名\t基本工资\t津贴\t房帖\t交通补贴\t房租\t储蓄\t交通费\t会费\t个人所得税\t应发工资\t应扣工资\t实际工资"<<endl;while(p){print(p);p=p->next;}cout<<endl;return;}///////////////////////////////////////////////////// ////////////////////void worker::search(int code){cout<<"searching....."<<endl;worker_inf *p=find(code);if(p){cout<<"月份\t编号\t姓名\t基本工资\t津贴\t房帖\t交通补贴\t房租\t储蓄\t交通费\t会费\t个人所得税\t应发工资\t应扣工资\t实际工资"<<endl;print(p);}cout<<endl;}///////////////////////////////////////////////////// /////////////////////worker_inf *worker::find(int code){if(listcount==0){cout<<"错误:当前列表为空!"<<endl;return NULL;}worker_inf *p=head;while(p){if(p->code==code)break;p=p->next;}if(!p){cout<<"错误:找不到该记录!\n";return NULL;}return p;}///////////////////////////////////////////////////// /////////////////////float worker::theorynumber(){int i;if(listcount()==0){cout<<"错误:当前的列表为空!"<<endl;return -1;}float sum;worker_inf *p=head;while(p){sum=0;for(i=0;i<4;i++)sum+=p->get[i];p->theory_num=sum;p=p->next;}return 0;}///////////////////////////////////////////////////// /////////////float worker::tax_num(){if(listcount==0){cout<<"错误:当前的列表为空!"<<endl;return -1;}worker_inf *p=head;while(p){float s;s=p->theory_num;if(s<=800)p->theory_num=0;else if(s<=2000) p->theory_num=(s-800)*0.05;else if(s<=5000)p->theory_num=(s-2000)*0.1+60;else p->theory_num=(s-5000)*0.2+360;p=p->next;}return 0;}///////////////////////////////////////////////////// //////////////////float worker::reducenumber(){int i;if(listcount==0){cout<<"错误:当前的列表为空!"<<endl;}float sum;worker_inf *p=head;while(p){sum=0;for(i=0;i<4;i++)sum+=p->pay[i];p->reduce_num=p->tax+sum;p=p->next;}return 0;}///////////////////////////////////////////////////// ////////////////////float worker::practicenumber(){if(listcount()==0){cout<<"错误:当前的列表为空!"<<endl;return -1;}worker_inf *p=head;while(p){float a,b;a=p->theory_num;b=p->reduce_num;p->practice_num=a-b;p=p->next;}return 0;}///////////////////////////////////////////////////// ///////////////////////worker worker; //定义全局变量int menu(){int select=-1;cout<<"*****************主菜单***********************"<<endl<<endl; cout<<"1.添加职工信息;"<<endl<<endl;cout<<"2.删除职工信息;"<<endl<<endl;cout<<"3.修改职工的工资信息;"<<endl<<endl;cout<<"4.按职工编号查找记录;"<<endl<<endl;cout<<"5.列出所有记录;"<<endl<<endl;cout<<"6.从数据文件导入当月工资信息;"<<endl<<endl;cout<<"7.将当月工资信息导出到磁盘文件;"<<endl<<endl;cout<<"0.安全退出系统;"<<endl<<endl;cout<<"[请选择(输入相应的数字)]:";cin>>select;return select;}///////////////////////////////////////////////////// ////////////////////////char exit(){char s;cout<<"确定要退出程序吗?[Y/N]:";cin>>s;return s;}///////////////////////////////////////////////////// /////////////////////////void input(int *month,int*code,string *name,float get[4],float pay[4]){cout<<"请输入月份编号姓名基本工资津贴房帖交通补贴房租储蓄交通费会费:"<<endl;cin>>*month;cin>>*code;if(*code==-1)return;cin>>*name>>get[0]>>get[1]>>get[2]>>get[3]>>pay[0]>>pay[1]>>pa y[2]>>pay[3];return;}///////////////////////////////////////////////////// //////////////////////////void addnew(){int month=0,code=0;float get[4]={0},pay[4]={0};string name="";cout<<endl<<"当输入的职工编号为-1时表示输入结束。