小型公司的工资管理系统.
小型公司薪资体系管理制度
第一章总则第一条目的:为了规范公司员工薪资管理,激发员工工作积极性,提高公司整体竞争力,特制定本制度。
第二条适用范围:本制度适用于公司全体正式员工,包括管理人员、技术人员和一线员工。
第三条原则:公司薪资体系遵循公平、合理、激励的原则,结合岗位价值、个人能力、工作绩效和市场薪酬水平进行制定。
第二章薪资结构第四条薪资组成:员工薪资由基本工资、岗位工资、绩效工资、津贴、奖金和福利等组成。
第五条基本工资:基本工资根据员工所在岗位、学历、工龄等因素确定,并参照当地最低工资标准进行调整。
第六条岗位工资:岗位工资根据岗位价值、工作强度、工作环境等因素确定,体现岗位间的差异。
第七条绩效工资:绩效工资根据员工的工作绩效、团队合作和公司业绩等因素确定,以绩效考核结果为依据。
第八条津贴:津贴包括交通补贴、通讯补贴、住房补贴等,根据员工实际需要和公司实际情况确定。
第九条奖金:奖金包括年终奖、项目奖金、特殊贡献奖等,以奖励员工在特定时期内的突出贡献。
第十条福利:公司为员工提供五险一金、带薪年假、节日福利等福利待遇。
第三章薪资调整第十一条定期调整:公司每年根据国家政策、市场薪酬水平和公司经营状况,对薪资体系进行定期调整。
第十二条绩效考核调整:员工年度绩效考核结果为薪资调整的重要依据,优秀员工将获得更高的薪资待遇。
第十三条晋升调整:员工晋升后,其薪资将根据新岗位的薪酬标准进行调整。
第四章薪资发放第十四条发放时间:公司每月固定发放员工薪资,具体发放时间根据公司实际情况确定。
第十五条发放方式:薪资以银行转账或现金形式发放,具体方式由员工自行选择。
第五章监督与检查第十六条监督:公司人力资源部门负责对薪资体系进行监督,确保薪资制度的有效执行。
第十七条检查:公司每年对薪资体系进行检查,并根据实际情况进行调整和完善。
第六章附则第十八条解释权:本制度由公司人力资源部门负责解释。
第十九条生效日期:本制度自发布之日起生效。
通过本制度的实施,公司旨在建立一套科学、合理、公平的薪资体系,激发员工潜能,提高员工满意度,为公司发展提供有力的人才保障。
薪资管理系统应用的基本流程
薪资管理系统应用的基本流程随着企业的发展,薪资管理成为了企业管理中不可或缺的一部分。
薪资管理系统应用的基本流程包括薪资核算、薪资发放、薪资报表等环节。
本文将从这三个方面详细介绍薪资管理系统应用的基本流程。
一、薪资核算薪资核算是薪资管理系统应用的第一步,也是最为重要的一步。
薪资核算的目的是计算员工的工资,包括基本工资、津贴、奖金、加班费等各种薪资组成部分。
薪资核算的流程如下:1. 收集员工信息:包括员工的基本信息、工作时间、考勤记录等。
2. 计算基本工资:根据员工的岗位、工作年限、学历等因素,计算员工的基本工资。
3. 计算津贴:根据公司的规定,计算员工的各种津贴,如餐补、住房补贴、交通补贴等。
4. 计算奖金:根据员工的绩效、工作表现等因素,计算员工的奖金。
5. 计算加班费:根据员工的加班时间和加班费率,计算员工的加班费。
6. 统计薪资:将以上各项薪资组成部分相加,得出员工的总薪资。
二、薪资发放薪资发放是薪资管理系统应用的第二步。
薪资发放的目的是将员工的薪资及时、准确地发放到员工的银行账户中。
薪资发放的流程如下:1. 生成薪资单:根据薪资核算的结果,生成薪资单。
2. 导入银行卡信息:将员工的银行卡信息导入薪资管理系统中。
3. 发放薪资:将薪资单导入银行系统中,通过银行系统将薪资发放到员工的银行账户中。
4. 发放工资条:将员工的工资条通过邮件或其他方式发送给员工。
三、薪资报表薪资报表是薪资管理系统应用的第三步。
薪资报表的目的是为企业提供薪资管理的数据支持,帮助企业进行薪资管理的决策。
薪资报表的流程如下:1. 生成薪资报表:根据薪资核算的结果,生成薪资报表。
2. 分析薪资数据:对薪资数据进行分析,包括员工薪资构成、薪资变化趋势、薪资差异等。
3. 提供决策支持:根据薪资数据分析的结果,为企业提供薪资管理的决策支持,如制定薪资政策、调整薪资结构等。
总结薪资管理系统应用的基本流程包括薪资核算、薪资发放、薪资报表等环节。
用C++编程——小型公司工资管理系统
#include <iostream>#include <string>#include <iomanip>#include <fstream>using namespace std;const int n=2;class Employee{protected:int num;string name;int age;char sex;double salary;public:Employee(int n=0,int a=0,double sa=0){num=n;age=a;salary=sa;} virtual void input();virtual void print(){};virtual void txtout(){} ;int funnum(){return num;}string funname(){return name;}};void Employee::input(){cout<<"编号:";cin>>num;cout<<"其姓名:";cin>>name;cout<<"性别(w/m):";cin>>sex;cout<<"年龄:";cin>>age;}class Technician:public Employee{protected:int hours;int hourlypay;public:Technician(int hp=100){hourlypay=hp;}virtual void input();virtual double pay(){return (salary=hours*hourlypay);}virtual void print();virtual void txtout();};void Technician::input()cout<<"技术员的";Employee::input();cout<<"工作时间:";cin>>hours;}class Manager:public Employee{public:Manager(double sa=8000){salary=sa;}virtual void input();virtual void print();virtual void txtout();};void Manager::input(){cout<<"经理的";Employee::input();}class Salesman:public Employee{protected:double commrate;//提成int Smnum;//所属经理的编号double sales;//销售额public:Salesman(double com=0.04){commrate=com;}virtual void input();virtual double pay(){return (salary=sales*commrate);} virtual void print();virtual void txtout();int funnum1(){return Smnum;}double funsales(){return sales;}};void Salesman::input(){cout<<"销售员的";Employee::input();cout<<"销售额:";cin>>sales;cout<<"所属销售经理的编号:";cin>>Smnum;class Salesmanager:public Employee{protected:double basepay,sumsales,commrate;//底薪,销售总额,提成public:Salesmanager(double base=5000,double com=0.005){basepay=base;commrate=com;}virtual void input();virtual void print();virtual void print1();virtual void pay();virtual void shujutongji();virtual void txtout();};Technician tec[n];Manager man[n];Salesman sal[2*n];Salesmanager sma[n];//定义全局变量void Salesmanager::input(){cout<<"销售经理的";Employee::input();}void Salesmanager::pay(){for(int i=0;i<n;i++){sma[i].sumsales=0;for(int j=0;j<2*n;j++){if(sal[j].funnum1()==sma[j].num)sma[j].sumsales=sma[j].sumsales+sal[j].funsales();}sma[i].salary=basepay+sma[i].sumsales*commrate;}}void Salesmanager::print(){for(int i=0;i<n;i++){sma[i].sumsales=0;cout<<"职工编号为"<<sma[i].num<<"销售经理"<<sma[i].name<<"下属销售员的业绩为:"<<endl;cout<<"┌─────┬─────┬─────┐"<<endl;cout<<"│ 职工号│ 姓名│ 销售额│"<<endl;for(int j=0;j<2*n;j++)if(sal[j].funnum1()==sma[i].num){sma[i].sumsales=sma[i].sumsales+sal[j].funsales();cout<<"├─────┼─────┼─────┤"<<endl;cout<<"│"<<setw(10)<<sal[j].funnum()<<"│"<<setw(10)<<sal[j ].funname()<<"│"<<setw(10)<<sal[j].funsales()<<"│"<<endl;}cout<<"├─────┼─────┴─────┤"<<endl;cout<<"│销售额总计│"<<setw(22)<<sma[i].sumsales<<"│"<<endl;cout<<"└─────┴───────────┘"<<endl;}}void Salesmanager::shujutongji(){for(int i=0;i<n;i++){sma[i].sumsales=0;for(int j=0;j<2*n;j++){if(sal[j].funnum1()==sma[i].num)sma[i].sumsales+=sal[j].funsales();}sma[i].salary=basepay+sma[i].sumsales*commrate;}for(int k=0;k<n-1;k++)for(int m=k+1;m<n;m++)if(sma[k].salary<sma[m].salary){Salesmanager sma1;sma1=sma[k];sma[k]=sma[m];sma[m]=sma1;}cout<<"销售经理按工资排序为:"<<endl;cout<<"┌────┬────┬────┬────┬────┐"<< endl;cout<<"│职工号│姓名│性别│年龄│工资│"<<endl;for(int e=0;e<n;e++){<<endl;cout<<"│"<<setw(8)<<sma[e].num<<"│"<<setw(8)<<sma[e].name< <"│"<<setw(8)<<sma[e].sex<<"│"<<setw(8)<<sma[e].age<<"│"<<setw(8)<<sm a[e].salary<<"│"<<endl;}cout<<"└────┴────┴────┴────┴────┘"<< endl;}void Technician::print(){cout<<"┌────┬────┬────┬────┬────┐"<<endl; cout<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│"<<endl;for(int i=0;i<n;i++){cout<<"├────┼────┼────┼────┼────┤"<<en dl;cout<<"│"<<setw(8)<<tec[i].num<<"│"<<setw(8)<<tec[i].name<<"│"<<setw(8)<<tec[i].sex<<"│"<<setw(8)<<tec[i].age<<"│"<<setw(8)<<tec[i] .pay()<<"│"<<endl;}cout<<"└────┴────┴────┴────┴────┘"<<endl; }void Manager::print(){cout<<"┌────┬────┬────┬────┬────┐"<<endl; cout<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│"<<endl;for(int i=0;i<n;i++){cout<<"├────┼────┼────┼────┼────┤"<<en dl;cout<<"│"<<setw(8)<<man[i].num<<"│"<<setw(8)<<man[i].name<<"│"<<setw(8)<<man[i].sex<<"│"<<setw(8)<<man[i].age<<"│"<<setw(8)<<man[i] .salary<<"│"<<endl;}cout<<"└────┴────┴────┴────┴────┘"<<endl; }void Salesman::print(){────┐"<<endl;cout<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│ 所属部门经理编号│"<<endl;for(int i=0;i<2*n;i++){cout<<"├────┼────┼────┼────┼────┼─────────┤"<<endl;cout<<"│"<<setw(8)<<sal[i].num<<"│"<<setw(8)<<sal[i].name<<"│"<<setw(8)<<sal[i].sex<<"│"<<setw(8)<<sal[i].age<<"│"<<setw(8)<<sal[i] .pay()<<"│"<<setw(18)<<sal[i].funnum1()<<"│"<<endl;}cout<<"└────┴────┴────┴────┴────┴─────────┘"<<endl;}void Salesmanager::print1()//{cout<<"┌────┬────┬────┬────┬────┐"<<endl; cout<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│"<<endl;for(int i=0;i<n;i++){cout<<"├────┼────┼────┼────┼────┤"<<en dl;cout<<"│"<<setw(8)<<sma[i].num<<"│"<<setw(8)<<sma[i].name<<"│"<<setw(8)<<sma[i].sex<<"│"<<setw(8)<<sma[i].age<<"│"<<setw(8)<<sma[i] .salary<<"│"<<endl;}cout<<"└────┴────┴────┴────┴────┘"<<endl; }void Technician::txtout()//技术员数据备份{ofstream outfile("d:\output.txt",ios::app);if(!outfile){cout<<"备份失败!"<<endl;}outfile<<"************* 公司职员信息备份 ****************"<<endl; outfile<<"*****技术员信息*****"<<endl;outfile<<"┌────┬────┬────┬────┬────┐"<<endl ;outfile<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│"<<endl;for(int i=0;i<n;i++){outfile<<"├────┼────┼────┼────┼────┤"< <endl;outfile<<"│"<<setw(8)<<tec[i].num<<"│"<<setw(8)<<tec[i].name<< "│"<<setw(8)<<tec[i].sex<<"│"<<setw(8)<<tec[i].age<<"│"<<setw(8)<<tec[i] .pay()<<"│"<<endl;}outfile<<"└────┴────┴────┴────┴────┘"<<endl ;outfile<<"********************************************"<<endl;}void Manager::txtout()//经理数据备份{ofstream outfile("d:\output.txt",ios::app);if(!outfile){cout<<"备份失败!"<<endl;}outfile<<"*****经理信息*****"<<endl;outfile<<"┌────┬────┬────┬────┬────┐"<<endl ;outfile<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│"<<endl;for(int i=0;i<n;i++){outfile<<"├────┼────┼────┼────┼────┤"< <endl;outfile<<"│"<<setw(8)<<man[i].num<<"│"<<setw(8)<<man[i].name<< "│"<<setw(8)<<man[i].sex<<"│"<<setw(8)<<man[i].age<<"│"<<setw(8)<<man[i] .salary<<"│"<<endl;}outfile<<"└────┴────┴────┴────┴────┘"<<endl ;outfile<<"********************************************"<<endl;}void Salesmanager::txtout()//销售经理数据备份{ofstream outfile("d:\output.txt",ios::app);if(!outfile){cout<<"备份失败!"<<endl;}outfile<<"*****销售经理信息*****"<<endl;outfile<<"┌────┬────┬────┬────┬────┐"<<endl ;outfile<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│"<<endl;for(int i=0;i<n;i++){outfile<<"├────┼────┼────┼────┼────┤"< <endl;outfile<<"│"<<setw(8)<<sma[i].num<<"│"<<setw(8)<<sma[i].name<< "│"<<setw(8)<<sma[i].sex<<"│"<<setw(8)<<sma[i].age<<"│"<<setw(8)<<sma[i] .salary<<"│"<<endl;}outfile<<"└────┴────┴────┴────┴────┘"<<endl ;outfile<<"********************************************"<<endl;}void Salesman::txtout()//销售员数据备份{ofstream outfile("d:\output.txt",ios::app);if(!outfile){cout<<"备份失败!"<<endl;}outfile<<"*****销售员信息*****"<<endl;outfile<<"┌────┬────┬────┬────┬────┬─────────┐"<<endl;outfile<<"│ 职工号│ 姓名│ 性别│ 年龄│ 工资│ 所属部门经理编号│"<<endl;for(int i=0;i<2*n;i++){outfile<<"├────┼────┼────┼────┼────┼─────────┤"<<endl;outfile<<"│"<<setw(8)<<sal[i].num<<"│"<<setw(8)<<sal[i].name<< "│"<<setw(8)<<sal[i].sex<<"│"<<setw(8)<<sal[i].age<<"│"<<setw(8)<<sal[i] .pay()<<"│"<<setw(18)<<sal[i].funnum1()<<"│"<<endl;}outfile<<"└────┴────┴────┴────┴────┴─────────┘"<<endl;outfile<<"********************************************"<<endl;}int main(){for(int i=0;;i++){int j;cout<<"★★小型公司工资管理系统★★"<<endl;cout<<"┌─────────────┐"<<endl;cout<<"│请选择您所需的操作│"<<endl;cout<<"│ 数据输入:1,并按回车键│"<<endl;cout<<"│ 数据统计:2,并按回车键│"<<endl;cout<<"│ 数据打印:3,并按回车键│"<<endl;cout<<"│ 数据备份:4,并按回车键│"<<e ndl;cout<<"│ 退出系统:5,并按回车键│"<<endl;cout<<"└─────────────┘"<<endl;cout<<"请输入一个操作: ";cin>>j;cout<<endl;switch(j){case 1:{for(int i=0;i<n;i++){tec[i].input();cout<<endl;};cout<<"---------------------------"<<endl;for(i=0;i<n;i++){man[i].input();cout<<endl;};cout<<"---------------------------"<<endl;for(i=0;i<2*n;i++){sal[i].input();cout<<endl;};cout<<"---------------------------"<<endl;for(i=0;i<n;i++){sma[i].input();cout<<endl;}; };break;case 2:{Salesmanager sma1;sma1.print();sma1.shujutongji();};break;case 3:{cout<<" 请等待......"<<endl;cout<<"职工基本情况一览表如下"<<endl;cout<<endl;cout<<"技术员"<<endl;{Technician tec1;tec1.print();cout<<endl;};cout<<"---------------------------"<<endl;cout<<"经理"<<endl;{Manager man1;man1.print();cout<<endl;};cout<<"---------------------------"<<endl;cout<<"销售经理"<<endl;{Salesmanager sma1;sma1.print1();cout<<endl;};cout<<"---------------------------"<<endl;cout<<"销售员"<<endl;{Salesman sal1;sal1.print();cout<<endl;};cout<<"---------------------------"<<endl;};break;case 4:{cout<<"数据正在备份,请等待......"<<endl;Technician tec1;tec1.txtout();Manager man1;man1.txtout();Salesmanager sma1;sma1.txtout();Salesman sal1;sal1.txtout();cout<<"数据备份完成!"<<endl;};break;case 5:exit(1);break;default : cout<<"输入有误,请重新输入。
企业工资管理系统用户手册
企业工资管理系统用户手册第一章:引言1.1 系统概述企业工资管理系统是一款专为企业提供工资管理服务的软件。
该系统能够帮助企业简化工资管理流程,提高工资处理效率,并确保薪资的准确性和安全性。
1.2 文档目的本用户手册旨在帮助用户全面了解企业工资管理系统的功能和操作方法,以便能够正确地使用系统进行工资管理工作。
1.3 预期读者本文档面向企业工资管理系统的使用者,包括人力资源部门人员、财务部门人员以及其他相关职员。
1.4 系统环境企业工资管理系统适用于Windows、Mac和Linux操作系统,需要安装最新版本的浏览器(如Chrome、Firefox等)来运行系统。
第二章:系统登录2.1 注册账号在初次使用企业工资管理系统前,用户需要注册一个账号并完成身份验证。
用户需提供真实有效的个人信息进行注册。
2.2 登录系统注册成功后,用户可以使用注册时所填写的用户名和密码登录系统。
在登录过程中,请确保输入准确的用户名和密码,以免造成账号被盗或信息泄露。
第三章:系统功能介绍3.1 工资信息管理企业工资管理系统提供了全面的工资信息管理功能,包括工资表的生成、修改和查询等。
用户可以根据员工的实际情况,灵活地配置工资项和计算公式。
3.2 员工管理系统允许用户进行员工信息的录入和管理,包括基本信息、薪资信息、考勤信息等。
用户可以方便地更新和维护员工的个人档案。
3.3 薪资计算系统提供了自动化的薪资计算功能,用户只需输入相应的薪资参数和计算规则,系统即可根据设定的公式自动计算出每个员工的薪资。
3.4 员工考勤系统支持员工考勤信息的录入和管理,用户可以根据员工的实际出勤情况,方便地记录和统计考勤数据。
3.5 薪资发放系统提供了薪资发放功能,用户可以灵活地设定薪资发放时间和方式,并生成相应的薪资发放记录。
第四章:系统操作指南4.1 工资信息管理操作指南本节介绍了工资信息管理相关功能的操作方法,包括工资表的生成、修改和查询等。
工资管理系统
一、工资管理系统的需求分析工资管理系统包括信息浏览查询、数据库维护、基本信息管理.1。
系统功能需求(1)员工可以进入此系统查询工资和查看基本的信息。
(2)管理员可以对员工的信息进行添加,删除,修改。
并对数据库中的数据维护,包括数据备份,导入数据,导出数据。
满足上述需求的系统主要包括下面几个模块(1)数据库维护模块:管理员要对数据库内所有的数据进行备份和恢复,并可实现数据导入导出功能.(2)基本信息管理模块:实现对员工基本信息的管理操作,包括员工基本数据信息的添加、修改、删除和查询等功能。
(3)信息浏览查询模块:用户对系统中的信息进行查询。
可根据条件查询员工历史工资数据(如按月份查询、按姓名查询、按部门查询等)。
2数据库维护模块数据备份:将一个月的数据进行复制.数据导入:每天将数据导入到数据库中。
数据导出:每天下班将数据导出数据库。
3基本信息管理模块删除员工信息:如果有员工辞职则删除该员工的信息.添加员工信息:如果聘用了新员工则添加员工信息.修改员工信息:如果有员工的信息有所变动则修改。
4信息浏览查询模块查询员工信息:员工查询自己的信息。
查询工资:员工查询自己的工资情况。
功能需求细化:①在工资管理系统中,需要员工的参与,员工可以查询工资的历史数据并领取工资,还可以通过员工编号查看员工的基本信息。
②管理员是此系统的核心,管理着整个系统。
他要对所有的员工的信息的管理,对数据进行添加,删除,修改。
管理员还要对系统进行相关维护操作,数据备份,数据恢复,数据导入等以及更新数据库。
(1)系统用户参与的总的用例图管理员和员工都可发从用户这个参与者中泛化而来,用户是指此系统的所有使用者,以登录系统完成相应的操作.系统用户参与的总的用例图如下图所示.从图中可以清楚地看到泛化关系与各个参与者所参与的用例。
图2.1系统用户参与的总的用例图(2)工资统计的用例图此用例图清晰看出工资发到员工手里的过程。
有四个参与者,包括经理,职工,行政部门,业务部门。
员工薪资管理系统概述(doc 28页)
员工薪资管理系统概述(doc 28页)员工薪资管理课题选取背景及意义背景:随着经济的发展,各个公司的规模也越来越大,为了更好的、更方便地管理企业中各个成员的工资发放情况,我们必须要有一个完善的、合理的、便捷的员工薪资管理系统来管理公司员工工资的发放情况。
该员工薪资管理系统主要用于员工的工资发放管理,管理员可以通过此员工薪资管理系统保证职员薪资信息的准确性。
此系统的建立和使用有利于管理者和职员更好的了解自己的薪资信息,提高公司员工薪资发放工作的效率。
意义:本系统提供了基本的人员信息管理,同时对员工的基本工资、浮动工资和工资发放进行系统管理,同时配以查询功能,以便能真正适用于各类中小企业及失业单位。
一、员工薪资管理系统概述1、现状分析随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。
早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。
早期工资管理多采取纸质材料和具有较强的时间限制。
随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。
建设一个科学高效的信息管理系统是解决这一问题的必由之路。
企业内部财务管理是该企业运用现代化技术创造更多更高的经济效益的主要因素之一。
工资管理作为企业内部的一种财务管理也是如此,由于企业职工人数较多,每一位职工的具体实际情况也不尽相同,各项工资条款的发放,如果没有一个完整的管理系统对企业和员工的工作都带来许多的不便。
基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。
2、系统目标员工薪资管理系统的主要目的是利用计算机对员工的各种工资信息进行日常的管理,如查询、修改、添加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,针对系统服务对象的具体要求,设计了企业工资管理系统。
简述薪资管理系统操作流程
简述薪资管理系统操作流程
薪资管理系统的操作流程主要包括以下步骤:
1. 登录系统:管理员或工作人员输入用户名和密码登录系统。
2. 创建员工档案:管理员在系统中添加或导入员工信息,包括姓名、工号、职位、部门、入职时间、工作时长、基本工资等。
3. 输入考勤数据:工作人员或管理员输入员工的考勤数据,包括迟到、早退、加班、请假等情况,以确定员工的实际工作时间。
4. 计算薪资:系统根据员工档案和考勤数据自动计算每个员工的应发工资,包括基本工资、加班工资、绩效奖金、补贴等。
5. 核对薪资:管理员或工作人员核对系统计算的薪资数据,确保准确无误。
6. 发放薪资:系统自动生成工资单,管理员或工作人员进行发放。
7. 统计汇总:系统自动生成月度或季度的薪资汇总表,列出每位员工的薪资明细和总金额等信息,以便于管理者进行统计汇总和分析。
总之,薪资管理系统旨在提高薪资计算的效率和准确性,为企业节省人力资源,
并确保员工合法权益得到保障。
工资管理系统的系统初始设置
工资管理系统的系统初始设置工资管理系统的系统初始设置一、引言工资管理是企业中非常重要的一项管理工作,它关系到员工福利、薪酬制度、绩效考核等多个方面,对于企业的发展和员工的积极性起到至关重要的作用。
为了更好地管理企业的薪酬体系,提高薪酬效率,降低管理成本,建立一套科学、合理、高效的工资管理系统是必不可少的。
二、系统要求1.系统目标:建立一个全面的、可靠的、高效的工资管理系统,满足企业对员工薪资、绩效评估、补贴待遇等方面的需求;2.功能要求:包括员工信息管理、薪资发放管理、绩效考核管理、社保代缴管理等功能模块;3.数据安全:系统要求具备良好的数据安全性,包括权限控制、数据备份、数据加密等功能;4.性能要求:系统能够高效地处理大量数据,保证快速响应和高并发访问;5.用户友好:系统界面简洁明了,操作简单易懂,用户能够快速上手使用。
三、系统架构1.硬件层面:系统需部署在稳定可靠的服务器上,保证系统的稳定性和安全性;2.软件层面:系统采用分层架构,包括前端展示层、业务逻辑层、数据访问层等;3.数据库层面:系统使用关系数据库管理系统,对薪资、员工信息等数据进行存储和管理;4.网络层面:系统需保证局域网内各终端能够正常访问系统,并对外提供安全的网络访问接口。
四、系统模块设计1.员工信息管理模块:包括员工基本信息、家庭情况、工作经历等的录入、修改、查询和删除;2.薪资发放管理模块:包括工资和奖金的计算、发放,扣款和个税的计算等功能;3.绩效考核管理模块:包括绩效考核指标的设定、考核标准的制定,绩效评估的录入和统计等功能;4.社保代缴管理模块:包括社保代缴费用的计算、缴费记录的管理等功能;5.报表统计模块:包括工资报表、绩效报表、社保费用报表等报表的生成和导出功能。
五、系统部署1.系统安装:根据硬件要求,安装操作系统和数据库管理系统;2.系统配置:进行系统参数设置,配置数据库连接和访问权限;3.系统部署:将系统部署在服务器上,确保系统能够正常运行;4.数据录入:按照实际情况导入员工信息和历史数据;5.系统测试:进行系统功能测试、性能测试和安全测试,确保系统的稳定性和安全性。
薪资管理系统的基本功能
薪资管理系统的基本功能
薪酬管理系统的基本功能是指以一种计算机化的方式,帮助收入和费用支出的过程中
对各种薪酬支出和收入的管理、监测和核算,以及记录存储。
薪酬管理系统可帮助企业更
加有效率地管理员工的薪酬支出和收入,减少不正确支付和收入,从而改善财务控制和节
省企业开支。
经理或财务人员可使用薪酬管理系统进行自定义薪资核算,识别薪资支出及费用支出;生成报表,审核账户信息,核算收入以及缴纳税款等;批量处理支票,以便协助企业管理
多个雇员的薪酬;自动计算并产生科目及资金传递凭条;提供用户设置的系统授权和安全
措施;在财务科目上提供实时的审核;等等。
薪酬管理系统的另一个重要功能是提供财务预算和财务报表编制。
它可以将收入和支
出精确地编入制定的预算中,并在淡季或旺季时及时调整,以确保财务平衡。
它还可以根
据管理人员的要求产生详细的财务报表,以便对收支情况进行把控和分析。
薪资管理系统还可提供人力资源管理,协助企业实现实时更新和共享员工信息,比如
职位及薪资等。
此外,薪资管理系统也可以为企业提供完备的员工报表,为管理人员快速
查看雇员信息和绩效报表提供便利。
工资管理系统
数据库原理与应用课程设计(论文) 工资管理系统的设计与实现院(系)名称电子与信息工程学院专业班级计算机科学与技术学号*********学生姓名***指导教师*** ***起止时间:2015.7.6—2015.7.17课程设计(论文)任务及评语院(系):电子与信息工程学院教研室:软件工程摘要随着信息时代的发展,过去的人工管理已经不能满足企业的人事管理,而工资管理作为企业人事管理的一项工作,工作量大且繁琐,财务管理人员需要很大的耐心。
计算机信息管理技术的迅速发展恰恰解决了这个问题,它使计算机技术与现代管理技术相互配合,来更加准确、高速地完成企业工资管理工作,使企业能够以最少的人员来完成更多的工作。
系统的开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
本系统使用SQL Server 2008建立数据库后台,使用Visual Basic进行前台界面和处理程序的开发,前者建立成数据一致性和完整性强、数据安全性好的数据库,而后者具有应用程序功能完备,易使用等特点。
工资管理系统可以在Visual Basic的界面中通过基本信息管理对员工、工资和奖惩的信息进行管理,可以进行信息的查找、修改和删除。
关键词:工资管理;数据库;Visual Basic目录第1章绪论 (1)1.1研究背景 (1)1.2开发意义 (1)第2章系统需求分析 (3)2.1开发环境和软件 (3)2.2 Visual Basic (3)2.3 SQL Server数据库 (4)2.4系统功能分析 (4)第3章系统设计 (5)3.1系统功能结构设计 (5)3.2数据库概念结构设计 (5)3.2.1 员工实体E-R图 (5)3.2.2 工资实体E-R图 (6)3.2.3 奖惩实体E-R图 (6)3.2.4 总体E-R图 (6)3.3数据库逻辑结构设计 (7)3.3.1 员工信息表 (7)3.3.2 奖惩表 (8)3.3.3 工资表 (8)3.4数据库实现 (9)第4章系统实现 (11)4.1用户登录界面 (11)4.2主要功能界面 (11)4.2.1员工信息管理界面 (11)4.2.2 工资管理界面 (12)4.2.3奖惩管理界面 (13)第5章课设总结 (14)参考文献 (15)附录 (16)第1章绪论1.1研究背景随着经济的发展,企业正向着大型化、规模化发展,而对于大中型企业,员工、职称等跟工资管理有关的信息随之急剧增加。
JAVA某公司的工资管理系统
JAVA某公司的工资管理系统摘要我们小组的课程设计是某公司的工资管理系统。
在这个计算机快速发展的世界里,计算机为信息处理提供了物美价廉的手段,对于推动我国管理信息处理现代化起到了重要作用。
工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,既方便又快捷地完成员工工资的发放。
我们组在课程设计过程中根据设计中的需求及对工资管理系统采用了模块化的设计思想,在机房我们在Windows XP操作系统环境下,采用myeclipse7作为开发工具,主要连接Access数据库来实现公司的工资管理系统的主要功能。
在设计过程中,我们首先小组首先对整体的思路进行分析,然后进行分工。
对数据库和类进行设计,实现了工资管理系统的功能。
其功能主要包括公司用户管理、人员管理、部门管理、工资管理等功能。
本系统运用了数据库技术,可以大量的存储信息。
又实现了人机交互,不但缩短工资发放的时间,又避免了传统时代的人工计算错误。
总而言之,该系统在工资管理方面考虑周全,功能齐全,极大地提高了公司对员工工资管理的效率。
关键词工资管理系统,Access数据库,Java目录摘要I目录II第1章绪论 11.1 项目背景 11.2 项目开发环境 11.2.1 硬件环境 11.2.2 软件环境 1第2章相关技术 12.1系统所涉及到的语言 12.1.2 Java 12.2开发工具 12.2.1 MyEclipse 12.2.1 Access 2第3章系统分析及组内分工 1 3.1需求概述 13.2需求分析 13.2.1 理解需求 13.2.2 分析需求 13.2.3 可行性分析 23.3设计思想 23.4系统功能结构图 33.5组内分工 4第4章数据库设计 54.1数据库需求分析 54.2数据流图 54.2数据字典 64.3 概念结构设计 94.3.1概念结构设计方法94.3.2概念模型设计9第5章系统详细模块设计与实现105.1 用户登录及主界面105.2 用户管理功能实现185.3人员管理功能实现 245.4部门管理功能实现 395.5工资管理功能实现 455.6帮助功能实现505.7退出系统功能实现 51结论52致谢53参考文献54第1章绪论1.1 项目背景借助现代信息技术和管理理论,建立企业管理信息系统是当今社会的重要趋势。
第三章 工资管理系统【新版精品资料】
第三章工资管理系统工资管理系统的操作流程1.首先注册,进入工资管理系统。
如果是第一次使用,需要进行基础数据设置(女跡扣零设置、扣税设置等)和选项设置。
2.如果是多类别情况,需要进行工资类别的设置:如使用计件工资,需要进行计件资方案的设置。
3.进行工资项目和计算公式的设置,并录入基本数据.4.日常工作,主要是对本月变动项进行更改。
5.月末处理所得税的扣除工作.如果是银行代发工资,则将数据按银行指定的格式输出并报送到银行;如果是现金发放,可以查询并打印分钱清单。
,,6.进行工资分摊,生成凭证,并传递到总账管理系统.7.进行月末处理。
1.在系统管理中启用工资管理系统①执行“开开始”1“程序”I“用友T3系列管理软件”I“用友T3”|“系统管理”命令,以账套主管身份注册系统管理。
②执行“账套”I“启用”命令,打开“系统启用”对话框,选中“W A工资管理”复选框,弹出“日历”对话框,选择工资系统启用日期为“2009年1月1日",单击【确定】按钮,系统弹出“确实要启用当前系统吗?"信息提示框,单击【是】按钮返回。
2.建立工资账套①以账套主管身份注册进入用友T3主界面。
单击“工资”菜单项,打开“建立工资套"对话框.②在“参数设置”中,选择本账套所需处理的工资类别个数“多个”,默认币别名称为“人民币RMB”,如图6—1所示,单击【下一步】按钮.注意‘‘父例中对正式人员和临时人员分别进行核算,所以工资类别应选择“多个”.③在“扣税设置”中,选中“是否从工资中代扣个人所得税”复选框,如图6—2所示,单击【下一步】按钮。
注意选择代扣个人所得税后,系统将自动生成工资项目“代扣税”并自动进行代扣税金的计④在“扣零设置”中,不做选择,直接单击【下一步】按钮。
注意扣零处理是指每次发放工资时将零头扣下,积累取整,于下次工资发放时补上,系统在计算工资时将依据扣零类型(扣零至元、扣零至角、扣零至分)进行扣零计算。
第9章工资管理系统
第九章工资管理系统第一节工资管理概述一、工资管理系统的功能1.初始设置通过工资系统的初始设置,可以根据企业需要建立工资账套,设置工资系统运行所需要的各项基础信息,为日常处理建立应用环境。
初始设置的主要内容包括:(1)工资账套参数设置2.3.三、工资系统应用方案1.单类别工资核算方案如果企业中所有员工的工资发放项目相同、工资计算方法也相同,那么可以对全部员工的工资进行统一核算,即选择单类别工资核算方案。
2.多类别工资核算方案(1)企业中存在不同类别的人员,不同类别人员工资发放项目不同、计算公式也不相同,但需要进行统一工资核算管理。
(2)企业每月进行多次工资发放,月末需要进行统一核算。
例如企业采用周薪制,或工资和奖金分次发放。
(3)企业在不同地区设有分支机构,而工资核算由总部统一管理。
(4)工资发放时使用多种货币,如人民币、美元等。
四、工资系统的操作流程见教材第196页。
第二节工资系统初始设置一、建立工资账套工资系统启用之后,具有相应权限的操作员就可以登录本系统了。
如果是初次进入,系统将自动启动建账向导。
建账向导分四步:参数设置、扣税设置、扣零设置、人员编码。
1.参数设置在参数设置中,需要选择本单位工资核算的应用方案,确定工资核算本位币,以及是否核算计件工资。
工资类别个数分为单个和多个两种。
如果本单位按周或每月多次发放工资,或者是单位中有多种不同类别(部门)的人员,工资发放项目不尽相同,计算公式亦不相同,但需进行统一工资核算管理,应选择“多个”工资类别;如果单位中所有人员的工资统一管理,而人员的工资项目、工资计算公式全部相同,选择“单个”工资类别,可提高系统的运行效率。
系统提供币别参照供用户选择,若选择本位币以外的其他币别,则还须在工资类别参数维护中设置“汇率”。
核算币种经过一次工资数据处理后即不能再修改。
计件工资是按计件单价支付劳动报酬的一种形式。
由于对计时工资和计件工资的核算方法不同,因此,工资管理系统对企业是否存在计件工资特别设置了确认选项。
企业工资管理系统设计报告
企业工资管理系统设计报告计算机与信息学院题目:企业工资管理系统作者:王龙陈李刘章良班级: 10级C1班指导教师:王帅日期: 2013年7月11日一、总体设计我们根据需求分析大概可以把系统分为客户端功能实现部分和后台数据的设计部分,客户端和数据部分要我们实现以下几个目标:1.登录用户的验证和系统指引。
2.普通用户对于基本信息和详细工资信息的查询功能。
3.管理员用户对于整个工资管理系统的使用,包括员工信息浏览,员工信息添加删除以及修改,对于考勤系统的管理,对于工资部分管理,对于系统设置管理,生成员工工资报表。
4.数据部分我们要实现对员工信息的记录,对工资情况记录,对考勤记录,对于的记录是整个系统的灵魂部分。
二、功能部分详细设计根据需求分析我们可以把系统大概分为以下几个模块一.登录系统一个好的登录页面应该做到简洁大方,所以本系统采用简约的风格设计了一个界面简单明了登陆界面,为了界面的美观,特地删除了微软form的边框,才用无框化设计。
除了传统的用户名和密码输入框外,还增加了一个是否以管理员身份进行登录的选项(界面图如图2-1所示)。
当用户输入好用户名和密码点击登录按钮后,系统会自图2-1登录界面动进入数据库根据用户输入的用户ID去数据库中查找相应的密码和管理员权限进行匹如果用户名和密码任意一个为空的话,则会提示用户信息输入不完整图2-2提示框要求从新输入。
当用户名和密码完全匹配后,如果“以管理员身份登录”选项被选中,则还会去数据库中取出相信的字段来判断该用户是否拥有管理员权限,如果有则可以登录,如果没有,则提示没有权限,返回登录窗口;如果该选项没有被选中,则直接以普通用户身份登录系统。
二.普通用户系统由于普通用户只有查看和修改个人信息的权限,所以在页面设计上比较简单,采用TapePage控件将界面设计成个人信息和工资查询两个page,初始情况下,普通用户弹出的界面是个人信息page,在个人信息page中,将员工所有的信息都通过控件的方式列举出来,用户可以对一些可以修改的个人信息可以直接在相应的输入框里进行修改,然后点击保存修改后进行存储工作。
小企业工资薪金制度 小型生产企业薪酬管理制度(通用7篇)
小企业工资薪金制度小型生产企业薪酬管理制度(通用7篇)小微企业的薪酬管理制度篇一第一章总则本方案适用于××××公司(董事长、总裁、总经理除外)的全体正式员工。
制定本方案的目的是建立统一的薪酬平台,实现按价值付酬,促进内部公平,起到激励、吸引、留住人才的作用。
薪酬作为分配价值形式之一,遵循公平性、竞争性、激励性、经济性、合法性的原则。
(一)公平性指公司员工所获得的薪酬应与对企业作出的贡献成正比,即与其岗位价值相匹配。
(二)竞争性是指与所在地区行业或同等规模的企业类似职务相比较,公司的薪酬标准要有吸引力。
(三)激励性是指在薪酬设计上,应考虑适当拉开各级、各岗的薪酬水准差距,以真正体现薪酬的激励效果,从而提升员工的工作积极主动性。
(四)经济性指薪酬水平要考虑公司实际支付能力的大小。
薪酬分配的依据是:员工的工作量、职务的高低、技术和能力水平、工作条件、工龄、企业负担能力、地区和行业的薪酬水平、劳动力市场的供求状况、生活费用与物价水平。
公司根据当期经济效益及可持续发展状况决定工资水平。
第二章薪酬体系第六条公司员工薪酬体系分别采取三种不同类别:与企业年度经营业绩相关的年薪制;与年度绩效、月度绩效相关的岗位绩效工资制;与岗位相关的市场工资加绩效制。
第七条适用本薪酬体系的人员为公司常设在编员工。
临时工、小时工、企业顾问、特聘律师等均不纳入其中。
第八条享受年薪制的员工,其工作特征是以年度为周期对经营工作业绩进行评估并发放相应的薪酬。
第九条实行岗位绩效工资制的员工目前包括除了工勤职系外的所有员工。
第十条对于工勤职系采用市场工资加绩效制。
其特征是按地区劳动力市场行业指导价格和公司实际情况确定工资加绩效水平,按月支付。
第三章薪酬结构(三)附加工资,包括一般福利、社会保险、补助等。
(三)岗位工资:按照岗位价值评估的结果确定,体现了岗位的内在价值和员工技能因素。
其中,绩效工资与每月度的考核结果挂钩,体现员工在当前岗位和现有技能水平上通过自身努力为公司实现的价值。
工资管理系统操作流程
工资管理系统操作流程系统路径:桌面U8管理软件财务系统工资开始U8管理软件财务系统工资工资帐套初始:选择需要的启用日期:要大于等于帐套的启用日期第一次打开帐套会弹出工资帐套初始界面选择工资类别个数(单个和多个的区别)下一步选择是否代扣个人所得税下一步选择是否扣零下一步选择人员编码长度和帐套启用日期完成注意:其中一些设置可以到“设置”菜单(或基础设置)选项中重新设置帐套初始:单个工资类别:直接在基础设置中分别设置部门、人员类别、人员附加信息、工资项目、银行名称、人员档案1、部门设置:基础设置部门设置点击“增加”按钮输入部门编号和部门名称等点击“保存”注意:要严格遵循编码原则:例如:“***”则表示一级编码为一位,二级编码为二位等同于科目编码的“1-2”,如果此帐套是和总帐连用的,则不需要输入部门,总帐的部门会自动传输。
删除部门:只需要选择要删除的部门点击“删除”按钮即可。
但是要先删除末级部门再删除上级部门并且要删除的部门没有用过2、人员类别设置:基础设置人员类别设置先输入类别再点击“增加”按钮注意:没有用过的人员类别直接选中删除即可,已经用过的不能删除3、人员附加信息设置:基础设置人员附加信息设置点击“增加”按钮输入或选择附加信息再点击“增加”按钮输入或选择下一个人员附加信息注意:没有用过的人员附加信息直接选中删除即可,已经用过的不能删除人员信息的先后顺序可以选中要改变的附加信息点击“”和“”改变位置4、工资项目设置:基础设置工资项目设置点击“增加”按钮输入或选择项目名称更改项目属性即可项目属性包括:类型、长度、小数、增减项类型:数字(参与加减和计算的数字,例如:基本工资等)字符(不参与加减和计算的注释例如:职称等)长度:根据项目需要自定长度小数:必须是数字的才有小数位数,并且要按照需要设定增减项:增项(参与计算并且累加的项目,汇总到应发合计)减项(参与计算并且累加的项目,汇总到扣款合计)其他(参与计算但不累加的项目,例如:病假天数)公式设置:先在“工资项目”中点击“增加”按钮选择要编辑公式的工资项目选择增加的工资项目根据向导编辑公式点击“公式确认”按钮基本工资公式设置:iff(人员类别="企业管理人员",700,iff(人员类别="车间管理人员",650,iff(人员类别="福利人员",400,750)))5、银行名称设置:基础设置银行名称设置先确定帐号长度点击“增加”按钮输入银行名称返回即可(属于银行代发的)6、人员档案:基础设置人员档案输入基础信息和附加信息确认注意:如果银行代发要注意帐号不能重复,人员编号不能重复。
最新版企业工资管理系统设计方案
企业工资管理系统设计方案目录引言 (2)1系统规划方案 (2)1.1背景描述 (2)1.2信息系统规划 (3)1.3系统实施计划 (5)1.4信息系统建设资源配置计划 (5)2 系统分析说明书 (6)2.1.用例模型 (6)2.2用例规约 (9)2.3顺序图 (11)2.4类图 (14)2.5.系统的状态图 (15)2.6层次图 (18)2.7构件图 (19)2.8对边界类进行详细设计 (19)2.9系统的详细设计 (20)3系统实施方案 (21)3.1系统实施的准备工作 (21)3.2选择编程工具 (21)3.3用例的实现 (22)3.4对系统实施的核心程序的效果进行说明。
(22)3.5针对系统特点,提出系统转换的方案。
(25)5.参考文献 (25)引言工资管理系统是每个公司的最基本的管理模块,该系统要涉及公司每个部门的每个员工,具体包括员工的基本工资、奖金发放、保险扣除等等,是员工基本利益的保障。
建立一个有效便利的管理系统可以减少财务部门的工作量,保证工资准确无误的发放。
工资管理系统需要基于数据库管理和公司局域网络,及时更新员工销售额信息和工资信息,便于公司管理者和员工查询。
其中公司管理者具有最高查询权限,而一般员工只能查询本人信息,可以最大程度上保护员工隐私。
提高员工工作的积极性。
1系统规划方案1.1背景描述企业的工资管理是公司管理的一个重要内容。
随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。
工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。
工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。
资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。
早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国石油大学(华东)信息与控制工程学院《程序设计实习》报告小型公司工资管理系统的设计专业班级:电子信息工程学号:姓名:指导教师:时间:2013.7.1~2013.7.62013年7月目录一、实习内容 (1)二、设计思路 (2)三、程序调试过程中典型问题及解决方法 (4)四、运行结果 (5)五、程序使用说明 (12)六、心得体会及课程改进设想 (12)备注:页码根据目录的实际页码进行标注一、实习内容1.1、课程设计的目的此次课程设计的目的是以《程序设计语言(C/C++)》为基础,针对具有一定难度的综合性题目,进行分析、编程、调试和运行,进一步掌握面向对象和面向过程程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实践相结合,提高分析问题、解决问题的能力。
通过设计一个简单的《小型公司工资管理系统》,进一步熟悉C++中类的概念、类的封装、继承和多态的实现方式。
了解系统开发的需要分析,类层次设计,模块分析,编码测试,模块组装与整体调试的全过程,逐步熟悉程序设计的方法,并养成良好的编程习惯。
1.2、设计题目及要求1 题目:《小型公司工资关系系统》设计2 设计说明与要求(1)公司主要有4类人员:经理、技术员、销售员、销售经理。
要求储存这些人的职工号姓名、月工资、年龄、性别等信息。
(2)工资的计算方法A、经理:固定月薪为8000元;B、技术员:工作时间×小时工资(100元每小时);C、销售员:销售额×4%提成;D、销售经理:底薪(5000元)+所辖部门销售额总额×0.5%;(3)类的层次结构大体如下:(4)输入员工基本数据,要求每类人员不能少于4人,员工信息输出格式参考运行效果。
(5)实现功能应用程序中要有菜单,用于选择各种功能,其中①数据输入:输入各种数据;②数据统计:统计各种销售经理下属销售员的销售额及限售额之和;销售经理按工资进行的冒泡排序;③数据打印:打印各类员工的数据信息;④数据备份:把各类员工的数据星系写入文件中保存;⑤推出本系统;(6)菜单说明①数据录入指通过键盘输入各类员工的各项数据;②数据统计指统计各销售经理下属销售员的销售额及销售额之和;销售经理按工资进行冒泡法排序;③数据打印指按照表格的格式在屏幕上输出个员工的信息;④数据备份指将所有员工的信息保存到文件;⑤退出:结束程序的运行。
(7)注意一个销售经理管辖多个销售员。
(8)其他功能可以自己扩充(扩充的功能若比较合理可适当加分)。
(9)要求在控制台下完成(显示内容都在黑屏下显示)。
二、设计思路1、程序应实现的功能,有数据输入,数据统计,数据打印,数据备份和退出系统5个。
2、考虑各种数据类型还有所需的C++内的函数,要引用<iostream> <string> <fstream> <iomanip>这四个头文件。
<iomanip>用其setw(n)设置其后输出数据的宽度为n位,便于表格的制作。
<fstream>用于数据备份,使用时,先用ofstream outfile(即定义ofstream类对象outfile)。
3、outfile.open("小型公司工资管理系统.txt",ios::out);打开磁盘流文件,并且对备份文件进行命名,同时确定存储位置。
…4、首先定义一个employee的雇员基类,然后得到technician、manager、seller 三个分别为技术员类,经理类,销售员类的派生类,再由manager派生出销售经理类salesmanager。
每个类中的数据成员都是protected型的,成员函数都是public 型的,所有的继承都是公有继承,基类中定义有数据输入函数,各派生类中有由基类继承过来的不同的数据输入函数。
5、然后定义各功能的函数,如f1()、f2()、begin()等。
4、数据统计、打印以及备份都以表格形式输出。
表格通过制表符进行设计。
表头表中表尾还有分隔符均单独定义成void 型的函数。
如:void begin(){cout<<"┌─────┬─────┬─────┬─────┬─────┐"<<endl;cout<<"│职工号│姓名│性别│年龄│工资│"<<endl;}void middle(){cout<<"├─────┼─────┼─────┼─────┼─────┤"<<endl;}。
6、因为类中成员都是保护类型的,所以要定义属于各类的返回成员值的函数,如rshuyu ()、rnum ()等,在后面统计、打印时会用到。
7、在进行销售经理的数据输出时,考虑其与销售员之间所属关系,定义全局数组double wage[n4]单独存放销售经理的工资,排序时通过if语句先判断所属关系,再进行冒泡法排序,这是要用到双重循环。
8、main函数里定义了四个对象数组,technician t[n1]、manager m[n2]、seller s[n3]、salesmanager ma[n4],其中n1、n2、n3、n4都是全局常变量,分别代表技术员、经理、销售员、销售经理的人数,便于程序修改。
9、整个程序由主函数的一个for循环控制,根据输入的操作选项通过一个switch 语句判断该进行什么操作,每一个case后面对应一个函数,每个函数对应一个操作,1对应数据输入,2对应数据统计,3对应数据打印,4对应数据备份,5对应退出系统。
10、case 中调用四个带参数的函数f3(t,m,s,ma)、statistics(t,m,s,ma)、print(t,m,s,ma)、beifen(t,m,s,ma)。
四个函数均用了四个循环语句分别进行输入、统计、打印、备份。
如输入中的一个:for(i=0;i<n1;i++){t[i].input();}input()这类函数在各个类中定义,并且同名,这样能简化程序。
三、程序调试过程中典型问题及解决方法1、第一天和第二天是完成总体设计及数据输入功能及调试。
共有三个问题需要注意:第一是,成员函数要设计成protected。
第二,销售经理是经理的派生类,而不是雇员类的派生,要注意。
第三,f3(technician t[],manager m[],seller s[],salesmanager ma[])是一个带有参数的函数,后面调用时也要给参数,如f3(t,m,s,ma)。
2、第三天要求完成数据统计及排序功能。
这次问题比较多:第一,要在基类及派生类中加入具有返回值的函数,如返回姓名、性别等,数据打印的时候也会用到。
第二,计算销售经理的工资时要先找到与其对应的销售员才可计算,还有,销售经理的工资要求用冒泡法进行排序,也要熟练掌握冒泡法。
第三,int money[4]={0,0,0,0}是对四个经理所对应的总销售额惊醒初始化为0,若不进行初始化,得到的是随机值。
要用setw(n)控制宽度,使表格对齐。
3、第四天完成程序输出显示及退出系统等操作,退出系统之前还要进行数据备份。
ofstream outfile;和outfile.open("小型公司工资管理系统.txt",ios::out);两句是完成备份的关键,第一句是定义ofstream类对象outfile,第二句是打开磁盘流文件。
备份时不能用cout,要用outfile,才能将文件备份成功。
因为循环设定的次数为100次,所以判断玩是否退出系统后,如果是退出系统,要用exit(0)结束。
4、总体的问题就是要注意符号的运用,不要把分好达成冒号,也不要漏加大括号,做到各方面的细心,才可以变出最好的程序。
四、运行结果五、程序使用说明1、看到菜单后,屏幕上有提示“请选择一个操作:”,用户首先输入1进行数据输入;2、输入1后,会逐项显示所要输入的成员信息,按顺序输入即可;3、数据输入完以后,会返回菜单由用户重新选择其他操作,包括数据统计,数据打印和数据备份,最后还有退出系统的选项;4、如果输入2,则进行数据统计,会在屏幕显示各个销售经理下属销售员的业绩,还有对销售经理按工资从高到低进行排序;5、如果输入3,则进行数据打印,屏幕会显示各类成员的基本信息,包括编号、姓名、性别、年龄、工资,销售员的还有其所属部门经理的编号;6、如果输入4,则进行数据备份,将打印出来的信息备份到系统指定的文件夹中;7、输入5就是退出系统,退出前可以循环操作,但有一定的次数限制,最好不要超过100次,一般情况够用;8、由于人数固定,所以数据输入时只能输入确定人数的信息,四名技术员,四名经理,八名销售员,四名销售经理;六、心得体会及课程改进设想通过对小型公司工资管理系统的C++程序编写,加强了我对C++功能的了解,对象与类之间关系的理解,同时也提高了上机实践能力,自主学习能力,错误分析能力……从实习前开始对实习进行构思,如老师所言,要全局考虑,而我也正因为编写前考虑不周全,在定义完类以后,很快把输入数据的函数编写出来了,上机操作也很成功。
可是到统计部分还有打印和备份部分就开始发现原写的程序有许多地方需要改动,或者增添新的成员或函数,比如统计数据时需要计算销售经理的工资并且排序,这就需要定义新的数组,新的函数来判断哪些销售员属于哪位销售经理,并按其工资从高到低排序。
还有打印数据时需要计算各类对象的工资,就得回头重新定义一些成员函数,而且由于成员都是保护类型的,类外不能直接访问,所以需要在类中定义具有返回类中各数据功能的函数。
这些都是数据输入时没有考虑到的。
所以说,全局统筹规划,有缜密的构思很重要。
当然,快速接受新事物的能力也是必备的,因为备份数据在课堂上未曾提及,就得自己通过网络查找相关信息,百度后才知道要添加<fstream>这个头文件,用outfile来进行数据备份,并用outfile.open(“”,ios::out)打开磁盘流文件。
还有如果需要退出系统,除了我用break跳出循环的方法外,也可以用exit(0)函数退出,只需增加一个<stblib.h>头文件。
这些知识都是自己查找相关信息分析才知道的,所以自学能力也很重要。
再者,由于程序编写过程中出现错误是常有的事,那么,分析错误的能力也就需要慢慢提高,因为错误提示都是英文,所以学好英语也很有必要。
错误往往是粗心或者语法不对,比如大括号少了或者多了或者放错了位置,少打分号了,输入法转换时符号输入不经意间改变了,或者一些函数没有声明,声明位置靠后了,由于程序较长,有时候搞不清在哪定义在哪调用了。