青岛理工大学工资管理程序设计报告

合集下载

工资管理_实验报告

工资管理_实验报告

一、实验目的1. 熟悉工资管理系统的基本功能与设计方法。

2. 掌握数据库设计、系统界面设计、功能模块实现等技能。

3. 培养团队合作与沟通能力,提高实际操作能力。

二、实验内容1. 系统需求分析2. 数据库设计3. 系统界面设计4. 功能模块实现5. 系统测试与优化三、实验步骤1. 系统需求分析通过对企业工资管理流程的了解,分析出工资管理系统需要实现以下功能:(1)员工信息管理:包括员工基本信息、工资信息、福利信息等。

(2)工资计算:根据员工的基本工资、奖金、加班费等计算实际工资。

(3)工资发放:根据计算结果,发放员工工资。

(4)工资统计:对工资数据进行统计与分析,生成工资报表。

(5)权限管理:设置不同角色的权限,保证系统安全。

2. 数据库设计根据需求分析,设计数据库表结构如下:(1)员工信息表(employee)- 员工编号(id);- 姓名(name);- 性别(gender);- 入职日期(entry_date);- 岗位(position);- 部门(department);- 基本工资(basic_salary);- 奖金(bonus);- 加班费(overtime_pay);- 福利(welfare)。

(2)工资发放表(wage_distribution)- 发放日期(distribution_date);- 员工编号(employee_id);- 实际工资(actual_salary);- 应发工资(should_be_paid);- 实发工资(actual_paid)。

3. 系统界面设计系统界面采用简洁明了的设计风格,分为以下模块:(1)登录界面:用户输入用户名和密码,验证后进入系统。

(2)主界面:显示员工信息、工资计算、工资发放、工资统计、权限管理等功能模块。

(3)员工信息管理界面:显示员工基本信息,可进行新增、修改、删除等操作。

(4)工资计算界面:根据员工信息,计算实际工资。

(5)工资发放界面:根据计算结果,发放员工工资。

工资管理系统设计报告(00002)

工资管理系统设计报告(00002)

目录一、工程名称:工资经管系统设计2二、实训目的:2三、应掌握的知识点2四、应训练的能力点2五、数据库设计内容3(一)需求分析 (3)(二)数据库概念设计 (3)(三)数据库逻辑设计 (5)(四)数据库与数据表设计——物理结构设计 (5)1.数据库与数据表设计 (5)2.数据完整性设计 (6)六、数据库操作实施与结果——数据库对象的设计7(一)建数据库——工资经管库 (7)(二)建表——员工信息表、部门信息表、工资信息表 (7)(三)视图 (9)(四)存储过程 (9)(五)触发器 (10)(六)索引 (11)(七)运行和维护 (12)1.关系图的建立 (12)2. 简单查询 (12)3. 复杂查询 (15)4.数据库的用户与权限经管 (17)5.数据库的备份 (20)6.数据的导入与导出 (21)七、归纳总结22八、评语 (23)一、工程名称:工资经管系统设计二、实训目的:●了解数据库系统的理论●掌握数据库设计的基本方法,熟悉数据库设计的步骤;●通过设计数据库系统应用课题,进一步熟悉数据库经管系统的操作技术,提高动手能力,提高分析问题和解决问题的能力●学习基本数据库编程方法●快速跟踪数据库系统软件的新技术及市场应用动态。

三、应掌握的知识点●数据库基本原理●关系数据库的设计方法、设计思路●初步掌握一种关系数据库语言四、应训练的能力点●SQL Server 2000的操作与使用●数据库的概念设计与逻辑设计●数据库的建立与经管、数据表的建立与操作●SQL查询语言的使用与编程●设计和开发一个数据库应用系统的数据库设计部分五、数据库设计内容(一)需求分析本系统要求实现以下主要功能:1.数据录入功能主要任务是对各种工资信息进行日常的经管,如工资信息的输入、查询、修改、增加、删除,迅速准确地完成各种工资信息的统计计算和汇总,快速打印出报表。

2.数据查询功能系统需要提供以下查询功能:1)员工考勤情况2)员工工种情况,反映员工的工种、等级,岗位工资等信息3)员工津贴信息情况,反映员工的加班时间,加班类别、加班天数、岗位补贴情况等4)员工基本信息情况5)员工月工资情况:年,月,职工号,姓名,部门名,基本工资,病假扣款,事假扣款,3.应发工资,实发工资3.数据统计功能1)统计员工年终奖金2)统计每部门月工资情况(二)数据库概念设计分析前面的系统功能要求,需要一个表来存储和经管员工信息,使系统能够接受员工原始的各项数据,以实现数据录入、查询或统计员工信息等功能。

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

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

课程设计报告工资管理信息系统数据库设计课程《数据库原理及应用》班级 06信息管理与信息系统铜陵学院数学与计算机科学系毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交地毕业设计(论文),是我个人在指导教师地指导下进行地研究工作及取得地成果.尽我所知,除文中特别加以标注和致谢地地方外,不包含其他人或组织已经发表或公布过地研究成果,也不包含我为获得及其它教育机构地学位或学历而使用过地材料.对本研究提供过帮助和做出过贡献地个人或集体,均已在文中作了明确地说明并表示了谢意.作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)地规定,即:按照学校要求提交毕业设计(论文)地印刷本和电子版本;学校有权保存毕业设计(论文)地印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目地前提下,学校可以公布论文地部分或全部内容.作者签名:日期:学位论文原创性声明本人郑重声明:所呈交地论文是本人在导师地指导下独立进行研究所取得地研究成果.除了文中特别加以标注引用地内容外,本论文不包含任何其他个人或集体已经发表或撰写地成果作品.对本文地研究做出重要贡献地个人和集体,均已在文中以明确方式标明.本人完全意识到本声明地法律后果由本人承担.作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文地规定,同意学校保留并向国家有关部门或机构送交论文地复印件和电子版,允许论文被查阅和借阅.本人授权大学可以将本学位论文地全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文.涉密论文按学校规定处理.作者签名:日期:年月日导师签名:日期:年月日目录1、开发背景 (4)2、功能描述 (4)3、业务流程分析 (5)4、数据流程分析 (5)4.1、数据流程图 (5)4.2、数据字典 (6)5、概念模型设计 (7)6. 逻辑模型设计和优化 (8)7. 物理设计和实施 (9)8、课程设计心得体会 (12)9、程序源代码和部分运行界面. ....................................................................................111、开发背景90年代中期,由于Internet 地迅速普及,使Intranet成为Internet技术在企业管理信息系统中地应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体地信息技术综合体,它打破了时间和地域地界限,使信息交流变得快捷、准确,为建立现代企业管理信息系统提供了充足地条件.企业信息管理系统在此基础上延伸、扩展,使之上下、内外全面贯通.引入Internet后,形成了新型地浏览器/服务器(Browser/Server)结构,而传统地客户机/服务器(Client/Server)结构在这方面就远不及B/S结构.随着我国国民经济建设地蓬勃发展和具有中国特色地社会主义市场经济体制地迅速完善,各个行业都在积极使用现代化地手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻地挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高地要求。企业地工资管理系统是公司管理地一个重要内容,建设一个科学高效地信息管理系统是解决这一问题地必由之路。企业内部财务管理是该企业运用现代化技术创造更多更高地经济效益地主要因素之一。工资管理作为企业内部地一种财务管理更是如此,由于企业职工人数较多,每一位职工地具体实际情况也不尽相同,如果能够实现工资管理系统地自动化,无疑将给企业管理部门带来很大地方便。资金是企业生存地主要元素,资金地流动影响到企业地整体运作,企业员工地工资是企业资金管理地一个重要地组成部分,因为企业每个月都要涉及发放企业员工工资地问题,而工资管理是一项琐碎、复杂而又十分细致地工作,工资计算、发放、核算地工作量很大,一般不允许出错。企业员工地人数越多,工资地统计工作就越多,工资地发放困难就越大。最初地工资统计和发放都是采用人工方式处理,工作量大地时候,出现错误地几率也随之升高,既耗费了大量地人力,又没有得到有效地结果。工资管理系统就是使用计算机代替大量地人工统计和计算,完成众多工资信息地处理,同时使用计算机还可以安全地、完整地保存大量地工资记录,为企业地管理部门带来了很大地方便。.2、功能描述(描述该系统所需要完成地功能)经过调研及分析,工资管理信息系统主要完成以下功能:(1员工信息维护:主要完成对员工个人信息地添加、修改和删除等操作,只有系统中存在信息地员工才有资格进行个人信息地查询活动.(2)员工工资信息维护:主要是完成对员工工资信息地添加、修改和删除等操作,只有系统中存在信息地员工才有资格进行个人工资信息地查询活动.(3)个人工资信息查询:主要让每个员工能及时了解自己地工资构成和工资地结算情况,以及自己个人工资信息是否有误,便于及时通知管理员更改;(4)个人信息查询:让每位员工能及时了解自己地个人信息,及时知道自己信息是否有误,便于及时通知管理员更改;工资管理功能模块图3、业务流程分析1、工资管理系统数据流程图图1 顶层数据流图2、从员工角度考虑地业务流程图:图2 业务流程图3.2.1员工查询数据流图:图3借阅数据流图3.2.2 查询数据流图:(查询员工个人信息,查询工资信息)图4查询数据流图4数据流程分析4.1、数据流程图通过需求分析,得出图书馆管理信息系统地借书/还书处理数据流程如图1所示(其他处理地数据流程图请读者自行分析).图5 个人信息查询/个人工资查询处理数据流程图4.2、数据字典(根据编号对数据流程图中地各元素如数据流、数据存储、外部实体和处理逻辑进行细节描述)(1)数据流地描述数据流编号: D001数据流名称:员工个人信息简述:员工所要查询个人信息地信息单数据流来源:员工数据流去向:员工信息判断数据流组成:员工ID+姓名+性别+职务等数据流量:1000/天高峰流量:3000/天数据流编号: D002数据流名称:员工信息无效提示简述:管理员发现非法员工时地提示信息数据流来源:读者信息判断数据流去向:员工数据流组成:员工ID+姓名等数据流量:100/天高峰流量:500/天......(2)处理逻辑地描述处理逻辑编号:P001处理逻辑名称:员工信息判断简述:判断员工信息地合法性输入地数据流:员工个人信息处理描述:根据员工提供地个人信息,验证员工信息,验证通过则继续下移查询员工信息,验证不通过则返回给员工指明为非法读者.输出地数据流: D001员工个人信息、D002无效提示信息处理频率: 10次/天处理逻辑编号:P002处理逻辑名称:查询员工信息简述:查询员工地个人信息输入地数据流:D003员工ID信息处理描述:根据员工提供地员工ID信息,到库中查找是否有该员工地信息,有则进行显示,如没有则返回员工无该员工信息.输出地数据流: D001员工个人信息+D004显示员工信息处理频率: 1000次/天......(3)数据存储地描述数据存储编号:F001数据存储名称:员工信息简述:员工地基本信息数据存储组成:员工ID+姓名+性别+籍贯+学历+出生年月+职位+部门+工龄关键字:员工ID相关联地处理:P001,P002数据存储编号:F002数据存储名称:员工工资信息简述:员工工资地基本信息数据存储组成:员工ID+姓名+职务+基本工资+奖金+津贴+补贴+个人所得税+应领工资+是否发放关键字:员工ID相关联地处理:P003,P004......(4)外部实体地描述外部实体编号:S001外部实体名称:员工简述:查询个人信息和工资信息地人输入地数据流:D001,D002,D005,D006输出地数据流:D001,D0055、概念模型设计(用PowerDesigner画出该系统地CDM图或用visio画出E-R图,建议画CDM图)根据系统数据流图和数据字典,得出系统地总体概念模型(E-R)如图2所示.图6系统地总体概念模型6. 逻辑模型设计和优化(将CDM图转换成PDM图,并对PDM图中每个关系进行调整优化,以至少达到3NF标准或者根据转换规则将E-R图转换为关系模式并进行优化并至少达到3NF标准)根据系统地总体概念设计模型、E-R图向关系模式地转化规则和数据库地范式理论,得到系统优化后地逻辑模型,如表1~表5所示.表1员工信息表(Staff)表2 员工工资信息表(Staffwage)表3 普通用户登录账号表(表47. 物理设计和实施(根据PDM生成SQL脚本以创建图书管理系统地数据库模式或根据第6部分优化后地逻辑模式使用create table语句写出各关系模式地创建语句)得到系统逻辑模型后,就该进行数据库地物理设计和实施数据库了,物理设计主要是要确定数据库地存储路径、存储结构以及如何建立索引等,可以采用系统地默认设置.数据库实施主要包括在具体地DBMS中创建数据库和表地过程,本设计所选用地DBMS为SQL SERVER2000,有关创建数据库和关系表地SQL语句如下所示:/*==============================================================*//* DataBase: 工资管理系统, 创建数据库,数据库名称为工资管理系统 *//*==============================================================*/ create database 工资管理系统use 工资管理系统go/*==============================================================*//* Table: Users, 普通员工登录账号信息表 *//*==============================================================*/ create table Users (UserName char(10) n ot null, /*用户名*/UserPwd char(20) n ull, /*类别名称*/constraint PK_Users primary key (UserName) /*主键约束*/)Go/*==============================================================*//* Table: SUsers, 管理员登录账号信息表 *//*==============================================================*/ create table SUsers (管理员ID char(10) not null, /*管理员账号*/姓名 char(20) not null, /*管理员姓名*/性别 char(2) null, /*管理员性别*/密码 char(20) not null, /*管理员密码*/电话 char(20) null, /*管理员电话*/地址 char(40) not null, /*管理员地址*/constraint PK_SUsers primary key (管理员ID) /*主键约束*/)Go/*==============================================================*//* Table: Staff, 员工信息表 *//*==============================================================*/ create table Staff (员工Id char(10) n ot null, /*员工ID*/姓名char(20) n ull, /*姓名*/性别char(2) null, /*性别*/籍贯 char(30) null, /*籍贯*/出生年月 datetime null, /*出生年月*/学历char(12) n ull, /*学历*/部门char(20) n ull, /*部门*/职务 char(20) null, /*职务*/工龄char(2) null, /*工龄*/constraint PK_Staff primary key (员工Id) /*主键约束*/)go/*==============================================================*//* Table: Staffwage, 员工工资信息表 *//*==============================================================*/ create table Staffwage (员工Id char(20) n ot null, /*读者ID*/姓名char(10) n ull, /*姓名*/职务char(20) n ull, /*职务*/基本工资 char(20) null, /*基本工资*/奖金 char(20) null, /*奖金*/津贴char(20) n ull, /*津贴*/补贴char(20) n ull, /*补贴*/个人所得税 char(20) null, /*个人所得税*/应领工资char(20) n ull, /*应领工资*/是否发放char(2) null, /*是否发放*/constraint PK_Staffwage primary key (员工Id) /*主键约束*/)go8、课程设计心得体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力地重要环节,是对学生实际工作能力地具体训练和考察过程.随着科学技术发展地日新日异,C#作为一门程序语言已经成为当今计算机应用中一门空前活跃地语言,因此作为二十一世纪地大学来说掌握C#语言地应用是十分重要地.通过这次课程设计,我更加熟练地掌握了使用VC#进行数据库软件开发地方法,加深了对数据库课程知识地理解.由于时间仓促,软件还有很多不足之处,如:员工信息查询部分不够完善,员工信息和工资信息输入模块不支持信息地批量输入,软件代码交冗余、效率不高等等,都是对VC#操作不熟练,对相关功能缺乏认识造成地.在今后地学习中我会加强理论与实践地结合,通过不断地摸索来弥补自己在软件制作方面地差距.9、程序源代码和部分运行界面源代码:using System。

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

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

《工资管理系统》课程设计报告题目:工资管理系统专业:网络工程班级::指导教师:成绩:计算机学院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种权限,一种是管理员权限,可以做任何操作;一种是普通用户权限只可以查看自己的工资及基本信息,不能编辑,也不能查看其他用户信息。

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

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

工资管理系统数据库设计报告设计题目:工资管理系统学生姓名:系别:电气信息工程系专业:计算机科学与技术班级:学号:2010 年11月30 日目录目录 (2)一、引言 (3)二、需求分析 (4)三、系统功能分析 (5)四、E-R图……………………………………….错误!未定义书签。

五.数据流程图 (11)六.逻辑结构设计 (12)七.关系图 (18)一引言1.1编写目的1.掌握工资管理系统设计的一般方法,主要包括系统分析、系统设计的组织和实施。

2.关系型数据库管理系统的编程技术,并能独立完成一般小系统的程序设计、调试运行等工作。

3.培养把所学知识运用到具体对象,并能求出解决方案的能力。

1.2背景随着高等学校的快速发展,高校规模越来越大,教职工的数量也越来越多,高校工资管理更加的复杂,而工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手工管理所无法比拟的优点。

因为此数据库是为工资管理系统服务以及提供数据的,所以此数据的名称定为“工资”以便记忆,而建立数据库的工具为sql server 2005,使用为VS 2008一.需求分析1.数据需求工资管理信息系统需要完成功能主要有:(1)员工基本信息的录入,修改,删除,包括员工编号,员工姓名,所属部门,性别,出生年月,身份证号,民族,政治面貌,文化程度,专业,职务,进入单位时间,基本工资,银行账号,电话号码,联系电话住址,说明(2)工资标准设定功能。

具体包括职务工资,职称工资以及其它工资标准的设定。

(3)工资信息浏览。

包括员工编号,员工姓名,实发工资(4)员工工资表创建。

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

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

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

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

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

目录1:课程设计介绍 (1)2:开发环境 (1)3:设计目的 (1)4:设计要求: (1)5:流程图和模块图 (2)6:设计内容: (4)6.1.数据库与数据表的设计 (4)6.2.创建工资管理系统基本框架 (5)6.3.开发工资处理界面 (5)6.4.主对话框IDD_MY_FORM中控件的加入与布局 (6)6.5.为编辑框控件建立数据字段映射 (8)6.6.为命令按钮增加函数并编制过程代码 (9)7:调试 (12)8.程序清单 (16)9.心得体会 (23)参考文献 (23)1:课程设计介绍设计题目:工资管理系统设计介绍:利用所学知识,开发小型应用系统,使学生掌握运用可视化编程技术编写调试应用系统程序,训练学生独立开发应用系统、进行数据处理的综合能力,理解工程的概念和头文件的使用,熟悉封装、继承和多态性等这些面向对象编程的特点。

2:开发环境系统环境:操作系统需要Windows Xp以上版本;开发工具Microsoft Visual c++6.0;数据库使用Microsoft office Access2003;3:设计目的(1)、进一步巩固、加深学生所学专业课程《可视化程序设计》的基本理论知识,理论联系实际。

(2)、利用所学知识,开发小型应用系统,掌握运用VC++语言编写调试应用系统程序。

(3)、熟练掌握C++语言的基本语法,灵活运用各种数据类型。

(4)、进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。

4:设计要求:(1)、创建类并使用类对象完成相应的任务。

(2)、深入理解封装、继承和多态这的等面向对象的编程的特点。

(3)、设计的小型工资管理系统可以收集、处理、存储信息,拥有查阅、增添、删除、修改等功能。

5:流程图和模块图设计步骤:模块图:主模块:工资信息模块:统计模块:查阅模块:增删操作模块:6:设计内容:6.1.数据库与数据表的设计作为工资管理系统,它是数据库应用系统数据处理的典范,数据库应用系统开发的前提是首先开发数据库和数据库中的数据表。

工资管理毕业课程设计报告

工资管理毕业课程设计报告

(此文档为word格式,下载后您可任意编辑修改!)淮阴工学院面向对象程序设计课程设计报告选题名称:工资管理系统系(院):计算机工程系专业:计算机科学与技术班级:姓名:学号:指导教师:于长辉学年学期: 2008 ~ 2009 学年第 1 学期2008年12月31 日设计任务书指导教师(签章):年月日摘要:这次的课程设计是针对企业的工资管理业务进行计算机处理而开发的应用软件。

该系统由系统维护、输入、查询、修改、输出、统计等子模块组成,功能基本涵盖普通企业的工资管理业务范围。

企业应用本系统后,可以有效的提高工资管理水平。

本文从市场调查、需求分析、开发平台选择、系统模块建立、数据库设计、功能模块编程实现及软件测试等方面阐述了本应用系统的设计过程。

为便于说明,文中绘制了程序结构框图、数据流程图和部分界面图。

最后附有主要的源程序代码清单。

采用的开发工具是MicroSoft Visual C++ 6.0。

使用的技术有:数据库的访问;菜单控制。

系统能够提供对工资发放各明细项目的数据编辑,自动计算出工资发放各项合计数据及代扣项目数据;可自主设定条件从而达到对工资数据的多角度查询功能;方便导入、导出数据及输出报表;控制本系统的工资数据编辑、数据导入及用户增加、删除功能可以人为操作。

实现了对本单位工资发放系统的集中管理,保证了系统的安全性。

支持运行的环境:Microsoft WindowXP数据库的接口:Microsoft Access Driver关键词:工资管理;系统维护;数据汇总;管理系统;软件开发目录1 课题综述11.2预期目标 (1)1.3面对的问题 (1)1.4关键技术 (1)2 需求分析22.1功能需求 (2)2.2功能需求描述 (2)3流程图及概要设计44 详细设计44.1数据库设计 (4)4.2创建工资管理系统基本框架 (5)4.3开发工资处理界面 (9)5调试与操作说明185.1进入主运行界面 (18)5.2进入操作界面 (18)6 程序调试发现的问题22总结23致谢24 参考文献251 课题综述1.1 选题背景与意义随着社会的进步和计算机技术的发展,特别是微型计算机的大范围普及,现在应用在大中型企业的信息管理系统中,几乎都包括了工资管理模块。

工资管理系统程序设计实习报告

工资管理系统程序设计实习报告

工资管理系统程序设计实习报告目录略1.课程设计目的本程序旨在训练基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。

本程序涉及结构体、数组、指针、文件等方面的知识。

通过本程序的训练,使读者能对C语言的文件操作有一个更深刻的了解,掌握利用数组存储结构实现教师工资管理系统,为进一步开发出高质量信息管理系统打下坚实的基础。

(1)巩固和加强《C语言程序设计》课程的理论知识。

(2)掌握C语言的基本概念、语法、语义和数据类型的使用特点。

(3)掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。

(4)进一步理解和运用结构化程设计的思想和方法;学会利用流程图表示算法。

(5)掌握调试程序的基本方法及上机操作方法。

(6)掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。

课程设计的思想和方法还可以作为毕业论文时的参考资料。

(7)通过查阅手册和文献资料,培养自己独立分析问题和解决问题的能力。

为自己做毕业设计打好基础。

(8)初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。

通过激发学习兴趣,调动自己主动学习的积极性,并根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。

(9)培养自己的创新能力和创新思维。

可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。

(10)培养自己良好的程序设计风格。

在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。

自己在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。

2.课程设计题目教师工资管理系统每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。

注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。

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

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

目录第三章逻辑模型设计 (4)第四章系统详细设计 (5)5.1.3、主界面 (11)参考文献: (24)工资管理系统设计【摘要】对企业而言,人力资源是企业最宝贵的资源,也是企业的“生命线”。

而工资管理又是人力资源管理的重中之重。

实行电子化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作。

本文介绍毕业设计课题的选题背景和意义,相关的研究和开发的比较和综述,研究开发的过程,以及设计思路和实现细节的考虑,最后给出了作者在毕业设计过程的体会。

【关键字】管理信息系统,数据库,工资管理,实体关系图(E-R图),数据字典,数据流图。

绪论在各阶段的时间安排上,选题和调研用了一天左右的时间;熟悉开发环境,实验关键技术,查找类似的相关系统的资料用了一天时间;系统概要设计用了四天的时间;数据库结构设计用了三天时间;功能模块开发和功能模块测试用了五天的时间;最后,系统调试和系统试运行和修改用了约一天的时间。

完成全部工作大约用了两周的时间。

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

由于本软件主要是为作者工作的一家科技公司定制开发的。

该公司是一家刚刚成立的公司,总体人员比较少,有正式员工20人,人员结构比较简单,学历比较高,基本上都拥有大专以上学历,部门划分也很清晰,而且人员的流动性不高,所以该公司目前对工资管理的要求并不高。

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

1.2功能需求描述1、员工基本信息模块员工基本信息模块具有员工信息输入、员工增删和员工信息查询三个功能。

员工基本信息包括员工号、员工姓名、员工性别、所在部门、所在岗位、工龄和工资等级等信息。

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

工资管理信息系统课程设计报告
包括数据库设计、界面设计、 系统架构设计等,为后续的系
统实现提供详细的指导。
系统实现
根据系统设计,采用合适的编 程语言和开发工具进行系统编
码和实现。
系统测试
对实现的系统进行全面的测试 ,确保系统的稳定性和准确性

02
工资管理信息系统需求分析
功能需求
员工信息管理
系统需要提供对员工基本信息 的增删改查功能,包括员工姓 名、性别、年龄、职位、入职
01定量评估结果系使用后,工资核算效率提高了50%以上,准确性得到了显著提升。
02
定性评估结果
大部分用户对系统表示满意,认为系统提高了工资管理的便捷性和透明
度。
03
对比评估结果
相较于传统的手工管理方式,该系统在效率、准确性和便捷性等方面具
有明显优势。同时,系统还存在一些需要改进的地方,如进一步优化操
在此添加您的文本16字
开发语言:Python
在此添加您的文本16字
Python是一种解释型、高级编程语言,具有简洁明了的 语法和强大的功能库,适用于快速开发各种应用。
在此添加您的文本16字
数据库:MySQL
在此添加您的文本16字
MySQL是一款流行的关系型数据库管理系统,具有高性 能、稳定性和易用性,适用于存储和管理工资信息数据。
数据库设计
数据库选型
选用关系型数据库管理系统(如 MySQL、Oracle等),确保数据的 完整性和安全性。
数据表设计
根据系统需求,设计合理的数据表结 构,包括员工信息表、工资明细表、 部门信息表等。
数据关系设计
定义数据表之间的关系,如员工与部 门之间的从属关系、工资明细与员工 信息的关联关系等。

工资管理系统设计报告1

工资管理系统设计报告1

QPSK调制解调器的仿真设计一.设计要求(1).收集资料,全面分析课题,分解问题,形成总体设计思路;(2).深入分析各个小问题,列出大纲,编写各部分程序模块;(3).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;(4).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确且能正常运行;(5).完成课程设计报告,并进行答辩。

二.设计作用和目的通过工资管理程序设计,提高编程兴趣与编程水平,学会合理运用资料,巩固C语言中所学的知识,并且还通过实际操作来理解和消化我们所学的C语言知识,使我们的知识可以真正的用到我们的生活中去,帮助我们解决在生活中所遇到的问题,达到我们学习的目的,实现理论与实际相结合。

三.所用仪器设备和软件:计算机,Turbo C四.课题分析和系统设计(一)。

设计思路和分析首先设置系统进入模式并在文字的提醒下进行;紧接着进入系统操作,输入数据并调用子程序进行操作,输出数据;这是整个程序的关键。

最后输入零退出系统、结束程序。

先该如何设计系统主要操作函数;如:查找函数(运用for语句逐步对比查找,查找成功则输出职工详细信息然后返回系统界面)。

接着main函数应该怎样调用主要操作函数;最后分析怎样让系统的操作界面简洁明了、易懂,使操作方便。

将函数按功能分割,使其独立完成单一的操作且有明显的界面;然后main函数调用.(二)。

系统总体流程图:(三)相关函数分析1.主函数#include "stdio。

h”/*I/O函数*/# include "bios.h" /*ROM基本输入输出函数*/ #include ”dos.h”/*dos接口函数*/#include "conio.h”/*屏幕操作函数*/#include "stdlib。

h" /*其它说明*/#include "string.h”/*字符串函数*/#include ”mem。

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

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

工资管理系统课程设计报告1 引言 (1)2 系统调查与可行性研究 (2)2.1 初步调查 (2)2.2 可行性研究 (2)3 系统分析 (3)3.1 业务流程分析 (3)3.2 数据流程分析 (5)3.3 数据字典 (5)4 系统设计 (9)4.1 功能结构设计 (9)4.2 数据库设计 (18)4.3 代码设计 (19)4.4 输入输出设计 (23)4.5 系统配置设计 (26)参考文献 (26)附录 (26)1引言随着运算机技术的飞速进展,运算机在各种单位机构治理中应用的普及,治理信息系统的开发在强调治理、强调信息的现代社会中也显得越来越重要。

因此,利用运算机支持单位高效率地完成工资治理的日常事务,是适应现代各种单位机构制度要求、推动各种单位机构工资治理走向科学化、规范化的必要条件。

在当今的信息社会,随着信息的不断增长和企业对信息的要求,信息治理技术随之显现。

企业工资治理信息系统是一个现代化的企业在竞争中立于不败之地的必要部分,它能够为查询工资信息提供充足的信息和快捷的查询手段。

一直以来使用传统人工的方式治理文件档案,这种治理方式存在着许多缺点,如:效率低、保密性差,另外时刻一长,将产生大量的文件和数据,这关于查找、更新和爱护都带来了许多的困难,而且容易丢失。

自20世纪50年代将运算机引入数据处理以来,历经治理信息系统进展的各个时期。

一方面是信息技术应用的迅猛进展,另一方面,许多治理信息系统在耗费了大量的人力、物力、财力之后夭折了,或者全然没有实现原系统的开发目标,而把运算机用作了打字机。

这是长期以来困惑人们的一大问题。

现在人们日益深刻认识到,把信息技术应用与应用环境分离是办不到的。

治理信息系统全然不仅是技术系统,而且是社会系统。

工资业务是每一个企业都不能缺少的一项工作,使用运算机对企业工资信息进行治理,具有手工治理所无法比拟的优点。

例如:检索迅速、查找方便、可靠性高、储备量大、保密性好、寿命长、成本低等。

工资管理系统实验报告

工资管理系统实验报告

工资管理系统实验报告一、引言工资管理是人力资源管理中非常重要的一项工作,企业需要对员工的工资进行合理的管理,以确保员工能够得到合理的待遇和激励,同时满足企业利润的要求。

本文通过设计和实现一个工资管理系统,探讨了如何将人力资源管理与信息技术相结合,提高工资管理的效率和质量。

二、系统设计本系统采用B/S架构,即浏览器/服务器架构,将系统的前端界面和后台数据存储分别放在浏览器端和服务器端,通过互联网进行数据传输和交互。

系统的主要功能包括员工信息管理、工资计算、工资发放等。

1.员工信息管理员工信息管理是工资管理系统的基础,包括员工基本信息、岗位信息、考勤信息、社保信息等。

系统可以对员工信息进行录入、修改、查询和删除等操作,方便管理人员根据员工的具体情况进行工资计算和发放。

2.工资计算工资计算是工资管理系统最核心的功能之一,主要包括基本工资、津贴、加班费、考勤扣款、社保扣款等。

根据员工的工作时间、工作内容、缺勤情况等因素,系统可以自动计算出员工的实际工资,并实时更新到员工的信息中。

3.工资发放工资发放是工资管理系统的最后一步,可以根据员工的工资信息自动生成工资表,并将工资通过银行转账或现金发放给员工。

同时,系统可以对工资表进行备份和打印等操作,以保证工资管理的可靠性和稳定性。

三、系统实现本系统采用Java语言进行开发,采用MySQL数据库进行数据存储。

系统前端采用HTML、CSS和JavaScript,后台采用Spring和MyBatis框架进行开发,实现了B/S架构和数据的增删改查等功能。

系统主界面采用响应式设计,可以适应不同分辨率的屏幕,保证用户在任何设备上都能够正常使用系统。

用户可以通过登录页面输入用户名和密码进行登录,登录成功后可以进入系统主界面。

在系统主界面上,用户可以进行员工信息管理、工资计算、工资发放等操作。

系统主要采用MVC模式进行开发,将数据模型、视图模型和控制模型分别进行设计和实现。

其中,数据模型主要负责对数据的存储和处理,视图模型主要负责对数据的展示和交互,控制模型主要负责实现业务逻辑和数据处理的整合,以实现系统的高效和稳定。

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

青岛理工大学《C语言程序设计》题目工资管理程序设计指导教师:姓名:学号:班级:专业:计算机科学与技术地点:时间:2013.7.1 至2103.7.5一、内容【设计内容】设计一个能够记录公司员工工资的管理程序,职工工资信息包括:员工号,姓名,基本工资,补贴金额,奖励金额,扣除金额、实发工资等。

其中实发工资=基本工资+补贴金额+奖励金额-扣除金额。

设计一程序实现工资的输入、查询、增、删、改、统计、排序、输出等操作。

【设计要求】1.输入记录:将每一个职工的姓名、职工号以及基本工资、补贴金额、奖励金额、扣除金额、实发金额的数据作为一个记录。

•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。

2.显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。

3.修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。

4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。

5.删除记录:可删除数据文件中的任一记录。

6.添加记录:能添加任一职工记录。

7.统计: (A) 计算各项工资平均工资及实发金额, (B)•统计符合指定条件(如职工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元) 以内的工资职工人数及占总职工人数的百分比。

(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。

8.保存数据文件功能。

9.打开数据文件功能。

二、上机环境操作系统:Windows XP开发工具:VC6.0三、函数调用关系图四、各函数功能说明对每个函数功能加以说明,说明该函数主要实现了什么内容。

1.void main() 主函数2.void start() 开始界面函数3.void menu() 菜单函数4.void input() 录入函数5.void save() 保存文件函数6.void display() 显示函数7.void del() 删除函数8.void search_num() 按职工号查找函数9.void search_name() 按姓名查找函数10.void modify() 修改函数11.void sta() 统计函数五、算法描述或流程图①输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组em[],先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。

同时将数据储存在ckerk_list文件中并自动保存至磁盘。

注:如首次使用,尚未输入数据,请先输入数据。

输入的数据将自动保存。

再次选择输入功能时原数据将被覆盖。

②保存:将输入的资料存入磁盘读取文件clerk_list,若文件不存在,打印“打开失败并退出。

若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。

③读取:读取磁盘中的资料打开文件clerk_list ,若文件不存在,打印“打开失败”并退出。

若存在,读取文件中的数据,并返回职工人数。

④显示:显示职工工资资料先通过读取函数的返回值确定职工人数m,再通过循环将员工工资资料逐个打印,当循环次数达到m时退出循环。

其中实发工资由程序计算,实发金额=基本工资+补贴金额+奖励金额-扣除金额⑤删除:删除某员工的资料打印员工资料并提示输入要删除职工的姓名,输入后若该职工不存在则打印“查无此人”;若存在,则显示该职工资料并询问是否确定删除。

若确定,则删除。

删除时,通过对比输入的姓名与资料中的姓名做对比从而确定要删除的项i,从第i项开始,将后一项的各成员的值赋给前一项各对应的成员,完成对第i项的删除。

⑥添加:添加新的员工资料而不覆盖原有资料打印原有职工资料,询问要添加的职工人数并询问是否确定添加。

逐个逐项输入员工信息,之后程序计算其实发金额。

完成后显示“添加成功”,打印新的员工资料并自动保存。

添加的方法为:定义一个相同类型的结构体数组,将原有项复制后增添新的项,并保存新的数组。

⑦查找:按职工号好查询与按姓名查找员工资料根据提示输入要查询的职工号号或姓名,程序通过循环语句将输入的数字与以保存的结构体数组中的数据对比,若相同,则打印“已找到”及该员工的资料;当循环次数等于人数时结束循环,若至结束循环时也没有找到相同的,则打印“查无此人”。

⑧修改:修改特定员工的特定资料打印员工信息并提示输入要修改资料的职工姓名。

按提示确定要修改,确定要修改的项目,输入要修改成的结果并将该结果赋给对应项的对应成员,完成对特定职工特定项目的修改。

⑨统计通过循环对结构体数组中的每一项经行统计,计算实发金额为,将实发金额除以人数计算出平均工资。

根据每名职工的资料计算基本工资、补贴金额、奖励金额之和在1000-1500圆1500-2000圆2000圆以上的员工占总员工的百分比。

六、程序运行效果图1、开始界面3、输入5、查找6、删除7、添加8、修改9、统计七、总结一个学期的学习,让我见识到了苦,还有些许的甜。

在懵懂之中,我慢慢的摸索,慢慢的实践,我不怕失败,勇往直前。

正是有了这样的初生牛犊的精神,让我感到了很多乐趣。

开始的时候,真的是什么的不懂,看着天书一般的程序,头皮都发麻。

有时候,看着别人顺利的读出程序,写出自己的小设计,那种羡慕和失落,那种无奈叫人无法承受。

不甘的学习,不停的努力,我不想放弃!慢慢的,我能读程序了,渐渐的,我也不再恐惧和失落了。

天书一般的程序,也渐渐的向我展示出它的内蕴。

老师不怕我底子薄,不怕麻烦,将每一道题都讲的仔仔细细,我照着老师的话去做,不断地去学习,多花时间去看。

很多的概念性问题,我都一一克服了。

可是,在这次的程序设计中,我又感觉到那种失败的感觉。

刚开始看到这个题目,好长好长的时间,我都泡在里面,不知从哪下手,要实现那么多的功能着实让人头疼,只能一步一步探索着求进,我不断的发现着错误,不断的进步。

可是到最后,我的程序还是没能运行,功能很不齐全,远没有我原先预想的那样,很失落,只好寻求帮助,在老师同学的帮助下一步一步的改正错误,补充功能,终于完成了对工资管理程序的设计。

最后我认识到一点:结果很重要,但是过程更需重视。

这次编程作业虽然对我们来说比较困难,但是值得高兴的,我们努力了,并基本完成了任务。

这次做C语言程序让我感触颇深。

首先是由于对基础知识掌握不扎实,以至于刚开始拿着不知道从何下手,这就让我明白了学习的重要性。

为了做好这次作业,我查阅了大量关于C语言编程的书籍,并接受了很多同学建议,以求做到精益求精。

付出总有回报,即使它不能在现在,也将在不远的将来!八、参考文献[1] 湛为芳.C语言程序设计技术.清华大学出版社,2006[2] 谭浩强.C程序设计(第三版).清华大学出版社,2005九、程序清单(双列排版,小五号字)#include<stdio.h>#include<string.h>#include<conio.h>//getch(起停顿作用,按任意键继续)的头文件#include<stdlib.h>#define N 100struct clerk{int num; //员工号char name[20]; //姓名int jbgz; //基本工资int btje; //补贴金额int jlje; // 奖励金额int kcje; //扣除金额int sfje; //实发金额}em[100];void start(); //声明start函数,开始界面void menu();// 声明menu函数,菜单void input();//声明input函数,录入void save(int);//声明save函数,保存文件void display();//声明display函数,浏览void del();//声明del函数,删除void add();//声明add函数,添加void search();//查找void search_num();//按职工号查找void search_name();//按姓名查找void modify(); //修改void sta();//统计void main()//主函数{int n,button;start();//调用start函数getch();//按任意键继续,起开始界面与菜单间的停顿作用menu(); // 调用menu函数do{printf("功能选择(1--8):\n");scanf("%d",&n);if(n>=1&&n<=8){button=1;break;}else{button=0;printf("您输入有误,请重新选择!");}}while(button==0);while(button==1){switch(n){case 1: input();break;case 2: display();break;case 3: search();break;case 4:del();break;case 5: add();break;case 6:modify();break;case 7:sta();break;case 8:exit(0);break;default :break;}printf("按任意键继续\n");getch();//停顿,按任意键继续system("cls");//清屏menu(); //(返回到)调用菜单函数printf("功能选择(1--8):\n");scanf("%d",&n);printf("\n");}}void start() //开始界面{system("cls");//清屏printf("\n\n\n\n\n\n");printf("******************************* ***************************************** ********");printf("*****************************欢迎使用工资管理系统*****************************");printf("******************************* **************************************************\n\n\n\n\n");printf("\t\t\t\t 制作: \n");printf("\t\t\t\t 2013年7月\n\n\n\n");printf("\t\t\t ***按任意键进入***\n");}void menu() //菜单界面{system("cls");printf("\t***菜单***\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 1 输入 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 2 显示 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 3 查找 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 4 删除 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 5 添加 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 6 修改 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 7 统计 \n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 8 退出 \n\n");printf("说明:*如首次使用尚未输入数据请先输入数据 \n *输入的数据将自动保存 \n *再次选择输入功能时原数据将被覆盖\n\n");}void input() /*录入函数*/{int i,m;system("cls");//清屏printf("职工人数(1--100):\n");scanf("%d",&m);for (i=0;i<m;i++){printf("请输入职工号: ");scanf("%d",&em[i].num);printf("请输入姓名: ");scanf("%s",&em[i].name);printf("请输入基本工资: ");scanf("%d",&em[i].jbgz);printf("请输入补贴金额: ");scanf("%d",&em[i].btje);printf("请输入奖励金额: ");scanf("%d",&em[i].jlje);printf("请输入扣除金额: ");scanf("%d",&em[i].kcje);em[i].sfje=((em[i].jbgz)+(em[i].btje)+( em[i].jlje)-(em[i].kcje));//计算实发金额printf("\n");}printf("\n创建完毕!\n");save(m);//保存职工人数m}void save(int m) /*保存文件函数*/{int i;FILE*fp; //声明fp是指针,用来指向FILE 类型的对象if ((fp=fopen("clerk_list","wb"))==NULL) //打开职工列表文件为空{printf ("打开失败\n");exit(0);}for (i=0;i<m;i++) /*将内存中职工的信息输出到磁盘文件中去*/if (fwrite(&em[i],sizeof(struct clerk),1,fp)!=1)//写入数据块 &em[i]:是要输出数据的地址 sizeof(struct clerk):获取一个单体的长度 1:数据项的个数 fp:目标文件指针printf("文件读写错误\n");fclose(fp);// 缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区}int load() /*导入函数 int型*/{FILE*fp;int i=0;if((fp=fopen("clerk_list","rb"))==NULL) {printf ("cannot open file\n");exit(0);}else{do{fread(&em[i],sizeof(struct clerk),1,fp); //读取i++;}while(feof(fp)==0); //检测流上的文件结束符}fclose(fp);return(i-1);//返回人数}void display() /*浏览函数*/{int i,sum=0;int m=load();system("cls");//清屏printf("职工号姓名基本工资补贴金额奖励金额扣除金额实发金额\n");for(i=0;i<m;i++) //m为输入部分的职工人数{printf("\n %-6d%-6s %-8d %-8d %-8d %-8d %-8d ",em[i].num,em[i].name,em[i].jbgz,em[i].b tje,em[i].jlje,em[i].kcje,em[i].sfje);sum+=em[i].sfje;//计算员工总工资之和}printf("\n\n职工平均工资为:%d \n",sum/m);}void del() /*删除函数 */{int m=load();int i,j,n,t,button;char name[20];printf("\n 原来的职工信息:\n");display(); //显示删除前的员工信息printf("\n");printf("按姓名删除:\n");scanf("%s",name);for(button=1,i=0;button&&i<m;i++)//主函数中确定button==1时各函数才可以被调用{if(strcmp(em[i].name,name)==0)//按员工姓名查找到某员工并调出其资料(字符串比较函数){printf("\n此人原始记录为:\n");//显示选定员工的信息printf("职工号姓名基本工资补贴金额奖励金额扣除金额实发金额 \n");printf("\n %-6d%-6s %-8d %-8d %-8d %-8d %-8d ",em[i].num,em[i].name,em[i].jbgz,em[i].b tje,em[i].jlje,em[i].kcje,em[i].sfje);printf("\n确定删除请按1,不删除请按0\n");scanf("%d",&n);if(n==1){for(j=i;j<m-1;j++)//从第i项开始将后一项的各成员的值赋给前一项各对应的成员完成对第i项的删除{strcpy(em[j].name,em[j+1].name);em[j].num=em[j+1].num;em[j].jbgz=em[j+1].jbgz;em[j].btje=em[j+1].btje;em[j].jlje=em[j+1].jlje;em[j].kcje=em[j+1].kcje;em[j].sfje=em[j+1].sfje;}button=0;}}}if(!button)//button==0表明删除已完成m=m-1;//总员工数减少一人elseprintf("\n查无此人!\n");printf("\n 删除后的所有职工信息:\n");save(m); //调用保存函数display(); //调用浏览函数printf("\n继续删除请按1,不再删除请按0\n");scanf("%d",&t);switch(t){case 1:del();break;case 0:break;default :break;}}void add()/*添加函数*/{FILE*fp;int n;int count=0;int i;int m=load();printf("\n 原来的职工信息:\n");display();printf("\n");fp=fopen("emploee_list","a");printf("请输入想增加的职工数:\n");//确定要加入的职工数nscanf("%d",&n);for (i=m;i<(m+n);i++)//添加n名员工的信息{printf("\n 请输入新增加职工的信息:\n");printf("请输入职工号: ");scanf("%d",&em[i].num);printf("请输入姓名: ");scanf("%s",&em[i].name);printf("请输入基本工资: ");scanf("%d",&em[i].jbgz);printf("请输入补贴金额: ");scanf("%d",&em[i].btje);printf("请输入奖励金额: ");scanf("%d",&em[i].jlje);printf("请输入扣除金额: ");scanf("%d",&em[i].kcje);em[i].sfje=((em[i].jbgz)+(em[i].btje)+( em[i].jlje)-(em[i].kcje));//计算实发金额 printf("\n");count=count+1;printf("已增加的人数:\n");printf("%d\n",count);}printf("\n添加成功\n");m=m+count;//将新添加员工的人数加到总员工人数中printf("\n增加后的所有职工信息:\n");printf("\n");save(m);display();//显示添加后的信息fclose(fp);}void search()/*查询函数*/{int t,button;system("cls");//清屏do{printf("\n按1 按工号查询\n按2 按姓名查询\n按3 回主菜单\n");scanf("%d",&t);if(t>=1&&t<=3){button=1;break;}else{button=0;printf("输入错误");}}while(button==0);//回到查询选择项while(button==1){switch(t)//选择查询方式{case 1:printf("按工号查询\n");search_num();break;case 2:printf("按姓名查询\n");search_name();break;case 3:main();break;default:break;}}}void search_num()//按职工号查询{int a;int i,t;int m=load();printf("请输入要查找的职工号:\n");scanf("%d",&a);for(i=0;i<m;i++)if(a==em[i].num){printf("职工号姓名基本工资补贴金额奖励金额扣除金额实发金额\n"); printf("\n %-6d%-6s %-8d %-8d %-8d % -8d %-8d ",em[i].num,em[i].name,em[i].jbgz,em[i].b tje,em[i].jlje,em[i].kcje,em[i].sfje);break;}if(i==m)printf("\n对不起,查无此人\n");printf("\n");printf("返回查询函数请按1,继续查询职工号请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2: break;default:break;}}void search_name(){char name[30];int i,t;int m=load();printf("请输入姓名:\n");scanf("%s",name);for(i=0;i<m;i++)if(strcmp(em[i].name,name)==0){printf("\n已找到,其记录为:\n");printf("职工号姓名基本工资补贴金额奖励金额扣除金额实发金额 \n");printf("\n %-6d%-6s %-8d %-8d %-8d %-8d %-8d ",em[i].num,em[i].name,em[i].jbgz,em[i].b tje,em[i].jlje,em[i].kcje,em[i].sfje);}if(i==m)printf("\n\n");printf("\n");printf("返回查询菜单请按1,继续查询姓名请按2\n");scanf("%d",&t);switch(t){case 1:search();break;case 2:break;default :break;}}void modify() /*修改函数*/{int num;char name[20];int jbgz;int btje;int jlje;int kcje;int b,c,i,n,t,button;int m=load();system("cls");printf("\n 原来的职工信息:\n");display();printf("\n");printf("请输入要修改的职工的姓名:\n");scanf("%s",name);for(button=1,i=0;button&&i<m;i++){if(strcmp(em[i].name,name)==0){printf("\n此人原始记录为:\n");printf("职工号姓名基本工资补贴金额奖励金额扣除金额实发金额 \n");printf("\n %-6d%-6s %-8d %-8d %-8d %-8d %-8d ",em[i].num,em[i].name,em[i].jbgz,em[i].b tje,em[i].jlje,em[i].kcje,em[i].sfje);printf("\n确定修改请按1,不修改请按0\n");scanf("%d",&n);if(n==1){printf("\n需要进行修改的选项\n 1.职工号 2.姓名 3.基本工资 4.补贴金额 5.奖励金额 6.扣除金额7.返回上层\n");printf("请选择序号1-7:\n");scanf("%d",&c);if(c>7||c<1)printf("\n选择错误,请重新选择!\n");}button=0;}}if(button==1)printf("\n查无此人\n");do{switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/{case 1:printf("职工号改为: ");scanf("%d",&num);em[i-1].num=num;break;case 2:printf("姓名改为: "); scanf("%s",name);strcpy(em[i-1].name,name);break;case 3:printf("基本工资改为: ");getchar();scanf("%d",&jbgz);em[i-1].jbgz=jbgz;em[i-1].sfje=( em[i-1].jbgz+ em[i-1].btje + em[i-1].jlje- em[i-1].kcje);break;case 4:printf("补贴金额改为: ");scanf("%d",&btje);em[i-1].btje=btje;em[i-1].sfje=( em[i-1].jbgz+ em[i-1].btje + em[i-1].jlje- em[i-1].kcje);break;case 5:printf("奖励金额改为: ");scanf("%d",&jlje);em[i-1].jlje=jlje;em[i-1].sfje=( em[i-1].jbgz+ em[i-1].btje + em[i-1].jlje- em[i-1].kcje);break;case 6:printf("扣除金额改为: ");scanf("%d",&kcje);em[i-1].kcje=kcje;em[i-1].sfje=( em[i-1].jbgz+ em[i-1].btje + em[i-1].jlje- em[i-1].kcje);break;case 7:modify();break;}printf("\n");printf("\n\n 确定修改请按1 ; 重新修改请按2: \n");scanf("%d",&b);}while(b==2);printf("\n修改后的所有职工信息:\n");printf("\n");save(m);display();printf("\n按 1 继续修改 ,不再修改请按0\n");scanf("%d",&t);switch(t){case 1:modify();break;case 0:break;default :break;}}void sta()//统计函数{int i;int sum=0;int a=0,b=0,c=0;int m=load();system("cls");//清屏函数for(i=0;i<m;i++) /*m为输入部分的职工人数*/{sum+=em[i].sfje;if((em[i].sfje)<=1500&&em[i].sfje>=1000 ){a++;}if(em[i].sfje>1500&&em[i].sfje<=2000){b++;}if(em[i].sfje>2000){c++;}}printf("\n\n工资总额为:%d\n",sum);printf("平均工资为:%d\n",sum/m);printf("\n基本工资、补贴金额、奖励金额之和\n");printf("在1000-1500圆的员工占总员工的百分之%d\n",a*100/m);printf("在1500-2000圆的员工占总员工的百分之%d\n",b*100/m);printf("在2000圆以上的员工占总员工的百分之%d\n",c*100/m);printf("\n\n按任意键继续");getch();//停顿作用,按任意键继续menu();}。

相关文档
最新文档