面向对象作业
面向对象程序设计作业(带答案)

人工智能学院面向对象程序设计作业Java语言基础年级专业 2019级软件工程专业学号姓名成绩一、选择题1.下列标识符中,正确的是(C)。
A.class B. 123_rr C. _lei D. test&122.下列( D )的选项可以正确表示八进制8。
A.0x8 B. 0x10 C.08 D. 0103. 以下哪个是十进制数17对应的十六进制正确表示?( D )A. 017B. x11C. 0x17D. 0X114.在Java中,不属于整数类型的是( A )。
A.double B. long C. int D. byte5.在Java中,关于标识符的说明,不正确的是(D )。
A.严格区分大小写;B.长度不限;C.不能用关键字和保留字作为标识符;D.可以包含空格6.给出下面代码的输出结果。
( D )public class ByteAdd {public static void main(String args[ ]){byte a=10;byte b=100;byte c;c=a+b;System.out.println(a+"+"+b+"="+c);} }A.输出零B.输出 10+100=110C. 编译时正确,运行时将产生错误;D.编译时将产生错误;二、程序阅读题1. 对于以下程序,运行“java Abs”,将得到什么打印结果?public class Abs{static int a=0x11;static int b=0011;static int c='\u0011';static int d=011;public static void main(String args[]){ System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);}}179179类和对象年级专业 2019级软件工程专业学号姓名成绩一、选择题1. 为了在当前程序中使用ch4中的类,可以使用的语句是( A )。
XXX14秋学期《面向对象程序设计》在线作业答案

XXX14秋学期《面向对象程序设计》在线作业答案面向对象程序设计14秋学期《面向对象程序设计》在线作业一,单选题1.下列关于this指针的说法,错误的是()。
A。
this指针指向当前正在操作的对象B。
this指针只存在于非静态成员函数中C.在成员函数中对非静态数据成员的访问是通过this指针完成的D.静态成员函数中可以通过this指针访问非静态成员正确答案:D2.已知“int a=10,*p;int *&r=p。
r=*p=20;cout<<a;”,则输出为()。
A。
10B。
20C.不确定值D.程序有错误正确答案:B3.有关重载函数的描述正确的是()。
A.函数名相同的函数就是重载函数B.函数名相同但返回值类型不同的函数就是重载函数C.函数名相同但参数个数或类型不同的函数就是重载函数D.函数功用相同的函数就是重载函数正确答案:C4.在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。
以下叙述中正确的选项是()。
A。
operator+有两个参数,operator*有两个参数B。
operator+有两个参数,operator*有一个参数C。
operator+有一个参数,operator*有两个参数D。
operator+有一个参数,operator*有一个参数正确谜底:C5.以成员函数方式重载运算符“>”,则obj1>obj2被C++编译器解释为()。
A。
operator>(obj1,obj2)B。
(obj1,obj2)C。
obj1.operator>(obj2)D。
obj2.operator>(obj1)正确谜底:C6.下列运算符中,()在C++中不能重载。
A。
:B。
+C。
-D。
<=正确答案:A7.运行以下程序时,如果由键盘输入6514,则输出结果是()。
#includeusingnamespace std。
int main() { int m。
《面向对象分析与设计》在线作业

《面向对象分析与设计》在线作业一、单选题 (共50题,每题1分,共50分)1、面向对象的运动产生了多种面向对象的语言, 其中(C)是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。
A.SmalltalkB.EiffelC.C++D.Java2、UML的全称是 (B )。
A.Unify Modeling LanguagB.Unified Modeling LanguageC.Unified Modem LanguageD.Unified Making Language3、在根据不同的机器选择设备驱动程序的案例中,以下叙述不准确的是(D)。
A.可以使用switch语句选择驱动程序B.可以使用继承来实现选择驱动程序,但它可能会产生类组合爆炸问题C.可以选择抽象工厂模式实现,且能避免组合爆炸问题D.使用继承的解决方案要比switch语句有更多的优势4、下列关于面向对象方法中描述中错误的是(C)。
A.使用设计模式有助于在软件开发中应用面向对象技术B.选择面向对象程序设计语言时需要考虑开发人员对其的熟悉程度C.UML作为一种可视化建模语言需要与RUP开发过程同时使用D.目前在软件生命周期的分析、设计、实现和测试中均可以应用面向对象方法5、类图应该画在Rose的哪种(B)视图中。
e Case ViewB.Logic Viewponent ViewD.Deployment View6、(B)是一个类对象所可能经历的所有历程的模型图。
A.模型管理视图B.状态机视图C.动态视图D.静态视图7、以下对部署图说法不正确的是(A)。
A.部署图有主要建模元素是构件B.使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件的配置的部署方式C.从部署图中,可以了解到软件与硬件之间物理关系及处理节点的组件分布情况D.部署图是用来显示系统中软件和硬件的物理结构8、下面不是活动图中的基本元素的是(D)。
Java面向对象练习经典题

JA V A程序作业题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.课本习题写出程序运行结果class Value{public int i = 15;}public class Test{public static void main(String argv[]){Test t = new Test();t.first();}public void first(){int i = 5;Value v = new Value();v.i = 25;second(v, i);System.out.println(v.i);}public void second(Value v, int i){i = 0;v.i = 20;Value val = new Value();v = val;System.out.println(v.i + " " + i);}}结果:15 0201.对象使用时,下面描述错误的是( )(A)通过“.”运算符调用成员变量和方法(B)通过成员变量的访问权限设定限制自身对这些变量方法的调用(C)将一个对象申明为类的成员时,必须在使用前为其分配内存(D)在方法中使用对象作为参数时,采用引用调用2.给出如下代码:class Test{private int m;public static void fun() {// some code...}}如何使成员变量m 被函数fun()直接访问( B)(A)将private int m 改为protected int m(B)将private int m 改为public int m(C)将private int m 改为static int m(D)将private int m 改为int m3.下列哪些语句关于内存回收的说明是正确的( )(A) 程序员必须创建一个线程来释放内存;(B) 内存回收程序负责释放无用内存(C)内存回收程序允许程序员直接释放内存(D)内存回收程序可以在指定的时间释放内存对象4.MAX_LENGTH是int型public成员变量, 变量值保持为常量100,用简短语句定义这个变量。
国开作业面向对象程序设计(本)-形考作业一98参考(含答案)

题目:具有相同属性和服务的一组对象的模板称为()。
选项A:概念
选项B:程序
选项C:类
选项D:代码
答案:类
题目:类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。
选项A:产品
选项B:成分
选项C:元素
选项D:实例
答案:实例
题目:任何一个父类的引用变量(或对象)都可以被当成一个派生类的引用变量(或对象)。
选项A:对
选项B:错
答案:错
题目:抽象类要包含一些抽象方法,这种抽象方法只有方法的声明,而没有方法的实现。
选项A:对
选项B:错
答案:对
题目:如果在派生类的构造方法的定义中需要调用父类的构造方法,则super语句必须出现在派生类构造方法体中的第一行。
选项A:对
选项B:错
答案:对
题目:在Java语言中,可以把实现了一个接口的类对象,赋给这个接口的变量。
选项A:对
选项B:错
答案:对
题目:定义接口使用的语句关键字为interface,一个接口不能够继承任何其他接口。
选项A:对
选项B:错
答案:错
题目:Java既支持类的单继承,又支持类的多重继承。
选项A:对
选项B:错。
面向对象软件工程—课后作业

面向对象软件工程第八章8.1.什么是面向对象方法学,它有哪些优点?答:面向对象方法学是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类解决问题的方法与过程,使描述问题的问题空间与实现揭发的解空间在结构上尽可能一致的方法学科。
优点:1、与人类的习惯的思维方法一致;2、稳定性好;3、可重用性好;4、适合用于大型软件产品;5、所开发的软件有较好的可维护性;6、面向对象的软件比较容易修改;7、面向对象软件比较容易理解;8、易于测试和调式。
8.2.什么是对象,它与传统的数据有何异同?答:对象是对问题域中某个实体的抽象。
相对于传统数据的静态被处理,对象既有静态的属性,又有动态的行为,是进行处理的主体。
8.3.什么是类?答:类是对具有相同数据和相同操作的一组相似对象的定义。
8.4.什么是继承?答:继承是指能够直接获得已有事物的性质和特征,而不必重复定义他们。
8.5.什么是模型,开发软件为何要建模?答:所谓模型就是为了理解事物而对该事物做出的一种抽象,是对事物的一种无歧视定义的书面描述。
由于模型忽略了事物的非本质东西,因此模型比原始事物更容易操作。
对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建模的目的主要是为了降低复杂性。
人的头脑每次只能出来少量信息,模型通过把系统的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少了系统的复杂程度。
8.6.什么是对象模型,建立对象模型时主要使用哪些图形符号,这些符号的含义是什么?答:对象模型表示静态的、结构化的系统性质,是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。
在UML中,用类图来建立对象模型,表示一个类及属于该类的对象。
8.7.什么是动态模型,建立动态模型时主要使用哪些图形符号,这些符号的含义是什么?答:动态模型时描述系统控制结构,即行为化的一种模型。
在UML中主要用状态图、交互图、活动图来建立动态模型。
java面向对象练习题

java面向对象练习题# Java面向对象练习题一、选择题1. 在Java中,以下哪个关键字用于定义类的访问权限为“仅包内可见”?- A. public- B. private- C. protected- D. 默认(不写访问修饰符)2. 以下哪个是Java中的构造方法?- A. 与类名相同,没有返回类型的方法- B. 与类名不同,没有返回类型的方法- C. 与类名相同,有返回类型的方法- D. 与类名不同,有返回类型的方法3. 在Java中,哪个关键字用于实现类的继承?- A. extends- B. implements- C. override- D. abstract4. 以下哪个是Java中类的成员变量?- A. 局部变量- B. 实例变量- C. 静态变量- D. 方法参数5. 以下哪个是Java中的多态性?- A. 接口- B. 继承- C. 封装- D. 抽象类二、简答题1. 解释Java中的封装性,并给出一个封装的类的例子。
2. 描述Java中接口和抽象类的区别。
3. 什么是Java中的继承?请举例说明如何使用继承。
三、编程题1. 创建一个名为`Person`的类,包含姓名(name)、年龄(age)和性别(gender)三个属性。
为每个属性提供getter和setter方法。
2. 编写一个名为`Student`的类,它继承自`Person`类,并添加一个名为`studentID`的属性。
为`studentID`提供getter和setter方法,并重写`toString`方法以返回学生的详细信息。
3. 创建一个接口`Movable`,包含一个方法`move()`。
然后创建一个名为`Car`的类实现该接口,并提供`move`方法的具体实现。
四、综合应用题1. 设计一个简单的银行账户系统,包含以下类:- `Account`:基本账户类,包含账户ID、账户余额和存款(deposit)与取款(withdraw)方法。
面向对象设计及UML语言作业答案

类图作业3
3、画出相应的UML 类图。 神舟六号飞船是神舟 飞船系列的一种,它 由轨道舱、返回舱、 推进舱和逃逸救生塔 等组成。航天员可以 在返回舱内驾驶飞船, 轨道舱则是航天员工 作和休息的场所。在 紧急情况下,可以利 用逃逸救生塔逃生。 在飞船两侧有多个太 阳能电池翼,可以为 飞船提供电能。
神舟飞船
U s e r Ap p s
Linux Server
A c c o u nt i n g C o m p on e n t
User Service
Manager Service
实现的,它有两个接口UserService和ManagerService。 构件UserApps是在一个Windows2000的机器上运行的, 它通过接口UserService来访问AccountingComponent。 这两台机器运行在一个TCP/IP局域网上。
Windows20ห้องสมุดไป่ตู้0
<<TCP/IP>>
神舟六号飞船
太阳能电池翼 1..n
+提 供 电 能 ( )
轨道舱
+工 作 () +休 息 ()
返回舱
+驾 驶 飞 船 ()
逃逸救生塔
+逃 生 ()
推进舱
航天员
包图作业
1、画出UML包图。 要求如下:主要存在两 个包,分别为财务子系统 和数据库子系统。数据库 子系统包中又包括数据库 操作,数据库接口以及 oracle接口和sybase接口包 四个包。财务子系统依赖 于数据库操作,数据库操 作依赖于数据库接口。 oracle接口和sybase接口都 是数据库接口。
画出电话机的状态图。
奥鹏北语14秋《面向对象程序设计》作业2满分答案

?
正确答案:B
6.函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为( )个。
A. 1
B. 2
C. 4
D. 5
?
正确答案:B
7.题面见图片
A.
B.
C.
D.
?
正确答案:A
8.在下面循环语句中循环体执行的次数为()。int i=0; do i++; while(i*i<10);
D.两个以上的函数取相同的函数名,并且函数的返回类型相同
?
正确答案:A
14.题面见图片
A.
B.
C.
D.
?
正确答案:B
15.题面见图片
A.
B.
C.
D.
?
正确答案:D
16.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为()。
A. 2
B. 4
14秋《面向对象程序设计》作业2
一,单选题
1. do语句能够改写为()语句。
A.复合
B. if
C. switch
D. while
?
正确答案:D
2.题面见图片
A.
B.
C.
D.
?
正确答案:A
3.题面见图片
A.
B.
C.
D.
?
正确答案:D
4.题面见图片
A.
B.
C.
D.
B.
C.
A. 3
B. 4
C. 5
D. 6
?
正确答案:B
19.题面见图片
面向对象分析与设计第四章作业

1.论述类与对象之间的关系以及关联与链之间的关系。
这四者之间的联系。
答:一.类与对象之间的关系:a.类提供了对具有相同属性和操作的一组对象的抽象描述,对象是类的实例。
b.在面向对象方法中,通过对具有相同的属性的对象的抽象,构造出类,而使用类构造出系统模型。
在系统运行时,又有类去创建出对象。
C.一个类的所有对象具有相同属性。
二.关联与链之间的关系:a. 链是对象间的关系,关联时类之间的关系,也就是说,链是关联的实例化。
B.两个存在的有关联关系的类被实例化后,类之间的关联关系就实例化成链。
三.四者之间的关系:链是对象间的关系,关联是类之间的关系。
对象是类的实例化,链是关联的实例化。
类类对象对象实例化实例关联链2.在什么情况下使用组合关系进行建模?答:当一部分类的对象在一个时刻至多属于一个整体类的对象,且整体类的对象管理他的部分类的对象时,用组合关系进行建模。
3.总结继承关系的用途答:a.一般类的定义中存在没有实现也不打算在该类中实现的操作,需要子类进行继承实现该操作。
B.有超过两个特殊类时,使用继承关系进行简化。
从而不必重复的进行定义。
C.继承关系有助于软件复用。
5.举例说明类继承结构中的重载与多态。
答说明:图1:股东类和职员类继承了公司人员类,个人收入可以定义一个虚函数,没有实现操作,下边的股份和工资为具体操作,这个就是类继承中的多态。
图2:重载,长方形公司人员姓名个人收入股东 职员 股份 。
工资************面积长方形 圆形 长:a 宽:b半径 R求面积的函数f1(int a,int b),圆形求面积函数f1(int R)。
6.面包是由面包片组成的。
面包与面包片之间的关系是聚合还是组合。
答:组合,生命期相同。
面包不存在,面包片也不会存在。
面包片是面包的一部分。
只能属于一个面包所有。
7.一本书含有若干章,一章有若干节,一节有一些片段和图组成,一个段落由一些句子组成。
请给出一个描述上述事物以及它们之间关系的类图。
面向对象程序设计课程作业

面向对象程序设计课程作业一、单选题1. (5分)调用一成员函数时,使用动态联编的情况是()A. 通过对象调用一虚函数B. 通过指针或引用调用一虚函数C. 通过对象调用静态函数D. 通过指针或引用调用静态函数得分:0知识点:第6章收起解析.答案B.解析第6章6.2节..2. (5分)下列选项中,可以作为函数重载的条件之一的是():A. 不同的形参名称B. 不同的返回值C. 不同的函数名D. 不同的参数个数得分:0知识点:第2章收起解析.答案D.解析第2章2.5节..3. (5分)如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是()A. 一元运算符B. 二元运算符C. 选项A和选项B都可能D. 重载错误得分:0知识点:第3章收起解析.答案D.解析第3章3.5节..4. (5分)有以下程序main() { int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf(“%d”,t[2-i][i]); } 程序的执行后的输出结果是()A. 7 5 3B. 3 5 7C. 3 6 9D. 7 5 1得分:0知识点:第2章收起解析.答案B.解析第2章2.2节..5. (5分)若要求从键盘读入含有空格字符的字符串,应使用函数()A. getc()B. gets()C. getchar()D. scanf()得分:0知识点:第2章收起解析.答案B.解析第2章2.5节..6. (5分)可以用P.a的形式访问派生类对象p的基类成员a,其中a是A. 私有继承的公有成员B. 共有继承的私有成员C. 公有继承的保护成员D. 公有继承的公有成员得分:0知识点:第4章收起解析.答案D.解析第4章4.1节..7. (5分)解决二义性问题的方法有A. 只能使用作用域分辨操作符B. 使用作用域分辨操作符或赋值兼容规则C. 使用作用域分辨操作符或虚基类D. 使用虚基类或赋值兼容规则得分:0知识点:第6章收起解析.答案C.解析第6章6.2节..8. (5分)以下有关继承正确的是A. 构造函数和析构函数都能被继承B. 派生类是基类的组合C. 派生类对象除了能访问自己的成员外,不能访问基类中的所有成员D. 基类的公有成员一定能被派生类对象访问得分:0知识点:第4章收起解析.答案D.解析第4章4.2节..9. (5分)假定类B是在类A基础上扩充而得到的,那么就称A. 类A为基类或父类,类B为超类或子类B. 类A为基类、父类或超类,类B为派生类或子类C. 类A为派生类,类B为基类D. 类A为派生类或子类,类B为基类、父类或超类得分:0知识点:第3章收起解析.答案B.解析第3章3.2节..10. (5分)如果类A被说明成类B的友元,则()A. 类A的成员即类B的成员B. 类B的成员即类A的成员C. 类A的成员函数不得访问类B的成员D. 类B不一定是类A的友元得分:0知识点:第5章收起解析.答案D.解析第5章5.2节..11. (5分)下列有关继承和派生的叙述中,正确的是()A. 派生类不能访问基类的保护成员B. 作为虚基类的类不能被实例化C. 派生类应当向基类的构造函数传递参数D. 虚函数必须在派生类中重新实现得分:0知识点:第3章收起解析.答案C.解析第3章3.1节..12. (5分)下面是一个模板声明的开始部分:templute double __ 由此可知()A. 这可能是一个函数模板的声明B. 这可能是一个类模板的声明C. 这既可能是一个函数模板的声明,也可能是一个类模板的声明D. 这肯定是一个错误的模板声明得分:0知识点:第7章收起解析.答案A.解析第7章7.2节..13. (5分)以下叙述中正确的是()A. 预处理命令行必须位于C源程序的起始位置B. 在C语言中,预处理命令行都以“#”开头C. 每个C程序必须在开头包括预处理命令行:#includeD. C语言的预处理不能实现宏定义和条件编译的功能得分:0知识点:第2章收起解析.答案C.解析第2章2.4节..14. (5分)下列关于模板的说法正确的是()A. 模板的实参在任何时候都可以省略B. 类模板与模板库所指的是同一概念C. 类模板的参数必须是虚拟类型的D. 类模板中的成员函数全部都是模板函数得分:0知识点:第7章收起解析.答案D.解析第7章7.2节..15. (5分)在文件包含命令中,被包含文件的扩展名A. 必须是.hB. 不能是.hC. 可以是.h或.cppD. 必须是.cpp得分:0知识点:第1章收起解析.答案C.解析第1章1.1节..二、判断1. (5分)当函数的返回值是数组类型的,传递的是数组第一个元素的地址.得分:0知识点:第2章收起解析.答案错误.解析第2章2.5节..2. (5分)数据成员在初始化列表中的书写顺序无关紧要,但初始化列表对数据成员初始化的执行次序就是类中定义数据成员的次序。
面向对象第四次作业答案

面向对象第四次作业答案面向对象程序设计技术作业四一、填空题1、在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的构造函数使其初始化。
2、当一个类对象被撤消时将自动调用该类的析构函数。
3、对基类数据成员的初始化是通过执行派生类构造函数中的初始化表来实现的。
4、对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的赋值语句实现。
5、在一个派生类中,对基类成员、类对象成员和非类对象成员的初始化次序是先基类成员,后类对象成员,最后为非对象成员。
6、当撤消一个含有基类和类对象成员的派生类对象时,将首先完成派生类本身的析构函数定义体的执行,接着完成类对象成员的析构函数定义体的执行,最后完成基类成员的析构函数定义体的执行。
7、设px是指向一个类动态对象的指针变量,则执行”delete px;”语句时,将自动调用该类的析构函数。
8、当一个类对象离开它的作用域时,系统将自动调用该类的析构函数。
9、假定一个类对象数组为A[N],当离开它的作用域时,系统自动调用该类析构函数的次数为N次。
10、假定AB为一个类,则执行”AB a[10];”语句时,系统自动调用该类构造函数的次数为10次。
11、假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为空构造函数。
12、假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义的析构函数为空构造函数。
13、若需要把一个函数”void F();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:friend void F();。
14、若需要把一个类AB定义为一个类CD的友元类,则应在类CD的定义中加入一条语句:feiend class AB;。
15、假定一个类AB中有一个静态整型成员bb,在类外为它进行定义并初始化为0时,所使用的语句为AB:bb=0;。
16、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为AB:bb 。
2021年面向对象程序设计形成性考核册作业一

面向对象程序设计形成性考核册作业一一、单选题1. C++源程序文献缺省扩展名为( A )。
A. cppB. exeC. objD. lik2. 编写C++程序普通需通过几种环节依次是( B )。
A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接3. 程序中主函数名字为( A )。
A. mainB. MAINC. MainD. 任意标记符4. 存储如下数据,占用存储字节最多是( D )。
A. 0B. ‘0’C. “0”D. 0.05. 假设在程序中 a 、b 、c 均被定义成整型,所赋值都不不大于1,则下列能对的表达代数式abc1表达式是( D )。
A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c6. x>0 || y==5相反表达式为( B )。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==57. 字符串”a+b=12\n ”长度为( B )。
A. 6B. 7C. 8D. 98. 循环语句“for(int i=0;i<n ;i++) cout<<i*i<<’ ’;”中循环体执行次数为( C )。
A. 1B. n-1C. nD. n+19. 在下面循环语句中循环体执行次数为( C )。
int i=0,s=0;while(s<20) {i++;s+=i;}A. 4B. 5C. 6D. 710. 在下面循环语句中循环体执行次数为( C )。
int i=0,s=0;while(s<20) {i++;s+=i;}A. 4B. 5C. 6D. 711. 循环体至少被执行一次语句为(C)。
A. for循环B. while循环C. do循环D. 任一种循环12. 在下面一维数组定义中,哪一种有语法错误。
面向对象程序设计大作业参考题目及要求

面向对象程序设计大作业参考题目1、学生信息管理(1)问题描述学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:●系统以菜单方式工作●学生信息录入功能(学生信息用文件保存)---输入●学生信息浏览功能——输出●查询、排序功能——算法1、按学号查询2、按姓名查询●学生信息的删除与修改(可选项)(2)功能要求●界面简单明了;●有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;●最好用链表的方式实现。
(3)算法分析首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。
对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。
文件的读写操作大家参照书中的有关文件的章节。
2、学生综合测评系统每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
提示:学生信息可先输入到数组中,排序后可写到文件中。
(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。
南开16秋学期《面向对象程序设计》在线作业

南开16秋学期《面向对象程序设计》在线作业一、单选题(共35道试题,共70分。
)1.将一个tring类对象赋予新值,应该使用tring类的()函数。
A.aignB.inertC.wapD.find正确答案:2.在派生类中重新定义虚函数时,除了(),其他方面都应与基类中相应的虚函数保持一致。
A.函数名B.参数C.函数体D.返回值类型正确答案:3.交换两个tring类对象所表示的字符串的内容,应该使用tring类的()函数。
A.aignB.inertC.wapD.find正确答案:4.单目运算符作为类成员函数重载时()。
A.有形参B.没有形参C.有实参D.以上都不正确正确答案:5.有如下类声明:claSample{int某;};则Sample类成员某是Sample 类的()。
A.公有数据成员B.保护数据成员C.私有数据成员D.以上选项都不正确正确答案:6.一个类的友元函数或友元类能够通过成员操作符访问该类的()。
A.私有成员B.保护成员C.公有成员D.所有成员正确答案:7.下列关于动态联编的描述中,错误的是()。
A.动态联编是以虚函数为基础的B.动态联编是在运行时确定所调用的函数代码的C.动态联编调用函数操作是通过指向对象的指针或对象D.动态联编是在编译时确定操作函数的正确答案:8.类的默认的无参构造函数()。
A.在任何情况下都存在B.仅当未定义无参构造函数时存在C.仅当未定义有参构造函数时存在D.仅当未定义任何构造函数时存在正确答案:9.类MyCla的定义如下:claMyCla{public:MyCla(){value=0;}SetVariable(inti){value=i;}priv ate:intvalue;}则对下列语句序列正确的描述是()。
MyCla某p,my;p=&my;A.语句p=&my;是把对象my赋值给指针变量pB.语句MyCla某p,my;会调用两次类MyCla的构造函数C.对语句某p.SetVariable(5)的调用是正确的D.语句p->SetVariable(5)与语句my.SetVariable(5)等价正确答案:10.静态数据成员初始化在()进行,而且前面不加tatic,以免与一般静态变量或对象相混淆。
面向对象分析与设计在线作业

一、单选题 (共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)就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。
面向对象程序设计作业参考答案

面向对象程序设计作业参考答案习题一5、分析下面程序运行的结果。
#using namespace std;int main(){cout<<”This”<<”is”;cout<<”a”<<”C++”;cout<<”program.”<<endl;< p="">return 0;}输出结果:ThisisaC++program.6、分析下面程序运行的结果。
#includeusing namespace std;int main(){int a,b,c;a = 10;b = 23;c = a + b;cout<<'a + b =";cout<<c;< p="">cout<<endl;< p="">return 0;}输出结果:a + b = 338、在你所用的C++系统上,输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,在进行编译,直到没有错误,然后进行连接和运行,分析运行结果。
修改后的程序如下:#includeusing namespace std;int main(){int a, b;a =b = 0;int c = a + b;cout<<”a + b =”<return 0;}9、输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,在进行编译,直到没有错误,然后进行连接和运行,分析运行结果。
修改后的程序如下:#includeusing namespace std;int add(int x,int y);int main(){int a = 0, b = 0;int c = add(a,b);cout<<" a + b ="<<c<<endl;< p="">return 0;}int add(int x,int y){int z = x + y;return z;}习题二1、请检查下面的程序,找出其中的错误(先不要上机,在纸面上作人工检查),并改正之。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程 1
幻灯片 17,共 30 张
Java 编程语言
综合练习:动物乐园
• 阶段4:输出各种动物腿的条数
– 难点指导
• instanceof运算符
对象 instanceof 类或接口
Cat cat=new Cat("加菲猫", 4); Dolphin dolphin = new Dolphin("海豚奇奇"); System.out.println(cat instanceof Cat); //true System.out.println(cat instanceof Animal); //true System.out.println(cat instanceof Terrestrial); //true System.out.println(dolphin instanceof Terrestrial); //false System.out.println(cat instanceof Dolphin); //编译错误! System.out.println(dolphin instanceof Cat); //编译错误!
• 多态的概念: –生活中的多态 –程序中的多态 • 同一个引用类型,使用不同的实例而执行不同操作 • 使用多态实现思路
–编写父类 –编写子类,子类重写父类方法 –运行时,使用父类的类型,子类的对象 • 方法重写的规则 –在继承关系的子类中 –重写的方法名、参数、返回值类型必须与父类相同 –私有方法不能继承因而也无法重写
版本 1.0
课程 1
幻灯片 4,共 30 张
Java 编程语言
知识梳理:继承2-1
• 使用继承重构代码的好处: –方便修改代码 –减少代码量 • 子类继承父类的关键字: extends • 子类调用父类的属性和方法的关键字: super • 继承下的构造方法 • 使用抽象类实现子类继承父类 • 访问修饰符总结
版本 1.0
课程 1
幻灯片 9,共 30 张
Java 编程语言
知识梳理:接口2-2
• 面向接口编程 –接口是一种能力 • 关心实现类有何能力,而不关心实现细节 –接口是一种约定 • 面向接口的约定而不考虑接口的具体实现
版本 1.0
课程 1
幻灯片 10,共 30 张
Java 编程语言
综合练习:动物乐园
• 任务描述:
–以面向对象思想设计动物乐园系统 –动物乐园包括的成员:猫、鸭子„„
• 属性:名称、腿 • 方法:叫
–设计类图 –编码实现
版本 1.0
课程 1
幻灯片 11,共 30 张
Java 编程语言
综合练习:动物乐园 • 阶段1:设计猫和鸭类结构,画出类图并写出代码 – 训练要点: • 面向对象程序设计 • 类的封装、继承 • 抽象类 – 需求说明: • 以面向对象思想设计猫和鸭的类结构,画出类图并写出代码 – 实现思路: 1、发现类 2、类的属性 3、发现类的方法 4、优化设计
对象 instanceof 类或接口
版本 1.0
课程 1
幻灯片 8,共 30 张
Java 编程语言
知识梳理:接口2-1
• 定义接口的语法:
public interface MyInterface { public void foo(); //其他方法 }
• 接口特性 –接口不可以被实例化 –实现类必须实现接口的所有方法 –实现类可以实现多个接口 –接口中的变量都是全局静态常量
版本 1.0
课程 1
幻灯片 7,共 30 张
Java 编程语言
知识梳理:多态2-2
• 使用多态的好处: –提高可维护性 –提高可扩展性 • instanceof运算符 –该运算符用来判断一个对象是否属于一个类或者实 现了一个接口,结果为true或false –在强制类型转换之前通过instanceof运算符检查对 象的真实类型,可以避免类型转换异常,从而提高代 码健壮性
完成时间:30分钟
版本 1.0
课程 1
幻灯片 16,共 30 张
Java 编程语言
综合练习:动物乐园
• 阶段4:输出各种动物腿的条数 – 训练要点: • instanceof运算符 – 需求说明: • 在阶段3代码的基础上,对数组进行遍历输出各种动物腿 的条数
– 实现思路: 完成时间:30分钟 1、重用阶段3代码 2、使用instanceof判断动物种类
访问修饰符
private 默认(friendly) protected
本类
√ √ √
同包
√ √
子类
其他
√
public
版本 1.0
√
课程 1
√
√
√
幻灯片 5,共 30 张
Java 编程语言
知识梳理:继承2-2
• 定义抽象类的关键字: abstract
public abstract class Pet { }
版本 1.0
课程 1
幻灯片 2,共 30 张
Java 编程语言
难点突破
• • • •
面向对象设计的过程 使用权限修饰符进行类的封装 继承关系下构造方法的执行 利用多态减少代码量,提高代码的可扩展 性和可维护性 • this、super关键字的使用 • static、final关键字的使用 • 接口与抽象类的异同
完成时间:30分钟
版本 1.0
课程 1
幻灯片 12,共 30 张
Java 编程语言
综合练习:动物乐园
• 阶段1:设计猫和鸭类结构,画出类图并写出代码 – 难点指导 • 面向对象程序设计
版本 1.0
课程 1
幻灯片 13,共 30 张
Java 编程语言
综合练习:动物乐园
• 阶段2:增加新成员海豚,重新设计类结构 – 训练要点: • 多态 • 接口 – 需求说明: • 动物乐园增加一个新成员海豚,海豚的叫声是“海 豚音……” – 实现思路: 1、对Animals类重新设计 2、海豚类同时继承类和实现接口
版本 1.0
课程 1
幻灯片 18,共 30 张
Java 编程语言
总结
• • • • • • •
类和对象的概念 面向对象设计的步骤 子类继承父类的关键字 子类调用父类的属性和方法的关键字 定义抽象类及抽象方法的关键字 方法重写的规则 接口的特性
版本 1.0
课程 1
幻灯片 19,共 30 张
课程 1 幻灯片 3,共 30 张
版本 1.0
Java 编程语言
知识梳理:抽象和封装
• 一切皆对象 –用程序描述真实世界 –现实世界“是面向对象的” • 面向对象设计提抽象的过程 –用类图描述设计 –设计的过程 • 发现类 • 发现类的属性 • 发现类的方法 –抽象的原则 • 封装 –将类的某些信息隐藏在类内部,不允许外部程序直接访问 ,而是通过该类提供的方法来实现对隐藏信息的操作和访 问
• abstract也可用于方法——抽象方法 –抽象方法没有方法体 –抽象方法必须在抽象类里 –抽象方法必须在子类中被实现,除非子类是抽象 类 • final用法 –类不希望再被其他类继承 –方法不希望被重写 –属性值不希望被改变
版本 1.0
课ቤተ መጻሕፍቲ ባይዱ 1
幻灯片 6,共 30 张
Java 编程语言
知识梳理:多态2-1
Java 编程语言
用Java开发基于对象的应用程序
面向对象--动物乐园
版本 1.0
课程 1
幻灯片 1,共 30 张
Java 编程语言
课程内容回顾
• • • • • •
面向对象要解决的问题? 类和对象的概念? 面向对象特性:抽象、继承、封装、多态 抽象类的概念、语法、用处 接口的概念、语法、用处 面向对象设计的步骤 –发现类 –发现类的属性 –发现类的方法 –优化设计
完成时间:30分钟
版本 1.0
课程 1
幻灯片 14,共 30 张
Java 编程语言
综合练习:动物乐园
• 阶段2:增加新成员海豚,重新设计类结构 – 难点指导 • 使用多态、接口优化设计
版本 1.0
课程 1
幻灯片 15,共 30 张
Java 编程语言
综合练习:动物乐园
• 阶段3:输出各种动物叫声 –需求说明: • 在阶段2编写的Java代码的基础上,分别创建 Cat、Duck、Dolphin对象并放到一个数组中, 对数组进行遍历输出各种动物如何叫