您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > C程序设计企业工资管理系统
1、需求与功能分析22、系统总体框架33、模块设计与分析44、类的设计与分析45、特色算法分析56、功能测试97、存在的不足与对策138、程序源代码139、使用说明3010、参考文献30-1-1需求与功能分析企业工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。最初的工资统计和发放都是使用人工方式处理,工作量大的时候,出现错误的机率也随之升高,不仅花费财务人员大量的时间,而且往往由于抄写不慎,或者由于计算的疏忽,出现工资发放错误的现象。企业的工资管理是公司管理的一个重要内容。随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。同时工资的发放具有较强的时间限制,必须严格按照单位规定的时间完成计算和发放工作。正是企业工资管理的这种重复性、规律性、时间性,使得企业工资管理计算机化成为可能。企业工资管理系统就是使用电脑代替大量的人工统计和计算,完成众多企业工资信息的处理,同时使用电脑还可以安全地、完整地保存大量的企业工资记录。系统开发的主要目的就是要使企事业单位工资管理实现计算机管理,使管理员能够有序的管理每一位职工的各项工资条款的发放以及员工个人台帐的生成,使企业运用现代化技术创造更多更高的经济效益。这次的课程设计就是根据上面的一些需求而做的一个简单的企业员工工资管理系统,系统主要的功能有输入职工数据,显示职工工资,排序统计工资,查找职工工资,增加职工工资,删除职工工资,修改职工信息,保存职工信息等等。执行程序时,一开始是一个登陆界面,毕竟员工的工资管理不是谁都可以浏览和修改的,只有管理员或者经理等人才行!最后还有一个安全退出功能,当下一次再进入时所输入的数据还在。这个设计只是简单的模拟了一下公司的工资管理系统,其实还有很多方面功能不够齐全,希望能在以后一一完善!-2-2、系统总体框架-3-3、模块设计与分析该程序主要包括Information类和结构体student,几乎所有的函数都包括在Information类中。Information类在包括添加,删除,查找,修改职工信息功能等。4、类的设计与分析1.Information类类图如下:图2类图1.classInformation{public:Information();//构造函数.~Information();//析构函数.student*creat();//建立链表voidoutput(student*head);//显示职工信息intcount(student*head);//定义函数count()统计职工总数student*insert(student*head);//指针函数*insert()用来添加职工信息.student*cancel(student*head,longid);//指针函数*cancel()用来删除职工信息.student*find(student*head,longid);//指针函数*find()用来查找职工信息.student*modify(student*head,longid);//指针函数*modify()用来修改职工的信息.voidpaixu(student*head);//定义paixu()函数将职工的总额从大到小排列并输出voidaverage(student*head);//定义职工工资平均值的函数voidsave(student*head);//保存文件信息student*Read();//读取文件信息private:student*p1,*p2,*p3,*head,st;};结构体studentstudent*insert(student*head)student*cancel(student*head,longid)student*find(student*head,longid)student*modify(student*head,longid)student*Read()Information()~Information()output(student*head)paixu(student*head)结构体student的成员和指针函数average(student*head)save(student*head)Information类-4-名称属性说明Information()构造函数缺省的构造函数~Information()析构函数缺省的析造函数student*insert(student*head)指针函数*insert()用来添加职工信息student*cancel(student*head,longid)指针函数*cancel()用来删除职工信息student*find(student*head,longid)指针函数*find()用来查找职工信息student*modify(student*head,longid)指针函数*modify()用来修改职工的信息paixu(student*head)成员函数职工总额从大到小排并输出average(student*head)成员函数定义职工工资平均值的函数save(student*head)成员函数保存文件信息student*Read()指针函数*Read读取文件信息*p1,*p2,*p3,*head数据成员指针表1Information类说明表5、特色算法分析在函数或成员方法里找出你认为比较有特色的1~2个算法。1.Information类中的选择排序法方法功能:将职工的工资总额从大到小排列并输出算法思路:选择排序是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此类推,直到所有元素均排序完毕。流程图:-5-i,k,m=0m=count(head))kmp[k]=p1;p1=p1-next;k++k=0km-1J=k+1Jmp[k]-totalp[j]-totalp2=p[k];p[k]=p[j];p[j]=p2;J++i=0imk++输出结果i++结束Head!=NULL真假真真假真是假-6-代码:voidInformation::paixu(student*head){system(cls);inti,k,m=0,j;student*p[N];//定义一个指向structstudent的结构体指针数组pif(head!=NULL)//如果头指针是空则继续{m=count(head);cout------------------------------------------------------------------------------\n;cout*职工工资统计表*\n;cout------------------------------------------------------------------------------\n;cout|编号||姓名||性别||基本工资||加班工资||其他奖金||总额||名次|\n;cout------------------------------------------------------------------------------\n;p1=head;for(k=0;km;k++){p[k]=p1;p1=p1-next;}for(k=0;km-1;k++)//选择排序法for(j=k+1;jm;j++)if(p[k]-totalp[j]-total){p2=p[k];p[k]=p[j];p[j]=p2;}//从大到小排列的指针for(i=0;im;i++){coutsetw(6)p[i]-idsetw(8)p[i]-namesetw(9)p[i]-sexsetw(10)p[i]-paid[0]setw(10)p[i]-paid[1]setw(10)p[i]-paid[2]setw(10)p[i]-totalsetw(10)i+1endl;cout------------------------------------------------------------------------------\n;}}}//------------求各工资的平均值的函数voidInformation::average(student*head)-7-{intk,m;floatarg1=0,arg2=0,arg3=0;if(head==NULL)//如果头指针是空则继续{cout这是一个空表,请先输入职工信息!\n;}else{m=count(head);p1=head;for(k=0;km;k++){arg1+=p1-paid[0];arg2+=p1-paid[1];arg3+=p1-paid[2];p1=p1-next;}arg1/=m;arg2/=m;arg3/=m;cout*各项工资的平均值*\n;cout------------------------------------------------------------------------------\n;cout\t\t基本工资的平均值:setw(4)arg1\n\t\t加班工资的平均值:setw(4)arg2\n\t\t奖金的平均值:setw(4)arg3\n;cout------------------------------------------------------------------------------\n;}}-8-6、功能测试把若干功能的运行截图贴上来,并在图下注明图6-1登陆界面测试图图6-2登陆后主界面测试图-9-图6-3职工信息输入测试图图6-4职工信息读取测试图图6-5排序职工工资测试图-10-图6-6查找职工工资测试图图6-7增加职工工资测试图图6-8删除职工工资测试图-11-图6-9修改职工工资测试图图6-10安全退出系统测试图-12-7、存在的不足与对策由于本人编程水平有限等方面的原因,在此程序中,其功能比较有待改善,例如功能不够强大等,再加上自己的编程习惯不是很好,经常出现很多小错误,给学习的进程带了不小的困难,所以在以后的学习中要多编程,在学习中不断改进,不断的提高自己程序设计水平。8、程序源代码#includeiomanip#includeiostream#includefstream#includemalloc.h#includestdlib.h#includestring.h#defineNULL0intconstN=20;#defineLENsizeof(structstudent)usingnamespacestd;voidMenu();voidPass();intn=0;//定义一个全局变量统计职工人数//——---------定义一个职工信息的结构体structstudent{charname[N];//用来存放姓名charsex[N];//用来存放性别longid;//用来存放编号floatpaid[3];//用来存放工资inttotal;//用来存放总工资structstudent*next;};//--------------职工类classInformation{
本文标题:C程序设计企业工资管理系统
链接地址:https://www.777doc.com/doc-552803 .html