您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 南邮通达--简单的工资管理系统
程序设计报告(2013/2014学年第1学期)题目:模拟工资管理系统专业:计算机科学与技术学生姓名:班级学号:指导教师:指导单位:南京邮电大学通达学院日期:2013年12月9日评分细则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简短评语教师签名:年月日评分等级备注评分等级有五种:优秀、良好、中等、及格、不及格模拟工资管理系统一课题内容和要求工资管理系统是一个单位最基本的一项财务管理,该系统要求实现查找,修改,删除,统计,排序等。所以帐务数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件,数组,指针的各项操作,以及一些基本算法思想的应用。基本要求:管理员:1)以密码系统登录2)录入员工信息具体工资,计算相应的税金(计算规则参见最新公布的政策)3)查询并显示所有员工具体信息4)显示统计信息:员工数目,工资总数和税金总数5)按照指定条件查询6)增减具体员工记录税金政策基本是不同收入等级的工资使用不同的比例收取税金。类似于下表:工资税金0~15000%(超出部分)1500~250010%(超出部分)2500~350015%(超出部分)3500~500020%(超出部分)5000~1000030%(超出部分)10000~40%(超出部分)员工:1)以工号为登录ID,密码自己设定;2)可以查询本人的相关信息;3)系统提供指定时间间隔的查询功能。二需求分析工资管理系统的功能框架图如图1所示。图一(功能框架图)(1)根据工资管理系统的要求,设计合适的数据结构。(2)选择文件存储格式(文本或是二进制)和文件名。(3)采用自顶向下的设计方法,设计系统的总体模块组成和数据结构。(4)对于每项操作,设计一个函数(方法、子模块)进行实现,要明确定义函数类型。(5)根据设计结果分布开发实现各模块,最后进行总体集成。三、概要设计1主要结构体classworker{public:worker()添加查找修改删除显示排序显示退出工资管理系统保存{}voidshow();//职工信息显示~worker(){}doubleGetTax();//获取缴税doubleGetAccumPay();//获取实发工资friendclassWorkerList;private:stringnum,name,sex,edu,address,tel;//姓名,性别,教育程度,住址,电话intage,salary,A;//年龄,薪水,税金};classWorkerList{private:workerw[N];intNUM;//用来计算职工数目intcount;//用来暂时记录当前操作第几个职工public:voidadd();//职工信息录入voidsort();//职工信息排序voidsearch();//职工信息查找voiddele();//职工信息删除voidmodify();//职工信息修改voidsave();//职工信息以文件形式保存voidshowworker();//显示职工信息在屏幕上voidread();WorkerList(){NUM=0;count=0;}};2主要函数流程图(1)登录函数(如图二所示)NYYN图二(登录函数图)(2)职工信息录入如图三所示能否登录能否登录进入系统开始管理员用户请输入密码请输入密码图三(录入函数)(3)职工信息查找(如图四所示)添加新员工信息请输入要添加的员工人数姓名工号年龄工资电话地址性别学历查询员工请选择查询方式工号姓名工资学历请输入待查询的员工的工号请输入待查询的员工的姓名请输入待查询的员工的工资请输入待查询的员工的学历所查询的员工信息图四(查找函数)(4)职工信息统计(如图五所示)图五(统计函数)(5)职工信息修改(如图六所示)打印员工信息所以员工信息列表按任意键返回按任意键返回图六(修改函数)(6)职工信息删除(如图七所示)请输入数字21学历2电话3姓名4工号5工资6年龄7地址8性别输入您要修改的学历输入您要修改的的电话输入您要修改的姓名输入您要修改的工号输入您要修改的工资输入您要修改的年龄输入您要修改的地址输入您要修改的性别修改信息已保存现返回主菜单图七(删除函数)(7)职工信息保存(如图八所示)图八显示所删除职工信息确认请输入Y返回菜单请输入N请输入数字3请输入要删除职工的工号职工信息保存请输入数字编号文件正在保存。。请稍候数据保存成功系统返回主菜单(8)职工信息排序(如图九所示)图九四.源代码#includeiostream#includestring#includefstream#includestdlib.h#includecstdlib#includeconio.husingnamespacestd;#defineN100//N作为最大职工总数intf=0;//f作为开关stringp;//p作为接收菜单选项的字符串interror=0;voidmenu();//显示菜单classworker{public:worker(){}职工信息排序按工号排序(升序)按工号排序(升序)按工号排序(升序)按工号排序(升序)按工号排序(升序)按工号排序(升序)按工号排序(升序)请选择数字编号voidshow();//职工信息显示~worker(){}doubleGetTax();//获取缴税doubleGetAccumPay();//获取实发工资friendclassWorkerList;private:stringnum,name,sex,edu,address,tel;//姓名,性别,教育程度,住址,电话intage,salary,A;//年龄,薪水,税金};classWorkerList{private:workerw[N];intNUM;//用来计算职工数目intcount;//用来暂时记录当前操作第几个职工public:voidadd();//职工信息录入voidsort();//职工信息排序voidsearch();//职工信息查找voiddele();//职工信息删除voidmodify();//职工信息修改voidsave();//职工信息以文件形式保存voidshowworker();//显示职工信息在屏幕上voidread();WorkerList(){NUM=0;count=0;}};doubleworker::GetTax()//缴税{if(salary=1500){returnA==0;}elseif(salary=2500){returnA=(salary-1500)*10/100;}elseif(salary=3500){returnA=(salary-2500)*15/100+100;}elseif(salary=5000){returnA=(salary-3500)*20/100+100+150;}elseif(salary=10000){returnA=(salary-5000)*30/100+100+150+300;}elseif(salary10000){returnA=(salary-10000)*40/100+100+150+300+1500;}}doubleworker::GetAccumPay(){returnsalary-A;}//登陆函数voidlogin(){system(cls);cout\n\n*************************************************endl;cout**请选择您所需要的模式**endl;cout**1.管理员模式**endl;cout**2.用户模式**endl;cout*************************************************endl;}voidmenu(){coutendl;cout**************************************************************endl;cout****endl;cout**===欢迎使用南京邮电大学职工工资管理系统===**endl;cout****endl;cout**1.职工信息添加**endl;cout**2.职工信息修改**endl;cout**3.职工信息删除**endl;cout**4.职工信息排序**endl;cout**5.职工信息查找**endl;cout**6.职工信息显示**endl;cout**7.职工信息保存**endl;cout**8.职工信息查看**endl;cout**0.退出**endl;cout****endl;cout**************************************************************endl;coutendl;}voidmenu1(){coutendl;cout**************************************************************endl;cout****endl;cout**===欢迎使用南京邮电大学职工工资管理系统===**endl;cout****endl;cout**1.职工信息查找**endl;cout**0.退出**endl;cout****endl;cout**************************************************************endl;coutendl;}voiddomain()//主菜单函数实现{charpa[20];intabcd;charbefore;WorkerListwl;inta;cout请输入选择:;cina;switch(a){case1:cout请输入密码:;intj;for(j=0;j10;j++){before=getch();if(before==13){pa[j]='\0';break;}if(before==8){before=getchar();}else{pa[j]=before;cout'*';}}if(strcmp(pa,123)==0||strcmp(pa,456)==0){cout\n登录成功,祝您工作顺利,心情愉快!endl;}else{do{error++;if(error==3){coutendl;cout\n**************************************************endl;cout**密码错误,系统自动退出,请稍后重新登录**endl;cout**************************************************endl;for(abcd=1;abcd=100000000;abcd++){}exit(1);}cout\n密码错误!请重新输入endl;for(abcd=1;abcd=100000000;abcd++){}login();}while(error3);}while(1){system(cls);menu();cout请选择数字编号0~8endl;inti1;cini1;while(!(i1=0&&i1=8)){cout输入有误,请重新输入:endl;cini1;}switch(i1){case1:wl.add();//添加break;case2:wl.modify();//修改break
本文标题:南邮通达--简单的工资管理系统
链接地址:https://www.777doc.com/doc-1016236 .html