类及对象部分作业题
面向对象系统分析与设计 阶段作业1
一、单项选择题(共10道小题,共100.0分)1. 在类图中,那个类图中的类Order所生成的代码具有Public class Order{Public Customer recipient;}的形式?A.B.C.D.知识点: 阶段作业一学生答案: [A;] 标准答案: A得分: [10] 试题分值: 10.02. 下列关于面向对象方法中描述中错误的是()。
A. 使用设计模式有助于在软件开发中应用面向对象技术B. 选择面向对象程序设计语言时需要考虑开发人员对其的熟悉程度一、单项选择题(共10道小题,共100.0分)1. 在类图中,那个类图中的类Order所生成的代码具有Public class Order{Public Customer recipient;}的形式?A.B.C.D.2. 下列关于面向对象方法中描述中错误的是()。
A. 使用设计模式有助于在软件开发中应用面向对象技术B. 选择面向对象程序设计语言时需要考虑开发人员对其的熟悉程度C. UML作为一种可视化建模语言需要与RUP开发过程同时使用D. 目前在软件生命周期的分析、设计、实现和测试中均可以应用面向对象方法3. 下面关于职责、行为、方法和操作之间的区别叙述错误的是:()A. 职责是对象对其它对象的义务,所有的对象都必须有职责。
B. 职责有两种:获知和执行。
C. 行为是通过操作完成的任务。
D. 操作是UML中被定义为可以请求对象的服务方法4. 关于用例与类的对比中()是错误的。
A. 都属于模型结构元素B. 都存在继承关系C. 类描述系统的部分静态视图,用例描述系统动态的行为视图D. 类描述的是系统的内部构成,用例也可以描述系统的内部构成5. 在一个网络游戏系统中,定义了类Cowboy和类Castle,并在类Cowboy中定义了方法open(c:Castle)和方法Close(c:Castle),则类Cowboy和类Castle之间的关系是:A. 依赖(dependency)关系B. 组合(composition)关系C. 泛化(generalization)关系D. 包含(include)关系6. 汽车(Car)由轮子、发动机、油箱、座椅、方向盘等组成。
北邮网院面向对象系统分析与设计 阶段作业
一、单项选择题(共10道小题,共100.0分)
1. “一个研究生在软件学院做助教(teaching assistant),同时还在校园餐厅打工做收银员(cashier)。
也就是说,这个研究生有3种角色:学生、助教、收银员,但在同一时刻只能有一种角色。
”根据上面的陈述,下面哪个设计是最合理的?
A.
B.
C.
D.
知识点: 阶段作业一
学生答案: [B;]
标准答
案:
B
得分: [10] 试题分
值:
10.0
2. 关于用例与类的对比中()是错误的。
A. 都属于模型结构元素
B. 都存在继承关系
C. 类描述系统的部分静态视图,用例描述系统动态的行为视图
D. 类描述的是系统的内部构成,用例也可以描述系统的内部构成
知识点: 阶段作业一
学生答[C;] 标准答 C。
计算机应用基础作业1(含答案)
计算机应用基础作业1(含答案)计算机应用基础作业1作业题目:设计一个学生管理系统作业要求:1、设计一个学生类,包括学生的姓名、年龄、性别、学号等属性,以及相应的get和set方法。
2、设计一个班级类,包括班级的名称、学生列表等属性,以及相应的添加学生、删除学生和获取学生人数的方法。
3、使用面向对象的思想,实现以上两个类的交互,可以进行学生的添加、删除和统计操作。
4、设计一个学生管理系统类,包括菜单界面和相应的操作方法,可以对班级进行添加学生、删除学生和统计学生人数的操作。
1、学生类设计属性:- 姓名:表示学生的姓名- 年龄:表示学生的年龄- 性别:表示学生的性别- 学号:表示学生的学号方法:- 构造方法:用于初始化学生对象,接收姓名、年龄、性别和学号作为参数- get方法和set方法:用于获取和设置学生的属性值2、班级类设计属性:- 班级名称:表示班级的名称- 学生列表:表示班级中的学生列表,初始为空列表方法:- 构造方法:用于初始化班级对象,接收班级名称作为参数- 添加学生方法:接收学生对象作为参数,将学生添加到学生列表中- 删除学生方法:接收学生对象作为参数,从学生列表中删除该学生- 获取学生人数方法:返回当前班级学生列表中的学生人数3、学生管理系统类设计属性:- 班级对象:表示班级对象,可用于进行学生的添加、删除和统计操作方法:- 构造方法:初始化班级对象- 菜单方法:显示操作菜单,接收用户输入的选项,并根据选项执行相应的操作方法- 添加学生方法:接收学生的姓名、年龄、性别和学号作为参数,创建学生对象,并调用班级对象的添加学生方法将学生添加到班级中- 删除学生方法:接收学生的学号作为参数,创建学生对象,并调用班级对象的删除学生方法将学生从班级中删除- 统计学生人数方法:调用班级对象的获取学生人数方法,获取班级中学生的人数,并输出结果附件:无法律名词及注释:1、学生:指在教育机构中接受教育的学员,包括未成年人和成年人。
面向对象程序设计大作业参考题目及要求
面向对象程序设计大作业参考题目1、学生信息管理(1)问题描述学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:●系统以菜单方式工作●学生信息录入功能(学生信息用文件保存)---输入●学生信息浏览功能——输出●查询、排序功能——算法1、按学号查询2、按姓名查询●学生信息的删除与修改(可选项)(2)功能要求●界面简单明了;●有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;●最好用链表的方式实现。
(3)算法分析首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。
对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。
文件的读写操作大家参照书中的有关文件的章节。
2、学生综合测评系统每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
提示:学生信息可先输入到数组中,排序后可写到文件中。
(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。
软件工程_综合题2
平时作业和2010两张卷子里的综合题作业2:类图、对象模型、用例图(1)类图(使用对象模型描述类对象所具有的属性,以及公司类对象提供的服务)依赖,聚合依赖:①《include》包含依赖:源包含目的②《extend》扩展依赖:源是目的的扩展。
聚合:共享,整体消失后部分仍然存在。
复合:部分与整体的关系,整体消失后部分也消失。
关联,复合关联、继承(泛化)关联、依赖(2)对象图书p81①对象名:类名②属性=属性值③对象间的链可以使类之间关联的实例(3)对象模型对象模型的描述工具:对象图。
0,1:表示有0个或1个。
1+:表示多个不写:表示有且仅有一个。
(4)用例图(参与者,用例,调用关系)画图步骤:(a)(b)(c)(d)作业3:Jackson系统方法(用jackson图可以表示数据结构、程序结构)参考:jackson作业试用Jackson方法编写一程序,要求能依次完成下列工作:——统计起始卡以前的卡片张数,存入A;——打印起始卡的内容;——统计起始卡以后出现的K1卡和K3卡总批数,存入B;——统计起始卡以后出现的K1卡的张数,存入C;——统计起始卡以后出现的K3卡的批数,存入D;——打印终了卡的内容;——打印A,B,C,D 4个统计值。
第一步:画出数据结构图第二步:画程序结构图(基于数据结构图画)第三步:写出程序的过程性表示(伪码)打开卡片文件;读卡片;A:=0;处理前置部分iteruntil出现K1卡;处理非K1卡seqA:=A+1读卡片;处理非K1卡end;处理前置部分end;打印起始卡;B:=0;C:=0;D:=0;读卡片;处理批部分iteruntil出现K2卡;处理批seq统计总批数; {B:=B+1}处理批类select是K1卡处理K1批iterwhile出现K1卡;处理K1卡seqC:=C+1;读卡片;处理K1卡end;处理K1批end;处理批类or是K3卡处理K3批seq;D:=D+1;处理批体iterwhile出现K3卡;读卡片;处理批体end;处理K3批end;处理批类end;处理批end;处理批部分end;打印终止卡;打印A,B,C,D;关闭卡片文件;卡片分析程序end;作业4:画出数据流图(DFD)。
软件工程在线作业及答案
1.第1题在软件可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的成本/效益分析的是()。
A.经济可性性B.技术可行性C.操作可行性D.法律可行性您的答案:A题目分数:2.5此题得分:2.52.第2题为了提高模块的独立性,模块内部最好是()。
A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚您的答案:C题目分数:2.5此题得分:2.53.第3题Jackson方法是一种面向()的方法。
A.对象B.数据结构C.数据流D.控制流您的答案:B题目分数:2.5此题得分:2.54.第4题需求分析阶段研究的对象是软件项目的()。
A.用户需求B.合理要求C.模糊要求D.工程要求您的答案:A题目分数:2.5此题得分:2.55.第5题面向数据结构的设计方法(Jackson方法)是进行()的形式化的方法。
A.系统设计B.详细设计C.软件设计D.编码您的答案:B题目分数:2.5此题得分:2.56.第6题程序控制的三种基本结构中,()结构可提供多条路径选择。
A.反序B.顺序C.循环D.分支您的答案:D题目分数:2.5此题得分:2.57.第7题下列属于黑盒测试的是()。
A.基本路径测试B.条件测试C.循环测试D.等价划分您的答案:D题目分数:2.5此题得分:2.58.第8题软件设计一般分为总体设计和详细设计,它们之间的关系是()。
A.全局和局部B.抽象和具体C.总体和层次D.功能和结构您的答案:A题目分数:2.5此题得分:2.59.第9题好的软件结构应该是()。
A.高耦合,高内聚B.低耦合,高内聚C.高耦合,低内聚D.低耦合,低内聚您的答案:B题目分数:2.5此题得分:2.510.第15题面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(),一个类获得其父类的全部描述(数据和操作)。
A.传递性B.继承性C.复用性D.并行性您的答案:B题目分数:2.5此题得分:2.511.第16题软件项目管理是()一切活动的管理。
(完整)C++面向对象程序设计习题 类与对象
类和对象(一)知识点:1.类与对象的概念,及两者的关系?2.类定义的格式,对象定义的格式,访问对象的成员的格式3.类中成员访问权限有哪几种,它们的特点?4。
如何对对象进行初始化?5。
构造函数与析构函数的特点,构造函数在哪些情况下被系统自动调用,析构函数什么情况下被调用;存在虚基类的派生类构造函数调用顺序?6.缺省构造函数的特点7。
拷贝构造函数的功能与特点8。
成员函数与内联函数的区别9.静态成员的概念与作用10.静态成员函数调用格式11.什么是友元,友元的作用12.作用域运算符的功能是什么?它的使用格式如何?13.满足成员函数重载的条件作业题一、选择填空1.在下列关键字中,用以说明类中公有成员的是( )。
A . public; B.private; C.protected; D.friend。
2.下列的各类函数中,( )不是类的成员函数.A.构造函数; B.析构函数; C.友员函数; D.拷贝初始化构造函数。
3.作用域运算符的功能是( )。
A.标识作用域的级别的;B.指出作用域的范围的;C.给出作用域的大小的;D.标识某个成员是属于哪个类的。
4.( )是不可以作为该类的成员的.A.自身类对象的指针;B.自身类的对象;C.自身类对象的引用;D.另一个类的对象。
5.( )不是构造函数的特征。
A.构造函数的函数名与类名相同;B.构造函数可以重载;C.构造函数可以重载设置缺省参数;D.构造函数必须指定类型说明。
6.()是析构函数的特征。
A.一个类中能定义一个析构函数;B.析构函数名与类名不同;C.析构函数的定义只能在类体内;D.析构函数可以有一个或多个参数。
7.通常的拷贝初始化构造的参数是()。
A.某个对象名;B.某个对象的成员名;C.某个对象的引用名;D.某个对象的指针名。
8.关于成员函数特征的下述描述中,( )是错误的。
A.成员函数一定是内联函数;B.成员函数可以重载;C.成员函数可以设置参数的缺省值;(只能一次)D.成员函数可以是静态的。
面向对象分析与设计(UML)课程大作业题目及要求
《面向对象分析与设计(UML)课程大作业》题目一、课程大作业目的和要求1.初步了解UML语言的概念、结构、语义与表示方法;2.掌握UML建模工具Rational Rose的使用方法;3.给出某个简单系统的模型,能够熟练地使用Rose工具表达;二、课程大作业主要内容及要求课程设计的主要任务:1.根据所收集的简单需求,利用UML和Rational Rose工具对系统进行建模;2.根据前述需求的分析,进行需求建模,绘制系统的用例图和活动图;3.根据用例模型,进行架构建模,绘制系统的时序图,状态图,类图和交互图;4.绘制系统中某些重要功能的对象图;5.绘制系统的组件图和部署图;6.程序实现(选做)选题如下:1.网上选课系统主要包括如下功能:管理员通过系统管理界面进入,建立本学期要开的各种课程,将课程信息保存在数据库中并可以对课程进行改动和删除。
学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。
同样,通过业务层,这些操作结果存入到数据库中。
2.设计运动会的计分系统本运动会在若干各会场进行,每个会场进行若干个项目。
有若干支运动队参赛,每支运动队有数名运动员。
各赛事分预决赛,预赛成绩部分带入决赛。
成绩由裁判员给出,计分员记录。
要求在比赛结束后,产生各队排名表及运动员的详细成绩表。
3. 试题管理系统其中试题分正式试题和临时试题,出题人设置课程名和试卷难度等内容后,系统自动出卷。
对试题要进行管理,并提供查询功能。
4. 工资管理系统一个公司下分若干部门,每个部门有若干名职员和经理,每个部门经销若干种产品。
工资由基本工资、产品销售业绩、若干种保险的扣除等组成。
其中的销售业绩:职员按其完成额5%提成,经理按该部门的完成额的1%提成。
每个月要生成一个工资表,每年末再按个人的总销售额发放1%的奖金。
5.宿舍楼管理系统该系统涉及到的事物有:宿舍楼、楼层、房间、家具;室长、楼长、保洁员、学生;学生所属的系。
7、陕师大《心理学》作业题附答案
陕西师大远程教育学院中文专升本科函授生《心理学》作业题附答案1、心理学的研究对象是什么?答:心理学是研究人的心理现象或心理活动发生、发展及其规律的科学。
2、什么是意识?答:意识是指人所特有的反映现实的最高形式,是人对现实的一种有意识、有组织的反映,也可以说意识就是人的心理,是人自觉的、有目的的高级心理部分。
3、学习心理学有什么意义?答:探索人心理活动的规律,具有重要的理论意义和实践意义。
(一)理论意义:心理学研究可以帮助我们建立并坚持辩证唯物主义观点。
因为心理学在研究人脑对客观现实反映过程中所取得的成果,科学地揭示了心理与脑的关系,心理与客观现实的关系,雄辩地论证了物质第一性、精神第二性这一马克思主义哲学的基本原理,有力地批驳、抨击了形形色色的唯心主义思想观点。
心理学探索外部的客观条件如何影响心理过程的进行,如何影响人心理特征的形成,揭示客观的物质世界与人心理活动之间必然的因果关系,又分析人的心理活动如何根据客观事物的规律,影响客观事物的发展变化,在这些分析研究中特别重视社会历史条件对人心理的制约作用。
这些研究和探索是辩证唯物主义与历史唯物主义原理在研究人心理活动问题上的具体化,也是我们研究人心理现象的指导思想。
(二)实践意义:1.可以使心理因素对行为活动发生最佳影响,为提高劳动生产率和卫生保健服务;2.根据心理规律,可以更有效地影响人的心理活动,为提高教育、教学质量服务;3.根据心理变化的规律和特点,可有效预测并有准备地对待某些心理现象。
4、心理学研究方法有哪些?答:心理学研究方法很多,其中主要有观察法、实验法、测量法,此外还有谈话法、作品分析法、问卷法、模拟法等等。
5、为什么说心理学是一门古老而有年轻的学科?答:心理学是一门古老的科学,是因为德国心理学家艾宾浩斯曾说过:“心理学有一个悠久的过去,但却仅有一段短暂的历史。
”心理学是研究人的心理现象及其活动规律的科学,实际上人们对心理现象的探索已经有几千年的历史了。
第五章答案类、构造函数、拷贝构造函数、静态成员、友元
5.3 练习题解答1.什么是类?为什么说类是一种抽象数据类型的实现?答:类是C++语言中的一种数据类型。
这种数据类型是一种封装体,它既包含有数据结构,又包含有对这些数据所进行的若干操作。
类的获得是通过对于所要解决的问题中的客观实体的抽象,这种抽象不仅包含了它的属性,同时还有对这些属性的操作,即方法。
对实体的这种抽象可用一个标识符来表示,并可对它引用及操作,这种标识符称为类。
可见,类是抽象数据类型的一种实现。
2.类的定义格式如何?类的说明部分和实现部分各包含些什么?答:类的定义格式包含说明部分和定义部分。
类的说明部分主要有类头和类体两部分。
类头定义格式如下所示。
class<类名>其中,class是关键字,<类名>同标识符。
类体是由一对花括号括起来的若干成员,成员中包含数据成员和成员函数,右花括号后边有一个分号。
{〈数据成员说明〉〈成员函数说明〉};成员又分为不同的访问权限,有公有(puLlic)、私有(private)和保护(protected)3种。
类的实现部分是用来定义类中说明的成员函数(没有定义)在该部分定义。
如果类中所有成员函数都已在类体内定义了,则实现部分可以省略。
3.类的成员一般分为哪两部分?这两部分有何区别?答:类的成员一般分为数据成员和成员函数两个部分。
前一部分是用来表示状态的数据,后一部分是用来改变状态的方法(即函数)。
简单地讲,前部分是变量,后部分是函数,后部分的函数是用来对前部分的变量进行操作的。
4.从访问权限角度如何区分不同种类的成员?它们各自的特点是什么?答:从访问权限角度可以将类中成员分为三种:公有的,私有的和保护的。
公有成员可以被类体内外的程序所访问,它通常作为一个类体的对外接口。
私有成员只能对类体内的程序所访问,在类体外是不可见的。
它是类中的被隐藏部分。
保护成员对一般类而言视同私有成员,对派生类同公有成员。
它可以被其派生类中的程序访问。
5.作用域运算符的功能是什么?它的使用格式如何?答:作用域运算符::是C十十语言中的一种运算符,用来指明某个标识符的作用域,主要用于标识类中成员。
《面向对象程序设计》习题答案2008-c++部分
(3) 静态成员属于 类 ,而不属于 对象 ,它由同一个类的所有对象共 同维护,为这些对象所共享。静态函数成员可以直接引用该类的 静态 数据 和函数成员,而不能直接引用 非静态数据成员 。对于公有的静 态函数成员,可以通过 类名 或 对象名 来调用;而一般的非静态函 数成员只能通过对象名来调用。 (4) 在实际程序设计中,一个源程序可划分为三个文件: 类声明文件 、类 实现文件 、 和 类的使用文件 。
面向对象程序设计习题
3-3 阅读程序题 (1) 以下是一个类中包含另一个类对象成员(类的组合) 的例子,试分析并给出以下程序的运行结果。
面向对象程序设计习题
void print() {cout<<“ 父 亲 的 年 龄 是 : "<<age<<endl; } Son &gets1() { cout<<"第一个"; return s1; } Son &gets2() { cout<<"第二个"; return s2; } }; void main() { Father f(10,5,38); f.print(); f.gets1().print(); f.gets2().print(); }
}
面向对象程序设计习题
void main() {
student stu[]={student("王红",18),student("吴伟",19),student("李丽",17)};
int i,min=0,max=0; for(i=1;i<3;i++) { if(compare(stu[max],stu[i])==-1) max=i; else if(compare(stu[max],stu[i])==1) min=i; } cout<<"最大年龄:"<<stu[max].get_age() <<",姓名:"<<stu[max].get_name()<<endl; cout<<"最小年龄:"<<stu[min].get_age() <<",姓名:"<<stu[min].get_name()<<endl;
C++程序设计与应用基础第二章 类和对象习题答案
C++程序设计与应用基础第二章类和对象习题答案1、请完成下列填空题1)在C语言中,编程的单位是___函数__:在C++语言中,编程的单位是____类__。
2)在下面程序的横线处填上适当的语句,使类型该程序执行结果为10。
#include <iostream.h>class MyClass{pub1ic:——MyClass(int a){x=a;}//为x置值——int GetNum(){return x;} //取x值private:int x;};void main(){Myclass my(10);Cout<<my.GetNum()<<end;}3)在类中定义和实现的函数称为__内联函数_______。
4)对类中的成员函数和属性的访问是通过___public___、___protected___和___private___这3个关键字来控制的。
5) ___new___运算符对指定类型对象动态分配内存并返回该类型的__指针___。
6)假定用户没有给一个名为MyClass的类定义构造函数,则系统对其定义的默认构造函数形式为___MyClass()_____。
2、编程题1)定义一个复数类imaginary。
用友元函数实现该类的加、减、乘和除运算。
答案:class Imaginary{public:Imaginary(float a,float b);friend Imaginary Add(Imaginary& img1,Imaginary& img2);friend Imaginary Sub(Imaginary& img1,Imaginary& img2);friend Imaginary Mul(Imaginary& img1,Imaginary& img2);friend Imaginary Div(Imaginary& img1,Imaginary& img2);private:float x,y;};Imaginary::Imaginary(float a,float b){x=a;y=b;}Imaginary Add(Imaginary& img1,Imaginary& img2) {float a,b;a=img1.x+img2.x;b=img1.y+img2.y;return Imaginary(a,b);}Imaginary Sub(Imaginary& img1,Imaginary& img2) {float a,b;a=img1.x-img2.x;b=img1.y-img2.y;return Imaginary(a,b);}Imaginary Mul(Imaginary& img1,Imaginary& img2) {float a,b;a=img1.x*img2.x-img1.y*img2.y;b=img1.x*img2.y+img1.y*img2.x;return Imaginary(a,b);}Imaginary Div(Imaginary& img1,Imaginary& img2) {float a,b;if((img2.x*img2.x+img2.y*img2.y)!=0){a=(img1.x*img2.x+img1.y*img2.y)/(img2.x*img2.x+img2.y*img2.y); b=(img1.y*img2.x-img1.x*img2.y)/(img2.x*img2.x+img2.y*img2.y); return Imaginary(a,b);}elsereturn Imaginary(0.0,0.0);}2)定义类Rational。
面向对象分析与设计在线作业
一、单选题 (共50题,每题1分,共50分)1、Bridge(桥接)模式的意图是(C)。
A.将一个无法控制的现有对象与一个特定借口相匹配B.希望简化现有系统的使用方法。
你需要定义自己的借口C.将一组实现部分从另一组使用它们的对象中分离出来D.你需要为特定的客户(或情况)提供特定系列的对象2、在根据不同的机器选择设备驱动程序的案例中,以下叙述不准确的是(D)。
A.可以使用switch语句选择驱动程序B.可以使用继承来实现选择驱动程序,但它可能会产生类组合爆炸问题C.可以选择抽象工厂模式实现,且能避免组合爆炸问题D.使用继承的解决方案要比switch语句有更多的优势3、关于协作图的描述,下列哪个不正确(B)A.协作图作为一种交互图,强调的是参加交互的对象的组织B.协作图是顺序图的一种特例C.协作图中有消息流的顺序号D.在ROSE工具中,协作图可在顺序图的基础上按“F5”键自动生成4、到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。
A.Simula67语言B.Smalltalk语言C.Java语言D.统一建模语言(UML)的标准5、外观模式的作用是(B)。
A.当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能B.为了系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用C.保证一个类仅有一个实例,并提供一个访问他的全局访问点D.在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现6、在用例之间,会有三种不同的关系,下列哪个不是它们之间可能的关系(D)A.包含(include)B.扩展(extend)C.泛化(generalization)D.关联(connect)7、将一个类的接口转换成客户希望的另一个接口。
这句话是对下列哪种模式的描述(C)。
A.策略模式(Strategies)B.桥接模式(Bridge)C.适配器模式(Adapter)D.单例模式(Singleton)8、(D)就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。
UML作业题
作业一
1、什么是软件?什么是软件开发三要素?
2、试分析结构化设计方法的优缺点。
3、什么是软件危机?产生软件危机的原因是什么?
4、程序设计的几个原则包括什么?
5、说明你对程序的理解。
并从面对象和面向过程回答它们的不同。
**以后每次作业要另起一页,给老师判作业留出空间。
作业二
1、关掉计算机后,对类与对象的影响如何?
2、回答你对对象多态性的认识。
3、简述面向对象的组成?
4、举例说明类与对象的区别。
作业三
1、面向对象包括哪些基本原则?
2、试画出面向对象的开发模型。
3、面向对象技术包括哪些内容?
作业四
1、什么是模型?为什么要建模?
2、UML的特点是什么?
3、你认为如何才能学好UML?
4、UML包括几种视图?几种图?并回答什么是视图?
作业五
1、OOA的目的是什么?
2、给出OOA的建模模型。
3、6.12习题第8题
4、6.12 习题第10题。
Java面向对象练习经典题之欧阳音创编
JAVA程序作业题1、设计一个包含多个构造函数的类,并分别用这些构造函数实例化对象。
2、编写一个类Calculate1,实现加、减两种运算,然后,编写另一个派生类Calculate2,实现乘、除两种运算。
3、建立三个类:居民、成人、官员。
居民包含身份证号、姓名、出生日期,而成人继承自居民,多包含学历、职业两项数据;官员则继承自成人,多包含党派、职务两项数据。
要求每个类的字段都以属性的方式对外提供数据输入输出的功能。
4、编写一个类,其中包含一个排序的方法sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。
5. 编写一个控制台应用程序,定义一个类MyClass,类中包含有public、private以及protected数据成员及方法。
然后定义一个从MyClass类继承的类MyMain,将Main方法放在MyMain中,在Main方法中创建MyClass类的一个对象,并分别访问类中的数据成员及方法。
要求注明在试图访问所有类成员时哪些语句会产生编译错误。
7.创建一个类包含有protected数据。
在相同的文件里创建第二个类,用一个方法操纵第一个类里的protected数据9 编写一个控制台应用程序,完成下列功能,并回答提出的问题。
1) 创建一个类A,在构造函数中输出“A”,再创建一个类B,在构造函数中输出“B”。
2) 从A继承一个名为C的新类,并在C 内创建一个成员变量B。
不要为C创建构造函数。
3) 在Main方法中创建类C的一个对象,写出运行程序后输出的结果。
4) 如果在C中也创建一个构造函数输出“C”,整个程序运行的结果又是什么?10 编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。
1) 创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果。
2) 再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2.2 C++编译器怎样对标识符进行解析? 答:编译器对标识符的解析分两步,第一步查找在声明中用到的标识符,特别是函数成员声 明中用到的参数类型,第二步是函数成员体内的标识符。
4.2.3 为什么说类与对象的概念是客观世界的反映? 答:客观世界的事物都具有某些属性和行为(或操作),具有相同属性和行为的事物可以归 属于一类,用分类的方法可以提高认识事物的效率。C++中定义的类则是通过抽象的方法将 某一类事物共有的静态特征(属性)和动态特征(行为)概括出来并加以描述,而对象是类 的具体实现,所以说类与对象的概念是客观世界的反映。
4.1.4 C++中支持三种域: (1) 、 (2) 、 (3) 。函数域被包括在 (4) 中,全局域被包括在 (5) 中。using 指示符以关键字 using 开头,后面是 关键字 (6) ,最后是 (7) 。这样表示以后在该名字空间中所有成员都 (8) 。如不使用 using 指示符则在使用时要加::,称为 (9) 运算符。
(2) 时,系统会自动调用析构函数。
4.1.8 运算符重载时,其函数名由 (1) 构成。成员函数重载双目运算符时,左操作 数是 (2) ,右操作数是 (3) 。
答案: (1) 关键字 operator 和该运算符 (2) 对象 (3) 该函数的参数
4.1.9 面向过程的程序设计中程序模型描述为 (1) ,面向对象程序设计的程序模型可描 述为 (2) 。
答案: (1) class (2) 公有的 public (3) 私有的 private (4) 公有的 public (5) 数据 (6) 函数
4.1.2 类的访问限定符包括 (1) 、 (2) (4) 函数来访问(读和写)。这些函数统称为
答案: (1) public(公有的) (2) private(私有的) (3) protected(保护的) (4) 公有的成员函数 (5) 类的接口
2
类与对象习题
3
答案:
(1)“程序=算法+数据结构”。其数据与数据处理是分离的。
(2)程序=(对象+对象+……+对象)+消息;对象=(算法+数据结构)。面向对象设计将数 据和对数据的操作方法放在一起,形成一个相对独立的整体——对象(Object),并通 过简单的接口与外部联系。对象之间通过消息(Message)进行通讯。
封装性增加了对象的独立性,C++通过建立数据类型——类,来支持封装和数据隐藏。 一个定义完好的类一旦建立,就可看成完全的封装体,作为一个整体单元使用,用户不需要 知道这个类是如何工作的,而只需要知道如何使用就行。另一方面,封装增加了数据的可靠 性,保护类中的数据不被类以外的程序随意使用。这两个优点十分有利于程序的调试和维护。
第四章 类与对象习题
基本概念与基础知识
填空题(知识点)
4.1.1 引入类定义的关键字是 (1) 。类的成员函数通常指定为 (2) ,类的 数据成员通常指定为 (3) 。指定为 (4) 的类成员可以在类对象所在 域中的任何位置访问它们。通常用类的 (5) 成员表示类的属性,用类的 (6) 成员表示类的操作。
函数返回引用实际是指明(返回)了相应的关联变量,所以声明返回值为引用的函数实 际上是将关联变量作为左值参与运算。
答案: (1) 局部域(local scope) (2) 名字空间域(namespace scope)
2
(3) 类域(class scope) ( (7) 名字空间名 (8) 可以直接被使用 (9) 域
4.1.5 引用通常用作函数的 (1) 和 (2) 。对数组只能引用 (3)不能引用 (4) 。 答案: (1) 参数 (2) 返回值 (3) 数组元素 (4) 数组名本身
答案: (1) 初始化数据成员 (2) 函数返回类型说明 (3) 多 (4) 不同的参数表 (5) 自动给出一个默认的构造函数 (6) 同一类对象的引用 (7) 默认的的复制构造函,称为默认的按成员语义支持。 (8) 被依次复制
4.1.7 一个类有 (1) 答案: (1) 一 (2) 对象注销时
个析构函数。
4.1.6 构造函数的任务是 (1) 。构造函数无 (2) 。类中可以有 (3) 个构造函数,它们由 (4) 区分。如果类说明中没有给出构造函数,则 C++编译 器会 (5) 。拷贝构造函数的参数是 (6) ,当程序没有给出复制构造函 数时,系统会自动提供 (7) 支持,这样的复制构造函数中每个类成员 (8) 。
4.2.4 什么叫类域?为什么说类域是抽象的? 答:类域是类体所包括的范围。每个类定义都引入了一个独立的类域,在类域中说明的标识 符仅在该类的类域中有效。由于类只是一个说明,看上去有数据,有函数,有类型定义,但 是它并非实体,不分配内存,当然也不能运行。所以说类域是抽象的。
4.2.5 引用作为函数参数时为什么能实现两个实参之间的数据交换?为什么对应实参不能 为引用?为什么返回值为引用的函数可以作为左值? 答:引用变量是其关联变量的别名,二者在内存中占据同一个存储单元。在一个以引用作为 参数的函数中,交换两个参数的值,实际上就是交换两个实参的值。如果函数的参数是引用, 调用时需要取得实参的地址,而实参如果已经是一个地址,再进行引用将产生错误,故对应 实参不能为引用。
和 (3) (5) 。
。私有数据通常由
4.1.3 通常在逻辑上,同一类的每个对象都有 (1) 在物理上通常只有 (2) 代码区。只有在 的函数和加了关键字 (5) 的函数例外。
答案: (1) 独立的 (2) 共用的 (3) 在类说明中 (4) 不包括循环等复杂结构 (5) inline
代码区,用以存储成员函数。而 (3) 定义,并 (4)
简答题(知识点)
4.2.1 简单解释什么是面向对象程序设计的封装性。 答:对象是一个封装体,在其中封装了该对象所具有的属性和操作。对象作为独立的基本单 元,实现了将数据和数据处理相结合的思想。此外,封装特性还体现在可以限制对象中数据 和操作的访问权限,从而将属性“隐藏”在对象内部,对外只呈现一定的外部特性和功能。