面向对象方法学试题及答案

合集下载

面向对象试题(标准答案)

面向对象试题(标准答案)

CoreJavaOOP考试题考试时间:90分钟考试总分:100分一、选择题(不定项选择)(22*4=88)1.类A,B的定义如下:class A {private int a = 100;A() {System.out.print("A()");System.out.println(a);}}class B extends A {private int a = 200;B() {System.out.print("B()");System.out.println(a);}}运行下面的代码:new B();输出的结果是:(A )。

A.A() 100B() 200B.A() 200B() 200C.B() 200A() 100D.B() 200A() 2002.下列说法正确的是(D )A.所有类都必须定义构造方法(构造器)B.构造方法必须初始化类的所有数据成员C.子类定义了构造器后,不再调用父类的构造器D.构造方法可以访问类的非静态成员3.在Java中,哪个关键字使类不能派生子类?, (A )A : finalB : publicC : privateD : native4.class Base{static void test(){System.out.println(“Base.test()”);}}public class Child extends Base{static void test(){System.out.println(“Child.test()”);}public static void main(String[] args){Base base = new Child();Child child = new Child();base.test();child.test();}}程序运行的结果是( C )A.Child.test() Child.test()B.Child.test() Base.test()C.Base.test() Child.test()D.Base.test() Base.test()5.下列哪些叙述是正确的(CD )A.在一个类中,方法不能与类名相同B.a bstract 可以修饰属性、方法和类C.实例方法可直接调用本类的static方法和非static方法D.static方法不能调用非static方法6.以下说法正确的是(ABC)A.子类不能继承父类的构造方法B.子类的构造方法可以访问父类的构造方法C.子类不可直接访问父类的私有属性D.子类可以重写父类的所有方法7.分析选项中关于Java中this关键字的说法正确的是( A )A.this关键字是在对象内部指代自身的引用B.this关键字可以在类中的任何位置使用C.this关键字和类关联,而不是和特定的对象关联D.同一个类的不同对象共用一个this8 下列关于继承的说法哪个是正确的?( B )A.子类只继承父类public方法和属性B.子类继承父类的非私有属性和方法C.子类只继承父类的方法,而不继承父类的属性D.子类将继承父类的所有属性和方法9.在Java中,关于final关键字的说法正确的是(AC )A.final修饰的变量,一旦赋值就不能被更改B.final修饰的类只能被一个子类继承C.final修饰的方法,不能在子类中被覆盖D.final修饰的方法,不能被子类继承10. String s=new String(“xyz”)创建了几个对象(C);A. 0B. 1C. 2D. 311.下列语句的序列执行后,k的值是( B )int m=3,n=6,k=0;While((m++)<(--n))++k;A.0B.1C.2D.312.下列哪一项不是面向对象的典型特征(D )A.封装 B.继承C. 多态D.抽象13.(多选)在java中,关于构造方法,下列说法正确的是(ABD )A.构造方法的名称必须与类名相同B.构造方法可以带参数C.构造方法不可以重载D.构造方法绝对不能有返回值14.下面关于变量的说法正确的是(BC )A.实例变量可以通过类名直接调用B.类变量可以通过类名直接调用C. Java中的参数传递都是值传递D. 在不同的作用域不能定义相同的变量15.下列代码有编译错误的是第(C )行1)public class Test{2)public static void main(String[] args){3)int[] arr1 = new int[12];4)char[] arr2 = new char[];5)int[] arr3 = {};6)Object[] obj = new Object[4];7)Object obj1 = new object[9];8)}9)}A.5)B.5) 7)C.4) 7)D.4)16.下列代码的运行结果是(A )public class Test{private int num;private static Test test;public Test(int num){this.num = ++ num;}static{int num = 16;test = new Test(num);++ test.num;}public static void main(String[] args){test = new Test(13);System.out.println(test.num);}}A.14B.15C.16D.1717.仔细分析下列代码,请指出错误的行(D )。

面向对象测试题及答案

面向对象测试题及答案

面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。

2. 解释什么是多态,并给出一个Java中多态的例子。

3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。

面向对象基础测试题和答案

面向对象基础测试题和答案

共40 道选择题,每题 2.5 分。

多选题有错则全错,全对才满分.面向对象部分测试题1. 下面描述函数重写错误的是 CA. 要有子类继承或实现B. 子类方法的权限必须大于等于父类的权限C. 父类中被private 权限修饰的方法可以被子类重写D. 子类重写接口中的抽象方法,子类的方法权限必须是public 的2. 关于封装下面介绍错误的是( D )。

A. 封装将变化隔离B. 封装提高重用性。

C. 封装安全性D. 只有被private 修饰才叫做封装3. 试图编译运行下面的代码会发生什么情况 Dpublic class MyClass{static int i;public static void main(String[] args){System.out.println(i);}}A. 错误,变量i 没有被初始化B. 输出nullC. 输出1D. 输出04. 在Java 中,下面对于构造函数的描述正确的是(D)。

A. 类必须显式定义构造函数B. 构造函数的返回类型是voidC. 构造函数和类有相同的名称,并且不能带任何参数D. 一个类可以定义多个构造函数5. 下面Java 代码的运行结果是( C )。

class Penguin {private String name=null; // 名字private int health=0; // 健康值private String sex=null; // 性别public void Penguin() { //是一般方法,不是构造方法health = 10;sex = " 雄";System.out.println(" 执行构造方法。

");}public void print() {System.out.println(" 企鹅的名字是" + name +" ,健康值是" + health + " ,性别是" + sex+ " 。

java面向对象试题及答案

java面向对象试题及答案

JAVA面向对象一:填空1、_____ 是JVM自带的一个线程(自动运行着的程序),用于回收没有任何引用所指向的对象。

2、_____空间用于存储使用new关键字所创建的对象;_____空间用于存储程序运行时在方法中声明的所有的局部变量;_____用于存放类的信息(包括方法),方法有_____份。

3、面向对象三大特征:_____,_____,_____.4、下面是一个类的定义,请将其补充完整。

class _____ {String name;int age;Student( _____ s, int i) {name=s;age=i;}}5、Java 语言的接口是特殊的类,其中包含______常量和_______方法。

6.如果子类中的某个方法的名字、__________和参数列表与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。

7. Java 仅支持类间的单重继承,接口可以弥补这个缺陷,支持_____重继承.8. 接口中所有方法均为________和________的。

9. Java语言中,表示一个类不能再被继承的关键字是________。

10.Java语言中,表示一个类A继承自父类B,并实现接口C的语句是_________________。

11、以下代码的输出结果是________________。

int i=9;char c=’a’;char d=(char)(c+i);System.out.println(d);12.继承主要强调子类在父类的基础上取”长”补”短”,而______主要强调的是类与类之间的传输13、我们在java程序中,把关键字________加到方法名称的前面,来实现子类调用父类的方法14.java语言中,调用方法时,参数传递是_____调用,而不是地址调用15.接口是一种只含有抽象方法或______的一种特殊抽象类16.abstract方法_______(不能或能)与final并列修饰同一个类17.创建一个类就是创建一个新的数据类型,而类在java中属于_____数据类型。

面向对象期末考试题及答案

面向对象期末考试题及答案

面向对象期末考试题及答案一、选择题(每题2分,共20分)1. 面向对象编程中的三大特性是?A. 封装、继承、多态B. 抽象、继承、封装C. 继承、封装、多态D. 封装、抽象、多态答案:A2. 在Java中,哪个关键字用于定义类?A. classB. structC. typeD. interface答案:A3. 以下哪个不是面向对象设计原则?A. 单一职责原则B. 开闭原则C. 里氏替换原则D. 模块化原则答案:D4. 在面向对象编程中,构造函数的作用是什么?A. 用于创建对象B. 用于销毁对象C. 用于实现继承D. 用于实现多态答案:A5. 以下哪个是Java中的访问修饰符?A. privateB. publicC. protectedD. 全部都是答案:D...(此处省略剩余选择题)二、简答题(每题10分,共30分)1. 简述面向对象编程的基本思想。

答案:面向对象编程是一种编程范式,它将现实世界中的实体抽象成对象,这些对象具有属性和行为。

面向对象编程的基本思想是将数据和处理数据的方法结合在一起,形成对象。

通过对象之间的交互来实现程序的功能。

2. 解释什么是多态性,并给出一个简单的例子。

答案:多态性是指允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。

例如,在Java中,可以通过重载和重写来实现多态。

假设有一个动物类Animal,它有一个方法makeSound()。

然后有一个子类Dog,它重写了makeSound()方法。

当我们创建一个Dog对象并调用makeSound()时,会执行Dog类中的makeSound()方法,而不是Animal类中的。

3. 什么是封装?封装的好处是什么?答案:封装是将对象的数据(属性)和行为(方法)组合在一起,并隐藏对象的内部细节,只暴露出一个可以被外界访问的接口。

封装的好处包括:保护数据、减少错误、提高代码的重用性、增强模块化。

三、编程题(每题25分,共50分)1. 编写一个Java程序,实现一个简单的银行账户类Account,包含以下特性:- 私有属性:账户余额balance- 公共方法:存款deposit(double amount)、取款withdraw(double amount)、获取余额getBalance()答案:```javapublic class Account {private double balance;public Account() {this.balance = 0;}public void deposit(double amount) {if (amount > 0) {balance += amount;}}public void withdraw(double amount) {if (amount > 0 && balance >= amount) {balance -= amount;}}public double getBalance() {return balance;}}```2. 假设有一个名为Car的类,它有两个属性:品牌brand和颜色color。

uml《面向对象的分析与设计》考题与答案

uml《面向对象的分析与设计》考题与答案

uml《⾯向对象的分析与设计》考题与答案《⾯向对象的分析与设计》练习题⼀、选择题1.UML 语⾔不⽀持的建模⽅式有(D )。

A. 静态建模B.动态建模C. 模块化建模D. 功能建模2.⼀个设计得好的OO系统具有( B )。

A. 低内聚、低耦合的特征B.⾼内聚、低耦合的特征C. ⾼内聚、⾼耦合的特征D.低内聚、⾼耦合的特征3.下列不属于⾯向对象技术的基本特征的是(B)。

A. 封装性B. 模块性C. 多态性D. 继承性4. ⾯向对象程序设计将描述事物的数据与( C ) 封装在⼀起,作为⼀个相互依存、不可分割的整体来处理。

A. 信息B. 数据隐藏C. 对数据的操作D. 数据抽象5. 关于⾯向对象⽅法的优点,下列不正确的叙述是(C )。

A. 与⼈类习惯的思维⽅法⽐较⼀致B. 可重⽤性好C. 以数据操作为中⼼D.可维护性好6.⽤例之间的关系不包括以下哪种关系?DA.泛化B.包含C. 扩展D. 聚集和组合7.顺序图中不包括以下哪种元素?(A)A.⽤例B. 对象C. ⽣命线D. 消息8. ⽤例图中不包括以下哪种元素?(B)A. ⽤例B. 类C. 参与者D. 关联9. 继承机制的作⽤是( C )。

A. 信息隐藏B. 数据封装C. 派⽣新类D. 数据抽象10. ⾯向对象⽅法学中,对象之间仅能通过(C)相联系。

A. 类B.抽象C. 消息D. 封装11. 脚本与⽤例之间的关系类似与(A)之间的关系。

A. 对象与类B. 参与者与⽤例C. 顺序图和抽象类D. 消息和对象12. 下列元素中,(D )不属于消息的组成。

A. 提供服务的对象B. 服务C. 输⼊信息D. 事件13. (D )描述了⼀组交互对象间的动态协作关系,它表⽰完成某项⾏为的对象和这些对象之间传递消息的时间顺序。

A.对象图 B. 协作图 C. 状态图 D. 顺序图14. (D)是从⽤户使⽤系统的⾓度描述系统功能的图形表达⽅法。

A. 类图B. 对象图C. 序列图D. ⽤例图15. ( C ) 是表达系统的类及其相互联系的图⽰,它是⾯向对象设计的核⼼,建⽴状态图、协作图和其他图的基础。

面向对象 期末考试 答案

面向对象  期末考试 答案

、填空(15分)1、类之间的静态联系称作关联。

・在实例化后,由类产生对象,链是关联的实例。

・在系统实现时,关联釆用对象的属性来实现。

2、用例图用于建立需求模型,描述用户的需求。

对象图是面向对象分析中的基本模型,属于静态结构模型。

3、顺序图(时序图)、通信图、活动图、状态图用于描述系统的行为方面的特征,属于动态结构模型。

4、时序图构成:参与者、相互协作的对象、对象的生命线、参与者与对象之间发送的消息、执行规约5、表示[可见性]属性名[:类型][=初始值]可见性分为+表示:(公有的)、#表示:(受保护的)、-表示:(私有的)、〜(包,只有在同一包中声明的类能够使用这一属性)。

二、名词解释(15分)1、面向对象方法:是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。

2、类:是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作务两个主要部分。

类的作用是用来创建对象,对象是类的一个实例。

3、抽象:指从事物中舍弃个别的、非本质的、与问题域无关的特征,而抽取共同的、本质特征的、相关的做法。

4、多态性:在具有继承关系的类层次结构中可以定义同名的操作或属性,但这些属性或操作具有不同的含义,即具有不同的数据类型或表现出不同的行为。

(“同名不同参”或“同名不同类”)5、OOA模型:就是诵过面向对象的分析所律立的系统分析模型。

用况:一个用况是对参与者使用系统的一项功能的描述,是一组动作序列的描述,是一项请求与响应。

(三、简答(45分)1、继承和泛化关系特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。

一般类对特殊类的抽象关系叫泛化关系(简称泛化)。

2、聚合与组合有区别,请说明他们间的区别,并指出下图中哪图是聚合?聚合刻画了现实事物之间的构成关系,体现“整体——部分”关系。

而关联没有组成关系或拥有关系。

如例题中的c图3、简述下图中体现的面向对象的基本思想0■■半0.法律顾问汽车。

面向对象基础_参考题答案

面向对象基础_参考题答案

⾯向对象基础_参考题答案⼀、【必做题】1.(1)定义⼀个⼈类Person:1)定义⼀个⽅法sayHello(),可以向对⽅发出问候语“hello,my name is XXX”2)有三个属性:名字、⾝⾼、体重(2)定义⼀个PersonCreate类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调⽤对象的sayHello()⽅法。

(答案:Person.java、PersonCreate.java)2.(1)定义⼀个⼈类Person:1)定义⼀个⽅法sayHello(),可以向对⽅发出问候语“hello,my name is XXX”2)有三个属性:名字、⾝⾼、体重3)通过构造⽅法,分别给三个属性赋值(2)定义⼀个Constructor类:1)创建两个对象,分别是zhangsan,33岁,1.73;lishi,44,1.742)分别调⽤对象的sayHello()⽅法。

(答案:Constructor.java、或者是Person3.java)3.(1)定义⼀个矩形类Rectangle:1)定义三个⽅法:getArea()求⾯积、getPer()求周长,showAll()分别在控制台输出长、宽、⾯积、周长。

2)有2个属性:长length、宽width3)通过构造⽅法Rectangle(int width, int length),分别给两个属性赋值(答案:Rectangle.java)4.定义⼀个点类Point,包含2个成员变量x、y分别表⽰x和y坐标,2个构造器Point()和Point(int x0,y0),以及⼀个movePoint(int dx,int dy)⽅法实现点的位置移动。

()public class Point {private int x0;private int y0;public Point(){}public Point(int x0,int y0){t his.x0=x0;this.y0=y0;}public void movePoint(int dx,int dy){t his.x0 = this.x0 + dx;t his.y0 = this.y0 + dy;}}5.编写⼀个程序,创建两个Point对象p1、p2,分别调研movePoint⽅法后,打印p1和p2的坐标。

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

C++程序设计试题(下)样卷(卷面50分)(考试用时100分钟)一、选择题(每题1分,共5分)1.设计一个自定义类时,需要在屏幕上显示或向文件写入类对象的数据,最佳选择方法是。

A.为屏幕显示和文件写入各自设计一个成员函数。

B.为屏幕显示和文件写入统一设计一个成员函数。

C.重载插入运算符(<<)。

D.重载提取运算符(>>)。

2.关于异常处理,那些说法是错误的。

A.在C++程序中,由throw表达式抛出异常,而该表达式应直接或间接地被包含在try块中。

B.当抛出异常后,寻找匹配的catch子句有固定的过程:逆着程序函数的调用链返回,称为栈展开(Stack Unwinding)。

C.当某条语句抛出异常时,跟在其后的语句将被跳过,但析构函数仍然执行,所以应该在析构函数中释放资源。

D.catch子句实际是一个特殊的函数。

3.下列关于动态资源分配的说法中错误的是。

A.动态分配的资源不仅包括内存,还包括文件。

B.动态内存分配的优点在于可以随时给数组分配所需的内存而不会失败。

C.动态分配的资源通常要求在析构函数中释放。

D.对含有动态分配的数据成员的类对象应该采用深复制。

4.下列有关模板的描述那些是错误的。

A.模板把数据类型作为一个设计参数,称为参数化程序设计。

B.模板参数除模板类型参数外,还有非类型参数。

C.类模板与模板类是同一概念。

D.使用时,模板参数与函数参数相同,是按位置而不是名称对应的。

5.关于多态,下面那些说法是正确的。

A.多态分静态的(编译时)和动态的(运行时)。

B.运行时的多态与类的层次结构有关。

C.在基类定义了虚函数后,在派生类中重新定义时可以不加关键字virtual。

D.仅使用虚函数并不能实现运行时的多态性,还必须采用指针或引用来调用才能真正实现运行时的多态性。

二、填空题(每空0.5分,共5分)1.有标准字符串类string对象str,str1,str2。

对其字符元素的访问可用两种方式:str[i]和str.at(i)。

两者的区别是(1)。

str1+=str2 实现的运算是(2)。

str.substr(pos,length1) 实现的运算是(3)。

2.C/C++中的多维数组用的是一个(4)的定义,即多维数组的基本定义是(5)构成的数组,三维数组的元素是(6)。

3.单链表的结点包含两个域:(7)和(8)。

使用链表的最大的优点是(9),即使是动态数组也做不到这一点。

4.纯虚函数定义时在函数参数表后加=0,它表明程序员对函数体不定义,其本质是将指向函数体的指针定为(10)。

三、阅读程序段(每题4分,共16分)1.写出下面的程序输出的数据,这是什么图形?int main(){int a[10][11]={0,1},i,j;for(i=1;i<10;i++)for(j=1;j<=i+1;j++) a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<10;i++){for(j=1;j<=i+1;j++) cout<<a[i][j]<<'\t';cout<<endl;}return 0;}2.写出下列程序的输出结果,并做简单的说明。

class Student{string coursename; //课程名int classhour; //学时int credit; //学分public:Student(){coursename="#";classhour=0;credit=0;}virtual void Calculate(){credit=classhour/16;}void SetCourse(string str,int hour){coursename=str;classhour=hour;}int GetHour(){return classhour;}void Print(){cout<<coursename<<'\t'<<classhour<<"学时"<<'\t'<<credit<<"学分"<<endl;}};class GradeStudent:public Student{public:GradeStudent(){};void Calculate(){SetCredit(GetHour()/20);}};int main(){Student s,*ps;GradeStudent g;s.SetCourse("英语",80);g.SetCourse("英语",80);ps=&s;ps->Calculate();ps->Print();ps=&g;ps->Calculate();ps->Print();return 0;}3.写出该程序的输出结果,并说明该类的定义中top和maxSize的意义。

template<typename T>class Stack{int top;T *elements;int maxSize;public:Stack(int=30);~Stack(){delete[] elements;}void Push(const T &data);T Pop();};template<typename T> Stack<T>::Stack(int maxs){maxSize=maxs;top=-1;elements=new T [maxSize];}template<typename T> void Stack<T>::Push(const T &data){elements[++top]=data;}template<typename T> T Stack<T>::Pop(){return elements[top--];}int main(){int i;char a[5]={'k','c','a','t','s'};Stack<char>cstack();for(i=0;i<5;i++) cstack.Push(a[i]);for(i=0;i<5;i++) cstack.Pop());return 0;}4.写出下列程序的输出结果,指出错误所在;将A的析构函数改为虚函数结果又如何?class A{int *p;public:A(){p=new int[3];cout<<”A().”;}~A(){delete[]p;cout<<”~A().\n”;}}class B:public A{int *q;public:B(){q=new int[256];cout<<”B(). ”;}~B(){delete[]q;cout<<”~B().”;}}int main(){int i;for(i=0;i<3;i++){A*r=new B; //重复创建动态对象delete r;//重复释放动态对象}}四、填空,完善程序(每空1.5分,共24分)1.对半查找递归算法,x为定值,算法作为升序有序表(ordered list)模板类的成员函数。

其中T为模板类型参数,sixe代表有序表中数组slist元素的个数。

小于比较运算符(<)在具体的类中重载。

template <typename T,int size> int Orderedlist<T,size>::Binarysearch(T & x,const int low,const int high){int mid=-1;if (low<=high){mid=(low+high)/2;if (slist[mid]<x) mid=Binarysearch(x, (1) );else if (x<slist[mid]) mid=Binarysearch(x, (2) );}return (3) ;}2.冒泡排序算法,作为Orderedlist<T,size>类的成员函数。

last 是有序表元素个数。

template <typename T,int size> void Orderedlist<T,size>::BubbleSort(){bool noswap; //交换标志int i,j;T temp;for (i=0;i<last;i++){noswap= (4) ;for (j= (5) ; (6) ; (7) ){ //从下往上冒泡 if (slist[j]<slist[j-1]){temp=slist[j];slist[j]=slist[j-1];slist[j-1]=temp;noswap= (8) ;}}if (noswap) break ;}}3.用虚函数来实现辛普生法求函数的定积分。

在梯形法中是用直线来代替曲边梯形的曲边,在辛普生法中是用抛物线来代替,得出的公式为(区间必须为偶数n 个相等区间)。

⎰--+++++++++∆≈ba n n n y y y y y y y y x dx x f )](2)(4[31)(2421310class Simpson{double Intevalue,a,b; //Intevalue 积分值,a 积分下限,b 积分上限 public :virtual double fun(double x)=0; //被积函数声明为纯虚函数Simpson(double ra=0,double rb=0){a=ra;b=rb;Intevalue=0;}void Integrate(){double dx;int i;dx=(b-a)/2000;Intevalue= (9) ;for(i=1;i<2000;i+=2) Intevalue+=4*fun( (10) );for(i=2;i<2000;i+=2) Intevalue+=2*fun( (10) );Intevalue*=dx/3;}void Print(){cout<<"积分值="<<Intevalue<<endl;}};class A:public Simpson{public:A(double ra,double rb):Simpson(ra,rb){};double fun(double x){ (11) ;} //以sin(x)作为被积函数};int main(){A a1(0.0,3.1415926535/2.0);Simpson *s=&a1;s->Integrate(); //动态s->Print();return 0;}4.单链表的结点采用类Node,以链表类List为友元类,List可直接访问Node 的私有成员。

相关文档
最新文档