文档库 最新最全的文档下载
当前位置:文档库 › 第6章 面向对象设计原则

第6章 面向对象设计原则

第6章 面向对象设计原则
第6章 面向对象设计原则

c++面向对象课程设计报告

课程设计报告 课程名称面向对象程序设计 课题名称学生成绩管理系统 专业计算机科学与技术 班级计算机 1001 学号 01 姓名 指导教师李珍辉陈淑红李杰军 2011年 12 月 28 日

湖南工程学院 课程设计任务书 课程名称面向对象程序设计 课题学生成绩管理系统 专业班级计算机1001 学生姓名 学号 01 指导老师李珍辉陈淑红李杰军 审批 任务书下达日期 2011 年 11 月 15 日 任务完成日期 2011 年 12 月 28 日

一、设计内容与设计要求 1.课程设计目的: 面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。 2.课题题目 1)公司库存管理系统 2)高校学籍管理系统 3)高校工资管理系统 4)高校人事管理系统 5)通讯录程序设计 6)学生成绩管理系统 7) 图书管理系统 8)文本编辑器的设计与实现 9)学生考勤管理系统 10)公司人员管理系统 3.设计要求: ⑴设计课题题目:每位同学根据自己学号除以10所得的余数加1选择相 应题号的课题。随意换题者不记成绩。 ⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括 系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。②完 成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模 块图)。③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E -R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。④系 统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修 改和调整。⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出 每一步的操作步骤。⑥关键源程序(带注释)

结构化分析设计与面向对象分析设计比较研究

结构化分析设计与面向对象分析设计比较研究 重庆工商大学计算机科学与技术08软件龚霞 指导老师康世瀛 中文摘要:解析了结构化方法和面向对象方法这两种软件开发方法具有的分析设计过程,讨论了各自在不同软件开发中的应用及局限性,提出了在选用面向对象开发大型软件系统的同时可结合结构化方法。 关键词:软件开发;结构化方法;面向对象方法 Abstract:This paper anatomizes the analysis and design process of Structural method and objected-oriented method,discusses their applications and disadvantages and proposes that structural method can also be used while developing the large-scale software systems in selecting the objected-oriented method. Key words:software-development;objected-oriented method;structural method 一、引言 结构化方法由E.Yourdon和L.L.Constantine在1978年提出,结构化方法又可称为面向功能的软件开发方法或面向数据流的软件开发方法。结构化方法是建立在软件生存周期的模型基础上的一种软件开发方法,相对于早期的个体化开发方法无疑是前进了一大步。 由于传统的生命周期开发学存在下面的问题:生产率提高的幅度远不能满足需求,软件的重用度很低,软件难以维护,软件往往不能满足用户的需求。所以出现了面向对象软件开发方法。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构,所以面向对象的软件开发方法彻底实现了PAM没有完全实现的目标。不仅如此,面向对象技术在需求分析、可维护性和可靠性这三个软件开发的关键环节和质量指标上有了

面向对象设计原则

面向对象设计原则 ?OO原则: ◆封装变化之物 ◆针对接口编码,而不是对实现 ◆应用程序中的每一个类只有一个改变的理由 ◆类是关于行为与功能的 ?目的: 设计原则形成更可维护更具灵 ◆使用已被证实的OO设计原则形成更可维护、更具灵 活性以及更易扩展的软件 Design Principles ?OCP (The Open-Closed Principle) 开放-封闭原则 SRP(The Single Responsibility Principle)单职责原则?SRP (The Single-Responsibility Principle) 单一职责原则?LSP (The Liskov Substitution Principle) Liskov替换原则 ?DIP (The Dependency-Inversion Principle) 依赖倒置原则?ISP (The Interface-Segregation Principle) 接口隔离原则?CARP (Composition/Aggregation Principle ) 合成/聚合复用 原则 ?LoD(Law of Demeter) 迪米特法则

Open-Closed Principle ?开-闭原则(Open-Closed Principle) 对扩展开放对修改关闭 ◆对扩展开放,对修改关闭 ◆OCP允许改变,以不需要修改现有程序代码的方式 进行 SRP ?单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因。 ◆就个类而言,应该仅有个引起它变化的原因。

Example: SRP violation interface Modem{ public void dial (String pno);ti public void dial (String pno);public void hangup();public void send (char c); public char recv();}connection management data communication Example Separated modem interface

问卷设计六大原则

问卷设计六大原则 问卷调查是目前调查业中所广泛采用的调查方式——即由调查机构根据调查目的设计各类调查问卷,然后采取抽样的方式(随机抽样或整群抽样)确定调查样本,通过调查员对样本的访问,完成事先设计的调查项目,最后,由统计分析得出调查结果的一种方式。它严格遵循的是概率与统计原理,因而,调查方式具有较强的科学性,同时也便于操作。这一方式对调查结果的影响,除了样本选择、调查员素质、统计手段等因素外,问卷设计水平是其中的一个前提性条件。而问卷设计的好坏很大程度上又与设计制度(原则)有关! 一、合理性。合理性指的是问卷必须紧密与调查主题相关。违背了这样一点,再漂亮或精美的问卷都是无益的。而所谓问卷体现调查主题其实质是在问卷设计之初要找出与“调查主题相关的要素”! 如:“调查某化妆品的用户消费感受”——这里并没有一个现成的选择要素的法则。但从问题出发,特别是结合一定的行业经验与商业知识,要素是能够被寻找出来的:一是使用者(可认定为购买者)。包括她(他)的基本情况(自然状况:如性别、年龄、皮肤性质等);使用化妆品的情况(是否使用过该化妆品、周期、使用化妆品的日常习惯等);二是购买力和购买欲。包括她(他)的社会状况收入水平、受教育程度、职业等);化妆品消费特点(品牌、包装、价位、产品外观等);使用该化妆品的效果(评价。问题应具有一定的多样性、但又限制在某个范围内,如Ⅰ.价格;Ⅱ.使用效果;Ⅲ.心理满足,等);三是产品本身。包括对包装与商标的评价、广告等促销手段的影响力、与市场上同类产品的横向比较、等……应该说,具有了这样几个要素对于调查主题的结果是有直接帮助的。被访问者也相对容易了解调查员的意图,从而予以配合。 二、一般性。即问题的设置是否具有普遍意义。 应该说,这是问卷设计的一个基本要求,但我们仍然能够在问卷中发现这类带有一定常识性的错误。这一错误不仅不利于调查成果的整理分析,而且会使调查委托方轻视调查者的水平。如搞一个“居民广告接受度”的调查: 问题:你通常选择哪一种广告媒体: 答案:a、报纸;b、电视;c、杂志;d、广播;e、其它 而如果答案是另一种形式: a、报纸; b、车票; c、电视; d、墙幕广告; e、汽球; f、大巴士; g、广告衫; h、…… 如果我们的统计指标没有那么细(或根本没必要),那我们就犯了一个“特殊性”的错误,从而导致某些问题的回答实际上是对调查无助的! 在一般性的问卷技巧中,需要注意的是:不能犯问题内容上的错误。如: 问题:你拥有哪一种信用卡? 答案:a、长城卡;b、牡丹卡;c、龙卡;d、维萨卡;e、金穗卡; ——其中“d”的设置是错误的,应该避免。 三、逻辑性。问卷的设计要有整体感,这种整体感即是问题与问题之间要具有逻辑性,独立的问题本身也不能出现逻辑上的谬误。从而使问卷成为一个相对完善的小系统。如: 问题: Ⅰ、你通常每日读几份报纸? a、不读报; b、1份; c、2份; d、3份以上; Ⅱ、你通常用多长时间读报? a、10分钟以内; b、半小时左右; c、1小时; d、1小时以上; Ⅲ、你经常读的是下面哪类(或几类)报纸? a、×市晚报; b、×省日报; c、人民日报; d、参考消息; e、中央广播电视报; f、足球…… 在以上的几个问题中,由于问题设置紧密相关,因而能够获得比较完整的信息。调查对象也会感到问题集中、提问有章法。相反,假如问题是发散的、带有意识流痕迹的,问卷就会给人以随意性而不是严谨性的感觉。那么,将市场调查作为经营决策的一个科学过程的企业就会对调查失去信心! 因此,逻辑性的要求即是与问卷的条理性、程序性分不开的。已经看到,在一个综合性的问卷中,调查者将差异较大的问卷分块设置,从而保证了每个“分块”的问题都密切相关。 四、明确性。所谓明确性,事实上是问题设置的规范性。这一原则具体是指:命题是否准确?提问是

《面向对象程序设计》课程设计要求和任务书

《面向对象程序设计》课程设计任务书 课程设计名称:面向对象程序设计指导老师:王淮亭 课程设计周(时)数:2周 课程设计授课单位:计算机基础教学部指导方式:集体辅导与个别辅导相结合 课程设计适用专业:计算机科学与技术 课程设计教材及主要参考资料: 《C++程序设计》谭浩强编著,清华大学出版社 《C++程序设计教程学习辅导》谭浩强编著,清华大学出版社 服务课程名称:面向对象程序设计 一、课程设计的目的要求 《面向对象程序设计课程设计》是计算机专业及相关专业学生的一门实践课程。本课程对于检验学生学习面向对象程序设计课程后的学习成果,对于软件开发主流方法和思想——面向对象程序设计方法和思想的牢固掌握和熟练应用是一个非常重要的检测,是后续课程得以顺利进行的必要保证,对学生的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。 本课程设计要求学生综合应用已学的计算机相关知识,例如程序设计基本思想和方法、C++语言、面向对象程序设计思想和方法,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题。课程要求学生针对一个比较系统的题目进行编码、测试,并进行设计说明书的撰写,从而培养和锻炼学生初步的工程意识和做法。 二、课程设计内容及安排 1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明 确问题要求做什么?(而不是怎么做?)限制条件是什么? 2. 逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以 数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图; 3. 详细设计:定义相应的存储结构并写出各函数的伪码算法。在这个过程中, 要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。 详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;

UML面向对象分析与设计、建模与设计课后选择判断

第一章 1.选择题 (1)软件工程的概念是在()年被首次提出的。 A.1949 B.1968 C.1972 D.1989 (2)下列不属于软件工程的目标的一项是() A.提高软件产品的质量 B.提高软件产品的可靠性 C.减少软件产品的需求 D.控制软件开发成本 (3)软件危机产生的主要原因是() A.软件工具落后 B.软件生产能力不足 C.对软件认识不够 D.软件本身的特点及开发方法 (4)人们公认的第一门面向对象编程语言是()。 A. Simula B. Smalltalk C. C++ D. Java (5)下列编程语言中不支持面向对象的特性的是()。 A. C++ B. ANSI C C. Java D. Objetive c (6)下列选项中不是面向对象方法的相关原则的是()

A.封装 B.继承 C.多态 D.结构 (7)()是面向对象方法中用来描述”对客户隐藏对象的属性和实现细节”的概念。 A.封装 B.继承 C.多态 D.抽象 (8)下列选项中不属于面向对象方法的优势之-的是()。 A.复用性强 B.改善了软件结构 C.软件的执行效率更高 D.抽象更符合人类的思维习惯 2.判断题 (1)软件就是程序,编写软件就是编写程序。对错 (2)软件危机的主要表现是软件需求增加,软件价格上升。对错 (3) C语言对面向对象的发展起到了重要作用。对错 (4)面向对象方法中的对象是从客观世界中抽象出来的一个集合体。对错 (5)面向对象可以保证开发过程中的需求变化完全不会导致系统结构的变化。对错 (6)面向对象方法就是使用面向对象的程序设计语言进行编程。对错

(7)对象的自治性指的是对象是完全封闭的,不受任何外界影响。对错 (8)类是面向对象程序中的构造单位,也是面向对象程序设计语言的基本成分。对错 第二章 1.选择题 1.选择题 (1)下列关于模型的表述,不正确的项是()。 A.建模语言只能是图形表示的 B.模型所描绘的系统蓝團既可以包括详细的计划,也可以包括系统的总体计划 C.模型可以帮助开发组生成有用的工作产品 D.最好的模型总是与现实世界联系密切 (2) UML的全称是()。 A. Unify Modeling L.anguage B. Unified Modeling Language

六大设计原则

设计模式六大设计原则 单一职责原则(Single Responsibility Principle-SRP) 理解:对于一个类而言,应该仅有一个引起它变化的原因。说白了就是,不同的类具备不同的职责,各施其责。这就好比一个团队,大家分工协作,互不影响,各做各的事情。 应用:当我们做系统设计时,如果发现有一个类拥有了两种的职责,那就问自己一个问题:可以将这个类分成两个类吗?如果真的有必要,那就分吧。千万不要让一个类干的事情太多!开放封闭原则(open closed principle-OCP) 理解:简言之,对扩展开放,对修改封闭。换句话说,可以去扩展类,但不要去修改类。应用:当需求有改动,要修改代码了,此时您要做的是,尽量用继承或组合的方式来扩展类的功能,而不是直接修改类的代码。当然,如果能够确保对整体架构不会产生任何影响,那么也没必要搞得那么复杂了,直接改这个类吧。 里氏替换原则(liskov substitution principle -LSP) 理解:父类能够替换子类,但子类不一定能替换父类。也就是说,在代码中可以将父类全部替换为子类,程序不会报错,也不会在运行时出现任何异常,但反过来却不一定成立。 应用:在继承类时,务必重写(Override)父类中所有的方法,尤其需要注意父类的protected 方法(它们往往是让您重写的),子类尽量不要暴露自己的public 方法供外界调用。 最少知识原则(last knowledge principle-LKP) 理解:尽量减少对象之间的交互,从而减小类之间的耦合。简言之,一定要做到:低耦合,高内聚。 应用:在做系统设计时,不要让一个类依赖于太多的其他类,需尽量减小依赖关系,否则,您死都不知道自己怎么死的。 接口隔离原则(Interface Segregation Principle - ISP) 理解:不要对外暴露没有实际意义的接口。也就是说,接口是给别人调用的,那就不要去为难别人了,尽可能保证接口的实用性吧。她好,我也好。 应用:当需要对外暴露接口时,需要再三斟酌,如果真的没有必要对外提供的,就删了吧。一旦您提供了,就意味着,您将来要多做一件事情,何苦要给自己找事做呢。 依赖倒置原则(Dependence Inversion Principle – DIP) 理解:应该面向接口编程,不应该面向实现类编程。面向实现类编程,相当于就是论事,那是正向依赖(正常人思维);面向接口编程,相当于通过事物表象来看本质,那是反向依赖,即依赖倒置(程序员思维)。 应用:并不是说,所有的类都要有一个对应的接口,而是说,如果有接口,那就尽量使用接口来编程吧。

面向对象课程设计任务-可选题

面向对象课程设计任务书 一、设计基本要求 1、利用面向对象的方法和C++编程思想来完成系统的分析和设计; 在设计过程中,建立清晰的类层次;用UML画出类及类间的关系图; 程序中包含面向对象的基本知识:封装、继承、多态,基本的信息应该能长期保存(用文件存放) 2、系统启动运行时读取存储在文件中的记录解析成对象数据放入内存(以STL向量或链表存放) 3、基本的信息管理包括:读数据(从文件中读到内存)、增加、删除、查询、修改、存盘(将内存中数据写回文件)。可以自己根据题目要求增加新的功能。增、删、改、查操作在内存中进行(针对STL向量或链表的操作而不是针对文件的操作) 4、系统关闭前将内存数据存入文件(可以新建文件或覆盖原有文件) 5、类中属性以private或protected属性为主 6、层次分明,结构合理,加上简单界面的设计,如菜单,界面清新美观,维护容易 7、按照指导书的要求编写文档。 二、使用的主要技术 C++编程:基础编程,文件流,STL,必要的异常处理机制 环境:VC++6.0 三、设计的方法和步骤 设计步骤: 第一步:进行完整的需求分析,写出需求分析报告。 第二步:进行详细设计,写出详细的设计报告。 第三步:各模块编码实现。 第四步:合并调试并试运行,记录实现过程中出现的问题及解决方案。 第五步:提交完整可执行软件,准备答辩。 第六步:答辩,演示软件,评分。 第七步:整合各报告,修改并提交。 四、主要参考资料 1.课程教材 2. 面向对象程序设计实用教程张海藩清华大学出版社 3. C++语言程序设计(第1版)吕凤翥清华大学出版社 4. C++语言程序设计(第1版)郑莉清华大学出版社 5.C++及Windows可视化程序设计刘振安清华大学出版社 6.其他相关的书籍及网络资源 五、选题 以下为一组可选的选题,每个选题可以从中选择一部分来实现,但需要达到基本要求。 1. 班主任工作管理系统 班主任的日常工作非常繁琐,需要管理学生的信息、班级的日常活动等。结合班主任工作实际,开发一个管理系统,系统主要功能如下: (1)学生资料管理:提供学生基本档案、学生评语、家访记录的维护,并可以按照年

面向对象设计原则

面向对象设计原则

单一职责原则--SRP 一、SRP简介(SRP--Single-Responsibility Principle): 就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。 所谓职责,我们可以理解他为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑撤分这个类了。因为职责是变化的一个轴线,当需求变化时,该变化会反映类的职责的变化。“就像一个人身兼数职,而这些事情相互关联不大,,甚至有冲突,那他就无法很好的解决这些职责,应该分到不同的人身上去做才对。” 二、举例说明: 违反SRP原则代码: modem接口明显具有两个职责:连接管理和数据通讯; interface Modem { public void dial(string pno); public void hangup(); public void send(char c); public void recv(); } 如果应用程序变化影响连接函数,那么就需要重构: interface DataChannel { public void send(char c); public void recv(); } interface Connection {

public void dial(string pno); public void hangup(); } 三、SRP优点: 消除耦合,减小因需求变化引起代码僵化性臭味 四、使用SRP注意点: 1、一个合理的类,应该仅有一个引起它变化的原因,即单一职责; 2、在没有变化征兆的情况下应用SRP或其他原则是不明智的; 3、在需求实际发生变化时就应该应用SRP等原则来重构代码; 4、使用测试驱动开发会迫使我们在设计出现臭味之前分离不合理代码; 5、如果测试不能迫使职责分离,僵化性和脆弱性的臭味会变得很强烈,那就应该用Facade或Proxy模式对代码重构;

六西格玛设计的8个基本原则

https://www.wendangku.net/doc/bb16025601.html,/ 六西格玛设计的8个基本原则 简单地讲,六西格玛设计是为了满足顾客的要求和期望,并可为顾客带来价值和服务。六西格玛设计同传统设计一样,一些基本原则应该满足。否则,并非是一个成功的六西格玛设计项目。 1、性能指标适合要求的原则 每一种新产品或服务,性能指标必须达到顾客要求,这也是最低要求。新产品或服务的规格应该是清晰的,而且是可测量的。 2、实用性和舒适性的原则 每一种新产品或服务,要实用性和舒适性相结合,能使顾客满意,新产品设计要新颖,要符合美学原则。 3、创新性和超前性原则 每一种新的发明创造,能起到一种推动社会进步的作用。优秀的六西格玛设计师,是人类文明的开拓者。设计的项目具有创新精神和超前意识,为顾客带来新的愉悦,为社会创造价值,为人类作出贡献。 4、工艺性和可制造性原则 每一种新产品或服务设计出来,要能够形成商品,并快速投放市场,应该具有好的工艺性或可制造性。无论是加工或组装,工艺性能要满足制造要求,且夹具及辅料要最省,通用零部件要省,标准化程度要高。 5、可靠性原则 每一种新产品或服务设计出来,新产品要有一定的可靠度,满足顾客的预期使用寿命,为顾客真正带来价值。 6、可维修性原则 每一种新产品设计出来,在保障使用的前提下,可维修性也要提出来。尽量模块化、标准化、通用化,拆卸维修方便,提高产品的使用寿命,超越顾客的期望。 7、成本效益原则 每一种新产品的设计都要考虑成本与效益的问题,找到一个顾客与提供商的成本与效益的最佳平衡点。六西格玛设计师要系统考虑,全面统筹,给顾客带来价值的同时,要考虑给股东或社会带来价值。 8、安全性原则 每一种新产品或服务投放市场,应该是安全地满足顾客的要求和期望,六西格玛设计师要充分考虑设计的稳健性,提供必要的裕量。防止失效,防止给人类和社会造成灾难。这样的例子是不胜枚举的。往往是由于设计师的疏忽而酿成大祸。六西格玛设计师是人类灵魂的工程师,社会的进步,人类的发展,他们的作用是功不可没的。安全性要始终牢记于心,一种新产品或服务,要为社会带来福音。

面向对象分析与设计简答题

1、什么面向对象? 面向对象不仅是以些具体的软件开发技术与策略,而且以一套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。 2、软件开发方法学的基本方法有哪些? 1)软件工程和瀑布方法学2)新方法学:螺旋式、迭代式、递增式、合并式3)面向对象方法学:UML、RUP、XP 3、为什么需要OOA、OOD。 OOA就是运用面向对象的方法进行需求分析,OOA加强了对问题域和系统责任的理解,有利于人员之间的交流,对需求变化的适应性较强,很好的支持软件复用。 OOD就是运用面向对象的方法进行系统设计,OOD.符合人们习惯的思维方法,便于分解大型的复杂多变的问题;易于软件的维护和功能的增减;可重用性好;与可视化技术相结合,改善了工作界面。 4、从概念层次、规格层次、实现层次三个角度如何理解对象的概念? 从概念层次来看,一个对象就是一系列的责任; 从规格层次来看,一个对象是一系列可以被其他对象或该对象自己调用的方法;从实现层次来看,一个对象是一些代码和数据。 5、如何绘制类图和对象图?简述其步骤。 类图绘制:1发现类,找到备选类,确定候选类2关联分析,确定关联关系,多重性分析3职责分析4限定与修改,导航性分析,约束,限定符; 对象图绘制:1发现类和对象2对其细化,分析,确定关系。 6、简述重定义方法与重载的区别。 重定义:1参数列表必须完全与被重写的方法相同2返回类型必须一直域被重写的方法的类型相同3访问修饰符的限制一定要大于被重写方法的访问修饰符4重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查性异常:重载:1必须有不同参数列表2可以有不同的返回类型,只要参数列表不同即可3可有不同访问修饰符4可抛出不同的异常。 7.简述抽象方法与虚方法的联系与区别 虚方法有一个实现部分可以为子类实现有共同的方法,并为派生提供了覆盖该方法的选,抽象方法只是强制派生覆盖方法;抽象方法只能在抽象类中声明,而虚方法不是;抽象方法不能声明方法实体,虚方法可以;包含抽象方法的类不能实例化,但虚方法可以。 8、简述使用继承的规则。 1)、不要过度使用;2)、子类应是超类的一个类型;3)、子类应是超类的扩展; 4)、尽量少从具体类继承,最好继承接或抽象类。

面向对象程序课程设计任务书

面向对象程序设计课程设计任务书 课程性质:设计 总学时数:1周 适用专业:软件工程10 1-6 嵌软10 1-2 软件学院 2012-6

一、课程设计目的和任务 《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。 二、设计内容和基本要求 设计任务书提供设计题目供学生选择。在指导教师同意的情况下,学生也可以自己选择感兴趣的设计题目,以调动学生参加创新设计的积极性和创造性,给学生充分的自主空间。 基本要求: ?设计工作量为完成一个中小型规模的软件和1份软件设计报告书 ?设计必须根据进度计划按期完成 三、课程设计参考题目 以下题目列出的仅为完成的基本功能,可根据需要完善与课题相关的其他功能。以下题目涉及窗体的设计、菜单设计、数据库设计、文件的读写等多种编程的实现,根据题目的要求自行进行编程设计。 1、设计一个GUI猜数字游戏程序 该游戏可以由程序随机产生四个0到9之间的整数,且不重复。玩游戏者通过由用户输入四个数字来匹配上面所产生的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。假设随机数据为3792 时,分析如下 数据:3792 输入:1234 0A2B 输入:5678 0A1B 输入:0867 0A1B 输入:9786 1A1B 输入:1794 2A0B 输入:2793 2A2B

输入:3792 4A0B 2、编写一个记事本程序,要求如下: (1)用图形用户界面实现。 (2)能实现编辑、保存、另存为、查找替换等功能。 提示:使用文件输入输出流。 3、设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本功能。要求如下: (1)具有简单的录入,查询和修改功能。 (2)修改学生信息必须输入学号,然后对姓名、性别和专业等进行修改; (3)使用文件存储数据。 (4)学生个人信息必须包括:学号、姓名、性别、出生日期、身份证号、专 业、班级自我简介,其余可自行丰富。 (5)具有对姓名,出生日期和身份证号进行简单效验的功能。 4、日历记事本 要求:带有日程提醒功能的日历。 (1)显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询 下一个月的日期。 (2)定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信 息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。 (3)查询信息:用户可以查询到某个月的所有的提示信息。 5、ATM柜员机模拟程序 要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: (1)查询余额功能:初始余额为10000元 (2)ATM取款功能:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。 (3)ATM存款功能:不能出现负存款。 (4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

商业空间设计的6大原则

商业空间设计最终的目的有且只有一个 那就是让消费者迈入店铺门槛,并引导他们消费更多 这也是众多零售商想尽办法想要达到的目的 他们通过播放音乐或采用诱人的气味充满整个售卖场所等等的方式 去赢得顾客的关注与消费。 而对于商业空间设计公司来说 从最初的店面的规划,到实施,再到最后的交付 其设计的诀窍是了解消费者,设计出符合消费者喜好的室内环境 这才是商业空间设计真正的艺术所在。 下面的六种商业空间设计艺术将改变零售环境: 1.引人注目的视觉营销 商业空间设计中的橱窗所带来的视觉营销力是不容小觑的。引人注目的视觉营销可以吸引购物者的注意力,并鼓励他们走进商店消费。 橱窗是所有零售店的眼睛,透过这双眼睛,可以向顾客讲述商店的故事。这个故事的每一个细节,都有可能走进顾客的心里,牵动顾客将步代迈入商店内。通常来说,橱窗的展示核心在于店铺的核心商品。

2.减慢客户的购物过程 现代消费者非常忙碌,并且倾向于匆忙购物。商业空间设计的工作是减缓 这段购物过程并增加顾客在商店的停留时间。一种方法是在入口处放置一个醒 目的大型显示屏。 客户将很快知道他们是否喜欢他们所看到的内容,并将关键产品放在商店 前面可以帮助他们做出这个决定。通过一些动线的设计,零售商可以鼓励顾客 进一步进入商店的最深层。 3.动线引导顾客的购物路径 在进行商业空间设计时,零售商应该清楚的知道,他们规划的顾客动线, 应清楚地了解,哪些产品放在什么位置会有利于引导顾客走入商店的最深层, 接触更多深层的商,品,最终获得最多的消费。 一些零售商没有合理的动线设计,没有高效的将顾客带入他们想去的地方,只是单纯的引导顾客进入走道而没有考虑去设计出一条能增加停留时间、利于 销售的动线。 而商业空间设计中的动线设计原则,是设计出一条理想的客户购物路线. 4.引导顾客到商店右侧

第6章 面向对象设计原则

1 第06章面向对象的设计原则Object-Oriented Design Principles -1- 2 -2- 学习路线图 OO UML OOP DP … Case-Study … 学习路线图 : : …… …… …… (1) 2 34 5 6 7 8 9 10 3从问题开始! ?长方形与正方形 –假如我们有一个类:长方形(Rectangle) –我们需要一个新的类,正方形(Square) –问:可否直接继承长方形? 没问题,因为数学上正方形就是长方形的子类!height : int width : int getHeight() : int getWidth() : int setHeight(h : setWidth(w : int) setHeight(h : int) setWidth(w : int)

7-7--7-面向对象的设计原则 ?面向对象的设计原则 –是面向对象设计的基本指导思想–是评价面向对象设计的价值观体系–是设计模式的出发点和归宿 ?面向对象的设计原则是构造高质量软件的出发点 8 -8--8- 设计目标 ?构造出高质量软件,以保持系统稳定?设计目标 –可扩展性(Extensibility )–灵活性(Flexibility )–可插入性(Pluggability )– …… 9-9--9- 设计质量:培养灵敏的嗅觉 ?糟糕的设计总是散发出臭味,让人不悦 –判断一个设计的好坏,主观上能否让你的合作方感到心情愉悦,是最直观的标准 ?设计开发人员要培养嗅觉,当你看到UML 图或者代码,感到杂乱、繁琐、郁闷的时候,你可能正面对一个糟糕的设计 ?这种嗅觉是在实践开发中培养起来的,而面向对象设计原则对此加以归纳和总结 10 -10--10- 设计质量:坏的设计 ?什么是坏的设计? –僵硬性(Rigidity ):刚性,难以扩展–脆弱性(Fragility ):易碎,难以修改 –牢固性(Immobility ):无法分解成可移植的组件 –不必要的复杂性(Needless Repetition ):Ctrl C + Ctrl V –晦涩性(Opacity ):不透明,很难看清设计者的真实意图 11-11--11- 设计质量:好的设计 ?什么是好的设计? –容易理解 –容易修改和扩展–容易复用 –容易实现与应用 – 简单、紧凑、经济适用 ?让人工作起来心情愉快的设计 ?设计原则是提高设计质量的基本原则 12 -12--12- 面向对象的基本设计原则 ?LSP :Liskov 替换原则 –The Liskov Substitution Principle ?OCP :开放-封闭原则 –The Open-Close Principle ?SRP :单一职责原则 –The Single Responsibility Principle ?ISP :接口隔离原则 –The Interface Segregation Principle ?DIP :依赖倒置原则 –The Dependency Inversion Principle ?……

面向对象课程设计任务书

面向对象课程设计任务书

河南城建学院 《面向对象语言程序设计》课程设计任务书 班级0814101/2 专业计算机科学与技术 课程名称面向对象语言程序设计 指导教师耿永军刘荣辉周二强 计算机科学与工程系 2012年06月

《面向对象语言程序设计》课程设计任务书 一、设计时间及地点 1、时间:第19周 2、地点:计算机系实验中心、本班教室10#A103 二、设计目的和要求 本课程设计是在学习C++基本理论之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过课程设计在下述各方面得到锻炼: 1.能根据实际问题的具体情况,结合C++的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。 2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。 三、设计题目和内容 主要有以下设计题目: 题目1 高校人事管理系统 一、目的与要求: 1、目的: (1)要求学生达到熟练掌握C++语言的基本知识和技能; (2)基本掌握C++程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的C++程序设计问题。 2、基本要求: (1)要求利用C++的方法以及C++的编程思想来完成系统的设计; (2)要求在设计的过程中,建立清晰的类层次; (3)在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法; (4)在系统的设计中,要求运用C++的机制(继承、派生及多态性)来

面向对象分析设计原则

一、单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。测试驱动的开发实践常常会在设计出现臭味之前就迫使我们分离职责。 二、开闭原则(OCP) 软件实体(类、模块、函数)应该是可扩展的,但是不可修改的。也就是说:对于扩展是开放的,对于更改是封闭的。怎样可能在不改动模块源代码的情况下去更改它的行为呢?怎样才能在无需对模块进行改动的情况下就改变它的功能呢?关键是抽象!因此在进行面向对象设计时要尽量考虑接口封装机制、抽象机制和多态技术。该原则同样适合于非面向对象设计的方法,是软件工程设计方法的重要原则之一。 三、替换原则(LSP) 子类应当可以替换父类并出现在父类能够出现的任何地方。这个原则是Liskov于1987年提出的设计原则。它同样可以从Bertrand Meyer 的DBC (Design by Contract〔基于契约设计〕) 的概念推出。 四、依赖倒置原则(DIP) 1、高层模块不应该依赖于低层模块。二者都应该依赖于抽象。2、抽象不应该依赖于细节。细节应该依赖于抽象。在进行业务设计时,与特定业务有关的依赖关系应该尽量依赖接口和抽象类,而不是依赖于具体类。具体类只负责相关业务的实现,修改具体类不影响与特定业务有关的依赖关系。在结构化设计中,我们可以看到底层的模块是对高层抽象模块的实现(高层抽象模块通过调用底层模块),这说明,抽象的模块要依赖具体实现相关的模块,底层模块的具体实现发生变动时将会严重影响高层抽象的模块,显然这是结构化方法的一个"硬伤"。面向对象方法的依赖关系刚好相反,具体实现类依赖于抽象类和接口。 五、接口分离原则(ISP) 采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好。ISP原则是另外一个支持诸如COM等组件化的使能技术。缺少ISP,组件、类的可用性和移植性将大打折扣。这个原则的本质相当简单。如果你拥有一个针对多个客户的类,为每一个客户创建特定业务接口,然后使该客户类继承多个特定业务接口将比直接加载客户所需所有方法有效。 以上五个原则是面向对象中常常用到的原则。此外,除上述五原则外,还有一些常用的经验诸如类结构层次以三到四层为宜、类的职责明确化(一个类对应一个具体职责)等可供我们在进行面向对象设计参考。但就上面的几个原则看来,我们看到这些类在几何分布上呈现树型拓扑的关系,这是一种良好、开放式的线性关系、具有较低的设计复杂度。一般说来,在软件设计中我们应当尽量避免出现带有闭包、循环的设计关系,它们反映的是较大的耦合度和设计复杂化。 面向对象之代码复用规则 1、对接口编程 "对接口编程"是面向对象设计(OOD)的第一个基本原则。它的含义是:使用接口和同类型的组件通讯,即,对于所有完成相同功能的组件,应该抽象出一个接口,它们都实现该接口。具体到JAVA中,可以是接口,或者是抽象类,所有完成相同功能的组件都实现该接口,或者从该抽象类继承。尽量使用接口。接口只是对象打交道的入口,只有具有继承关系才使用抽象类。 2、优先使用对象组合,而不是类继承 "优先使用对象组合,而不是类继承"是面向对象设计的第二个原则。并不是说继承不重要,而是因为每个学习OOP的人都知道OO的基本特性之一就是继承,以至于继承已经被滥用了,而对象组合技术往往被忽视了。只有有现实生活中的父子关系才使用继承。 相关的设计模式有:Bridge、Composite、Decorator、Observer、Strategy等。 3、将可变的部分和不可变的部分分离 "将可变的部分和不可变的部分分离"是面向对象设计的第三个原则。如果使用继承的复用技术,我们

面向对象分析与设计试题B卷

面向对象分析与设计试题B卷 一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2 分,共20 分) 1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是( D )的 形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准 2. 面向对象的运动产生了多种面向对象的语言, 其中(C )是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。 A. Smalltalk B. Eiffel C. C++ D. Java 3.下列不属于面向对象技术的基本特征的是(B )。 A. 封装性 B. 模块性 C. 多态性 D. 继承性 4. 面向对象程序设计将描述事物的数据与(C ) 封装在一起,作为一个相互依存、不可分割的整体来处理。 A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是(C )。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 6. (D )是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图 7. ( C ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图 和其他图的基础。 A.对象图 B. 组件图 C. 类图 D. 配置图 8.(D )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象 之间传递消息的时间顺序。 A.对象图 B. 协作图 C. 状态图 D. 序列图 9.(D )就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系 统中软件和硬件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图 10. 使用UML进行关系数据库的(B )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计 二、填空题( 每空1 分,共20 分) 1. 面向对象开发方法一改过去传统的以_____功能分析___为基础的_____面向对象_的结 构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为

广告海报设计的6大原则

广告海报设计的6大原则 导语:无规矩不成方圆,凡事都应该遵守原则,我们都知道广告对于我们很严重,广告海报设计的好可以为企业带来优良的效益,如今的社会是遵循优胜劣汰的生存法则,所以我们要增加自己的竞争力,更好的发展自己,因此宣传就很严重,然而广告海报设计在宣传上能起到很好的作用,下面就由为大家介绍一下广告海报设计的6大原则,希望对大家有所帮助! 一、冲击性原则。 在令人眼花缭乱的各种广告中,要想迅速吸引人们的视线,在广告公司创意海报就必须把提升视觉张力放在首位。 照片是广告中常用的视觉内容,将摄影艺术与电脑后期制作充分结合,拓展了广告公司创意海报的视野与表现手法,产生了剧烈的视觉冲击力,给观众留下了深刻的印象。 二、包蕴性原则。 吸引人们眼球的是形式,打动人心的是内容。独到醒目的形式必须蕴含耐人思索的深厚内容,才拥有吸引人一看再看的魅力。这就要求广告公司创意广告海报设计时不能停留在表层,而要使“本质”通过“表象”显现出来,这样才能有用地挖掘读者内心深处的渴望。 三、新奇性原则。新奇是广告作品引人注目的奥秘所在,也是一条不可忽视的广告创意规律。有了新奇,才能使广告公司创意海报波澜起伏,奇峰突起,引人入胜;有了新奇,才能使广告公司创意海报主题得到深化、升华。 四、应合理规划。 每一份广告海报设计的版面规划是否科学与规范也影响广告海报设计的广告效果的一个非常严重的条件。科学的对版面进行规划能够给大家造成一种比较好的视觉效果。 五、需构思要精巧。 产品的构思往往决定着一个产品能否得到大家的喜欢。 1/ 2

对于一份构思比较精巧的广告海报设计来说,无疑是会吸引大家关注的目光的,也是能够得到人们认可的一个非常严重的条件。 六、内容要全面充分。 因为广告海报设计最严重的一个要素就是广告宣传,所以,在设计广告海报设计的时候,应尽可能的把有关广告宣传的信息较好的融入到广告海报设计的中。 2/ 2

相关文档