程序设计综合实践试用教材vc.第一章面向对象程序设计的实现.doc

上传人:博****1 文档编号:559575604 上传时间:2024-01-30 格式:DOC 页数:116 大小:2.49MB
返回 下载 相关 举报
程序设计综合实践试用教材vc.第一章面向对象程序设计的实现.doc_第1页
第1页 / 共116页
程序设计综合实践试用教材vc.第一章面向对象程序设计的实现.doc_第2页
第2页 / 共116页
程序设计综合实践试用教材vc.第一章面向对象程序设计的实现.doc_第3页
第3页 / 共116页
程序设计综合实践试用教材vc.第一章面向对象程序设计的实现.doc_第4页
第4页 / 共116页
程序设计综合实践试用教材vc.第一章面向对象程序设计的实现.doc_第5页
第5页 / 共116页
点击查看更多>>
资源描述

《程序设计综合实践试用教材vc.第一章面向对象程序设计的实现.doc》由会员分享,可在线阅读,更多相关《程序设计综合实践试用教材vc.第一章面向对象程序设计的实现.doc(116页珍藏版)》请在金锄头文库上搜索。

1、程序设计综合实践(试用教材)信息工程学院前言本课程是在深入了解和掌握面向对象程序设计的理论和方法的基础上,使用面向对象的思想和方法对实际问题进行需求分析,根据需求分析结果完成程序的总体设计,在总体设计的基础上实现详细设计和编码调试,并对所设计的程序进行必要的测试。从而达到培养计算机软件本科学生程序设计的综合能力和训练工程化软件开发的初级技能的目标,为后续专业课程和实践奠定基础。本课程的主要内容包括: 初步学会使用UML的用例图分析和描述所设计程序的需求。 初步学会使用UML的类图、类之间的静态关联和动态交互图、以及功能活动图进行程序的总体设计。 学会能综合、合理地使用面向对象的各种编程方法、算

2、法和数据设计方法和库资源实现程序的详细设计、编码和调试。 了解程序测试的必要性和重要性,程序测试的目标、基本内容和方法;制定程序的简单测试方案并完成对程序的简单测试。 学会编写由需求分析、总体设计、详细设计和程序测试组成的程序开发文档以及程序的简单使用手册。目 录第一章面向对象程序设计的实现方法和步骤1第二章 程序设计案例分析 17第三章 实践题目和实践要求 50附录A使用Visio辅助建立软件模型 60附录B使用Visual C+ 建立具有GUI功能的控制台应用程序 79附录C string类和CString类的使用 99附录D 算法的伪代码描述约定 101附录E 使用Turbo C+ 环境

3、建立面向对象的程序项目 103程序设计综合实践 第一章 面向对象程序设计的实现和步骤 第一章 面向对象程序设计的实现方法和步骤1.1 软件的生命周期软件的生命周期描述了在软件要解决的实际问题描述确定之后,从软件要实现的功能分析开始、到根据分析结果进行的软件设计、依据设计进行的编码调试和软件应用过程中的维护,直至软件退出应用结束的全过程中各个阶段的任务和相互关系。分析设计演化维护从上图不难看出面向对象软件的开发生命周期是由四个阶段:分析、设计、演化和维护组成的。分析阶段是整个软件生命周期的开始,以后的各个阶段都可以直接和间接地回馈到前面的阶段。整个软件生命周期是一个迭代、渐增的开发过程,这种迭代

4、过程不仅贯穿整个软件生命周期,并且表现在每个阶段中,特别是在分析(全局分析、局部分析)和设计(全局设计、局部设计)阶段。1.2 软件的建模所谓软件模型是对软件所模拟的现实世界和对软件所建立的信息系统的理解和描述,它源于所模拟的现实世界,是认识活动的产物,是描述信息系统的工具,是软件设计、测试、维护的依据。因此,软件模型的优劣将从根本上确定了软件的功能、性能和生命力。软件生命周期的前两个阶段,分析和设计所完成的工作就是建立软件模型。使用统一建模语言UML(Unified Modeling Language)建立软件模型可以提高我们在OO软件开发的每个阶段的工作效率 从记录新的问题领域中心概念的一

5、些最初想法,到组织软件开发人员与用户专家进行交流,直到最终软件产品的图形文件记录等。基于UML的OO软件开发产品的出现使OO设计更加高效、方便。UML的各种图形具有描述模型的准确性和广泛性,使用这些图形进行软件建模大大提高了模型的直观性,其主要优点表现在: 直观、易于理解问题领域和发现设计中的错误,特别是那些有关对象间关系的错误; 便于准确地从模型到实际应用编码的转换; 为软件的测试和维护提供准确依据。UML提供的“用例图(User Case Diagram)”、“类图(Case Diagram)”、“顺序图(Sequence Diagram)”、“协作图(Collaboration Diag

6、ram)”、“状态图(Statechart Diagram)”、“活动图(Activity Diagram)”和“包图(Package Diagram)”用于描述软件建模过程中各个阶段的各种模型成分。根据所设计的软件的规模和复杂程度不同,并非需要在所建立的软件模型中包括所有的图形,但一般都应包含用例图、类图、顺序图或协作图和活动图。1.2.1 用例图用户登记检查用户背景销售者贴出需要拍卖的物品接受报价将物品发给竞拍获胜者报价扩展点:更多报价向销售者付钱授权向销售者支付维护用户列表通知获胜者接受用户报价进行多个报价每个报价对应一件物品检查购买者的信用度查出一件物品列出所有物品购买者拍卖师使用“用

7、例图”描述拟建软件与外部环境之间的关系。一个用例表示一个外部角色 Actor (例如,用户或其它外部软件环境)与拟建软件之间一个单独交互。将所有的用例集中在一起,就可以描述一个OO软件的总体功能需求。例如一个网上拍卖系统的拍卖过程用例图:用例图在软件的建模过程中是必不可少的。1.2.2 类图使用“类图”描述所设计的软件中包含的类,以及这些类之间的静态关系,从而描绘了整个软件的静态组成和结构。1 类的一般描述图Employee-address2.*:char-age:int-name2.*:char+getName():char*+setAddress(in addr:char*)类名属性操作

8、类名:类的名称 属性:属性描述的语法:visibility name N : type = initialValue property-string visibility:属性的可见性:+ 表示public; # 表示protected;- 表示private。 name:属性的名称。 N:属性的多值性:2.*表示属性能接受多值;如果属性描述中无此项,则表示该属性只允许接受一个值。 type:属性的实现类型(依赖于实现语言的规范)。 initialValue:属性的初始值。 property-string:表示属性的一些无法用上述语法描述的特性。例如,一个只读属性(如 C+ 的const 成员

9、或 Java 的 final 成员), 则property-string将可以 设置为frozen。 操作: 操作描述的语法:visibility name (parameter-list) : return-type operation-string visibility:操作的可见性:+ 表示public; # 表示protected;- 表示private。 name:操作的名称。 parameter-list:操作的形参列表,表中允许有多个形参,形参之间由逗号分隔。每个参数的表示语法:kind name : type = defaultValue kind:表示参数的作用分类in 表示

10、参数向操作中传入一个值;out 表示参数从操作中提取一个值; inout 表示参数既可以向操作中传入一个值又可以从操作中提取一个值。 name:表示形参名。type:表示形参类型。defaultValue:表示形参的缺省值。 return-type:操作的返回类型(因编译器而异)。 operation-string:表示操作的一些无法用上述语法描述的特性。例如,一个操作是抽象操作,则operation-string可以设置为abstract。2 类的相互关系图用于描述类之间的静态关系。在关系图中的类图除了类名部分不能省略外,其它两部分都可以根据需要省略。主要的静态关系有: 归纳关系(Gener

11、alization):表示两个类之间的继承和派生关系,例如下图中的类EmployeeManagerEmployee是类Manager的超类(基类),而类Manager是类Employee的子类(派生类)。 关联关系(Association):表示两个类之间的关联关系,如下图中类Employee和类 -department : string-name : string-position : int-employeeBy : CorporationEmployee-address : string-name : string-numberEmployee : long-employees : Em

12、ployeeCorporation-employees*-employeeBy0.1Corporation之间的关联关系: 图中employeeBy 是 Employee 的属性成员,其类型为Corporation。通过该属性employeeBy 使两个类关联;0.1表示关联的多样性,此关联表示一个Employee对象不会被超过一个Corporation对象所雇用。同样,employees 是Corporation 的属性成员,其类型为Employee。* 表示一个Corporation对象允许有 0 至任意数量的Employee对象,即雇用任意多个雇员。上述二端关联关系也可以用两条箭头线分别

13、表示,箭头线的方向是从关联属性所在类指向属性的类型类。下面的关联关系表示同一类的两个以上不同对象间的关联。它的含义是该雇员可以管理1至10个其它员工。-department : string-name : string-position : int-employeeBy : Corporation-employeeSupervised : EmployeeEmployee-employeeSupervised1.10注意,参与一个关联的两个对象常常是独立存在的,即关联关系中的一个对象的存在与否不会影响到所关联的另一个对象的存在。 类之间的聚合和合成关系:表示对象之间的“整体”和“部分”之间的关

14、系,即在整体和部分之间可能存在生命期的依赖性。合成关系表示当整体不再存在时,部分同时被销毁的紧密关系。例如,下图中WindowTitleBarSliderPanel-scrollBar1-body1-title1的 Window 和 Slider, TitleBar, Panel 之间的关系:聚合关系表示当整体不再存在之后,部分还会继续存在的关系。例如,下图中的类Orchestra 和 Performer之间的关系。当然这种关系也可以通过前面介绍过的关联关系表示。但是,聚合关系可以很形象地说明一些概念。例如本例中说明:乐队是由演-conductor-name : string-numberOfPlayer : int-musician : PerformerOrchestra-instrument : string-name : stringPerformer-musician1.*奏人员所组成的,但乐

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号