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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(职工工资管理系统设计-课程设计含源代码.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

职工工资管理系统设计-课程设计含源代码.doc

1、 设计题目 职工工资管理系统设计 xxx技术学院课程设计任务书 课程名称 《面向对象程序设计》课程设计 课程代码 设计题目 职工工资管理系统的设计 题目序号 设计时间 系(院) 班级 一、课程设计任务(条件)、具体技术参数(指标) 本课程设计是《面向对象程序设计》课程的后继教学环节,学好C++语言就必须坚持用面向对象的思维方式分析问题、解决问题,最好的方法是仿照教材编写C++实际应用程序。 根据教材中人事管理应用程序框架,在此基础上按要求完成以下实

2、际应用程序。 职工工资管理系统课程设计题目: 实现一个简单的工资管理系统。系统的主要功能是计算职工当月工资并存档。公司内有5种不同类型的职工:技术人员、销售人员、文秘、技术经理和销售经理,他们的工资计算方式各不相同。 技术人员的工资根据他当月工作的小时数来定,时薪35元;销售人员的工资则是根据本人当月销售额来确定,工资为销售额的5%;文秘有4000元的基本工资,奖金视为当月工作情况而定;技术经理和销售经理都有6000元的固定工资,技术经理的工作业绩可分为3个等级,每级可获得1000元奖金,销售经理的奖金由他所管理的销售员的销售业绩而定,总销售额的2% 职工工资管理系统的设计: 对于整

3、个系统的设计思路是,首先,由员工输入用户信息,包括编号、姓名和职务;然后,在计算某职工的当月工资时,系统先从已输入的职工信息文件中获取职工的工作类型,接着调用不同的处理程序进行计算;最后将结果存档。 从用户需求中,可以发现5种类型的职员都可以分别设计为一个类。首先,他们都属于雇员,因此可以设计一个基类employee(雇员),然后从中派生出technician(技术人员)类,salesman(销售人员)类、secretary(文秘)类。对于技术经理和销售经理来说,他们都属于经理,所以设计时可以从employee类中派生出一个manager(经理)类作为techmanager(技术经理)和sa

4、lesman(销售经理)类的父类。而经理类本身并不对应实际的员工类型,由于技术经理有技术人员和经理的双重特点,因此techmanager类同时继承technician类和manger类;销售经理有销售人员和经理的双重特点,因此salesmanager类同时继承salesman类和manager类。 根据用户需要employee类应该拥有的属性有:编号、姓名、职务、月份和工资。Employee类的服务可以包括info()、 search()、countSalary()、recordInfo()和recordSalary()。其中,info()函数用于接收用户输入的职工信息;search()函数

5、用来根据职工名查找职工信息;countSalary()函数为工资计算函数,但在基类中为空,原因是各类人员的工资计算方法不同,无法在基类中统一定义,必须在派生类中分别定义。recordInfo()函数和recordSalary()函数分别是职工信息和职工工资的记录函数,分别将信息存入文件info.txt和salary.txt。 具体的基类和派生类的定义如下图: 二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求) (1) 分析职工工资管理系统程序结构: 画出程序粗略的流程图和各个模块的详细流程图,每个功能模块用文字说明他们的功能(与对应流程图放在一起); (2)

6、对你已经实现的功能(修改的、新编写的)做详细的说明, 并附上流程图及程序清单。 (3) 自己对该职工工资管理系统的进一步设想; (4) 对于有设想但最终未实现的功能的大致编程思路的阐述; (5) 论述在设计过程中遇到的并且对你具有启发性的问题。 (6) 严禁抄袭,发现雷同,双方扣分。 三、课程设计工作进度计划: 周一、二:教师布置任务,讲解本课设模块。画出主程序粗略的流程图和各个模块的详细流程图。设计程序及调试程序。 周三、四:设计程序及调试程序。同时着手写报告。 周五:完成设计,提交报告,接受教师考评。 四、主要参考资料 (1)《面向对象程序设计》 ,郑莉,清华大学出

7、版社, (2)《面向对象程序设计C++语言》,朱战立等编 西安电子科技大学出版社 (3)《面向对象程序设计----Visual C++》,刘斌等编, 清华大学出版社 (4)《面向对象程序设计----C++语言描述》, Richard Johnsonbaugh(美)等著,蔡宇辉等译,机械工业出版社, 2003 目录 1 概述: 5 1.1 基本功能 5 1.2 拓展功能 5 2 课题分析 6 2.1 类的设计 6 2.2 类的实现 6 3 详细设计说明 7 3.1 程序主界面 7 3.2 方案 7 3.3 程序描述(输入input) 9 4

8、课程设计总结 12 5 软件使用说明 12 6 附录(参考文献,原代码:) 13 6.1 参考文献: 13 6.2 原代码 13 1 概述: 1.1 基本功能 实现一个简单的工资管理系统。系统的主要用来计算职工当月工资并存档。 由于公司内有5种不同类型的职工:技术人员、销售人员、文秘、技术经理和销售经理,他们的工资计算方式各不相同。所以,此系统的基本功能是: 首先,由员工输入用户信息(包括编号、姓名和职务;然后,计算某职工的当月工资(系统先从已输入的职工信息文件中获取职工的工作类型; 接着调用不同的处理程序进行计算); 最后,可以

9、选择将结果(所有员工的编号、姓名、职位、工资等信息)存档。 1.2 拓展功能 1.设定好5种职位各不相同的工资计算方式: 技术人员的工资根据他当月工作的小时数来定,时薪35元; 销售人员的工资则是根据本人当月销售额来确定,工资为销售额的5%; 文秘有4000元的基本工资,奖金视为当月工作情况而定; 技术经理和销售经理都有6000元的固定工资,技术经理的工作业绩可分为3个等级,PS:每级可获得1000元奖金(¥1000、¥2000、¥3000); 销售经理的奖金由他所管理的销售员的销售业绩而定,总销售额的2%。 2.添加某个职工信息的查询功能: 只要输入一个已经存在数据库

10、内的雇员名字,即可查到该雇员的编号、姓名、职位和工资的信息。 3.清屏功能: 为了保护雇员个人信息不外露。 4.警报功能: 在查询职员工资信息的时候,会发出警报音“滴——”的一声。 5.退出确定功能 退出程序时,会让用户再次确定是否真的要退出的界面。 2 课题分析 2.1 类的设计 从用户需求中,可以发现5种类型的职员都可以分别设计为一个类。首先,他们都属于雇员,因此可以设计一个基类employee(雇员),然后从中派生出technician(技术人员)类,salesman(销售人员)类、secretary(文秘)类、techmanager(技术经理)类和manager(

11、销售经理)类。 根据用户需要employee类应该拥有的属性有:编号、姓名、职务、月份和工资。Employee类的服务可以包括input(),print(),find(),save()。其中,input()函数用于接收用户输入的职工信息;print()函数用于输出用户输入的职工信息;find()函数用来根据职工名查找职工信息;save()函数为将职工信息写入文本。 由于各类人员的工资计算方法不同,无法在基类中统一定义,必须在派生类中分别定义。 2.2类的实现 class Technician:public Employee //技术员类(公有继承雇员类) { publi

12、c: Employee类 Techmanager类 Technician类 Manager类 Salesman类 Secretary类 void input() { cout<<"技术员的"; Employee::input(); cout<<"工作时间:"; cin>>worktime; } void print() { pay=worktime*hourpay; Employee::print(); } void find() { pay=worktime*hourpay;

13、 Employee::find(); } void save() { pay=worktime*hourpay; 其他类,类似形成。 Employee::save(); } protected: double worktime; //工作时间(小时) }; 3 详细设计说明 3.1 程序主界面 图表 1主菜单目录 输入用户信息,包括编号、姓名和职务 从已输入的职工信息文件中获取职工的工作类型 调用不同的处理程序进行查询,职员信息 将结果存档

14、 开始 开始 3.2 方案 在明确了整个程序基本的功能目的后,接着,便是思考如何具体实现: 问题1:存入的数据放在哪里? const int n1=1,n2=1,n3=1,n4=1,n5=1; /*定义公司各类职工人数(可修改) (n1:技术员人数;n2:经理人数;n3:销售员人数;n4:销售经理人数 )*/ 事先设定好可修改的全局变量。然后确定好全局对象数组。如此便可以按照所需存入员工信息 输入用户

15、信息,包括编号、姓名和职务 从已输入的职工信息文件中获取职工的信息 调用不同的处理程序进行查询,职员信息 将结果存档 开始 开始 问题2:如何程序要求,落实? 派生类 派生类 派生类 派生类 基类 派生类 问题3:怎样处理2个菜单关系?(输入职员信息菜单、目录菜单) 让目录菜单作为主菜单,输入职员信息的菜单成

16、为二级菜单。并运用清屏的功能,及时清除输入的职员信息,作为一种安全保护。 3.3 程序描述(输入input) * 由主菜单选择进入“1”的数据输入菜单,进行数据输入(进入二级菜单后会自动清屏)。 图表 2子菜单(程序中的menu 3) * 根据需要选择输入要输入的职员信息。(只需按照中文提示,依次输入英语或数字信息) 图表 3子菜单中选择输入技术经理信息的一个状态 * 一个职员的信息全部输入完成后,会自动清屏,回到“财务部门输入数据系统”主菜单 图表 4 子菜单 * 以此类推,随意输入你要输入的职员信息。若输入全部完成,可以回到主菜单

17、 * 然后,在主菜单中选择数据查询,可以根据你填入的职工姓名,查到他的所有信息 图表 5 由主菜单选择查询一操作时,反馈信息的状态 * 也可选择数据备份,会自动清屏。并让所有已输入过的职工信息,全打印在所在磁盘的一个txt文档里。 图表 6 由主菜单选择数据备份一操作后的状态 * 如果想要退出系统,可以选择主菜单的退出系统,选择过后,会清屏,显示以下界面,警告用户,是否真的要推出。 图表 7 选择主菜单退出系统一操作后的状态 4 课程设计总结 通过此次面向对象程序设计的实践课程学习,本人受益匪浅。 经过一系列的编程,本人更加体会到纸上得来终

18、觉浅,绝知此事要躬行。实践是检验真理的唯一标准。这两句话说的真切。 遇到的难关1. 在编写销售经理的类的时候,由于思维混乱,继承乱用,以致真个程序一片混乱,运行不出,且外加几十个错误警告。经过回顾自己先前写的流程图,本人得到了很大的顿悟。关系捋清楚了,思路也豁然开朗了,下笔如有神。 遇到的难关2. 五种职员在计算工资的时候,先前一直查询不到正确的工资数额。在反复检查、测试的过程中,才发现那些计算公式,继承没有问题,问题出在查询的那个函数忘记将重新计算工资的公式写上。所以一直显示的是employee的工资数,而不是各个职位员工的工资数。 遇到的难关3. 在增加清屏这一功能时,本以为这

19、很简单。可在具体操作时,才发现,这也考验一个人思维逻辑的严谨。曾设想,为了不泄密,将清屏这一函数放在查询函数后。结果没想到,这导致测试时:工资信息一显示,立刻被擦掉,根本来不及看的窘境。 存在的不足1. 本程序设计上还有明显的不妥,就是查询工资信息的时候,要求输入的仅仅为用户姓名。由于还是英语输入,难免有同名同姓的状况出现,容易混乱与出错,还需改进。 存在的不足2. 原本思路是将程序分为两个入口:管理员入口和职员入口。管理员入口:需要输入通行账户和密码。进入后,有两个功能——输入所有职工信息(编号、姓名、岗位、月份、业绩奖励等等基本信息)和数据备份。职员入口:则面向所有员工。进入后,只

20、有一个功能——根据自己的名字和编号查询自己的工资等信息。 可是由于实际精力有限,时间的不足。只能不分入口,直接将所有功能放在一个界面内——主菜单内。这样不能很好的起到原先设想的保护功能。实乃缺失。 总之,这不到一周的实践课,让本人的对于知识的应用能力有了显著的提升。本人也明白了,想要真正会编程,就要课后下功夫,多“实战”。这样的进步才更大。 5 软件使用说明 1.主菜单中,先输入1,按回车。进入输入数据职员的菜单界面。 2.按文字提示信息,依次输入5种职员的各个信息。 EG:编号 姓名 职位 101 zhao techmanager 202 qia

21、n technician 303 sun salesman 404 li manager 505 zhou secretary 3.输入完毕后,输入0,按回车。再次回到主菜单。 4.输入2,按回车。可以输入你想查看的职工姓名,按回车,查看其信息。 5.输入3,按回车。可以将所有职工的信息,做成文本。 6.输入0,按回车。可以通过输入y或n选择,是否退出程序。 友情提示:1.由于语言局限,输入的信息仅限26个字母和阿拉伯数字。 2.自动清屏是出于对雇员信息的保护和界面整洁。并非出错,请勿恐慌。 3

22、备份资料时,电脑发出的“滴”的警报声,只是提示用户,备份已完成。 6 附录(参考文献,原代码:) 6.1 参考文献: (1)《面向对象程序设计》 ,郑莉,清华大学出版社, (2)《面向对象程序设计C++语言》,朱战立等编 西安电子科技大学出版社 (3)《面向对象程序设计----Visual C++》,刘斌等编, 清华大学出版社 (4)《面向对象程序设计----C++语言描述》, Richard Johnsonbaugh(美)等著,蔡宇辉等译,机械工业出版社, 2003 6.2原代码 #include #include #in

23、clude #include #include using namespace std; //常变量(供修改用): const int n1=1,n2=1,n3=1,n4=1,n5=1; /*定义公司各类职工人数(可修改) (n1:技术员人数;n2:经理人数;n3:销售员人数;n4:销售经理人数 )*/ const double m_salary=6000; //经理固定月工资 const double hourpay=35;

24、 //技术员小时工资 const double basicpay=6000; //销售经理的底薪 const double secretarypay = 4000;//文秘的底薪 const double s_proportion=5.0/100; //销售员的工资提成比例 const double sm_proportion=2.0/100; //销售经理的提成比例 double sold_amount; //声明部分: void menu(); //主菜单(1/2/3/0) void menu3(); //数据打印

25、二级菜单(1/2/3/4/5/0) void data_input(); //数据输入函数 double sm_salary(); //销售经理工资计算 void data_find(); //数据查询 void data_save(); //数据备份(做到txt中) void clear(); ofstream outfile; //打开磁盘文件流对象 string f_name; //全局变量(查询用) //定义类: class Employee //雇员类(基类) {

26、 public: void input() //数据输入函数 { cout<<"编号:"; cin>>num; cout<<"其姓名:"; cin>>name; cout<<"职位:"; cin>>status; cout<<"月份:"; cin>>month; } void print() //打印数据函数 { cout<<" 编号\t姓名\t职位\t\t月份\t工资 "<

27、us<<"\t"<

28、ing name; //职工姓名 string status; //职工职位 int month; //工资月份 double pay; //职工工资 }; class Technician:public Employee //技术员类(公有继承) { public: void input() { cout<<"技术员的"; Employee::input(); cout<<"工作时间:"; cin>>worktime; } void print() { pay=

29、worktime*hourpay; Employee::print(); } void find() { pay=worktime*hourpay; Employee::find(); } void save() { pay=worktime*hourpay; Employee::save(); } protected: double worktime; //工作时间(小时) }; class Manager:public Employee //技术经

30、理类 { public: void input() { cout<<"技术经理的"; Employee::input(); cout<<"业绩奖励(输入金额数:1000、2000或3000):"; cin>>m_expay; } void print() { pay=m_salary+m_expay; Employee::print(); } void find() { pay=m_salary+m_expay; Employee::find(); } void save()

31、{ pay=m_salary+m_expay; Employee::save(); } protected: int m_expay; }; class Sell_Manager:public Employee //销售经理类 { public: void input() { cout<<"销售经理的"; Employee::input(); } int sm_number() //调用销售经理职工号 { return num; } string sm_name() //调用销

32、售经理姓名 { return name; } void print() { pay=basicpay+sold_amount*sm_proportion; cout<<" 编号\t姓名\t职位\t\t月份\t工资"<

33、<

34、yee::input(); cout<<"销售额:"; cin>>sold_amount; cout<<"所属销售经理的编号:"; cin>>nu; } void print() { pay=sold_amount*s_proportion; cout<

35、n nu; } double amount() //调用销售员销售额 { return sold_amount; } void find() { if(f_name==name) { cout<<" 编号\t姓名\t职位\t\t月份\t工资\t所属部门经理编号 "<

36、nth <<"\t"<>sy_expay; }

37、 void print() { pay=secretarypay+sy_expay; Employee::print(); } void find() { pay=secretarypay+sy_expay; Employee::find(); } void save() { pay=secretarypay+sy_expay; Employee::save(); } protected: int sy_expay; }; //定义全局对象数组 Technicia

38、n t[n1]; //技术员 Manager m[n2]; //经理 Seller s[n3]; //销售员 Sell_Manager sm[n4]; //销售经理(下属若干销售员) Secretary sy[n5]; //文秘 //主函数部分: int main() { char n; menu(); for(int i=0;i<1000;i++) //设定循环次数(便于各项操作的切换及方便查询) {cin>>n; switch(n) { case'1

39、': //数据输入 clear(); cout<>f_name; cout<

40、<"--正在查询,请等待--"<

41、况一览表如下:"<<'\n'<

42、 cin>>n; if(n=='y') { cout<<'\n'<<"--请按任意键退出系统--"<

43、 ★ 小型公司工资管理系统 ★ "<

44、并按回车键; │"<

45、 cout<<"│ 技术经理数据输入:1,并按回车键; │"<

46、<<" 请输入操作序号:"; } void data_input() //数据输入函数 { char p; int i; menu2(); for(int j=0;j<100;j++) { cin >> p; if(p=='0'){clear(); break;} else { switch(p) { case'1': clear(); for(i=0;i

47、l<<"-------------------------------------------------------"<

48、': clear(); for(i=0;i

49、"<

50、} double salary[n4]; double sm_salary() //销售经理工资计算 { int i,j;double a ;Sell_Manager b; for(int k=0;k

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服