欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c++工资系统.doc

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

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

    c++工资系统.doc

    -作者xxxx-日期xxxxC+工资管理系统【精品文档】某大学 面向对象程序设计 课程设计报告书题目: 工资管理系统(C+) 院 系: 软件学院 专 业: 软件工程 班 级: 姓 名: 学 号: 课设时间: 2016.12.22 指导教师: 二一六年十二月面向对象程序设计课程设计报告书员工工资管理系统一、设计要求用类函数和派生类来计算某公司雇员的工资,通过多层派生和多重派生来实现对不同工资级别的工资管理。编辑实现工资管理。特别注意pay()的定义和调用方法使用运行时多态。编写程序提示用户输入employee类的共有数据,再提醒用户输入工资类型来区分工资级别不同的类的特有数据。最后通过pay()函数来计算各种数据,用Print函数输出。二、设计目的(1)、将课本上的理论知识运用于实践,通过实际的程序操作来提高自己编写程序的能力,达到理论与实践相结合的目的。(2)、查阅相关资料,自学具体课题中涉及到的新知识。(3)、根据实现的功能,划分出合理的对象类,明确对象类间的关系。为每个对象类设计正确的属性和方法,为每个方法设计合理的方法体。 (4)、编程简练,程序功能齐全,能正确运行。三、设计过程1、程序流程图employeesalesmantechnicianmanagerdevelopermanagersalesmanager2、程序原理 使用户能根据程序提示输入employee类的共有数据,再提醒用户输入工资类型来区分工资级别不同的类的特有数据。最后通过pay()函数来计算各种数据,用Print函数输出。3、算法原理通过基类中的公有函数来访问基类中的私有成员来计算各派生类的工资。 4、软件设计过程中遇到的问题以及解决办法 在这次设计程序的过程中遇到了许多问题:比如对类模板、类的多重、多层继承、析构函数、赋值构造函数等知识掌握不牢固,使得拿到题目无从下手。但最后都通过请教别人和翻课本,上网查找相关资料等途径解决了。四、程序源代码#include<iostream>#include <string>using namespace std;static int Grades=600,700,850,1000,1200,1600,2000,3000; /静态class employee protected: char *name;/姓名 int ID;/职工号 int grade;/工资级别 double salary;/月薪 double base_salary;/基本月薪 double merit_salary;/业绩工资 public: employee(char* =NULL,int=0,int=0);/构造函数 employee(); /析构函数 virtual void pay();/月薪计算函数 void show(); double getsalary()return salary; double getbase_salary()return base_salary; double getmerit_salary()return merit_salary; ;employee:employee(char*nn,int id,int gr) if(nn=NULL) name=NULL; else name=new charstrlen(nn)+1; strcpy(name,nn); ID = id; grade = gr; salary=0;/月薪 base_salary=0;/基本月薪 merit_salary=0;/业绩工资 employee:employee() if(name!=NULL) deletename; void employee:show() cout<<name<<'t'<<ID<<'t'<<salary<<endl; void employee:pay() int days; cout<<"请输入请假天数:n" cin>>days; base_salary = Gradesgrade*(30 - days)/30; merit_salary = base_salary/2;/普通员工业绩工资为基本工资的一半 salary = base_salary+merit_salary; class manager:virtual public employee/虚基类 protected: double prize;/固定奖金额 double factor;/业绩系数 public: manager(char* =NULL,int=0,int=0,double=0); void pay(); ; manager:manager(char*nn,int id,int gr,double pr):employee(nn,id,gr) prize = pr;/固定奖金额 factor = 0; void manager:pay() int days; cout<<"请输入请假天数:n" cin>>days; cout<<"请输入业绩系数:n" cin>>factor; base_salary = Gradesgrade*(30 - days)/30; merit_salary = prize*factor*(30 - days)/30; salary = base_salary + merit_salary ; class technician:virtual public employee protected: double hours;/月工作时数 double perhour;/每小时附加酬金 double shfactor;/研究进度系数 public: technician(char* =NULL,int=0,int=0,double=0); void pay(); ; technician:technician(char*nn,int id,int gr,double phr):employee(nn,id,gr) hours = 0; perhour = phr;/每小时附加酬金 shfactor = 0; void technician:pay() int days; cout<<"请输入请假天数:n" cin>>days; cout<<"请输入研究进度系数:n" cin>>shfactor; hours=8*(30-days); base_salary = Gradesgrade*(30 - days)/30; merit_salary = perhour*hours*shfactor*(30 - days)/30; salary= base_salary + merit_salary ; class salesman:virtual public employee protected: double amount;/销售额 double slfactor;/提成比例 public: salesman(char* =NULL,int=0,int=0,double=0); void pay(); ; salesman:salesman(char*nn,int id,int gr,double slfac):employee(nn,id,gr) amount = 0; slfactor = slfac;/提成比例 void salesman:pay() int days; cout<<"请输入请假天数:n" cin>>days; cout<<"请输入销售额:n" cin>>amount; base_salary = Gradesgrade*(30 - days)/30; merit_salary = amount*slfactor; salary = base_salary + merit_salary ; class developermanager:public manager,public technician public: developermanager(char* =NULL,int id=0,int gr=0,double pr=0, double phr=0); void pay(); ; developermanager:developermanager(char*nn,int id,int gr,double pr,double phr) :manager(nn,id,gr,pr),technician(nn,id,gr,phr),employee(nn,id,gr) void developermanager:pay() int days; cout<<"请输入请假天数:n" cin>>days; cout<<"请输入业绩系数:n" cin>>factor; cout<<"请输入研究进度系数:n" cin>>shfactor; hours=8*(30-days); base_salary = Gradesgrade*(30 - days)/30;/基本工资 merit_salary = perhour*hours*shfactor*(30 - days)/30;/技术人员奖金 merit_salary += prize*factor*(30 - days)/30;/加经理业绩工资 merit_salary /=2; salary = base_salary + merit_salary ; class salesmanager:public manager,public salesman public: salesmanager(char* =NULL,int=0,int=0,double pr=0, double slfac=0); void pay(); ; salesmanager:salesmanager(char*nn,int id,int gr,double pr,double slfac) :manager(nn,id,gr,pr),salesman(nn,id,gr,slfac),employee(nn,id,gr) void salesmanager:pay() int days; cout<<"请输入请假天数:n" cin>>days; cout<<"请输入业绩系数:n" cin>>factor; cout<<"请输入销售额:n" cin>>amount; base_salary = Gradesgrade*(30 - days)/30;/基本工资 merit_salary = prize*factor*(30 - days)/30;/经理业绩工资 merit_salary /=2; merit_salary += amount*slfactor;/加销售业绩工资 salary = base_salary + merit_salary ; void main() employee eml1("Dave",10001,0),*emlp; manager mag1("John",20003,4,1000); technician tec1("Helen",30006,5,10); salesman sal1("Heidi",40009,2,0.05); developermanager dem1("Steve",50009,6,1500,12); salesmanager sam1("Ryan",60020 ,3,1000,0.05); eml1.pay(); eml1.show(); mag1.pay(); mag1.show(); tec1.pay(); tec1.show(); sal1.pay(); sal1.show(); emlp=&dem1; emlp->pay(); emlp->show(); emlp=&sam1; emlp->pay(); emlp->show(); 五、设计总结通过1周的学习,我进一步掌握了C+语言类、以及封装知识的用法。我认为一个好的程序不仅是在设计时能够尽量简洁化、易懂化,并且还需要健壮,不能因为一点小错误而导致整个程序出错,并且编写程序时初期构想的思路非常重要,有一个好的思路,才能编出一个好的程序。另外,Debug也是关键的一步,通过Debug会发现程序中很多存在的漏洞,反应出程序的不足之处,而加以改进。综上,我认为这一次课程设计让我体会到了做一个程序应该有的步骤,为我今后的发展埋下了铺垫。六、参考文献C+程序设计(第2版),吴乃陵 况迎辉,高等教育出版社,2006【精品文档】

    注意事项

    本文(c++工资系统.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开