欢迎来到天天文库
浏览记录
ID:19684712
大小:144.00 KB
页数:14页
时间:2018-10-05
《第11章面向对象程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二部分面向对象程序设计第十一章面向对象程序设计本章课件制作:关欣本章内容结构化程序设计方法和面向对象方法面向对象程序的开发过程面向对象程序设计例题结构化程序设计方法的缺点:结构化程序不易实现功能变化,有时甚至要重新设计整个程序的结构。数据和对数据的操作(即函数)分离,数据的表示发生变化,与之相关的所有函数均要修改,使得程序难于维护。程序代码复用性较差,也就是调用一个函数或使用一个公共的用户定义的数据类型而已。面向对象=对象+类+继承+通信面向对象程序设计方法:11.1面向对象的开发过程分析设计实
2、现维护分析阶段:从问题域抽象出类和对象的模型设计阶段:对时间问题域行为中的关键抽象进行再分解实现阶段:将编码、测试和集成组合在一起,连续进行原型迭代1.分析阶段区分对象及其属性区分整体对象及其组成部分不同对象与类的形成及区分面向对象分析(OOA)构造对象三法则:面向对象分析(OOA)的五个主要步骤标识对象标识对象的属性定义对象的方法识别对象所属的类定义主题2.设计阶段主体部件(PDC)的设计用户界面部件(HIC)的设计任务管理部件(TMC)的设计数据管理部件(DMC)的设计
3、3.实现阶段将编码、测试和集成组合在一起连续的原型迭代增加主函数和必要的外部函数,形成完整的程序。11.2面向对象的程序设计例题例:编写某公司职工月薪管理程序本程序中对公司职工的基本信息和月薪信息进行简单管理。每个职工的基本信息包括职工种别、职工号、姓名、性别、出生日期、受聘日期和当月月薪总额。职工种别分为经理、销售经理、推销员、计时工和计件工五种。月薪计算方法分为:经理为固定月薪,没有加班费和提成费;推销员月薪为按当月推销额的一定百分比提成;销售经理除有一份固定月薪外,另外再按当月销售额的某个比
4、例提成;计件工的月薪为当月生产产品的件数与每件产品的报酬之乘积;计时工的月薪为当月完成工时数与每小时的报酬之乘积职工类(Employee)职工种别、职工号、姓名、性别、出生日期、受聘日期、当月月薪总额日期类(Date)年、月、日经理(Boss)月薪推销员(CommissionWorker)推销额提成比例计件工(PieceWorker)产品数量单件产品报酬计时工(HourlyWorker)工作时数每小时报酬销售经理(SaleBoss)各类及类间关系图UML符号:矩形符号表示对象和类符号表示组合关系符
5、号表示继承关系分析阶段计件工类产品数量单件产品报酬计算月薪日期类年、月、日设置打印职工类基本信息读写职工文件计算月薪取职工号取月薪总额打印计时工类工作时数每小时报酬计算月薪经理类月薪计算月薪推销员类推销额提成比例计算月薪销售经理类计算月薪各类的组成和操作图设计阶段PieceWorkerfloatwagePerPieceintquantityvirtualfloatearnings()HourlyWorkerfloatwagefloathoursvirtualfloatearnings()Bossfloa
6、tMouthSalaryvirtualfloatearnings()SaleBossvirtualfloatearnings()CommissionWorkerfloatcommissionintquantityvirtualfloatearnings()EmployeeintEmpNocharName[20],Sex[10]floatTotalMounthPayDateBirthDay,HireDaycharEmpKind[20]voidsavetofile()voidreadwages(Employ
7、ee**pEmp)intgetEmpNo()virtualfloatearnings()floatgetTotalMounthPay()voidprint()Dateintyear,mounth,dayvoidprint()voidsetDate(int,int,int)intgetYear()intgetMounth()intgetDay()详细设计后各类的组成和操作图实现阶段在开发过程中,每个类的说明分别存入H文件,每个类的成员函数的实现分别存入cpp文件。月薪管理系统---------------
8、------------1.添加职工信息2.统计公司月薪总额3.按职工号查询4.按职工月薪降序排序5.显示全体职工信息6.退出系统主菜单主函数voidinputinfo();//输入职工信息voidstatOnTotalPay(Employee**pEmp,intn);//统计总月薪总额voidsortpays(Employee**pEmp,intn);//按职工月薪降序排序voidqueryOnNo(Employee**pEmp,intn
此文档下载收益归作者所有