欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    职工工资管理系统课程设计.doc

    • 资源ID:3784412       资源大小:211KB        全文页数:47页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    职工工资管理系统课程设计.doc

    课程设计 设计题目:工资管理系统 _班 级:软件12- 7 学 号:20122501801 学生姓名:迪力哈尔 设计地点(单位)_ 软件学院 指导教师评语: 该生能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;能够用C+语言进行小型模拟管理系统的设计和实现,和小组成员协作共同完成任务。其中独立设计实现了文件输入输出、程序的调试修改等模块,达到了课程设计的要求。成 绩:_ _ _ 教师签名:_田生伟_完成日期: 2013年7月12日 课程设计任务书设计题目:工资管理系统 学生姓名迪力哈尔课程名称面向对象程序设计(c+)课程设计专业班级软件工程12-7地 点创新实验室起止时间2013.7.2-2013.7.12设计内容及要求主要利用c+语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C+语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。设计参数文件记录的字段数量不少于6个,分类统计中统计的项不少于2个。进度要求1.布置设计题目,讲解要求和说明 2013.7.22.确定设计任务,确定具体的功能,熟悉相关知识 2013.7.33.按功能需求确定程序的主要模块 2013.7.7-7.74.编程实现程序的功能 2013.7.8-7.95.调试并完善程序 2013.7.106.撰写课程设计报告 2013.7.117. 提交课程设计报告并答辩 2013.7.12参考资料面向对象程序设计 清华大学出版社 2012年3月出版 2012年10月第七次印刷其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任:孙华 指导教师:田生伟 2013年7 月 12 日1 设计内容、任务及具体要求1.1设计内容工资管理查询系统主要根据课程设计要求进行设计,并了解了公司的职工的工资工作流程,该系统功能主要包括六大模块:1)职工个人说得税的计算模块,根据工资多余5000,税率5%,在10005000之间,税率3%,少余1000不交税三种情况进行计算。2)添加职工的工资信息模块,用户根据输入职工编号后,对工资信息进行录入。 3)职工工资查询模块,根据用户输入职工编号后,方可进行查询。4)职工工资修改模块,用户输入职工编号后,对以前的信息进行修改。5)数据输出模块,输出其相应的模块功能。6)职工工资统计模块,根据输入的职工信息进行统计。 1.2设计任务及具体要求主要利用c+的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C+语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。目录摘 要.51设计内容、任务及具体要求.61.1设计内容.61.2设计任务及具体要求.72概要设计.82.1该系统的功能简介.82.2 总体程序框图.82.3各个模块之间的主要关系.93系统功能模块的具体设计.103.1各个模块的程序流程图及运行界面.103.2对关键代码加以分析说明.154程序调试分析.455程序使用说明.456总结.46致谢.47参考文献.47附:源程序.15-44摘要工资管理系统是针对企业的工资管理业务进行计算机处理而开发的应用软件。该系统由系统维护、输入、查询、修改、输出、统计等子模块组成,功能基本涵盖普通企业的工资管理业务范围。企业应用本系统后,可以有效的提高工资管理水平。本文从需求分析、开发平台选择、系统模块建立、数据库设计、功能模块编程实现及软件测试等方面阐述了本应用系统的设计过程。为便于说明,文中绘制了程序结构框图、数据流程图和部分界面图。最后附有主要的源程序代码清单。 关键词:工资管理 系统维护 数据汇总 管理系统 软件开发 链表1、1设计内容工资管理查询系统主要根据课程设计要求进行设计,并了解了公司的职工的工资工作流程,该系统功能主要包括六大模块:(1)职工个人说得税的计算模块,根据工资多余5000,税率5%,在10005000之间,税率3%,少余1000不交税三种情况进行计算。(2)添加职工的工资信息模块,用户根据输入职工编号后,对工资信息进行录入。 (3)职工工资查询模块,根据用户输入职工编号后,方可进行查询。(4)职工工资修改模块,用户输入职工编号后,对以前的信息进行修改。(5)数据输出模块,输出其相应的模块功能。(6)职工工资统计模块,根据输入的职工信息进行统计。 1.2设计任务及具体要求主要利用c+的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。操作界面要符合用户的一般习惯,图形或文本界面都可以。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C+语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。2、概要设计2、1该系统的功能简介该系统的主要功能是实现职工的工资信息(职工基本工资、实发工资、津贴、岗贴、补贴、房帖、交通补贴、储蓄、汇费、水电费、税额等等)的录入、查询、修改、统计工资信息、删除个人信息、计算工人的个人所得税、并统计工人所有信息。2.2 总体程序框图 Main(职工工资管理系统)添加职工的工资信息计算个人所得税修改工人工资记录查询员工的工资信息统计员工的工资信息删除员工及其工资信息Main(职工 图2(2):主题函数Main() 函数很简单,但其实现依据于其上方类中的众多函数。2.3各个模块之间的主要关系该程序的功能主要是实现职工工资的录入,并对工资的相应信息进行个人所得税的计算。各个模块之间的关系是相互联系的。首先,主函数结构简单,但之前的类中包含了所有的子函数。工人结构体与信息类以及主函数是整个程序的核心。子函数之间也是有联系的,对个人所得税的计算、职工工资信息的修改、删除、查询、统计,必须是在职工工资录入的情况下进行的。因此对职工工资信息的录入是非常重要的。在职工工资的修改、删除、查询、统计与个人所得税所有的子函数之间是没有多大联系的。3系统功能模块的具体设计.3.1各个模块的程序流程图及运行界面定义变量char ch;n=0; while(TRUE)ch=getchar(); switch(ch)case '0': Read The File Information.;break; 读取文件信息case '1': Employee Data Input.;break; 输入职工工资信息case'2':DisplayTheWagesofWorkers;break显示职工工资信息case '3':OrderStatisticsofWages;break; 职工工资排序case '4': FindWorkers Wages.;break; 查找职工工资记录case 5': IncreaseinWages;break;加入职工工资记录case6:DeleteTheWagesofStaffAndWorkers;删除职工工资记录case '9': Safety exit system. ;退出系统default:cout("对不起,请重新选择!n");简单说明:该功能主要显示的是给用户一个进入界面,它主要的是显示该程序主要能够执行的有哪些功能。下面是显示给用户的界面。 (1)初始屏幕(图二)如下(系统正常运行的基础,源程序得以运行出现用户开始界面):(图(2)程序界面下方显示输入管理员名称,我们在此只需输入高应允即可进入密码输入阶段,而输入密码为20122501247.以后才会显示图(1)信息(图(1) (2)职工工资的输入与储存(实现第一个与第八个功能,以显示程序的正常运行情况):计算个人所得税float tgrsds(float m)定义变量:float sui1,sui2,sui3;float tmp;m>=5000假 真 计算工资大于等于5000时的个人所得税 1000=<m<5000?假 真计算工资在1000-5000之间个人所得税 M<1000假 真 不交税 不交税(3)职工工资排序:(4)查找职工工资信息(为了满足职工需求避免职工工资发放错误,以便及时准确的给职工进行确认与修改):(5)添加与删除职工工资信息(一个工厂大多时候会伴随有职工的加入与离开,这不得不要求我们的工资管理系统中要有一项精确严格的功能。)(表一)这个表为职工信息的添加(表二) 这个表为后来由于职工的辞职,而做的信息变更,删除职工信息后的表格(6)职工工资管理系统中职工工资的修改功能3.2对关键代码加以分析说明/->The Structure Definition An Employee Information.struct worker char nameN; /Used to Store The Name.char sexN; /Used to Store The Staff Position.long id; /Used to Store The Gender.float paid3; /Used to Store The Wage.int total; /Used to Store The Total Wagesstruct worker *next;结构体建立,职工结构体内含职工名字(字符型)、职工性别(字符型)、职工代码(长整形)、储存职工工资的数组(浮点型)、职工总工资(整形)、职工结构体链表指针。/*/->Wage Management System/The List of Program:#include <iomanip>#include <iostream>#include <fstream>#include <malloc.h>#include <stdlib.h>#include <string.h>#include<limits>#include<stdio.h>#include<conio.h>#define NULL 0int const N=20;#define LEN sizeof(struct worker)using namespace std; void Menu(); void Pass();int n=0; /Define A Global Variable Statistical Number of Employees./*/->Wage Management System/The List of Program:#include <iomanip>#include <iostream>#include <fstream>#include <malloc.h>#include <stdlib.h>#include <string.h>#include<limits>#include<stdio.h>#include<conio.h>#define NULL 0int const N=20;#define LEN sizeof(struct worker)using namespace std; void Menu(); void Pass();int n=0; /Define A Global Variable Statistical Number of Employees.程序的头文件信息/->The Worker Class.class Information public:Information() ; /Constructed Function. Information() ; /The Destructor. worker *creat(); /The Establishment of The List.void output(worker *head); /Display Information Workers.int count(worker *head); worker *insert(worker *head); worker *cancel(worker *head,long id); worker *find(worker *head,long id); worker *modify(worker *head,long id); void paixu(worker *head); void average(worker *head); void save(worker *head); /Save The File Information.worker *Read(); /Read The File Information.private:worker *p1,*p2,*p3,*head,st;信息类,这里有职工的内嵌信息由职工指针以及各种职工工资计算与职工的信息添加与显示函数,有职工工资储存函数、职工人数统计函数、职工及其工资信息构造函数、职工及其工资信息析构函数、删除职工工资与添加职工工资信息函数、修改职工工资与职工工资排序函数以及职工工资读取函数Information:Information() cout<<"*n"cout<<"-<< Welcome to Use The Wage Management System>>-n" cout<<"*n" 信息类中构造函数的实现。Information:Information() cout<<"*n"cout<<" <<Thank You for Welcoming to Use The Wage Management System>>n" cout<<"*n" 信息类中析构函数的实现。void zuozhe()cout<<"ntttTheauthoroftheprogram:nntttbanynntttTEL:15739576671" cout<<"nntttMade By VC6.0+nnttt July sixth 2013nnttt Press the <Enter> key to enter the login interface!" cout<<"nntttIf you need to operate on the original information, you select 0 reads the file information.n"<<endl;此段为程序的作者信息显示,在此无详细说明,也不包含在信息类中。worker *Information:creat(void) char chN;n=0; /Used to store the names of staff p1=p2=(worker *)malloc(LEN);cout<<" -<<Please Establish The Staff Information Table,The Name at The End of The Input to # Bond!>>-"<<endl;cout<<"Name:"cin>>ch;head=NULL; /The initial pointer to head Fuwhile (strcmp(ch,"#")!=0) p1=(worker *)malloc(LEN); strcpy(p1->name,ch); cout<<" Sex:" cin>>p1->sex; cout<<" Id:"/How to input format specification? cin>>p1->id;while(p1->id)<0|(p1->id)>100000) cin.clear() ;cin.ignore (1024,'n');cout<<" sorry for you to input error! Please re-enter 0100000 numerical: "cin>>p1->id; cout<<" Basic wage:"cin>>p1->paid0;while(p1->paid0)<0|(p1->paid0)>100000) cin.clear() ;cin.ignore (1024,'n');cout<<" sorry for you to input error! Please re-enter 0100000 numerical: "cin>>p1->paid0; cout<<" Overtime Wage:"cin>>p1->paid1;while(p1->paid1)<0|(p1->paid1)>100000) cin.clear() ;cin.ignore (1024,'n');cout<<" sorry for you to input error! Please re-enter 0100000 numerical: "cin>>p1->paid1; cout<<" Other Bonuses:"cin>>p1->paid2;while(p1->paid2)<0|(p1->paid2)>100000) cin.clear() ;cin.ignore (1024,'n');cout<<" sorry for you to input error! Please re-enter 0100000 numerical: "cin>>p1->paid2; p1->total=p1->paid0+p1->paid1+p1->paid2; /Calculate the total amountif(n=0)head=p1; else p2->next=p1; p2=p1; n+; /The number of employees n value plus 1.cout<<"n Name:"cin>>ch; /The stored input name into a character array Ch.p2->next=NULL;return (head); /->The Establishment of The List Information信息类中链表的总体信息函数,其内容详细具体而丰富。这也是程序完成的一个关键环节。void Information:output(worker *head) system("cls");if(head=NULL)cout<<" This Is An Empty Table, Please Enter The Information Workers!n"elsecout<<"-n" cout<<" *Salary Information Table*n" cout<<"-n" cout<<"|Id |Name| |Sex| |Basic wage| |Overtime wage| |other bonuses| |Total|n" cout<<"-n" p1=head; /The head pointer is assigned to p.docout<<p1->id<<setw(8)<<p1->name<<setw(12)<<p1->sex <<setw(12)<<p1->paid0 <<setw(12)<<p1->paid1 <<setw(12)<<p1->paid2 <<setw(12)<<p1->total<<endl;cout<<"-n" p1=p1->next; while(p1!=NULL); 信息类中输出类的实现,通过指针链表将信息按一定规范性打印出来,此函数的实现使程序功能进一步完善。int Information:count(struct worker *head) if(head=NULL)return(0);else return(1+count(head->next); /->Number of staff and workers in the statistical function. 职工人员的记录,用于记录公司内员工人数,以便于给工人分发工资。worker *Information:insert( worker *head) system("cls");cout<<"t-<<Please enter new information wages of staff and workers>>-n"<<endl;p1=(worker *)malloc(LEN); /使p1指向插入的新结点cout<<" Id:"cin>>p1->id;while(p1->id)<0|(p1->id)>100000)cin.clear() ;cin.ignore (1024,'n');cout<<" Sorry for you to input error! Please re-enter 0100000 numerical: "cin>>p1->id; /将输入的编号存放到p1所指结构体的数组id中 cout<<" Name:"cin>>p1->name; /将输入的姓名存放到结构体名为p1的数组name中cout<<" Sex:"cin>>p1->sex; cout<<" Basic wage:"cin>>p1->paid0;while(p1->paid0)<0|(p1->paid0)>100000)cin.clear() ;cin.ignore (1024,'n');cout<<" Sorry for you to input error! Please re-enter 0100000 numerical: "cin>>p1->paid0; /将输入的基本工资存放到p1所指结构体的数组paid中cout<<" Overtime wage:"cin>>p1->paid1;while(p1->paid1)<0|(p1->paid1)>100000)cin.clear() ;cin.ignore (1024,'n');cout<<" Sorry for you to input error! Please re-enter 0100000 numerical: "cin>>p1->paid1; /将输入的加班工资存放到p1所指结构体的数组paid中cout<<" other bonuses:"cin>>p1->paid2;while(p1->paid2)<0|(p1->paid2)>100000)cin.clear() ;cin.ignore (1024,'n');cout<<" Sorry for you to input error! Please re-enter 0100000 numerical: "cin>>p1->paid2; /将输入的其他奖金存放到p1所指结构体的数组paid中 p1->total=p1->paid0+p1->paid1+p1->paid2;/计算总工资 p2=head; /将头指针赋给p2if(head=NULL) /若没调用次函数以前的头指针head为空head=p1;p1->next=NULL; /则将p1赋给头指针head并将p1所指结构体成员指针next赋空值else while( p1->id > p2->id ) && (p2->next !=NULL )p3=p2; /p3指向原p2指向的结点p2=p2->next; /p2后移一个结点if(p1->id<=p2->id)if(head=p2)p1->next=head;head=p1; /插入到第一个结点之前else p3->next=p1;p1->next=p2; /插入到p3所指结点之后elsep2->next=p1;p1->next=NULL; /插入到尾结点之后n+; /将职工人数加1cout<<"t-<<You enter the employee information has been successfully inserted>>-"<<endl;return (head); /->Add the wage of staff function 信息类中添加工人工资的函数的实现,此函数的实现给工厂员工的流动提供了记录依据,员工流动给公司分发工资提供保障!worker *Information:cancel(worker *head,long id) system("cls");if(head=NULL) /若调用次函数以前的头指针head为空 return(head);elsep1=head; /否则将头指针赋给p1while(id!=p1->id&&p1->next!=NULL) p2=p1;p1=p1->next;

    注意事项

    本文(职工工资管理系统课程设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开