第7章 类与对象思考与练习题答案
Java语言程序设计(郑莉)第七章课后习题答案

Java语言程序设计第七章课后习题答案1.数组的声明与数组元素的创建有什么关系?答:声明数组仅仅是代表试图创建数组,不分配任何存储空间,声明是为创建做“铺垫”。
2.Vector类的对象与数组有什么关系?什么时候适合使用数组,什么时候适合使用Vector?答:vector是一个能够存放任意对象类型的动态数组,容量能自动扩充,而数组存储固定且类型相同的对象;对于存储固定类型相同的对象使用数组,对于存储不同类型或者动态调整数组大小的情况使用Vector。
3.与顺序查找相比,二分查找有什么优势?使用二分查找的条件?答:对于大数据量中进行查找时二分查找比顺序查找效率高得多;条件是已排序的数组。
4.试举出三种常见的排序算法,并简单说明其排序思路。
答:①选择排序:基本思想是站在未排序列中选一个最小元素,作为已排序子序列,然后再重复地从未排序子序列中选取一个最小元素,把它加到已经排序的序列中,作为已排序子序列的最后一个元素,直到把未排序列中的元素处理完为止。
②插入排序:是将待排序的数据按一定的规则逐一插入到已排序序列中的合适位置处,直到将全部数据都插入为止。
③二分查找:将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。
重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
5.声明一个类People,成员变量有姓名、出生日期、性别、身高、体重等;生成10个People 类对象,并放在一个以为数组中,编写方法按身高进行排序。
//People类public class People{private String name;private String birthdaydate;private String sex;private double height;private double weight;public People(){//默认构造函数}public People(People p){=;this.birthdaydate=p.birthdaydate;this.sex=p.sex;this.height=p.height;this.weight=p.weight;}public People(String name,String birthdaydate,String sex,double height,double weight){=name;this.birthdaydate=birthdaydate;this.sex=sex;this.height=height;this.weight=weight;}public String getName() {return name;}public void setName(String name) { = name;}public String getBirthdaydate() {return birthdaydate;}public void setBirthdaydate(String birthdaydate) {this.birthdaydate = birthdaydate;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}public double getWeight() {return weight;}public void setWeight(double weight) {this.weight = weight;}public String toString(){return"姓名:"+name+"\n出生年月:"+birthdaydate+"\n性别:"+sex+"\n 身高:"+height+"\n体重:"+weight;}}//test7_5类public class test7_5 {/***@param args*/public static void main(String[] args) {// TODO Auto-generated method stubPeople[] people={new People("林楚金","1989年8月13日","男",182,63.5),new People("诸葛亮","181年7月23日","男",184,76.6),new People("迈克杰克逊","1958年8月29日","男",180,60),new People("乔丹","1963年2月17日","男",198,98.1),new People("拿破仑","1769年8月15日","男",159.5,63),new People("苍井空","1983年11月11日","女",155,45),};People temp=new People();for(int i=0;i<people.length-1;i++)for(int j=i+1;j<people.length;j++){if(people[i].getHeight()<people[j].getHeight()){temp=people[j];people[j]=people[i];people[i]=temp;}}System.out.println("按身高从小到大排序后的结果如下:");for(int i=0;i<people.length;i++)System.out.println(people[i]+"\n");}}运行结果:6.声明一个类,此类使用私有的ArrayList来存储对象。
国开电大C++语言程序设计ch1-思考与练习

第1章C++程序设计基础思考与练习一、填空题1. C++语言是在语言的基础上发展起来的。
答案:C“类”的C。
2. C++语言的编译单位是扩展名为的文件。
答案:obj 目标解析:3. 行尾使用注释的开始标记符为。
答案://4. 多行注释的开始标记符和结束标记符分别为和。
答案:/* */5. 用于输出表达式值的标准输出流对象是。
答案:cout6. 用于从键盘上为变量输入值的标准输入流对象是。
答案:cin7. 一个完整程序中必须有一个名为的函数。
答案:mainmain函数8. 一个函数的函数体就是一条语句。
答案:复合函数的函数体也就是一条复合语句。
9. 在C++程序中包含一个头文件或程序文件的预编译命令为。
答案:include程序中来,成为本程序的一部分。
10. 程序中的预处理命令是指以字符开头的命令。
答案:#件的内容作为程序的一部分插入到要编译的程序中。
11. 一条表达式语句必须以作为结束符。
答案:分号12. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是定义的头文件。
答案:用户(或编程者)解析:13. 使用#include命令可以包含一个头文件,也可以包含一个文件。
答案:程序的C/C++程序文件,包括.c,.hpp,.cpp,.hxx,.cxx等,甚至.txt,.abc等等都可以。
二、选择题1. C++源程序文件的默认扩展名为( )。
A. cppB. exeC. objD. lik答案:A件(可能有多个)的形式存放。
2. 由C++源程序文件编译而成的目标文件的默认扩展名为( )。
A. cppB. exeC. objD. lik答案:C目标代码以汇编语言的形式存放。
3. 由C++目标文件连接而成的可执行文件的默认扩展名为( )。
A. cppB. exeC. objD. lik答案:B执行程序,形成一个扩展名为exe的可执行文件。
4. 以下标识符中不全是保留字的是( )。
A. case for intB. default then whileC. bool class longD. goto return char答案:B5能作为C++程序的基本单位是( )。
客户关系管理第七章习题及答案

客户关系管理第七章习题及答案第七章练习题⼀、选择题:1.在数据仓库中,所有数据都是围绕⼀定的进⾏组织的A 主题B 主键C 外键D 视图2.对于DSS,是⾮常重要的A 最新数据B 历史数据C 分析数据D 多媒体数据3. 是从外部数据中收据数据,它是数据仓库中数据综合的⼀种类型A 数据提取B 数据清洗C 数据抽取D 数据切割4. 是关于数据的数据A 外部数据B 内部数据C 元数据D 纯数据5.数据粒度有两种形式,其中⼀种形式的数据粒度是⾯向的A OLTPB CRMC OLAPD ERP6. 数据集市的数据直接来源于中央数据仓库A 独⽴的B 依赖的C 内部的D 中央的7.数据仓库的是具有层次性的A 主键8.由各维度的取值和变量值构成A 维成员B 维C 事实D 索引9. 技术的核⼼是多维分析A OLAPB CRMC OLTPD ERP10.三种多维数据模型中,最为流⾏A 星型模型B 雪花型模型C 星座模型D ⽹型模型11.由于的应⽤,数据需要定期的从数据仓库中导⼊多维数据库中A OLAPB OLTPC CRMD ERP12.由类和类之间的关系构成的模型称为A 关系模型B 类模型C ER模型D 对象模型13. 的设计是数据仓库模型设计的第⼀步A 部门模型B 类模型C 企业模型D 对象模型14. 的选取是模型设计中极为重要的⼀部分A 主题15.⽆论数据仓库以怎样的数据模型组织数据,最终还是以各种来完成的A 表空间B 类C 变量D 表16.在中,只有⼀个事实表,每个维表都与事实表直接连接A 星型模型B 雪花型模型C 星座模型D ⽹型模型17. 中的数据是最丰富的、最详细的A 事实数据库B 关系数据库C ⾼级数据库D 数据仓库18.数据挖掘的基础是A OLAPB OLTPC ⼈⼯智能D 数据仓库19.对⼀组数据的集合分组成为有类似的对象组成的多个类的过程称为A 分类B 汇集C 类分析D 聚类20. 也常常作为数据挖掘的第⼀部,对数据进⾏预处理A 分类分析B 关联分析C 聚类分析D 孤⽴点分析⼆、填空1.数据仓库(data warehouse)是⼀个⾯向主题的(subject oriented)、集成的(integrated)、⾮易失的(non-volatile)、随时间变化的(time variant)数据集合,⽤于。
谭浩强C程序设计第四版

* p7_1_b.cpp
*
* 面向对象的时钟程序 *
******************************/
程5
序6
设 计
7 8 9
教 10
程 11
#include <iostream> using namespace std; struct Clock {
int H,M,S; }; Clock MyClock; void SetTime(int H,int M,int S)
程
在面向对象的程序设计中,程序模块是由类构成的。类
是对逻辑上相关的函数与数据的封装,它是对问题的抽象描
第 述。
7 章
面向对象的程序设计方法就是运用面向对象的观点来对
类 现实世界中的各种问题进行抽象,然后用计算机程序来描述
与 并解决该问题,这种描述和处理是通过类与对象实现的。
对
象
类与对象是C++程序设计中最重要的概念
16在程}序A中,时钟数据用一个结构型的变量存储,对} 时钟数据的存取通过函数实现。由于存
7 章
17储时v钟oi数d S据ho的w是Tim一e个() 全局变量,在任何地方都可见vo,id可S以ho不wT通im过e(函) 数单独存取时钟数据。 18程序{B中,只能通过类提供的函数操作时钟。 {
: 类
C
+
+
语
言 程
【例7-1】 模拟时钟
序
设
分析:不管什么样的时钟, 也不管各种时钟是
计 教
如何运行的, 它都具有时、分、秒3个属性。除了运
程 行、显示时间的基本功能外,还有设置(调整)时间、
设置闹钟等功能。将时钟的这些属性与功能抽象出
第7章-类和对象-1

成员变量
Strpinugblnicacmlaes;s Ini/t/ia姓lV名istor {
int agep;ublic/s/t年at龄ic void main(String[] args) { //显示信息Sc方an法ner input = new Scanner(S成yst员em方.i法n);
public voidVsishiotowr(v){= new Visitor();
center.classNumber = 10;
bNumber = 10;
System.out.println("\n***初始化成员变量后***");
center.
演示示例:创建和使用对象
第22页/共45页
创建和使用对象示例5-2
问题
编写学员类,输出学员相关信息
编写教员类,输出教员相关信息
分析
学员类
姓名 年龄 班级 爱好 显示学员个人信息
教员类
姓名 专业方向 教授课程
教龄 显示教员个人信息
第23页/共45页
创建和使用对象示例5-3
示例
public class SIntuitdiaelnStu{dent { Spturbinligcnstaamtiec;void//m姓a名in(String args[]成){ 员变量
实现积分回馈功能
金卡客户积分大于1000分或普卡客户积分大于 5000,获得回馈积分500分
创建客户对象输出他得到的回馈积分
完成时间:20分钟 共性问题集中讲解
第35页/共45页
按此按钮, 狮子开始跑
按此按钮, 狮子开始叫
类的方法
电动玩具狮子 属性: 颜色:黄色
行为: 跑 叫
C 课后习题答案第七章

C++作业答案第7章继承7.1 选择题1.在c++中,类与类之间的继承关系具有( c )。
(a) 自反性 (b) 对称性 (c) 传递性 (d) 反对称性2.下列关于类的继承描述中,( a,b )是错误的。
(a) 派生类可以访问基类的所有数据成员,调用基类的所有成员函数(b) 派生类也是基类,所以基类具有派生类的全部属性和方法(c) 继承描述类的层次关系,派生类可以具有与基类相同的属性和方法(d) 一个基类可以有多个派生类,一个派生类可以有多个基类3.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的( a )。
(a) public 成员 (b)private成员(c) protected成员 (d)友员4.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( b )。
(a) public 成员 (b)private成员(c) protected成员 (d)友员5.当一个派生类保护继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( c )。
(a) public 成员 (b)private成员(c) protected成员 (d)友员6.不论派生类以何种方式继承基类,都不能使用基类的( b )。
(a) public 成员 (b)private成员(c) protected成员 (d)public 成员和protected成员7.下面描述中,错误的是( b, c )。
(a) 在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问(b) 在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问(c) 在基类定义的public和protected成员在保护继承的派生类中不可见(d) 在派生类中不可见的成员要变成可访问的需进行访问声明8.在c++中,不能被派生类继承的函数是( b,c )。
(a) 成员函数 (b)构造函数(c) 析构函数 (d)静态成员函数9.在创建派生类对象时,构造函数的执行顺序是( d )。
过程控制系统第7章 思考题与习题

第7章 思考题与习题1.基本练习题(1)什么叫比值控制系统?它有哪几种类型?画出它们的原理框图。
答:1)比值控制系统就是实现副流量2F 与主流量1F 成一定比值关系,满足关系式:21F K F的控制系统。
2)比值控制系统的类型:开环比值控制系统、单闭环比值控制系统、双闭环比值控制系统、变比值控制系统。
3)结构原理图分别如图7-1,图7-2,图7-3,图7-4所示:图7-1开环比值控制系统(a )开环比值控制系统原理图(b )开环比值控制系统方框图图7-2单闭环比值控制系统(a)单闭环比值控制系统原理图 (b )单闭环比值控制系统方框图(a )原理图(b )方框图(a) 原理图(b) 方框图(b)方框图图7-3双闭环比值控制系统(a)双闭环比值控制系统原理图(b)双闭环比值控制系统方框图(b)方框图图7-4变比值控制系统(a)变比值控制系统原理图(b)变比值控制系统方框图(2)比值控制中的比值与比值系数是否是一回事?其关系如何?答:1)工艺要求的比值系数K,是不同物料之间的体积流量或重量流量之比,而比值器参数K’,则是仪表的读数。
它与实际物料流量的比值K,一般情况下并不相等。
因此,在设计比值控制系统时,必须根据工艺要求的比值系数K计算出比值器参数K’。
当使用单元组合仪表时,因输入-输出参数均为统一标准信号,所以比值器参数K’必须由实际物料流量的比值系数K折算成仪表的标准统一信号。
2)当物料流量的比值K一定、流量与其检测信号呈平方关系时,比值器的参数与物料流量的实际比值和最大值之比的乘积也呈平方关系。
当物料流量的比值K一定,流量与其检测信号呈线性关系时,比值器的参数与物料流量的实际比值和最大值之比的乘积也呈线性关系。
(3)什么是比值控制中的非线性特性?它对系统的控制品质有何影响?在工程设计中如何解决?答:1)比值控制系统中的非线性特性是指被控过程的静态放大系数随负荷变化而变化的特性。
2)非线性特性使系统的动态特性变差。
金融学基础章节练习题及答案(共12章)第7章 中央银行

第7章中央银行第1题:解释下列概念1.最后贷款人答:最后贷款人是中央银行履行“银行的银行”职能的具体表现,即在商业银行发生资金困难而无法从其他银行或金融市场融资时,由中央银行对其提供资金支持。
2.发行的银行答:发行的银行是中央银行的重要职能之一,指中央银行成为全国唯一的现钞发行机构,垄断货币发行权。
作为发行的银行,中央银行应及时供应货币,合理调节货币流通数量,加强货币流通管理,促进货币流通的正常秩序。
3.银行的银行答:银行的银行是中央银行的重要职能之一,指中央银行为商业银行和其他金融机构服务,维持金融稳定,促进金融业发展的功能。
具体体现在:吸收和保管存款准备金、作为全国票据清算中心,及作为最后贷款人,当商业银行和其他金融机构周转不灵时,通过票据贴现等方式为其提供资金支持。
4.政府的银行答:政府的银行是中央银行的重要职能之一。
指中央银行代表国家从事金融活动,对一国政府提供金融服务,贯彻执行国家货币政策,实施金融监管具体表现为:①代理国库收支;②代理政府债券的发行;③为政府提供信用;④充当政府的金融代理人,代办各种金融业务。
5.基础货币答:基础货币,又称储备货币(reserve money)、高能货币(high-powered-money),由流通中货币和银行准备金存款构成,后者是指其他存款性金融公司在中央银行的法定准备金存款和超额准备金存款。
6.外汇占款答:外汇占款,指本国中央银行通过收购外汇资产而相应投放的本国货币。
外汇占款将一国开放经济与本国货币供给联系起来,尤其在本国货币没有完全可兑换的情况下。
比如,外汇进入本国后需兑换成当地货币才能进入流通使用,国家为了维持汇率等需要用本国货币购买外汇,因此增加了“货币供给”,从而形成了外汇占款。
第2题:为什么要有中央银行?中央银行的形成有哪两种途径,请各举例说明。
答:中央银行是国家赋予其制定和执行货币政策,对国民经济实行宏观调控和管理的特殊的金融机构。
中央银行是银行业发展到一定阶段之后的产物。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章类与对象
1、什么叫面向对象的程序设计语言?什么叫类?什么叫对象?什么叫消息?
答:在程序设计语言中,面向对象是指采用抽象、封装、继承、多态等程序设计的方法。
因此,具有抽象、封装、继承、多态等特性的编程语言称为面向对象的程序设计语言。
类实际上是一种抽象的数据类型,它将完成某特定功能所用到的数据和对数据的操作(即函数)封装在一起。
对象是指具有某些属性和功能的单个个体。
消息是对象之间相互请求或相互协作的途径,是要求某个对象执行其中某个功能操作的规格说明。
2、结构化程序设计方法存在什么问题?
答:结构化程序设计方法主要存在以下问题:
1)软件重用性差:重用性是指同一软件不经修改或稍加修改就可多次重复使用的性质。
软件重用性是软件工程追求的目标之一。
2)软件可维护性差:软件工程强调软件的可维护性,强调文档资料的重要性,规定最终的软件产品应该由完整、一致的配置成分组成。
在软件开发过程中,始终强调软件的可读性、可修改性和可测试性是软件的重要的质量指标。
实践证明,用传统方法开发出来的软件,维护时其费用和成本仍然很高,其原因是可修改性差,维护困难,导致可维护性差。
3)开发出的软件不能满足用户需要:用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。
3、什么叫抽象?什么叫分类?
答:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。
抽象是形成概念的必须手段。
分类就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。
4、请简述结构体、联合体和类三种类类型的异同点。
答:三种类类型的异同点见下列表格:
struct结构体类型和class类类型都可以封装数据和操作,具有派生性、隐藏性和多态性。
而联合体不具有派生性,但具有隐藏性和多态性。
5、什么叫根类?
答:根类是没有从其它类派生而创建的类类型。
实际上,根据class类类型定义的一般形式,[:<基类型列表>]是一个可缺省的项;如缺省将定义一个根类。
6、类定义通常分为两部分,主要指什么?
答:类的定义一般分为说明部分和实现部分,说明部分放在类定义体内,用来说明该类中的数据成员和函数成员的类型和名称,是类的外部接口;实现部分常放在类体外,用以给出说明部分中声明的成员函数的定义,是类的内部实现。
7、在类定义中,说明成员的访问权限的public、private和protected三个关键字的作
用是什么?请分别简述之。
答:在类定义体里,使用了private、protected、public三个关键字是用来说明数据成员和函数成员的访问权限,private说明私有成员,该类成员只能被自己的成员函数或友元访问;protected说明保护型的成员,可以被自己的成员函数或友元访问,也可以被派生类的函数成员访问;public说明公有成员,该类成员都可以通过对象被访问的。
8、什么叫内联函数?什么叫外联函数?
答:将说明部分和成员函数实现部分合并在类定义体内,即将该函数定义为内联函数。
若该函数语句行不多且又无循环语句和开关语句也可以成为内联函数,只要在该函数的类型说明符之前使用关键字inline即可。
外联函数是指函数的说明放在类定义体内,而函数的定义是在类定义体外的类成员函数。
9、简述构造函数和析构函数的特点。
答:构造函数是类的成员函数,函数体可写在类定义体内,也可在类定义体外定义;它是一个特殊的函数,其函数名与类名相同,该函数不指定类型说明,它有隐含的返回值,该值由系统内部使用;该函数可以没有参数,也可以有一个或多个参数,即构造函数可以重载,可以定义具有不同数据类型或不同参数个数的构造函数;另外,程序中不能直接调用构造函数,在创建对象时系统将自动调用构造函数。
析构函数也是类中的成员函数,其定义的函数体可写在类定义体内,也可在类定义体外;它也是一个特殊的函数,它的名字与类名相同,但在其前面要加上“~”字符,用来区别于构造函数;析构函数也不指定数据类型,并且也没有形式参数;但一个类中只可以定义一个
析构函数;析构函数还可以被调用,也可以被系统自动调用。
10、为什么要用拷贝构造函数?它有哪些特点?
答:拷贝构造函数是一种特殊的构造函数,它的功能是用一个已有数值的对象赋值给另一个同类的一个对象。
拷贝构造函数是构造函数,但它是在赋值时被调用,将一个已有数值的对象的数据成员的值拷贝给另一个同类的对象的对应数据成员。
拷贝构造函数的特点如下:
(1)该函数名同类名,因为它也是一种构造函数,并且该函数也不被指定返回类型;
(2)该函数只有一个参数,并且是对同类的某个对象的引用;
(3)每个类都必须有一个拷贝构造函数;
(4)在新建对象时,对对象进行初始化时调用,对象之间赋值不调用。
11、简述深拷贝和浅拷贝。
答:如果一个类的数据成员需要使用动态分配的堆资源,并且这个类的对象之间发生了数据成员拥有的堆资源复制过程的时候,这个过程就可以叫做深拷贝,反之,对象存在数据成员拥有堆资源但复制过程并未实现数据成员拥有堆资源的复制情况视为浅拷贝。
12、this指针有什么作用?
答:this是专门指向类对象自身的地址常量,是一个隐含式的指针,也就是说使用它时不需要自己去定义就可使用,而是由系统自己设定的。
另外,它也隐含于每一个成员函数中,也就是说类的每一个成员函数都有一个this指针,它指向了该函数所属类的对象。
this是指向对象自己的指针,* this 就是对象自己。
this指针只能在某一个类的函数体内使用,其他地方无意义。
该指针指向类的一个实例,实际上,该指针指向当前正在操作的应用对象自身。
13、简述类中使用常对象和常成员函数需要注意的问题。
答:使用常对象和常成员函数需要注意以下问题:
(1)常对象在说明时必须进行初始化,而且不能被更新。
常对象还可以作为类的成员。
(2)const是函数类型的一个组成部分,因此在函数实现部分也要带有const关键字;
(3)在常成员函数里不能更改所属类的数据成员,也不能调用该类中没有用const修饰的类的成员函数;
(4)常对象只能调用它的常成员函数,而不能调用其他的成员函数;
(5)const关键字可以用于进行函数重载的区分。
其重载的原则是:常对象只能调用常成
员函数,一般对象调用一般成员函数。
14、答:
class CTest
{
int 【1】num ;
float f1;
public:
CTest(int n, float f);
CTest(CTest& t) ;
};
CTest::CTest(【2】int n, float f )
{ num = n;
【3】f1 = f;
}
CTest::CTest(【4】CTest& t )
{ num= 【5】t.num ;
f1 = t. f1;
}
15、答:
class CString
{
public:
CString(short = 0);
CString(const char*);
CString(const string&);
~CString{delete[] pStr;}
int length() const {return len;}
char* convert() {return pStr;}
char character(short i) {char c=pStr[i]; return c;}
void print() {cout << pStr;}
private:
short len;
char* pStr;
};
CString::CString(short size):len(size)
{
pStr=new char[len+1];
for(int i=0;i<len;i++) pStr[i]='';
pStr[len]='\0';
}
CString::CString(const char* str):len(strlen(str)) {
pStr=new char[len+1];
memcpy(pStr,str,len+1);
}
CString::CString(const CString& str):len(str.len) {
pStr=new char[len+1];
memcpy(pStr,str.pStr,len+1);
}。