ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:265.12KB ,
资源ID:6719463      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6719463.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C工资管理系统设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C工资管理系统设计.docx

1、C工资管理系统设计C+语言程序设计课程设计(论文)题目: 工资管理系统 院(系): 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间: 课程设计(论文)任务及评语院(系): 教研室: 学 号 学生姓名 专业班级 课程设计(论文)题目工资管理系统课程设计(论文)任务程序设计的任务与要求:(1).掌握面向对象程序设计语言C+的基本语法(2).掌握C+面向对象设计的思想(3).掌握VC+与DEV C+ 开发工具的使用 (4). 运用标准C+规范设计应用程序设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。指导教师评语及成绩 成绩

2、: 指导教师签字: 年 月 日第1章 课程设计目的与要求 设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程C+语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。

3、(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握面向对象程序设计的方法。(6)熟练掌握C+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。实验环境硬件要求能运行Windows 操作系统的微机系统。C+语言应用程序开发软件使用:VC+ 系统,或其他C+语言应用程序开发软件。预备知识熟悉C+语言程序设计的基本知识及VC+编辑器的使用方法。设计要求1.仔细分析设计题目,画出程序流程图,编写程序源代码。2.积极上机调试源程序,增强编程技巧与调程能力。3.认真书写课程设计预习报告,课程设计说明书。4.遵守课程设计要求和机房管理制

4、度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。第2章 课程设计内容 课题描述工资总额预算管理,是指企业按照国家收入分配政策规定和出资人的调控要求,围绕企业发展战略目标,根据企业经济效益、人工成本承受能力和劳动力市场价位等因素,对企业职工工资总额和工资水平做出预算安排并进行规范管理的活动。国家为了保障低收入职工家庭的基本生活,规定特大城市人均生活费收入每日不超过五十元者,大中城市不超过四十五元者,小城市和县镇不超过四十元者可予困难补助。在社会主义公有制条件下,工资除了具膏按劳分配的经济职能外,还具有调节社会成员之间的利益关系,促进社会安定团结的社会职能。对低收入职工家庭国家采取保障

5、其基本生活的措施,体现了社会主义制度的优越性,促进了社会的稳定,在当前条件下是完全必要的。工资的职能不是单一的,而是多元的。这一点已被越来越多的人所认识。职能是规律的外观,多元职能是多个经济规律共同作用的结果。多元经济导致多元工资,伴随着这一必备诉求,劳动者还会以企业未足额支付加班工资为由提出解除劳动关系并要求企业支付解除劳动关系的金。这造成了近期的劳动关系较之以往具有更大的不稳定性,在一定程度上影响了相关行业的可持续发展。究其原因,主要是在加工制造行业,长期普遍存在着企业未依法定标准及时足额支付加班工资的情况,以及司法政策对工资保护期间的延长。针对目前的情况,企业除了妥善处理好当下的问题,包

6、括基本工资、补贴工资、奖励工资、扣除工资等方式,从根本上完善工资核算和发放制度,避免以后爆发更大规模的纠纷。激励员工付出较高程度的努力的方法之一是实行严密的监督。严密的监督需要高成本。根据工资绩效支付工资问题,激励性工资方案面临问题,所有的工资体系都必须能够满足企业和员工双方的愿望,绩效工资应当是建立在能够将员工的努力和企业的目标很好结合起来的一系列措施基础之上的。但是由于基类employee中使用了虚函数,用基类的指针数组来处理不同的派生类对象时,通过指针访问的便是派生类的成员函数,所以主函数中可以用循环结构,在循环体中用统一的形式调用不同派生类的成员函数,所以主函数中可以用循环结构,系统要

7、求能够添加职工的信息工能,也就是当有新的职工加入时可以记录在系统内。在循环体中用统一的形式调用不同派生类对象的成员函数,来完成不同功能基本工资、补贴工资、奖金工资、扣除工资、实发工资,硬件要求能运行Windows 操作系统的微机系统。C+语言应用程序开发软件使用VC+ 系统,或其他C+语言应用程序开发软件。 系统设计2.2.1功能分析本系统要求有如下几种功能:1)本系统要求能够添加职工的信息工能,也就是当有新的职工加入时可以记录在系统内。2)本系统在这个功能在输入职工号之后,能够有基本工资、补贴工资、奖励工资、扣除工资的功能。3)本系统要求有查询职工信息功能,我们在操作系统上可以看到所有职工的

8、信息,并且可以查询,输入相应的职工号即可。4)本系统有添加新职工信息及查询的功能,输入相应的职工号即可。5)本系统要求有输出职工信息功能,可以把相应的职工工资信息输出以便查询。6)本系统要求有退出功能,即退出系统的方法。2.2.2面向对象设计1.类设计 以一个小型公司的人员信息管理程序为例,用基类的指针数组来处理不同派生类对象,从而实现了多态性调用,使用动态数组类模来代替C+预定义的数组类型也可以完成同样的功能,在本实验中的类employee中,我们采用了指针形式进行传递,在主函数中,通过传递方式将数据保存到相应的对象中,通过程序的运行得出,每个职员的月薪需要进行单独的输入,而后根据每个职员的

9、每种实际情况而输入月薪计算,包括之原应该具有的基本月薪、补贴基金、本系统采用了多文件的设计结构,采用了文件,分别为:iostream、string、fstream、vector使用文件。在main()函数中,建立了不同类的对象,对它们进行了类似的操作,应用需函数和抽象函数类对该程序进行改变,解决程序不够简洁的不足,只是在基类employee中将manager()设计为纯需函数,这样,在主函数中便可以依据类型兼容规则用具类employee类型的指针数组来处理不同派生类的对象,当用基类指针调用需函数时,系统会执行指针所指的对象的成员的函数。设计类是系统实施中一个或多个类的抽象;设计类所对应的对象取

10、决于实施语言。例如,在面向对象的语言(如 C+)中,它可以对应一个普通类。操作可见性分为以下几种:(1)不可访问的成员:从基类私有继承而来的,派生类或是建立派生类对象的模块都没有办法访问到它们,如果从派生类继续派生新类,也是无法访问的。(2)公有成员:派生类、建立派生类的模块都可以访问,继续派生,可能是新派生类中的私有、保护、共有成员。 (3)保护成员:可能是新增也可能是从积累继承过来的,派生类北部成员可以访问,建立派生类对象的模块无法访问,进一步派生,在新的派生类中可能为私有成员或者保护成员。(4)私有成员:包块从基类继承过来的成员以及新增加的成员,在派生类内部可以访问,但是建立派生类对象的

11、模块中无法访问,继续派生,就变成了新的派生类中的不可访问成员。我们将应用静态数据成员具有静态生存去的性质来处理本课程设计中职员编号数据成员,其功能为在类employee中增加一个静态数据成员来设置本公司职员编号目前最大值,新增加的人员编号将在创建对象的同时自动在当前最大值基础上增加,从而减少了调用成员函数的麻烦。本系统在算法方面采用了类的概念,其中有类的定义,类的构造函数的定义,析构函数的定义,类的初始化模版。manager作为employee的虚基类来继承,因此在最远派生类中,从不同途径继承来的基类的成员只有一份拷贝,避免了信息的复杂化,基类employee中生命这个函数的目的只是为了整个类

12、族规定的对外接口功能。由于各个派生类的特点不同,employee类中的这个函数并不能适用于派生类,于是派生类必须声明适用于本类的同名函数隐藏基类的函数。本课程设计套用了C+系统自带的模版,减轻了自定义模版的繁琐操作。派生类可以从多个基类继承,也就是多重继承。通过继承,派生类自动得到了除基类私有成员以外的其它所有数据成员和成员函数,在派生类中可以直接访问,从而实现了代码的复用。2. UML类图:图 系统的UML类图3.总体流程图图总体流程图2.2.2类成员描述类(1) dataManager类数据成员描述:dataManager类中定义了private类型的 void Input();void

13、Search();void Stat(); EmployeeData Find(int id) const; void Append(EmployeeData entry); void Save() const;void Load();vector entries;(2) dataManager类中的函数成员public:DataManager()();DataManager()(); void DisplayMenu();通过void DataManager:Input()和void DataManager:Search()实现了输入员工的工资信息和入员工的职工号通过void DataMan

14、ager:Stat()函数成员实现对员工个人工资的补贴扣除等等。2EmployeeData类(1)定义了数据成员 private类型的: int id; string name; float salary; float allowance;float bonus;float deduction;(2) EmployeeData中的函数成员mployeeData():id(0),name(),salary,allowance,bonus,deductionvoid Input();void Print();void Save() const;void Load(ifstream& fin);in

15、line int Id() constreturn id;inline string Name() constreturn name;inline float Salary() constreturn salary;inline float Allowance() constreturn allowance;inline float Bonus() constreturn bonus;inline float Deduction() constreturn deduction;inline float NetPay() constreturn (salary+allowance+bonus-d

16、eduction);void EmployeeData:Input()函数成员的功能是显示查询工资的界面。void EmployeeData:Print()函数成员的功能实现了输出的查询结果。程序实现2.3.1源码分析1.头说明#include#include#include#includeusing namespace std;(1) #includeiostream实际上是一个头文件, 包含的基本功能和对应的旧头文件相同,但头文件的内容在名字空间std中。(在标准化的过程中,库中有些部分的细节被修改了,所以旧头文件和新头文件中的实体不一定完全对应。)(2) #include就是在程序中加入

17、#include 就可以使用这个头文件里包含的库函数,而这些函数都是处理字符串的。(3) #includefstream是一个头文件的名字,属于c+的,主要包含文件操作的类和方法。(4) #include这个头文件包含了一些比较杂类的库函数,比如 system 等,其他头文件中的函数类型很单一,但是这个头文件不是,混合了多种类型的函数集合。(5) using namespace std;所谓namespace,是指标识符的各种可见范围。C标准程序库中的所有标识符都被定义于一个名为std的命名空间内。2.局部功能说明(1)添加工资记录using namespace std;const char*

18、 filename = ;class EmployeeDatapublic: EmployeeData():id(0),name(),salary,allowance,bonus,deduction void Input();void Print();void Save() const;void Load(ifstream& fin); inline int Id() constreturn id; inline string Name() constreturn name; inline float Salary() constreturn salary; inline float Allo

19、wance() constreturn allowance; inline float Bonus() constreturn bonus; inline float Deduction() constreturn deduction; inline float NetPay() constreturn (salary+allowance+bonus-deduction);private: int id; string name; float salary; float allowance; float bonus;float deduction;void EmployeeData:Input

20、()cout id; cout name; cout salary; cout allowance; cout bonus; cout deduction;void EmployeeData:Print()cout职工号: t idendl; cout姓名: t nameendl; cout基本工资:t salaryendl; cout补贴金额:t allowanceendl; cout奖励金额:t bonusendl; cout扣除金额:t deductionendl; cout实发金额:t NetPay()endl;void EmployeeData:Save() constofstrea

21、m fout; (filename, ios:app); fout id t namet salaryt allowancet bonust deductiont NetPay() id name salary allowance bonus deduction netpay;();class DataManagerpublic: DataManager()(); DataManager()(); void DisplayMenu();private: void Input();void Search();void Stat(); EmployeeData Find(int id) const

22、; void Append(EmployeeData entry); void Save() const;void Load();private:vector entries;void DataManager:Input()cout 职工信息录入n请输入员工信息endl; EmployeeData entry;();Append(entry);cout endl;void DataManager:Search()cout 信息查询n请输入员工的职工号: id;EmployeeData found=Find(id); if() = 0 & ()=) cout 无此员工号: id endl; el

23、se ();cout endl;(3)工资统计void DataManager:Stat()float s;float a;float b;float d;float p; unsigned int count(); for(unsigned int i(0);icount;i+) s+=(i).Salary(); a+=(i).Allowance(); b+=(i).Bonus(); d+=(i).Deduction(); p+=(i).NetPay(); cout tt总金额t平均金额endl; cout -endl; cout 基本工资tsts/countendl; cout 补贴金额t

24、ata/countendl; cout 奖励金额tbtb/countendl; cout 扣除金额tdtd/countendl; cout 实发工资tptp/countendl; cout endl;EmployeeData DataManager:Find(int id) constEmployeeData res; for(unsigned int i(0);i count;(); for(unsigned int i(0);icount;i+) EmployeeData entry;(fin);Append(entry);(); (4)主函数void DataManager:Displa

25、yMenu()int opt(0);Load(); docout 1.职工信息录入endl; cout 2.信息查询endl; cout 3.工资统计endl; cout 4.退出 opt; switch(opt) case 1:Input();Save();break; case 2:Search();break; case 3:Stat();break; while (opt!=4);int main() DataManager dm; ();return 0; 2.3.2运行结果图编译无误后运行界面图 运行后输入数据图 运行后输入数据图 运行后输入数据第3章 总结这次C+课设做的是工资管

26、理系统,在这次课设中我学到了许多书本上没有的知识我们首先很好的复习和巩固了自己所学的知识,提升了我们的实际操作能力。在这次实训中,我们学会了如何运用面向对象程序设计的思想,用C+语言编写代码,去设计程序。在课设设计的过程中我认识到必须细致地设计程序中的每一个细节,准确的考虑程序运行时每一刻发生的事情。在课程设计过程中我也遇到了一些问题:1.在数据输入时,没有考虑到工资实际的情况,导致程序不完善。2.运行时有许多我们没有加以限制的条件,导致出入不符合情况使程序出现死循环。3.我们对程序的界面加以改观,使运行界面更加美丽。但是通过查阅资料和请教老师和同学,终于解决了问题,使程序可以准确的运行出来。

27、这次课设使我对C+这门基础语言有了一定的了解,这些知识对我在今后的学习方面有很大的帮助,在这过程中不仅掌握了C+语言的编译方法,同时也了解到了在编译过程中应该注意的一些问题及其解决办法,为自己今后在其他语言的学习上做了很好的准备。有了这些知识为基础我相信自己以后的学习将变得更加容易。我深深体会到只是需要实践的重要性,通过实践我们进一步发现自己的不足,欠缺,进而知道我们怎样深化理解,真正吸收所学的知识。在这个过程中我们还了解了很多原本陌生的知识。我们深刻体会出学习C+我们还有很长的路要走,相信只要我们继续努力,多加练习,一定会更加出色。在这个课程设计过程中,所学的专业知识有了一个较系统的综合,并对其中的许多问题进行了重新学习和加深理解,为将来实际工作的需要奠定了坚实的基础。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程。”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。这次课程设计真是让我受益匪浅。参考文献1.谭浩强 编著C+面向对象程序北京:清华大学出版社2.李海文 编著C+程序设计实践教程北京:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1