




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象编程技术课程设计报告书目录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问题认识与分析此控制台程序,我们要对管理人员按其职务发固定的岗位奖,对专职教师按其职称和月任课时数计发业绩奖,对既有管理工作又兼授课的人员按岗位奖加月任课时数乘
2、某系数之和为奖金数。我们可以建立一个抽象类,具有员工的基本数据成员,计算月奖金和显示信息的成员函数。由于不同人员的奖金计算方法不同,所以将这两个成员函数声明为虚函数。以抽象类为基类派生出三种不同人员类,有派生类对月奖金和显示信息函数进行重载。主函数实现动态调用,计算个人员的月奖金。1.2 程序功能说明,程序结构图管理人员兼教师类:奖金=固定岗位奖+上课时间*每小时奖金+级别(15级)*某系数;专职教师类:奖金为上课时间*每小时奖金数+级别(15级)*某系数;校园管理人员类:奖金发放固定岗位奖+级别(15级)*某系数;基本抽象类:employee无对象,派生其他类1.4代码说明c+面向对象的编译
3、方法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 getindividua
4、lempno();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 pa
5、y();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 em
6、ployee: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;techn
7、ician: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
8、,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()
9、;cout<<"老师:"<<t1.getname()<<",编号:"<<t1.getindividualempno()<<",等级:"<<t1.getgrade()<<",奖金:"<<t1.getaccumpay()<<endl;cout<<"校工:"<<n1.getname()<<",编号:"<<n1.getindivi
10、dualempno()<<",奖金:"<<n1.getaccumpay()<<endl;cout<<"经理:"<<m1.getname()<<",编号:"<<m1.getindividualempno()<<",奖金:"<<m1.getaccumpay()<<endl;return(0);1.5 操作说明1.6设计开发过程中,遇到的主要问题以及解决方法l c+语法学习存在缺陷,管理兼教师类的实现总
11、是乱码(数字不正确); 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窗口应用
12、程序,找到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;/存储
13、当前输入的操作数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();/处理函
14、数运算(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_
15、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 ven
16、usdlg: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
17、 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 cod
18、e 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()/处理等号
19、/ 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
20、_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 !=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2018春冀少版八年级生物下册第六单元第4章教学设计:6.4现代生物技术
- Module 5 Unit 2教学设计2024-2025学年外研版英语九年级上册
- 16夏天里的成长(第二课时)教学设计-2024-2025学年语文六年级上册统编版
- 2024秋八年级英语下册 Module 7 Summer in Los Angeles Unit 3 Language in use教学设计含教学反思(新版)外研版
- 生产设备安全操作培训
- 2024-2025学年高中政治上学期第1周《体味文化》教学设计
- Unit6 第3课时 (教学设计)Wrap-up time三年级英语上册同步高效课堂系列(译林版三起·2024秋)
- 2023八年级物理上册 第一章 打开物理世界的大门第一节 走进神奇教学设计 (新版)沪科版
- 4.1线段、射线、直线 教学设计 2024-2025学年北师大版(2024)数学七年级上册
- 血液透析护士长述职报告
- 医院临时用药申请表
- 护理人员仪容仪表及行为规范
- 农民合作社财务报表(专业应用)
- T∕CIS 71001-2021 化工安全仪表系统安全要求规格书编制导则
- 第4章-3D构型图-Chem3D
- 第六章广播电视的传播符号
- 预制梁质量控制要点及注意事项手册
- 家庭《弟子规》力行表
- 水利部《水利工程维修养护定额标准》(试点)
- 校园避震有办法PPT课件
- 农产品质量检测实验室100条评审准备要点
评论
0/150
提交评论