已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象编程技术课程设计报告书目录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参考文献资料1513 1 某学校对员工的奖金管理系统1.1问题认识与分析此控制台程序,我们要对管理人员按其职务发固定的岗位奖,对专职教师按其职称和月任课时数计发业绩奖,对既有管理工作又兼授课的人员按岗位奖加月任课时数乘某系数之和为奖金数。我们可以建立一个抽象类,具有员工的基本数据成员,计算月奖金和显示信息的成员函数。由于不同人员的奖金计算方法不同,所以将这两个成员函数声明为虚函数。以抽象类为基类派生出三种不同人员类,有派生类对月奖金和显示信息函数进行重载。主函数实现动态调用,计算个人员的月奖金。1.2 程序功能说明,程序结构图管理人员兼教师类:奖金=固定岗位奖+上课时间*每小时奖金+级别(15级)*某系数;专职教师类:奖金为上课时间*每小时奖金数+级别(15级)*某系数;校园管理人员类:奖金发放固定岗位奖+级别(15级)*某系数;基本抽象类:employee无对象,派生其他类1.4代码说明c+面向对象的编译方法1.4.1开发环境microsoft visual c+ 6.01.4.2主要开发步骤employee.h#includeusing 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;i3;i+)coutnamestr;empi-setname(namestr);coutwwg;t1.setworkhours(ww);t1.setgrade(g);coutw;m1.setworkhours(w);for(i=0;ipay();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()loadicon(idr_mainframe);m_coff=0.1;m_bcoff=0;m_errorstate = errnone;m_boperandavail=false;m_operator=opnone;另:在文件venusdlg.cpp中添加#include math.h7、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;updateda
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成都2025上半年四川成都市司法局所属事业单位招聘31人笔试历年参考题库附带答案详解
- 2026年及未来5年中国双制冷剂回收机行业市场前景预测及投资战略研究报告
- 2025山东滨州市博兴县县属国有企业招聘面试笔试备考试题及答案解析
- 2026年及未来5年中国垃圾焚烧设备行业发展前景预测及投资方向研究报告
- 2026广东佛山市南海区狮山镇小塘初级中学招聘1人笔试备考题库及答案解析
- 2026中铁城建集团有限公司招聘24人【江西有岗】笔试备考试题及答案解析
- 2026重庆永川区临江镇人民政府招聘公益性岗位人员1人笔试模拟试题及答案解析
- 2026中国科学院科技战略咨询研究科技发展战略研究所特别研究助理(博士后)招聘1人笔试备考试题及答案解析
- 2026中国人民银行清算总中心直属企业中志支付清算服务(北京)有限公司招聘2人笔试备考题库及答案解析
- 2026中国农业大学特多孔子学院国际中文教育志愿者招聘1人笔试备考试题及答案解析
- 2026年山西警官职业学院单招综合素质考试备考试题带答案解析
- 汽修厂文件档案归档制度
- 高校科研项目立项及管理规范
- 钣喷质检员考试题及答案
- 学生安全教育家长会课件
- 2026年云南省高二物理学业水平合格考试卷试题(含答案详解)
- 《事故隐患排查治理资金使用专项制度》
- 完整版污水处理池施工组织设计方案
- GB 39669-2020牙刷及口腔器具安全通用技术要求
- 精益生产试题与答案
- L1会计研究方法论简介课件
评论
0/150
提交评论