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

上传人(卖家):晟晟文业 文档编号:4300744 上传时间:2022-11-27 格式:PPT 页数:28 大小:508KB
下载 相关 举报
3面向对象程序分析和设计的基本方法课件.ppt_第1页
第1页 / 共28页
3面向对象程序分析和设计的基本方法课件.ppt_第2页
第2页 / 共28页
3面向对象程序分析和设计的基本方法课件.ppt_第3页
第3页 / 共28页
3面向对象程序分析和设计的基本方法课件.ppt_第4页
第4页 / 共28页
3面向对象程序分析和设计的基本方法课件.ppt_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、C+面向对象程序设计2.面向对象程序分析和设计的基本方法Agenda 1.回忆“成绩管理”的设计过程 2.介绍OOP的分析思路 类组合的概念(类图)UML的更多表示方法(协作图)3.实现OOP的成绩管理 多文档项目小型程序的开发步骤这是“软件工程”的内容 完整的软件开发过程分为很多步骤,如可行性分析、需求分析、概要设计、详细设计,然后才是编程调试,最终是测试和部署。需要有较多的实践经验后才能完全理解其中的理论和方法。为什么要介绍 很多同学写软件时感到无从着手,就是缺乏一套基本的步骤。所以我们要介绍最基本的分析和设计步骤。提醒:仍然需要多实践,才能掌握。介绍什么 很小型的软件开发时的一般步骤 分

2、为两个大类介绍。前者是为了与后者进行对比。面向过程的结构化程序设计 面向对象的分析和设计说明 我们介绍的不是非常正规的软件工程的步骤,仅为大家提供参考。面向过程的结构化程序设计 可以分为五个步骤 功能分析:需要实现哪些功能。数据分析:需要哪些数据类型,如何存储。用户界面设计:使用什么样的界面。程序模块划分:需要写哪些源代码文件,其中具体包含哪些功能。编写、调试代码。面向过程的结构化程序设计(1)功能分析(需求分析):使用框图。面向过程的结构化程序设计(1.1)各功能的描述 简单功能:文字描述即可。复杂功能:画出流程图。班级学生录入 简单描述:输入学生姓名、学号,保存。详细描述:见右图面向过程的

3、结构化程序设计(2)程序中的数据分析 程序中涉及到学生、学生的成绩、学号、姓名等,还有班级。考虑数据在程序中如何表示:每个学生的相关信息使用结构体表示。班级也使用结构体表示,班级内学生使用数组或链表表示。面向过程的结构化程序设计(3)用户界面设计 文本界面,使用菜单选择需要的功能,并根据选择分别调用不同的函数。数据在界面的输入、输出:使用printf,scanf等实现。面向过程的结构化程序设计(4)程序模块划分 一般按照功能分类,将相似的功能划分在一个程序模块(c文件和头文件)中实现。注意:程序模块中的功能实现为函数。这个过程还可能发现一些共用的功能。例如图中红色的函数。面向过程的结构化程序设

4、计(5)编写代码并调试 根据上述分析,创建工程、创建C文件和头文件(程序模块)、编写和调试代码 演示:实现“班级学生成绩管理”中的“班级学生录入”和“学生成绩录入”实现“班级学生成绩统计分析”中的“统计平均成绩”。面向对象的软件分析 1.用例分析 对应于面向过程的功能分析 2.对象模型分析 包含面向过程的数据分析,自然形成程序模块划分。3.用户界面设计 面向过程时:分析使用什么样的函数。面向对象时:分析应该使用什么对象(类)。4.编写、调试代码。面向对象的软件分析(1)用例分析(需求分析)本质上还是软件功能分析。但使用“UML用例图”。对每个用例进行文字描述。复杂的使用”UML活动图“描述。统

5、计平均成绩统计及格率统计优良率学生成绩排名班级学生录入学生成绩录入保存学生成绩加载学生成绩教师学生成绩统计分析学生学生成绩查询面向对象的软件分析(1)用例分析(续)C1:班级学生录入输入并保存班级中各个学生的姓名、学号、性别等。C2:学生成绩录入选择科目,输入学生学号和科目成绩。C3:学生成绩查询输入学生学号,查询并显示该学生的学号、姓名、各科成绩。C4:保存学生成绩将班级学生成绩保存在数据库或数据文件中 C5:加载学生成绩从数据库或数据文件中加载班级学生成绩面向对象的软件分析(1)用例分析(续2)C6:学生成绩统计分析 C6.1统计平均成绩输入科目,循环求和后平均,显示 C6.2统计及格率输

6、入科目,循环,累计及格人数,计算及格率,显示。C6.1统计平均成绩输入科目,循环,累计80分以上人数,计算优良率,显示。C6.1统计平均成绩输入科目,按科目成绩排序,显示排名、姓名、学号和科目成绩。面向对象的软件分析(2)对象模型分析 基本方法:从用例描述中发现较为复杂的数据作为“候选对象”。即考虑程序中可能使用哪些对象,以及它们的数据组成。将软件中的基本功能分配到各对象中。根据上述分析,画出UML类图面向对象的软件分析(2)对象模型分析(实例)需要哪些对象 候选对象(名词):班级,学生,姓名,学号,科目,成绩。姓名、学号、成绩等可以使用简单数据类型表示,不需要作为对象。剩余:班级、学生。功能

7、分配:班级:添加学生、查询学生、保存和加载班级成绩、对班级成绩进行统计分析。学生:在前面的需求分析中,没有需要委托给学生的功能。但如果增加功能:查询单个学生的平均成绩、不及格科目数(黄牌判断)等,这些功能就应该委托给学生。一般没有功能的不作为“对象”。这里“学生”可以用以前的“结构体”表示。但考虑到系统功能扩展的可能性,还是将学生作为对象。面向对象的软件分析(2)对象模型分析(续2)考虑到用户界面:需要菜单。菜单需要保存选项,具有显示选项,接收用户选择的功能,因此应该作为对象。总结:系统中包括以下对象:班级、学生、菜单面向对象的软件分析(2)对象模型分析(续3)上述类图没有表达对象之间的关系

8、聚合关系:CClass中保存CStudent对象的指针;成员:CStudent*Students;组合关系:CClass中保存CStudent对象。成员:CStudent Students;对象关系及其代码表达另一个组成关系的例子:计算机由主机、显示器、键盘等组成。对应代码:class CComputer CHost m_Host;CMonitor m_Monitor;CKeyboard m_Keyboard;组成关系的组成关系的C+代码表达:代码表达:对应代码:class CClass CStudents m_Students40;HostMonitorComputerKeyboard对象关

9、系及其代码表达 聚合关系及其C+代码表达 兴趣小由多位班上的同学聚合而成对应代码:class CGroup CStudents*Members40;对象关系及其代码表达 引用关系 实际上就是1对1的聚合关系。例如:班级与班主任的关系 班级可以被指定一个班主任,但担任班主任的老师并不从属与班级。当班级撤销(如毕业)时,班主任老师仍然存在。班级也可能在一段时间内没有班主任。对应代码:class CClass CTeacher*ClassTeacher;面向对象软件设计(3)用户界面设计 图形界面:使用图形窗口、菜单、控件等 文本界面:使用菜单选择所需功能。“菜单”可以作为一个对象:包括菜单选项,提

10、供选择功能。面向对象的软件分析(4)编写、调试代码 各类对应一个cpp和h文件,即一个模块。需要一个提供main()函数的模块(cpp)。后续分析 前面的设计方法还是带有面向过程的性质 在外部函数中实现的功能:录入学生信息 录入学生成绩 输入学生学号 等 可以将这些功能用一个“控制类”封装起来。这些功能作为控制类的成员函数。控制类可以没有数据成员。演示 基于对象模型编写代码作业 使用面向对象的方法编写成绩管理。设计文档:Word文档,包含前面讲的各步骤的内容(用例分析、对象模型分析使用Rose或Visio作图)。编写学生成绩程序,要求必须实现:录入学生、录入成绩、统计平均成绩、菜单功能。其它选做。注意:增加了菜单类。要求:除main()函数外,不能有其它外部函数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(3面向对象程序分析和设计的基本方法课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|