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

    11面向对象编程技术课程设计报告.doc

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

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

    11面向对象编程技术课程设计报告.doc

    面向对象编程技术课程设计报告书专 业:班:级: 计0841姓 名: 王倩倩学 号:X 0818420332010年 6 月13 目录1 某学校对员工的奖金管理系统11.1问题认识与分析11.2 程序功能说明,程序结构图11.4代码说明21.4.1开发环境21.4.2主要开发步骤21.5 操作说明61.6设计开发过程中,遇到的主要问题以及解决方法62 MFC计算器设计72.1问题认识与分析72.2 程序功能说明,程序结构图72.4代码说明72.4.1开发环境72.4.2主要开发步骤7参考文献资料151 某学校对员工的奖金管理系统1.1问题认识与分析此控制台程序,我们要对管理人员按其职务发固定的岗位奖,对专职教师按其职称和月任课时数计发业绩奖,对既有管理工作又兼授课的人员按岗位奖加月任课时数乘某系数之和为奖金数。我们可以建立一个抽象类,具有员工的基本数据成员,计算月奖金和显示信息的成员函数。由于不同人员的奖金计算方法不同,所以将这两个成员函数声明为虚函数。以抽象类为基类派生出三种不同人员类,有派生类对月奖金和显示信息函数进行重载。主函数实现动态调用,计算个人员的月奖金。1.2 程序功能说明,程序结构图管理人员兼教师类:奖金=固定岗位奖+上课时间*每小时奖金+级别(15级)*某系数;专职教师类:奖金为上课时间*每小时奖金数+级别(15级)*某系数;校园管理人员类:奖金发放固定岗位奖+级别(15级)*某系数;基本抽象类:employee无对象,派生其他类1.4代码说明C+面向对象的编译方法1.4.1开发环境Microsoft Visual C+ 6.01.4.2主要开发步骤Employee.h#include<iostream>using namespace std;class employeeprotected:char name20;int individualempno;float accumpay;static int employeeno;public:employee();employee();virtual void pay()=0;void setname(char *names);char *getname();int getindividualempno();float getaccumpay();class teacher:virtual public employeeprotected:int grade;float hourlyrate;int workhours;public:teacher();void setgrade(int g);int getgrade();void setworkhours(int w);void pay();class technician:virtual public employeeprotected:float monthlypay;public:technician();void pay();class manager:public technician, public teacherprivate:float k;public:manager();void pay();int employee:employeeno=1000; employee:employee()individualempno=employeeno+;accumpay=0.0;employee:employee()void employee:setname(char *names)strcpy(name,names);char*employee:getname()return name;float employee:getaccumpay()return accumpay;int employee:getindividualempno()return individualempno;teacher:teacher()hourlyrate=50;void teacher:setworkhours(int w)workhours=w;void teacher:setgrade(int g)grade=g;int teacher:getgrade()return grade;void teacher:pay() accumpay=(hourlyrate*workhours)*grade;technician:technician()monthlypay=2000;void technician:pay() accumpay=monthlypay;manager:manager()k=0.6;hourlyrate=100;monthlypay=2000;void manager:pay() accumpay=(monthlypay+hourlyrate*workhours)*k;int main()teacher t1;technician n1;manager m1;char namestr20;employee * emp3=&t1,&n1,&m1;int i,ww,g,w;for(i=0;i<3;i+)cout<<"请输入下一个雇员的姓名"cin>>namestr;empi->setname(namestr);cout<<"请输入老师上课次数和等级:"cin>>ww>>g;t1.setworkhours(ww);t1.setgrade(g);cout<<"请输入管理上课次数:" cin>>w;m1.setworkhours(w);for(i=0;i<3;i+)empi->pay();cout<<"老师:"<<t1.getname()<<",编号:"<<t1.getindividualempno()<<",等级:"<<t1.getgrade()<<",奖金:"<<t1.getaccumpay()<<endl;cout<<"校工:"<<n1.getname()<<",编号:"<<n1.getindividualempno()<<",奖金:"<<n1.getaccumpay()<<endl;cout<<"经理:"<<m1.getname()<<",编号:"<<m1.getindividualempno()<<",奖金:"<<m1.getaccumpay()<<endl;return(0);1.5 操作说明1.6设计开发过程中,遇到的主要问题以及解决方法l C+语法学习存在缺陷,管理兼教师类的实现总是乱码(数字不正确); 2 MFC计算器设计2.1问题认识与分析创建基于对话框的MFC(EXE)应用程序计算器;在对话框窗体上顺序创建0到9十个数字按钮,有计算的一些按钮(+,-,*,/)实现简易的计算。2.2 程序功能说明,程序结构图2.4.1开发环境Microsoft Visual C+ 6.0MFC(exe)2.4.2主要开发步骤在对话框窗体上顺序创建0到9十个数字按钮,并设置其标识符分别为IDC_0到IDC_9,其它按钮按下表设置属性:2、按表2添加各运算按钮的消息处理函数3、为使0到9十个数字按钮响应相同的消息处理函数,定义宏ON_COMMAND_RANGE 4 建立了MFC窗口应用程序,找到CVenusDlg.h后加入宏命令5、在头文件CalculatorDlg.h中添加类型、成员变量及成员函数(1)自定义类型enum Operator OpNone,OpAdd,OpSubtract,OpMultiply,OpDivide;enum CalcError ErrNone,ErrDivideByZero;enum Func FuncSin, FuncTan, FuncCos, FuncSqrt, FuncSqre, FuncLn, FuncLog, FuncN, FuncRec, FuncExp, FuncNone;(2)成员变量及函数float m_operand;/存储当前输入的操作数float m_accum; /存储当前的计算结果BOOL m_bCoff;/标识当前输入是否是小数float m_coff; /小数输入时的系数Operator m_operator;/enum型变量用以标识当前运算符CalcError m_errorState; /enum型变量用以标识当前运算状态Func m_func; /enum型变量用以标识当前运算函数类型BOOL m_bOperandAvail; /标识当前输入是否为新输入数字void Calculate();/处理普通计算void UpdateDisplay();/处理显示void Run_Func();/处理函数运算(3)为编辑框添加CString 变量m_result6 在CVenusDlg.cpp中添加在CVenusDlg.cpp添加处理显示信息的代码6、在VenusDlg.cpp中添加部分变量的初始化CVenusDlg:CVenusDlg(CWnd* pParent /*=NULL*/): CDialog(CVenusDlg:IDD, pParent)/AFX_DATA_INIT(CVenusDlg) m_result = _T("");/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);m_coff=0.1;m_bCoff=0;m_errorState = ErrNone;m_bOperandAvail=FALSE;m_operator=OpNone;另:在文件VenusDlg.cpp中添加#include "math.h"7、VenusDlg.cpp添加各功能代码(1)数字输入消息处理函数void C VenusDlg:OnOperandInput(UINT iID)ASSERT(iID >= IDC_0 && iID <= IDC_9);if(m_errorState!=ErrNone)return;if(!m_bOperandAvail)m_operand=0;if(!m_bCoff)m_operand=m_operand*10+(iID-IDC_0);elsem_operand=m_operand+(iID-IDC_0)*m_coff;m_coff*=0.1;m_bOperandAvail=TRUE;UpdateDisplay();(2)运算符消息处理函数void C VenusDlg:OnAdd() /加/ TODO: Add your control notification handler code hereCalculate();m_operator=OpAdd;void C VenusDlg:OnMinus()/减/ TODO: Add your control notification handler code hereCalculate();m_operator=OpSubtract;void C VenusDlg:OnMutiply()/乘/ TODO: Add your control notification handler code hereCalculate();m_operator=OpMultiply;void C VenusDlg:OnDivid()/除/ TODO: Add your control notification handler code hereCalculate();m_operator=OpDivide;void C VenusDlg:OnSign() /处理正负号/ TODO: Add your control notification handler code herem_operand*=-1;UpdateDisplay();void C VenusDlg:OnEqual()/处理等号/ TODO: Add your control notification handler code hereCalculate();m_operator=OpNone;void C VenusDlg:OnSqrt()/处理开根号/ TODO: Add your control notification handler code herem_func=FuncSqrt;Run_Func();void C VenusDlg:OnRecip() /求倒数/ TODO: Add your control notification handler code herem_func=FuncRec;Run_Func();void C VenusDlg:OnPoint()/处理小数点/ TODO: Add your control notification handler code herem_bCoff=1;UpdateDisplay();void C VenusDlg:Calculate()/处理计算if(m_errorState!=ErrNone)return;if(m_bOperandAvail)if(m_operator=OpNone)m_accum=m_operand;else if(m_operator=OpMultiply)m_accum*=m_operand;else if(m_operator=OpDivide)if(m_operand=0)m_errorState=ErrDivideByZero;elsem_accum/=m_operand;else if(m_operator=OpAdd)m_accum+=m_operand;else if(m_operator=OpSubtract)m_accum-=m_operand;m_bOperandAvail=FALSE;m_bCoff=0;m_coff=0.1;UpdateDisplay();void C VenusDlg:Run_Func()/处理求根和求倒if (m_errorState != ErrNone)return;if (m_bOperandAvail)if(m_func=FuncSqrt)m_operand=sqrt(m_operand);if(m_func=FuncRec)m_operand=1/m_operand;UpdateDisplay();void C VenusDlg:UpdateDisplay()/处理显示if(GetSafeHwnd()=NULL)return;if(m_errorState!=ErrNone)m_result="除数不能为零"elsefloat lval=(m_bOperandAvail)?m_operand:m_accum;m_result.Format(_T("%f"),lval);int i=m_result.GetLength();while(m_result.GetAt(i-1)='0')m_result.Delete(i-1,1);i-=1;UpdateData(FALSE);void CVenusDlg:OnClear() /处理清除“c”/ TODO: Add your control notification handler code herem_operator = OpNone;m_operand = 0;m_accum = 0;m_bOperandAvail = FALSE;m_errorState = ErrNone;m_coff=0.1;m_bCoff=0;UpdateDisplay();参考文献资料1C+语言程序设计(第3版)郑莉,董渊

    注意事项

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

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




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

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

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

    收起
    展开