面向对象课后题目解析

合集下载

面向对象程序设计课后答案(完整版)

面向对象程序设计课后答案(完整版)

面向对象程序设计课后答案(完整版)第二章2-4#includeusing namespace std;Add(int a,int b);int main(){int x,y,sum;cout>x>>y;sum = add(x,y);cout >*p;p++;}p = p-20;for( i=0;i0) countp++;if(*p>age ;try{checkagescore(name,age);}catch( string){cout<<"exception :name is exit"<<endl;continue;}catch(int){cout<<"exception :age is not proper"<<endl;continue;}cout<<"name:"<<name<<" age :"< }return 0;}第三章3-1(1)A (2)C (3)B (4)C (5)C(6)B (7)B (8)C (9)C3-7(1)main()函数中p1.age = 30;语句是错误的。

age 是类的私有成员(2)构造函数应当给常数据成员和引用成员初始化,将构造函数改为:A(int a1,int b1):a(a1),b(b1){}或A(int a1 ):a(a1),b(a){}再将main中的A a(1,2); 改为A a(1);(3)(1)在Test 类中添加语句:void print();void Print(){cout<<x<<"-"<<y<<"="<<x-y<<endl;}改为void Test::Print(){cout<<x<<"-"<<y<<"="<<x-y<<endl;}main函数中Init(38,15);改为:A.Init(38,15);Print();改为:A.Print();3-8(1)Constructing AConstructing BDestructing BDestructing A(2)double a,double bpoint & pp.x3-9class box{int len1,len2,len3;public:box(int l1,int l2,int l3){len1 = l1;len2 = l2; len3 = l3;} long volumn(){return len1*len2*len3;}};3-10class Test{int m1,m2;public:void Init(int a,int b){m1 = a;m2 = b;}void Pring(){cout<<m1<<" "<<m2<<endl;}};3-11略3-12}第四章4-6(1)D (2)D (3)D (4)D (5)B(6)D4-7(1)static int count = 0;这样初始化静态成员值是不对的将其改为static int count;在类外,main函数前加int Sample::count = 0;(2)#include//#includeusing namespace std;class Ctest{private:int x; const int y1;public:const int y2;Ctest(int i1,int i2):y1(i1),y2(i2) {y1 =10;//y1 为常量不能赋值x = y1;}int readme() const;};int Ctest::readme ()const{int i;i = x;x++; //常函数内不能改变成员值return x;}int main(){Ctest c(2,8);int i = c.y2;c.y2 = i;//y2为常量,不能改值i = c.y1;//y1私有,类外不能访问return 0;}将出错语句全部注释4-8(1)题中印刷错误,将class C构造函数改为: C(){cout<<"constructor C:";}运行结果为:constructor Aconstructor Bconstructor C(2)40(3)3434-9#include#includeclass Date{int year;int month;int day;public:Date(int y,int m,int d){year=y;month=m;day=d;}void disp(){cout<<year<<" "<<month<<" "<<day<<endl;}friend int count_day(Date &d,int k);friend int l(int year);friend int h(Date &d1,Date &d2);};int count_day(Date &d,int k){static int day_tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,3 1},{31,29,31,30,31,30,31,31,30,31,30,31}};// 使用二维数组存放各月天数,第一行对应非闰年,第二行对应闰年int j,i,s;if(l(d.year))j=1;//闰年,取1else j=0;//非闰年,取0if(k)//K非0时{s=d.day;for(i=1;i<d.month;i++)//d.month为输入的月份s+=day_tab[j][i-1];}else//K为0时{s=day_tab[j][d.month]-d.day;for(i=d.month+1; i<=12; i++)s+=day_tab[j][i-1];}return s;//S为相差的天数}int l(int year){if(year%4==0&&year%100!=0||year%400==0) // 是闰年return 1;else // 不是闰年return 0;}int h(Date &d1,Date &d2){int days,day1,day2,y;if(d1.year<d2.year)//第一个日期年份小于第二个日期年份{days=count_day(d1,0);for(y=d1.year+1;y<d2.year;y++)if(l(y))//闰年。

C++课后习题解答

C++课后习题解答

第1章面向对象的方法学1.什么是面向对象方法学解:面向对象方法学就是尽量模拟人类习惯的思维方式,使软件开发的方法与过程尽可能接近人类认识世界、解决问题的方法与过程,从而使描述问题的问题空间(即问题域)与实现解法的解空间(即求解域)在结构上尽可能一致。

2.什么是对象它与传统的数据有何关系有什么不同解:对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体。

它与传统数据有本质的不同,传统数据是被动地等待对它进行处理,对象是进行处理的主体。

3.什么是封装性和继承性解:封装是面向对象方法的一个重要特点,即将对象的属性和行为封装在对象的内部,形成一个独立的单位,并尽可能隐蔽对象的内部细节。

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。

4.什么是多态性解:多态性是面向对象方法的重要特征。

不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

5.试写出学生管理系统中所涉及的类(属性和方法)。

学生管理系统中学生信息有:姓名、学号、年龄、成绩;学生管理系统完成学生信息输入、学生信息输出、插入学生信息、删除学生信息、查找学生信息。

解:class Student{private:char cName[12]; ET Framework之上的高级程序设计语言。

C#集C语言的简洁强大、C++的面向对象、VB的图形化设计方法、Java的编译与执行机制等优点于一身。

C#是创新性的新式编程语言,它巧妙地结合了最常用的行业语言和研究语言中的功能,并引入了多种潜在的新功能,提高了开发人员在语言构造方面的效率,将快速的应用程序开发与对底层平台各种功能的访问紧密结合在一起,使得程序员能够在.NET平台上快速开发各种应用程序。

7.C++支持多态性主要表现在哪些方面解:C++支持两种多态性,即编译时的多态性和运行时的多态性。

编译时的多态性是通过重载来实现的,运行时的多态性是通过虚函数来实现的。

思考题1.设计一个栈类,实现的操作有初始化栈、入栈、出栈、判栈空。

面向对象程序设计课后习题答案

面向对象程序设计课后习题答案

第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对彖程序设计是一种新型的程序设计范型。

这种范型的主要特征是:程序=对象+消息。

面向对彖程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对彖并规定它们之间传递消息的规律。

第二: 程序中的一切操作都是通过向对彖发送消息来实现的,对彖接受到消息后,启动有关方法完成相应的操作。

面向对彖程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。

这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希塑、最有前途的方法之一。

[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对彖程序设计中,对彖是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。

对象可以认为是:数据+操作在面向对彖程序设计中,类就是具有相同的数据和相同的操作的一组对彖的集合,也就是说, 类是对具有相同数据结构和相同操作的一类对彖的描述。

类和对彖之间的关系是抽象和具体的关系。

类是多个对彖进行综合抽象的结果,一个对象是类的一个实例。

在面向对彖程序设计中,总是先声明类,再由类生成对象。

类是建立对彖的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。

[1_3]现实世界中的对象有哪些特征?请举例说明。

对彖是现实世界中的一个实体,其具有以下一些特征:(1)每一个对彖必须有一个名字以区别于其他对彖。

(2)需要用属性来描述它的某些特性。

(3)有一组操作,每一个操作决定了对象的一种行为。

(4)对彖的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。

例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36生口:1966.10.1工资:2000部门:人爭部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对彖程序设计中,一个对象向另一个对象发出的请求被称为“消息”。

c面向对象程序设计课后习题答案

c面向对象程序设计课后习题答案

c面向对象程序设计课后习题答案C面向对象程序设计课后习题答案在学习C面向对象程序设计课程的过程中,课后习题是巩固知识、提升能力的重要途径。

通过认真完成习题,我们可以更好地理解课程内容,掌握编程技巧,提高解决问题的能力。

下面我们将针对一些常见的C面向对象程序设计课后习题进行答案解析。

1. 请编写一个C++程序,实现一个简单的学生信息管理系统,包括学生姓名、学号、成绩等信息的录入、查询和修改功能。

答案解析:首先,我们需要定义一个学生类,包括姓名、学号、成绩等属性,并实现相应的方法来实现信息的录入、查询和修改功能。

然后在主函数中创建学生对象,调用相应的方法即可实现学生信息管理系统。

2. 编写一个C++程序,实现一个简单的图书管理系统,包括图书名称、作者、出版社等信息的录入、查询和删除功能。

答案解析:同样地,我们需要定义一个图书类,包括图书名称、作者、出版社等属性,并实现相应的方法来实现信息的录入、查询和删除功能。

在主函数中创建图书对象,调用相应的方法即可实现图书管理系统。

3. 设计一个C++程序,模拟实现一个简单的银行账户管理系统,包括账户余额、存款、取款等功能。

答案解析:在这个问题中,我们需要定义一个银行账户类,包括账户余额、存款、取款等属性,并实现相应的方法来实现账户管理系统。

在主函数中创建账户对象,调用相应的方法即可实现银行账户管理系统。

通过以上习题的解答,我们可以看到C面向对象程序设计的重要性和实际应用。

通过不断地练习和实践,我们可以更好地掌握面向对象程序设计的知识和技能,提高编程能力,为今后的工作和学习打下坚实的基础。

希望同学们能够认真对待课后习题,不断提升自己的编程水平。

面向对象程序设计第二章课后答案说课讲解

面向对象程序设计第二章课后答案说课讲解

面向对象程序设计第二章课后答案1.什么是命名空间,如何访问命名空间的成员?【解答】为了解决不同文件中同名变量的问题,C++标准中引入命名空间的概念。

命名空间(namespace)是一种特殊的作用域,命名空间可以由程序员自己来创建,可以将不同的标识符集合在一个命名作用域内,这些标识符可以类、对象、函数、变量、结构体、模板以及其他命名空间等。

在作用域范围内使用命名空间就可以访问命名空间定义的标识符。

有3种访问方法:(1)直接指定标识符,访问方式为:命名空间标识符名∷成员名。

(2)使用using namespace命令(3)使用using关键词声明2.什么是内联函数,它有什么特点?哪些函数不能定义为内联函数?【解答】用inline关键字声明或定义的函数称为内联函数。

C++中对于功能简单、规模小、使用频繁的函数,可以将其设置为内联函数。

内联函数(inline function)的定义和普通函数相同,但C++对它们的处理方式不一样。

在编译时,C++将用内联函数程序代码替换对它每次的调用。

这样,内联函数没有函数调用的开销,即节省参数传递、控制转移的开销,从而提高了程序运行时的效率。

但是,由于每次调用内联函数时,需要将这个内联函数的所有代码复制到调用函数中,所以会增加程序的代码量,占用更多的存储空间,增大了系统空间方面的开销。

因此,内联函数是一种空间换时间的方案。

函数体内有循环语句和switch语句,递归调用的函数不能定义为内联函数。

3.什么是函数重载?在函数调用时,C++是如何匹配重载函数的?【解答】函数重载是指两个或两个以上的函数具有相同的函数名,但参数类型不一致或参数个数不同。

编译时编译器将根据实参和形参的类型及个数进行相应地匹配,自动确定调用哪一个函数。

使得重载的函数虽然函数名相同,但功能却不完全相同。

在函数调用时,C++是匹配重载函数规则如下:首先寻找一个精确匹配,如果能找到,调用该函数;其次进行提升匹配,通过内部类型转换(窄类型到宽类型的转换)寻求一个匹配,如char到int、short到int等,如果能找到,调用该函数;最后通过强制类型转换寻求一个匹配,如果能找到,调用该函数。

面向对象工程习题解答(面向对象)

面向对象工程习题解答(面向对象)

习题中问题
覆盖与重载 – 重载method overloading
• 一个类中,同一个方法名,但参数的个数、类 型不同

方法覆盖method overriding (method shadowing)
• when a class define a method using the same name,return type,and same arguments as a method in its superclass. 在自类中对父类中的变量重新定义

习题中问题
– 类:
• • 对象分类,对象按类划分,对象的集合。 如:“轿车”是一个类 计算机系统中:一组属性以及这组属性上 的操作的封装体 计算机系统中,同一类实体的共同的属性 与操作的抽象描述。A class is a collection of data and methods that operate on that data.
3.指出一下每组两个词的区别 a)实例和类 b)数据类型和类 c)类和组件 d)动态绑定和多态性 e)类属性和继承 f)覆盖与重载 对象、类:p13
– 对象:问题域或实现域中某些事物的一个 抽象。他反映该事物在系统中需要保存的 信息和发挥的作用。 类:具有相同属性和服务的一组对象的集 合。它为该类的全部对象提供了统一的抽 象描述。
• • 组建通常比类大, 可用多种语言实现. 可包括自己的元数据, 不用编程可直接装配.

类属性与类方法
类属性(class variables) – 类所具有的变量,不需创造实例对象就存 在 – 一个类只有一个copy, 供该类的所有对象共 享 类方法(class methods) – 不需要创建对象,就可以使用的类的方法

面向对象习题解答2

面向对象习题解答2

陈美灵2010231030015 软件三班要了解面向对象,从面向对象的基本思想,面向对象特征、设计基本步骤、案例四点理解1、面向对象的基本思想:面向对象的提出最初是在C++的类中提出的。

类是C++最基本运算方法。

要使用类就得先定义一个类,然后用这个类在定义一个对象,这个对象就包含了类的所有属性、方法...。

通常我们在C中的变量和函数,在对象中叫做属性和方法。

打个比方说:C从main开始顺序运行一次叫做一份,一个类就是一份和多份,甚至可以延伸。

这是C无法完成的。

你可以将一个类看成一个main{}的翻版2、面向对象的特征:1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。

抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。

抽象包括两个方面,一是过程抽象,二是数据抽象。

2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。

对象的一个新类可以从现有的类中派生,这个过程称为类继承。

新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。

派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。

面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

4. 多态性:多态性是指允许不同类的对象对同一消息作出响应。

多态性包括参数化多态性和包含多态性。

多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

3、面向对象设计基本步骤:(1)分析确定在问题空间和解空间出现的全部对象及其属性;(2)确定应施加于每个对象的操作,即对象固有的处理能力;(3)分析对象间的联系,确定对象彼此间传递的消息;(4)设计对象的消息模式,消息模式和处理能力共同构成对象的外部特性;(5)分析各个对象的外部特性,将具有相同外部特性的对象归为一类,从而确定所需要的类;(6)确定类间的继承关系,将各对象的公共性质放在较上层的类中描述,通过继承来共享对公共性质的描述;(7)设计每个类关于对象外部特性的描述;(8)设计每个类的内部实现(数据结构和方法);4、面向对象案例:1、如利用面向对象(00D)思想设计媒体播放其软件。

C 面向对象程序设计习题解答(全)

C  面向对象程序设计习题解答(全)

4答案 n=2,sum=2 n=3,sum=5 n=5,sum=10
5答案 x=3 6答案 x=1,y=2 x=30,y=40 7答案 1 2 3 4 exit main 3 2 1 8答案 n=100 9答案 the student is:Li Hu the teacher is:Wang Ping 10答案 2 11答案 1035,789.504 12答案 13答案
一、选择题 1 2 3 4 D B B C
类和对象的进一步解析
5 D 6 D 7 D B 8 C B 9 10 11 12 13 14 15 16 B D B A A C B A
17 18 19 20 21 22 23 24 C C D B A D 二、填空题 1 this 2所有成员 3友元类、友元函数 4 friend 5 程序编译、程序结束 三、程序阅读题
第六章 派生与继承
一、选择题 1(1) 1(2) 2 A B 3 4 5 6 7 8 9 10 11 D C C C D D B C A D
二、填空题 1 继承 2 具体化、抽象 3 公有继承、保护继承、私有继承 4 子对象 5 public(共有的)、protected(保护的)、不可访问 6 protected(保护的)、protected(保护的)、不可访问的 7 private(私有的)、private(私有的)、不可访问的 8 二义性 三、判断下列描述的正确性 1 2 3 4 5 6 7 8 9 10 11 12 13 √ × × × × × √ √ × × √ √ ×
1、 选择题 1 2 3 4 5 6 7 C 8 9 10 D D D C A D C 2、 程序阅读题 1答案 a=639,b=78,c=12 2答案 a=5,b=8 a=8,b=5 3答案 10 4答案 x=20.6 y=5 z=A x=216.34 y=5 z=A x=216.34 y=2 z=A x=216.34 y=2 z=E 5答案 ic=11 fc=7.82 ic=5 fc=2.15 3、 判断下列描述的正确性 1 2 √ × D A

JAVA语言与面向对象程序设计课后习地训练题目答案详解

JAVA语言与面向对象程序设计课后习地训练题目答案详解

第1章面向对象软件开发概述1.简述面向过程问题求解和面向对象问题求解的异同。

试列举出面向对象和面向过程的编程语言各两种。

答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更接近于计算机;面向对象的问题求解,如此是以“对象〞为主体,“对象〞是现实世界的实体或概念在计算机逻辑中的抽象表示,更接近于人的思维特点。

面向过程的编程语言:C,Pascal, Foratn。

面向对象的编程语言:C++, Java,C#。

2.简述对象、类和实体与它们之间的相互关系。

尝试从日常接触到的人或物中抽象出对象的概念。

答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和表现。

类是同种对象的集合与抽象。

类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象如此被称为是类的一个实例,是类的一次实例化的结果。

如果类是抽象的概念,如“电视机〞,那么对象就是某一个具体的电视机,如“我家那台电视机〞。

3.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学生〞,试为这个对象设计状态与行为。

答:对象都具有状态和行为。

对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。

每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的状态。

行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变对象的状态。

学生的状态:某某、性别、年龄、所在学校、所在系别、通讯地址、、入学成绩等;学生的行为:自我介绍、入学注册、选课、参加比赛等。

4.对象间有哪三种关系?对象“班级〞与对象“学生〞是什么关系?对象“学生〞与对象“大学生〞是什么关系?答:对象间可能存在的关系有三种:包含、继承和关联。

对象“班级〞与对象“学生〞是包含关系。

对象“学生〞与对象“大学生〞是继承关系。

5.有人说“父母〞和“子女〞之间是继承的关系。

这种说法是否正确?为什么?答:“父母〞和“子女〞之间不是面向对象意义上的“继承〞关系。

UML面向对象设计与分析 课后习题答案

UML面向对象设计与分析 课后习题答案

1.一台自动售货机能提供 6 种不同的饮料,售货机上有 6 个不同的按钮,分别对应这 6 种不同的饮料,顾客通过这些按钮选择不同的饮料。售货机有一个硬币槽和找零槽,分别 用来收钱和找钱。现在为这个系统设计一个用例图?
选择饮料
投币
顾客
找零
2.现有一个产品销售系统,其总体需求如下: 系统允许管理员生成存货清单报告。 管理员可以更新存货清单。 销售员记录正常的销售情况。 交易可以使用信用卡或支标,系统需要对其进行验证。 每次交易后都需要更新存货清单。 分析其总体需求,并绘制出其用例图?
EmptyOrder ValidOrder Canclled
Processing Processed
其中,后两个类是 Student 类的子类。 (2)为“在校生可以是助教的一种”建立模型,即建立 UnderGraduate 类的另一个超
类 Tutor。 (3)通过创建从 Tutor 到 Student 的关联(名为 tutors),建立一名助教指导一名学生的
模型。 (4)将“教师和教授属于不同级别的教员”建模为 3 个类:Instructor、Teacher 和 Professor,
13.显示9.可显4.显选示示的服请取务求款类密金型码额
输入设备
2.接收 IC卡
6.传送密码 11.传送取款请求
15.传送金额
38..查查12询询.查密服询码务取类款型金额
77..21..确验16认证.修密密改码码账合号法金性额 客户管理
显示屏
事务管理 点钞机
第 7 章 时序图
2.为下面打印文件时的系统交互建模时序图。添加时间约束后的各工作过程如下: 用户通过计算机指定要打印的文件,系统反映时间 1s。 打印服务器根据打印机是否空闲,操作打印机打印文件。 如果打印机空闲,则打印机打印文件; 如果打印机忙,则将打印消息存放在队列中等待,打印消息等待 120s 后,如果未

c--面向对象程序设计课后习题解答-谭浩强

c--面向对象程序设计课后习题解答-谭浩强

(5)第6行末尾少了一个分号。 (6)add函数中的retrun拼写错误,应为return。编译系统把retrun作为未声明的标识符而报错 ,因为retrun(z)会被认为是函数调用的形式。 (7)变量a和b未被赋值。 改正后的程序如下: #include using namespace std; int main( {int add(int x,int y; int a,b,c; cin >> a >> b; c=add(a,b; cout <<" a+b=" << c < return 0; } int add(int x,int y {int z; z=x+y; return(z; } 运行情况如下: 5 8↙ 13 10.输入以下程序,编译并运行,分析运行结果。 #include using namespace std; int main( { void sort(int x,int y,int z; int x,y,z;
1 5 3↙ (输入3个整数
1 (输出其中最小的数
8.在你所用的C++系统上,输入以下程序,进行编译,观察编译情况,如果有错误,请修改 程序,再进行编译,直到没有错误,然后进行连接和运行,分析运行结果。
int main( ; { int a,b; c=a+b; cout >>" a+b=" >> a+b; } 【解】 上机编译出错,编译出错信息告知在第2行出错,经检查,发现第1行的末尾多了一个分号,编译 系统无法理解第2行的花括号,导致报告第2行出错。将第1行的末尾的分号去掉,重新编译,编 译出错信息告知在第5行和第6行出错。第5行出错原因是cout未经声明,因为cout不是C++语言 提供的系统的关键字,而是输出流的对象,必须使用头文件iostream。第6行出错原因是main是i nt型函数,应返回一个整型值。将程序改为

面向对象课后题答案

面向对象课后题答案

第1章面向对象程序设计概论面向对象程序设计教程(C++语言描述)题解与课程设计指导第1章面向对象程序设计概论一、名词解释抽象封装消息【问题解答】面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。

面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。

消息是面向对象程序设计用来描述对象之间通信的机制。

一个消息就是一个对象要求另一个对象实施某种操作的一个请求。

二、填空题(1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。

(2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。

(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。

(4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。

(5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。

三、选择题(至少选一个,可以多选)(1)面向对象程序设计着重于( B )的设计。

A. 对象B. 类C. 算法D. 数据(2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C )。

A. 抽象B. 继承C. 封装D. 多态(3)在面向对象程序设计中,类通过( D )与外界发生关系。

A. 对象B. 类C. 消息D. 接口(4)面向对象程序设计中,对象与对象之间的通信机制是(C )。

A. 对象B. 类C. 消息D. 接口(5)关于C++与C语言的关系的描述中,(D )是错误的。

A. C语言是C++的一个子集B. C语言与C++是兼容的C. C++对C语言进行了一些改进D. C++和C语言都是面向对象的【结果分析】C语言是面向过程的。

C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。

《面向对象编程与设计(Java)》课后作业及参考解答

《面向对象编程与设计(Java)》课后作业及参考解答

《面向对象编程与设计(Java)》课后作业及参考解答《面向对象编程与设计(Java)》课后作业及参考解答1.1.1第一周课程(9月4日)的课后作业及参考解答1、请用Java程序示例说明什么是面向过程的程序设计方法、什么是面向对象的程序设计方法?面向过程就是分析出所需要开发的应用的系统在解决某个问题时所需要的步骤和工作流程,然后用代码(当然应该把这些代码设计为各个函数或者过程)来表示这些步骤的具体实现——面向过程是以过程为中心的编程思想。

而面向对象是把构成问题的各个方面分解成各个对象,并用代码来实现对象之间的交互——面向对象是以事物为中心的编程思想。

(1)面向过程程序设计方法的示例#include "stdio.h"int add(int a, int b){//对数据的操作(方法或者函数)return a+b;}int main(){//数据(属性或者状态)int x=1, y=1;int sum=add(x,y);print("Sum=%d",sum);}面向过程程序的程序中的数据与方法是相互分离的!而面向对象程序中的数据与方法是相互组合在一起的。

当数据(也就是问题的属性或者状态)发生变化,需要修改大量的关联的方法的程序模块。

(2)面向对象程序设计方法的示例import java.io.*;public class Add{//数据(属性或者状态)private int sum;public int add(int a, int b){//对数据的操作(方法或者函数)sum=a+b;return sum;}public void showSum() {//对数据的操作(方法或者函数)System.out.println("Sum="+sum);}public static void main(String args[]){Add oneAdd=new Add();oneAdd.add(1,2);oneAdd.showSum();}}2、谈谈你对开源的理解(可以是任何方面的主题),你熟悉J2EE平台中的哪些开源框架、对这些开源框架的熟悉程度怎样(包括在项目中的具体应用)(1)开源软件1)开源软件一定是源代码开放,任何人可以免费使用,任何人可以再开发;2)开源同时也是一种商业运营手段,软件免费提供但服务收费。

面向对象课后题答案

面向对象课后题答案

第1章面向对象程序设计概论面向对象程序设计教程(C++语言描述)题解与课程设计指导第1章面向对象程序设计概论一、名词解释抽象封装消息【问题解答】面向对象方法中的抽象是指对具体问题(对象)进行概括.抽出一类对象的公共性质并加以描述的过程。

面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位.并尽可能隐蔽对象的内部细节。

消息是面向对象程序设计用来描述对象之间通信的机制。

一个消息就是一个对象要求另一个对象实施某种操作的一个请求。

二、填空题(1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。

(2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。

(3)在结构化程序设计方法中.程序可表示为程序=数据结构+算法;而面向对象的程序设计方法.程序可表示为程序=对象+消息。

(4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。

(5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。

三、选择题(至少选一个.可以多选)(1)面向对象程序设计着重于( B )的设计。

A. 对象B. 类C. 算法D. 数据(2)面向对象程序设计中.把对象的属性和行为组织在同一个模块内的机制叫做( C )。

A. 抽象B. 继承C. 封装D. 多态(3)在面向对象程序设计中.类通过( D )与外界发生关系。

A. 对象B. 类C. 消息D. 接口(4)面向对象程序设计中.对象与对象之间的通信机制是( C )。

A. 对象B. 类C. 消息D. 接口(5)关于C++与C语言的关系的描述中.( D )是错误的。

A. C语言是C++的一个子集B. C语言与C++是兼容的C. C++对C语言进行了一些改进D. C++和C语言都是面向对象的【结果分析】C语言是面向过程的。

C++语言是一种经过改进的更为优化的C语言.是一种混合型语言.既面向过程也面向对象。

C++课后习题解答

C++课后习题解答

第1章面向对象的方法学1.什么是面向对象方法学?解:面向对象方法学就是尽量模拟人类习惯的思维方式,使软件开发的方法与过程尽可能接近人类认识世界、解决问题的方法与过程,从而使描述问题的问题空间(即问题域)与实现解法的解空间(即求解域)在结构上尽可能一致。

2.什么是对象?它与传统的数据有何关系?有什么不同?解:对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体。

它与传统数据有本质的不同,传统数据是被动地等待对它进行处理,对象是进行处理的主体。

3.什么是封装性和继承性?解:封装是面向对象方法的一个重要特点,即将对象的属性和行为封装在对象的内部,形成一个独立的单位,并尽可能隐蔽对象的内部细节。

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。

4.什么是多态性?解:多态性是面向对象方法的重要特征。

不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

5.试写出学生管理系统中所涉及的类(属性和方法)。

学生管理系统中学生信息有:姓名、学号、年龄、成绩;学生管理系统完成学生信息输入、学生信息输出、插入学生信息、删除学生信息、查找学生信息。

解:class Student{private:char cName[12]; //姓名long lNum; //学号int age; //年龄float fGrade; //成绩public:void Input(); //输入学生信息void Print(); //输出学生信息void Insert(); //插入学生信息void Del(); //删除学生信息void Find(); //查找学生信息};6.目前常用的面向对象程序设计语言有哪些?各有哪些特点?解:Visual C++6.0支持面向对象编程、可视化、模块化、代码可重用和组件共享等技术,可以大大提高软件系统的设计、管理和开发速度。

Java语言是一种通用、并发、基于类的面向对象程序设计语言。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章面向对象程序设计概论面向对象程序设计教程(C++语言描述)题解与课程设计指导第1章面向对象程序设计概论一、名词解释抽象封装消息【问题解答】面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。

面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。

消息是面向对象程序设计用来描述对象之间通信的机制。

一个消息就是一个对象要求另一个对象实施某种操作的一个请求。

二、填空题(1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。

(2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。

(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。

(4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。

(5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。

三、选择题(至少选一个,可以多选)(1)面向对象程序设计着重于( B )的设计。

A. 对象B. 类C. 算法D. 数据(2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C )。

A. 抽象B. 继承C. 封装D. 多态(3)在面向对象程序设计中,类通过( D )与外界发生关系。

A. 对象B. 类C. 消息D. 接口(4)面向对象程序设计中,对象与对象之间的通信机制是(C )。

A. 对象B. 类C. 消息D. 接口(5)关于C++与C语言的关系的描述中,(D )是错误的。

A. C语言是C++的一个子集B. C语言与C++是兼容的C. C++对C语言进行了一些改进D. C++和C语言都是面向对象的【结果分析】C语言是面向过程的。

C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。

(6)面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依存、不可分割的整体来处理。

A. 算法B. 信息C. 数据隐藏D. 数据抽象(7)下面( A )不是面向对象系统所包含的要素。

A. 重载B. 对象C. 类D. 继承【结果分析】面向对象=对象+类+继承+消息+多态(8)下面说法正确的是(BC )。

A. 将数据结构和算法置于同一个函数内,即为数据封装B. 一个类通过继承可以获得另一个类的特性C. 面向对象要求程序员集中于事物的本质特征,用抽象的观点看待程序D. 同一消息为不同的对象接受时,产生的行为是一样的,这称为一致性【结果分析】面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。

将数据结构和算法置于同一个类内,即为数据封装。

同一消息为不同的对象接受时,产生的行为可能是不一样的,这称为多态性。

(9)下面说法正确的是(AD )。

A. 对象是计算机内存中的一块区域,它可以存放代码和数据B. 对象实际是功能相对独立的一段程序C. 各个对象间的数据可以共享是对象的一大优点D. 在面向对象的程序中,对象之间只能通过消息相互通信【结果分析】对象是计算机内存中的一块区域。

在对象中,不但存有数据,而且存有代码,使得每个对象在功能上相互之间保持相对独立。

对象之间存在各种联系,但它们之间只能通过消息进行通信。

四、判断题(1)在高级程序设计语言中,一般用类来实现对象,类是具有相同属性和行为的一组对象的集合,它是创建对象的模板。

(√)(2)C++语言只支持面向对象技术的抽象性、封装性、继承性等特性,而不支持多态性。

(×)【结果分析】C++语言不仅支持面向对象技术的抽象性、封装性、继承性等特性,而且支持多态性。

(3)面向对象程序设计中的消息应该包含“如何做”的信息。

(×)【结果分析】消息是面向对象程序设计用来描述对象之间通信的机制。

向对象“发送消息”只需告诉对象做什么,对象根据这个消息决定如何做。

(4)一个消息只能产生特定的响应效果。

(×)【结果分析】当一个对象发出消息时,由于接收对象的类型可能不同,所以,它们可能做出不同的反应。

这样,一个消息可以产生不同的响应效果,这种现象叫做多态。

(5)类的设计和类的继承机制实现了软件模块的可重用性。

(√)(6)C++语言和Java语言均不是一个纯正的面向对象的程序设计的语言。

(×)【结果分析】Java语言是一个纯正的面向对象的程序设计语言。

(7)学习C++语言是学习面向对象的程序设计方法的唯一途径。

(×)【结果分析】程序设计方法是独立于具体程序设计语言的一种技术,学习C++语言是学习面向对象程序设计方法的重要途径之一。

(8)在C++语言中,类是支持数据封装的工具。

(√)五、简答题(1)什么是结构化程序设计方法?它有哪些优点和缺点?【问题解答】结构化程序设计方法着眼于系统要实现的功能,从系统的输入输出出发,分析系统要做哪些事情,进而考虑如何做这些事情,自顶向下地对系统的功能进行分解,来建立系统的功能结构和相应的程序模块结构,有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。

随着程序规模与复杂性的增长,这种面向过程的结构化程序设计方法存在明显的不足之处。

首先是数据安全性问题。

由于数据被每个模块所共用,因此是不安全的,一旦出错,很难查明原因。

其次是可维护性及可重用性差。

它把数据结构和算法分离为相互独立的实体,一旦数据结构需要改变时,常常要涉及整个程序,修改工作量极大并容易产生新的错误。

每一种相对于老问题的新方法都要带来额外的开销。

另外,图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。

(2)什么是面向对象程序设计方法?它有哪些优点?【问题解答】面向对象的程序设计方法中,将程序设计为一组相互协作的对象而不是一组相互协作的函数。

在程序中,属性用数据表示,用来描述对象静态特征;行为用程序代码实现,用来描述对象动态特征。

可见,在面向对象的程序设计方法中,对象是数据结构和算法的封装体。

对象之间存在各种联系,它们之间通过消息进行通信。

程序可表示为:程序=对象+消息在面向对象程序设计中应着重于类的设计。

类正是面向对象语言的基本程序模块,通过类的设计来完成实体的建模任务。

类通过一个简单的外部接口与外界发生关系。

一个类中的操作不会处理到另一个类中的数据,这样程序模块的独立性、数据的安全性就有了良好的保障。

程序的执行取决于事件发生的顺序,由顺序产生的消息来驱动程序的执行。

不必预先确定消息产生的顺序,更符合客观世界的实际。

并且面向对象程序设计方法提供了软件重用、解决大问题和复杂问题的有效途径,具有抽象性、封装性、继承性和多态性等特点。

(3)结构化程序设计方法与面向对象程序设计方法在对待数据结构和算法关系上有什么不同?【问题解答】结构化程序设计方法中,把数据结构和算法分离为相互独立的实体;而在面向对象程序设计中,数据结构和算法封装在一起,结合成一个独立的单位,即对象,并尽可能隐蔽对象的内部细节。

对象的私有属性只能由这个对象的行为来读取和修改,与外部的联系通过公有行为充当外部接口。

第2章从C到C++面向对象程序设计教程(C++语言描述)题解与课程设计指导第2章从C到C++一、名词解释引用内联函数重载函数【问题解答】所谓引用就是给对象取一个别名,使用该别名可以存取该对象。

换句话说是使新对象和原对象共用一个地址。

内联函数是使用inline关键字声明的函数。

重载函数指在同一个作用域内名字相同而参数不同的函数。

重载函数通常用来对具有相似行为而数据类型或数据个数不同的操作提供—个通用的名称。

二、填空题(1)一般情况下,用C++语言编写的程序是由函数加上类组成的。

(2)C++有两种注释符号,一种是//,另一种是/*……*/。

(3)使用C++风格的输入输出,在程序中必须包含头文件“iostream”。

(4)cin是预定义的标准输入流对象,>>是输入操作符,也称提取运算符。

(5)cout是预定义的标准输出流对象,<<是输出操作符,也称插入运算符。

(6)指针的值是它所指向那个对象的地址值。

指针的类型是它所指向对象的类型。

指针的内容便是它所指向对象的值。

(7)C++使用运算符&来定义一个引用,对引用的存取都是对它所引用的对象的存取。

(8)当一个函数调用出现在函数定义之前时,必须先用函数原型对函数进行声明。

(9)C++有值传递和引用传递两种参数传递机制。

(10)使用关键字inline声明的函数称为内联函数。

(11)运算符new用于进行动态内存分配,运算符delete用于释放动态分配的内存。

(12)下面程序的输出结果为x=10,y=10;x=100,y=100。

#include<iostream>using namespace std;int main(){int x=10,&y=x;cout<<"x="<<x<<",y="<<y<<endl; int *p=&y;*p=100;cout<<"x="<<x<<",y="<<y<<endl; return 0;* * }三、选择题(至少选一个,可以多选)(1)在整型指针变量p2、p3的定义中,错误的是( A )。

A. int p1,*p2,p3;B. int*p2,p1,*p3;C. int p1,*p2=&p1,*p3;D. int*p2,p1,*p3=&p1;【结果分析】指针定义的具体格式如下所示:<类型> *<指针名1>,*<指针名2>,…;(2)若有定义“double xx=3.14,*pp=&xx;”,则*pp等价于( C )。

A. &xxB. *xxC. 3.14D. xx【结果分析】pp指向xx所在的内存单元,这样*pp和xx等价。

(3)下面对引用的描述中( C )是错误的。

A. 引用是某个变量或对象的别名B. 建立引用时,要对它初始化C. 对引用初始化可以使用任意类型的变量D. 引用与其代表的对象具有相同的地址【结果分析】所谓引用就是给对象取一个别名,使用该别名可以存取该对象,所以对引用初始化必须使用同类型的变量。

(4)函数没有返回值的时候,应该选择( A )的函数类型。

A. voidB. intC. 不确定D. float(5)在函数的定义格式中,下面各组成部分中,( D )是可以省略的。

相关文档
最新文档