工资管理系统C++编程实验报告及工资管理系统需求分析_第1页
工资管理系统C++编程实验报告及工资管理系统需求分析_第2页
工资管理系统C++编程实验报告及工资管理系统需求分析_第3页
工资管理系统C++编程实验报告及工资管理系统需求分析_第4页
工资管理系统C++编程实验报告及工资管理系统需求分析_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE37——《C++程序设计》课程综合实习实习题目:工资管理系统系别:计算机系___专业:计算机与科学班级:姓名:学号:指导教师:日期:20**年12月27日_

目录一、课程实习的题目、任务与要求 21.课程实习的题目 22.课程实习内容 23.课程实习的要求 2二、系统分析 21.需求分析 22.系统性能要求 33.系统的功能分析 34.系统功能模块 35.模块框架图 3三、系统设计与实现 41.界面设计 42.功能设计与实现 4四、运行及测试结果 5五、总结 5六、参考资料 5附录:源程序 6

一、课程实习的题目、任务与要求1.课程实习的题目工资管理系统2.课程实习内容(1)存储的数据包括:员工号,姓名,基本工资,补贴金额,奖励金额,扣除金额、实发工资等)。实发工资=基本工资+补贴金额+奖励金额-扣除金额。(2)按职工号增加、删除、修改记录功能;(3)查询功能,包括按姓名、职工号查询;(4)排序功能,按指定的关键字(如职工号、姓名、实发工资)排序。3.课程实习的要求根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序来实现设计课程内容中的全部功能;设计主控模块程序,对给出的程序源代码要给出各部分的详细注释.自己根据能力及需要添加相应功能模块,增强模拟系统功能。包括系统的功能分析、系统的功能模块设计、程序流程图或结构框图、逻辑结构设计等。二、系统分析1.需求分析a.能对员工工资信息进行录入。b.能对员工工资信息进行增加。c.能对员工工资进行删除。d.能对员工工资进行修改。e.能对员工按实发工资,姓名,进行查询。f.能输出员工工资的所有数据。g.能对员工工资信息按实发工资、员工号进行排序。2.系统性能要求a.系统安全、可靠;b.功能齐全;c.操作方便、界面友好;d易于维护和扩充。3.系统的功能分析资料维护:系统维护包括对员工工资信息的录入操作及数据表中的信息进行浏览。系统功能:可以对数据表中的信息进行浏览。系统查询:可以对员工工资信息进行查询。4.系统功能模块员工查询系统有:工资信息录入、增加、删除、修改,数据查询,排序显示构成。5.模块框架图工资管理系统工资管理系统操作查询排序退出录入增加删除修改实发工资姓名按实发工资排序按员工好排序输出所有学生的成绩三、系统设计与实现1.界面设计程序运行后会出现一个简捷的窗口,便于用户查询数据。通过cout语句排列而成。2.功能设计与实现应用系统主控界面主要包括三大模块:记录编辑、记录查询、排序。记录编辑(1)数据录入数据录入是通过cin输入数据,然后用文件“工资表.txt”来作以储存。(2)增加员工数据增加员工数据是通过cin输入数据,然后用文件“工资表.txt”来作以储存。(3)删除员工数据删除员工数据是通过cin语句输入要删除的员工信息,然后使用if语句在“工作表1.txt”中寻找名字判断是否相等,最后在文件中删除。(4)修改员工数据修改员工数据是通过cin语句输入要修改的员工信息,然后使用if语句在“工作表1.txt”中寻找名字判断是否相等,再使用cin输入修改的信息,最后储存在文件中。如果寻找不到则输出“对不起,您要修改的学生不存在!请查证后输入!”。查询(1)按员工实发工资查询通过输入员工实发工资,在for循环语句中用if语句在“工作表1.txt”中寻找实发工资是否与输入的实发工资相等,如果相等就输出该员工信息,如果寻找不到就输出“对不起!您要查询的员工不存在!”。(2)按员工姓名查询通过输入员工姓名,在for循环语句中用if语句在“工作表1.txt”中寻找姓名是否与输入的员工姓名相等,如果相等就输出该员工的信息,如果寻找不到就输出“对不起!您要查询的员工不存在!”。(3)浏览所有员工工资信息直接输出“工作表1.txt”中的数据。排序(1)按实发工资排序先让实发工资数组赋给a[100],再通过双重for语句依次将a[n]小的调到前面,排序完后再通过双重for循环输出排序后的相关信息。(2)按员工号排序先让员工号数组赋给a[100],再通过双重for语句依次将a[n]小的调到前面,排序完后再通过双重for循环输出排序后的相关信息。在每个case中都有一个判断是否继续运行次case和一个是否进行其他操作。在case4/5/6/8/9开头都有一个判断语句,判断系统中是否有数据,没有数据则结束此case,有则继续执行下一条语句。四、运行及测试结果每一个case都能执行,但是有些的地方还都不够完善,例如:删除数据中,本来没有该员工信息,它也依然显示删除成功。五、总结此次C++程序设计课程综合实习,让我们学会了如何用C++编写一个简单的应用程序。首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握。理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。六、参考资料龚静李娟芳.C++语言程序设计.西安:西北工业大学出版社,2013.附录:源程序#include<iostream>#include<fstream>#include<string>#include<sstream>#include<iomanip>usingnamespacestd;classMoney{ stringname; floatWage,Subsidy,Reward,Deduct,SumWage; intnumber;public: Money(){}; Money(intnum,stringn,floatW,floatS,floatR,floatD); floatgetSumWage();//实发工资 friendvoidmain();};Money::Money(intnum,stringn,floatW,floatS,floatR,floatD){ number=num; name=n; Wage=W;//基本工资 Subsidy=S;//补贴工资 Reward=R;//奖励工资 Deduct=D;//扣除工资 }floatMoney::getSumWage(){ SumWage=Wage+Subsidy+Reward-Deduct; returnSumWage;}voidmain(){ system("color0a"); cout<<"*******************************************************************************"<<endl; cout<<"*******************************************************************************"<<endl; cout<<"*******************************************************************************"<<endl; cout<<"*******███████***欢迎来到工资管理系统***█████████*"<<endl; cout<<"*****█*****************请选择您需要的操作!***********█*********"<<endl; cout<<"***█*******************-操作:***********█*********"<<endl; cout<<"***█*******************(1)数据录入***********█*********"<<endl; cout<<"***█*******************(2)增加员工数据***********█*********"<<endl; cout<<"***█*******************(3)删除员工数据***********█*********"<<endl; cout<<"***█*******************(4)修改员工数据***********█*********"<<endl; cout<<"***█*******************-查询:***********█*********"<<endl; cout<<"***█*******************(5)按员工号查询***********█*********"<<endl; cout<<"***█*******************(6)按姓名查询***********█*********"<<endl; cout<<"***█*******************(7)浏览所有学生的数据***********█*********"<<endl; cout<<"***█*******************-排序:***********█*********"<<endl; cout<<"*****█*****************(8)按实发工资排序*****█****█*********"<<endl; cout<<"*******███████***(9)按员工号排序*******██***********"<<endl; cout<<"************************(0)退出**********************"<<endl; cout<<"*******************************************************************************"<<endl; cout<<"*******************************************************************************"<<endl;cout<<"请输入:"; intp=0;//全局变量,用于选择菜单时的输入 charw;//用于是否继续操作 Money*s[100]; ofstream*file[100]; inti=0;//用于录入的下标 intj=0; intchris1=0;//用于do-while语句 do { cin>>p; if(p>=0&&p<=9) { chris1=1; } else { cout<<"输入指令无效!请重新输入:"<<endl; } }while(chris1==0); do { switch(p) { case1://录入员工数据 { charc;//用于判断是否 intnumber; stringname; floatWage,Subsidy,Reward,Deduct,SumWage; do { cout<<"请输入员工号:"; cin>>number; cout<<"请输入员工姓名:"; cin>>name; cout<<"请输入员工基本工资:"; cin>>Wage; cout<<"请输入员工补贴工资:"; cin>>Subsidy; cout<<"请输入员工奖励工资:"; cin>>Reward; cout<<"请输入员工扣除工资:"; cin>>Deduct; SumWage=Wage+Subsidy+Reward-Deduct; fstreamoutfile,infile; outfile.open("工资表.txt",ios::out|ios::app);//用于显示录入的数据 if(!file) { cout<<"工资表.txtcannotopen.\n"; return; } outfile<<"员工号:"<<number<<"姓名:"<<name<<endl<<"基本工资:"<<Wage<<"补贴工资:"<<Subsidy<<"奖励工资:"<<Reward<<"扣除工资:"<<Deduct<<"实发工资:"<<SumWage<<endl; outfile.close(); infile.open("工资表.txt",ios::in); if(!file) { cout<<"工资表.txtcannotopen.\n"; return; } charch; while(infile.get(ch)) cout<<ch;//? cout<<endl; infile.close(); j++; s[i]=newMoney(number,name,Wage,Subsidy,Reward,Deduct); i++; cout<<"员工数据录入成功,想继续录入吗?(y/n)"<<endl; cin>>c; chris1=0; do { if(c!='y'&&c!='n') { cout<<"输入的指令无效!请重新输入!"<<endl; cin>>c; } else { chris1=1; } }while(chris1==0); }while(c=='y'); break; } case2://增加员工工资信息 { charc;//用于判断是否 intnumber; stringname; floatWage,Subsidy,Reward,Deduct,SumWage;do { cout<<"请输入增加的员工号:"; cin>>number; cout<<"请输入增加的员工姓名:"; cin>>name; cout<<"请输入增加的员工基本工资:"; cin>>Wage; cout<<"请输入增加的员工补贴工资:"; cin>>Subsidy; cout<<"请输入增加的员工奖励工资:"; cin>>Reward; cout<<"请输入增加的员工扣除工资:"; cin>>Deduct; SumWage=Wage+Subsidy+Reward-Deduct;fstreamoutfile,infile;outfile.open("工资表.txt",ios::out|ios::app);if(!file) { cout<<"工资表.txtcannotopen.\n";return; }outfile<<"员工号:"<<number<<"姓名:"<<name<<endl<<"基本工资:"<<Wage<<"补贴工资:"<<Subsidy<<"奖励工资:"<<Reward<<"扣除工资:"<<Deduct<<"实发工资:"<<SumWage<<endl;outfile.close();infile.open("工资表.txt",ios::in);if(!file) {cout<<"工资表.txtcannotopen.\n";return; }charh; while(infile.get(h)) { cout<<h; }cout<<endl;infile.close();j++;s[i]=newMoney(number,name,Wage,Subsidy,Reward,Deduct);i++;cout<<"员工数据增加成功,想继续录入吗(y/n)"<<endl;cin>>c;if(c!='y'&&c!='n') { cout<<"输入的指令无效!请重新输入!"<<endl;cin>>c; } }while(c=='y');break; } case3://删除员工资料 { charc;stringxingming,line,str,name; do {ifstreamfin("工资表.txt");fstreamoutfile("工资表.txt",ios::trunc|ios::out);//作一个文本文档在文件夹中用于显示所录入的数据cout<<"请输入您要删除的员工的姓名:";cin>>xingming; while(!fin.eof()) { getline(fin,line);istringstreamstream(line);name=line.substr(0,line.find("",0));//找到名字,判断是否相等if(name!=xingming) { outfile<<line<<endl; } }outfile.close();fin.close();fstreamf("工资表.txt",ios::trunc|ios::out);ifstreamoutf("工资表.txt");f<<outf.rdbuf();outf.close();f.close(); if(name!=xingming) { cout<<"该员工数据删除成功,想继续删除吗?(y/n)"<<endl; cin>>c; }if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl;cin>>c; } }while(c=='y');break; } case4://修改员工工资数据 { stringsname,line,str,name; intn; floatW,S,R,D,SW; intflag; charc; if(i==0) { cout<<"系统中没有输入数据,请先输入数据!"<<endl;break; } do { flag=0; cout<<"请输入您要修改的员工的姓名:"; cin>>name; fstreamfin("工资表.txt",ios::in); ofstreamoutfile("工资表.txt",ios::trunc|ios::out); cout<<endl; while(!fin.eof())//在文件中查找 { getline(fin,line); istringstreamstream(line); sname=line.substr(0,line.find("",0)); if(name!=sname) { outfile<<line<<endl; } elseflag=1; } fin.close(); if(flag=1) { cout<<"请输入修改的员工号:"; cin>>n; cout<<"请输入修改的员工姓名:"; cin>>name; cout<<"请输入修改的员工基本工资:"; cin>>W; cout<<"请输入修改的员工补贴工资:"; cin>>S; cout<<"请输入修改的员工奖励工资:"; cin>>R; cout<<"请输入修改的员工扣除工资:"; cin>>D; SW=W+S+R-D; cout<<endl; outfile<<"员工号:"<<n<<"姓名:"<<name<<endl<<"基本工资:"<<W<<"补贴工资:"<<S<<"奖励工资:"<<R<<"扣除工资:"<<D<<"实发工资:"<<SW<<endl; outfile.close(); fstreamoutf("工资表.txt",ios::trunc|ios::out); fstreaminf("工资表.txt",ios::in); outf<<inf.rdbuf()<<endl; outf.close(); inf.close(); } if(flag=0) { cout<<"对不起,您要修改的学生不存在!请查证后输入!"<<endl; } cout<<"想继续修改吗(y/n):"; cin>>c; cout<<endl; if(c!='y'&&c!='n') { cout<<"输入的指令无效!请重新输入!"<<endl<<""; cin>>c; } }while(c=='y'); break; } case5://按员工号查询 { intj=0; floatnum; charc; intflag; if(i==0) { cout<<"系统中没有输入数据,请先输入数据!"<<endl; break; } do { flag=0; cout<<"请输入您要查询的员工的员工号:"<<endl; cin>>num; for(intj=0;j<i;j++) { if(s[j]->number==num) { flag=1; cout<<"您要查询的员工是:"<<(*s[j]).name<<endl; cout<<"该员工的工资信息为:"<<endl; cout<<"员工号:"<<(*s[j]).number<<"姓名:"<<(*s[j]).name<<endl<<"基本工资:"<<(*s[j]).Wage<<"补贴工资:"<<(*s[j]).Subsidy<<"奖励工资:"<<(*s[j]).Reward<<"扣除工资:"<<(*s[j]).Deduct<<"实发工资:"<<(*s[j]).SumWage<<endl; } } if(flag==0)cout<<"对不起!您要查询的员工不存在!"<<endl; cout<<"是否继续查?(y/n):"; cin>>c; if(c!='y'&&c!='n') { cout<<"输入的指令无效!请重新输入!"<<endl; cin>>c; } }while(c=='y'); break; } case6://按姓名查询 { stringn; charc; intj=0; intflag; if(i==0) { cout<<"系统中没有输入数据,请先输入数据!"<<endl; break; } do { flag=0; cout<<"请输入要查询员工的名字:"<<endl; cin>>n; for(intj=0;j<i;j++) { if(s[j]->name==n) { flag=1; cout<<"您要查询的员工是:"<<(*s[j]).name<<endl; cout<<"该生的工资信息是:\n员工号:"<<(*s[j]).number<<endl<<"基本工资:"<<(*s[j]).Wage<<"补贴工资:"<<(*s[j]).Subsidy<<"奖励工资:"<<(*s[j]).Reward<<"扣除工资:"<<(*s[j]).Deduct<<"实发工资:"<<(*s[j]).SumWage<<endl; } } if(flag==0) { cout<<"对不起您要查询的员工不存在,请查证后再输入!"<<endl; } cout<<"您想继续查询吗?(y/n):"; cin>>c; if(c!='y'&&c!='n') { cout<<"输入的指令无效!请重新输入:"<<endl; cin>>c; } }while(c=='y'); break; } case7://浏览所有员工工资信息 { cout<<"所有员工数据如下:"<<endl; ifstreamfile;file.open("工资表.txt",ios::in); cout<<file.rdbuf(); file.close(); break; } case8://按实发工资排序 { if(i==0) { cout<<"系统中没有输入数据,请先输入数据!"<<endl; break; } inth,g,n; intj=0; floata[100],temp; for(g=0;g<i;g++) { a[j]=(*s[g]).getSumWage(); j++; }for(h=0;h<i;h++) { for(n=0;n<i-h;n++) if(a[n]>a[n+1]) { temp=a[n]; a[n]=a[n+1]; a[n+1]=temp; } } for(n=1;n<=i;n++) { for(intj=0;j<i;j++) { if(s[j]->getSumWage()==a[n]) { cout<<"实发工资排第"<<n<<"的员工是:"<<(*s[j]).name<<"实发工资:"<<(*s[j]).SumWage<<endl; } } } break; } case9://按员工号排序 { if(i==0) { cout<<"系统中没有输入数据,请先输入数据!"<<endl; break; } inth,g,n; intj=0; inta[100],temp; for(g=0;g<i;g++) { a[j]=(*s[g]).number; j++; }for(h=0;h<i;h++) { for(n=0;n<i-h;n++) if(a[n]>a[n+1]) { temp=a[n]; a[n]=a[n+1]; a[n+1]=temp; } } for(n=1;n<=i;n++) { for(intj=0;j<i;j++) { if(s[j]->number==a[n]) { cout<<"第"<<n<<"位员工是:"<<(*s[j]).name<<"员工号:"<<(*s[j]).number<<"实发工资:"<<(*s[j]).getSumWage()<<endl; } } } break; } case0: { exit(0); } } cout<<"您想继续进行其他操作吗?(y/n):";intflag=0; do { cin>>w;cout<<endl;if(w!='y'&&w!='n') cout<<"输入的指令无效!请重新输入!"<<endl;elseflag=1; }while(flag==0); if(w=='y') { cout<<"*******************************************************************************"<<endl; cout<<"*******************************************************************************"<<endl; cout<<"*******************************************************************************"<<endl; cout<<"*******███████***欢迎来到工资管理系统***████████***"<<endl; cout<<"*****█*****************请选择您需要的操作!***********█*********"<<endl; cout<<"***█*******************-操作:***********█*********"<<endl; cout<<"***█*******************(1)数据录入***********█*********"<<endl; cout<<"***█*******************(2)增加员工数据***********█*********"<<endl; cout<<"***█*******************(3)删除员工数据***********█*********"<<endl; cout<<"***█*******************(4)修改员工数据***********█*********"<<endl; cout<<"***█*******************-查询:***********█*********"<<endl; cout<<"***█*******************(5)按员工号查询***********█*********"<<endl; cout<<"***█*******************(6)按姓名查询***********█*********"<<endl; cout<<"***█*******************(7)浏览所有学生的数据***********█*********"<<endl; cout<<"***█*******************-排序:***********█*********"<<endl; cout<<"*****█*****************(8)按实发工资排序*****█****█*********"<<endl; cout<<"*******███████***(9)按员工号排序*******██***********"<<endl; cout<<"************************(0)退出**********************"<<endl; cout<<"*******************************************************************************"<<endl; cout<<"*******************************************************************************"<<endl; cin>>p; } }while(w=='y');}工资管理系统需求分析引言随着社会经济的迅速发展和科学技术的进步,以计算机和软件工程为基础的信息系统正是蓬勃发展的时期。企业工资管理系统的内容对于企业的管理者来说都至关重要,所以企业工资管理系统应该能够为用户提供充足的信息和快捷的查询手段。所以工资管理信息系统能够为高层领导者提供准确的人员信息,以便领导者了解企业各个部门的人员构成,计算好人力成本,安排好工作计划,使企业变的更高效,更具有生命力。因此,开发工资管理系统更具有一定的社会现实意义。1.业务概述1.1传统模式处理业务介绍在计算机诞生之前,人们对帐目的管理一直采用的是纸质材料记录,人工统计和计算。这样的管理不但费时费力,也容易产生计算上的错误和各种疏漏;随着时代的变迁,这种混乱的情形有所改善,但采取的依然是人工操作,工作量大的时候,出现错误的机率也随之升高。目前我国还有一部分企业停留在原始的人力管理职工工资的方式上,这样的机制既不能适应时代的发展,又不利于企业自身的发展,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。当今社会,资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分,因为企业每个月都要涉及发放企业员工工资的问题。而随着企业人员数量的增加,企业的工资管理也变得越来越复杂。企业员工的人数越多,工资的统计工作就越多,工资的发放困难就越大。如果能够实现工资管理的自动化,无疑将给企业管理部门带来很大的方便。传统的纸介材料的数据信息管理方式已经不适合现代企业公司的发展了,实现工资管理的系统化、规范化、自动化,将成为现代公司管理工资的首选。1.2现有信息系统应用情况不同的企业具有不同的工资管理制度,这就决定了不同的企业需要不同的工资管理系统。在目前市场上这些众多的程序开发工具中,有些强调语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了作用;相反,如果只强调语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的界面处理动作,也会严重地浪费程序设计师的宝贵时间。现在大中型企业信息管理系统中几乎都包括了工资管理模块.有些是作为企业财务系统中的一部分.这些根据规范的西方的管理制度设计的工资管理软件,在很多时候还不能解决具有中国特色的中小型企业的问题,本毕业设计的研究工作就是要为这些具有中国特色的中小型企业解决他们在工资管理方面的问题.能够设计一套中小型企业的工资管理系统特别有意义,并且是现有财务软件替代不了的。2.系统需求2.1系统总体需求本系统开发的主要目标就是要使企事业单位工资管理实现计算机管理,使管理员能够有序的管理每一位职工的各项工资条款的发放,以及企业工资的统计,使企业运用现代化技术创造更多更高的经济效益,在此基础上开发一个功能实用、界面美观、操作方便、实用性强的工资管理软件。实现本单位财务部门对工资发放的集中管理。可供财务人员对本单位的人员工资进行增加、删除、修改、查询、导入、导出文件、输出报表,并对系统的可登录人员进行管理,对工资发放中的应发工资合计、代扣个人所得税及个人实发工资等项目由系统自动进行计算;并拥有一些简单的使用工具方便操作人员使用,帮助系统能够知道系统的使用。同时本系统还可对工资发放情况进行多角度查询,能够按不同的条件进行查询,并打印出报表,还可以导出报表的EXCEL格式。2.2系统功能需求管理信息系统的管理过程就是对数据进行惧、存储、加工处理、传递,并产生信息的过程,因此数据是管理信息系统的灵魂。从而实现了数据的一致和共享,管理信息系统可以解决企业或组织所面临的问题。企业工资管理系统为企业提供工资计算,工资统计等服务;而且系统使用表格保存相关的工资信息,人性化的设计方便查询、浏览、修改等操作,并且检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。基本上能够满足现代企业工资管理的需求。针对系统服务对象的具体要求,设计了企业工资管理系统。企业工资管理系统主要有以下几大功能:⑴对系统进行管理,能够完成操作员信息添加、删除和修改,以及修改操作员的密码。⑵人员的管理,包括对员工信息、部门信息以及员工考勤信息的管理。并能对考勤信息进行多角度查询。⑶对工资进行设置,包括对员工职务工资设置、考勤工资设置、基本工资设置、保险设置、所得税设置和发银行设置。⑷工资管理,能够对部分变动工资的设置,结合工资设置的标准自动完成工资结算,并且生成工资表。还能够对工资进行多角度查询,如按时间段查询、按部门查询及按员工编号查询,根据查询方式的不同统计工资的总额。对于报表的管理可以打印报表和工资条,并且能导出工资报表的EXCEL格式。⑸数据管理,包括数据库的备份和还原。由用户自行选择备份的路径,数据还原方便快捷。⑹系统有记事本和计算器两个工具,方便操作员使用。⑺帮助功能,解决用户普遍存在的疑难问题,以及对系统的介绍。2.3系统性能需求作为数据库系统的开发企业工资管理系统是典型的信息管理系统(MIS),前台程序开发工具采用DELPHI7.0,该软件具有组件丰富,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,而且语言简单、使用方便功能强大从而有效的提高了应用程序的运行效率和可靠性。后台数据库采用目前比较流行微软公司SQL服务器数据库,数据容量大,稳定性高,能自动排除各类异常操作;严格的用户验证与权限控制,确保系统安全可靠,系统还提供了完善的数据备份与恢复功能,用得既方便又放心。在安全性、准确性、运行速度方面有绝对的优势,可以快速的开发窗口应用程序。2.4其他需求2.4.1安全性分析采用严格的用户验证与权限控制,用户需要通过身份验证才能进入本系统,进行工资的设置和管理,没有权限的用户不能够使用本系统,每个用户只能修改自己的密码,保密性很好,确保系统安全可靠。2.4.2健壮性分析系统基于性能优异的大型数据库系统(SQL服务器)设计,系统还提供了完善的数据备份与恢复功能。不会出现系统崩溃。3.系统数据库设计3.1系统数据分析图3.1E-R图3.2数据域定义数据表字典工资表(表名:工资表)表3.1用途记录员工的工资信息字段名类型长度键中文名备注年月Datatime8主键年月员工编号Varchar10主键员工编号基本工资Money8基本工资职务工资Money8职务工资医疗保险Money8医疗保险失业保险Money8失业保险养老保险Money8养老保险个人所得税Money8个人所得税生活补助Money8生活补助交通补助Money8交通补助电话费Money8电话费整装费Money8整装费加班费Money8加班费请假费Money8请假费迟到早退费Money8迟到早退费旷工费Money8旷工费其他金额Money8其他金额其他扣款Money8其他扣款应发工资Money8应发工资应扣工资Money8应扣工资实发工资Money8实发工资备注Varchar100备注相关表保险表,基本工资表,所得税表,考勤工资表,考勤表,职务工资表员工信息表(表名:员工信息表)表3.2用途记录员工的基本信息字段名类型长度键中文名备注员工编号Varchar10主键员工编号员工姓名Varchar10员工姓名性别Varchar10性别职务Varchar10职务部门名称Varchar10部门名称代发银行Varchar10代发银行银行帐号Varchar20银行帐号电话Varchar15电话相关表职务工资表,银行表,部门信息表考勤工资表(表名:考勤工资表)表3.3用途记录员工考勤工资标准的信息字段名类型长度键中文名备注一次加班费Money8一次加班费一次迟到早退费Money8一次迟到早退费一次旷工费Money8一次矿工费一次请假费Money8一次请假费相关表考勤表,工资表考勤

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论