面向对象程序分析和设计的基本方法课件

上传人:29 文档编号:242000196 上传时间:2024-08-09 格式:PPT 页数:28 大小:579.10KB
返回 下载 相关 举报
面向对象程序分析和设计的基本方法课件_第1页
第1页 / 共28页
面向对象程序分析和设计的基本方法课件_第2页
第2页 / 共28页
面向对象程序分析和设计的基本方法课件_第3页
第3页 / 共28页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,C+面向对象程序设计,2.面向对象程序分析和设计的基本方法,C+面向对象程序设计2.面向对象程序分析和设计的基本方法,1,Agenda,1.回忆“成绩管理”的设计过程,2.介绍OOP的分析思路,类组合的概念(类图),UML的更多表示方法(协作图),3.实现OOP的成绩管理,多文档项目,Agenda1.回忆“成绩管理”的设计过程,2,小型程序的开发步骤,这是“软件工程”的内容,完整的软件开发过程分为很多步骤,如可行性分析、需求分析、概要设计、详细设计,然后才是编程调试,最终是测试和部署。,需要有较多的实践经验后才能完全理解其中的理论和方法。,为什么要介绍,很多同学写软件时感到无从着手,就是缺乏一套基本的步骤。所以我们要介绍最基本的分析和设计步骤。,提醒:仍然需要多实践,才能掌握。,介绍什么,很小型的软件开发时的一般步骤,分为两个大类介绍。前者是为了与后者进行对比。,面向过程的结构化程序设计,面向对象的分析和设计,说明,我们介绍的不是非常正规的软件工程的步骤,仅为大家提供参考。,小型程序的开发步骤这是“软件工程”的内容,3,面向过程的结构化程序设计,可以分为五个步骤,功能分析:需要实现哪些功能。,数据分析:需要哪些数据类型,如何存储。,用户界面设计:使用什么样的界面。,程序模块划分:需要写哪些源代码文件,其中具体包含哪些功能。,编写、调试代码。,面向过程的结构化程序设计可以分为五个步骤,4,面向过程的结构化程序设计,(1)功能分析(需求分析):,使用框图。,面向过程的结构化程序设计(1)功能分析(需求分析):,5,面向过程的结构化程序设计,(1.1)各功能的描述,简单功能:文字描述即可。,复杂功能:画出流程图。,班级学生录入,简单描述:输入学生姓名、学号,保存。,详细描述:见右图,面向过程的结构化程序设计(1.1)各功能的描述班级学生录入,6,面向对象程序分析和设计的基本方法课件,7,面向对象程序分析和设计的基本方法课件,8,面向过程的结构化程序设计,(2)程序中的数据分析,程序中涉及到学生、学生的成绩、学号、姓名等,还有班级。,考虑数据在程序中如何表示:,每个学生的相关信息使用结构体表示。,班级也使用结构体表示,班级内学生使用数组或链表表示。,面向过程的结构化程序设计(2)程序中的数据分析,9,面向过程的结构化程序设计,(3)用户界面设计,文本界面,使用菜单选择需要的功能,并根据选择分别调用不同的函数。,数据在界面的输入、输出:,使用printf,scanf等实现。,面向过程的结构化程序设计(3)用户界面设计,10,面向过程的结构化程序设计,(4)程序模块划分,一般按照功能分类,将相似的功能划分在一个程序模块(c文件和头文件)中实现。,注意:程序模块中的功能实现为函数。,这个过程还可能发现一些共用的功能。例如图中红色的函数。,面向过程的结构化程序设计(4)程序模块划分,11,面向过程的结构化程序设计,(5)编写代码并调试,根据上述分析,创建工程、创建C文件和头文件(程序模块)、编写和调试代码,演示:,实现“班级学生成绩管理”中的“班级学生录入”和“学生成绩录入”,实现“班级学生成绩统计分析”中的“统计平均成绩”。,面向过程的结构化程序设计(5)编写代码并调试,12,面向对象的软件分析,1.用例分析,对应于面向过程的功能分析,2.对象模型分析,包含面向过程的数据分析,自然形成程序模块划分。,3.用户界面设计,面向过程时:分析使用什么样的函数。,面向对象时:分析应该使用什么对象(类)。,4.编写、调试代码。,面向对象的软件分析1.用例分析,13,面向对象的软件分析,(1)用例分析(需求分析),本质上还是软件功能分析。但使用“UML用例图”。,对每个用例进行文字描述。复杂的使用”UML活动图“描述。,面向对象的软件分析(1)用例分析(需求分析),14,面向对象的软件分析,(1)用例分析(续),C1:班级学生录入,输入并保存班级中各个学生的姓名、学号、性别等。,C2:学生成绩录入,选择科目,输入学生学号和科目成绩。,C3:学生成绩查询,输入学生学号,查询并显示该学生的学号、姓名、各科成绩。,C4:保存学生成绩,将班级学生成绩保存在数据库或数据文件中,C5:加载学生成绩,从数据库或数据文件中加载班级学生成绩,面向对象的软件分析(1)用例分析(续),15,面向对象的软件分析,(1)用例分析(续2),C6:学生成绩统计分析,C6.1统计平均成绩,输入科目,循环求和后平均,显示,C6.2统计及格率,输入科目,循环,累计及格人数,计算及格率,显示。,C6.1统计平均成绩,输入科目,循环,累计80分以上人数,计算优良率,显示。,C6.1统计平均成绩,输入科目,按科目成绩排序,显示排名、姓名、学号和科目成绩。,面向对象的软件分析(1)用例分析(续2),16,面向对象的软件分析,(2)对象模型分析,基本方法:,从用例描述中发现较为复杂的数据作为“候选对象”。即考虑程序中可能使用哪些对象,以及它们的数据组成。,将软件中的基本功能分配到各对象中。,根据上述分析,画出UML类图,面向对象的软件分析(2)对象模型分析,17,面向对象的软件分析,(2)对象模型分析(实例),需要哪些对象,候选对象(名词):班级,学生,姓名,学号,科目,成绩。,姓名、学号、成绩等可以使用简单数据类型表示,不需要作为对象。,剩余:班级、学生。,功能分配:,班级:添加学生、查询学生、保存和加载班级成绩、对班级成绩进行统计分析。,学生:在前面的需求分析中,没有需要委托给学生的功能。,但如果增加功能:查询单个学生的平均成绩、不及格科目数(黄牌判断)等,这些功能就应该委托给学生。,一般没有功能的不作为“对象”。这里“学生”可以用以前的“结构体”表示。但考虑到系统功能扩展的可能性,还是将学生作为对象。,面向对象的软件分析(2)对象模型分析(实例),18,面向对象的软件分析,(2)对象模型分析(续2),考虑到用户界面:需要菜单。,菜单需要保存选项,具有显示选项,接收用户选择的功能,因此应该作为对象。,总结:系统中包括以下对象:,班级、学生、菜单,面向对象的软件分析(2)对象模型分析(续2),19,面向对象的软件分析,(2)对象模型分析(续3),上述类图没有表达对象之间的关系,聚合关系:CClass中保存CStudent对象的指针;,成员:CStudent*Students;,组合关系:CClass中保存CStudent对象。,成员:CStudent Students;,面向对象的软件分析(2)对象模型分析(续3),20,对象关系及其代码表达,另一个组成关系的例子:,计算机由主机、显示器、键盘等组成。,对应代码:,class CComputer,CHost m_Host;,CMonitor m_Monitor;,CKeyboard m_Keyboard;,;,组成关系的C+代码表达:,对应代码:,class CClass,CStudents m_Students40;,;,对象关系及其代码表达另一个组成关系的例子:对应代码:组成关系,21,对象关系及其代码表达,聚合关系及其C+代码表达,兴趣小由多位班上的同学聚合而成,对应代码:,class CGroup,CStudents*Members40;,;,对象关系及其代码表达聚合关系及其C+代码表达对应代码:,22,对象关系及其代码表达,引用关系,实际上就是1对1的聚合关系。,例如:班级与班主任的关系,班级可以被指定一个班主任,但担任班主任的老师并不从属与班级。当班级撤销(如毕业)时,班主任老师仍然存在。班级也可能在一段时间内没有班主任。,对应代码:,class CClass,CTeacher*ClassTeacher;,;,对象关系及其代码表达引用关系对应代码:,23,面向对象软件设计,(3)用户界面设计,图形界面:使用图形窗口、菜单、控件等,文本界面:使用菜单选择所需功能。,“菜单”可以作为一个对象:包括菜单选项,提供选择功能。,面向对象软件设计(3)用户界面设计,24,面向对象的软件分析,(4)编写、调试代码,各类对应一个cpp和h文件,即一个模块。,需要一个提供main()函数的模块(cpp)。,面向对象的软件分析(4)编写、调试代码,25,后续分析,前面的设计方法还是带有面向过程的性质,在外部函数中实现的功能:,录入学生信息,录入学生成绩,输入学生学号,等,可以将这些功能用一个“控制类”封装起来。,这些功能作为控制类的成员函数。,控制类可以没有数据成员。,后续分析前面的设计方法还是带有面向过程的性质,26,演示,基于对象模型编写代码,演示基于对象模型编写代码,27,作业,使用面向对象的方法编写成绩管理。,设计文档:Word文档,包含前面讲的各步骤的内容(用例分析、对象模型分析使用Rose或Visio作图)。,编写学生成绩程序,要求必须实现:,录入学生、录入成绩、统计平均成绩、菜单功能。其它选做。,注意:增加了菜单类。,要求:除main()函数外,不能有其它外部函数。,作业使用面向对象的方法编写成绩管理。,28,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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