201709考试批次《面向对象程序设计》(结课作业)答案

合集下载

《面向对象程序设计》2017期末试题及答案

《面向对象程序设计》2017期末试题及答案

《面向对象程序设计(本科)》2017期末试题及答案一、单项选择(每小题2分,共20分)1.字符串“a+b=12\n”的长度为( )。

A.6 B.7 C.8 D.92.假定一个二维数组的定义语句为“int a[3][4]={{3,4),{2,8,6));”,则元素a[2][1]的值为( )。

A.0 B.4 C.8 D.63.以下正确的描述是( )。

A.函数的定义可以嵌套,函数的调用不可以嵌套B.函数的定义不可以嵌套,函数的调用可以嵌套C.函数的定义和函数的调用均可以嵌套D.函数的定义和函数的调用均不可以嵌套4.设有定义“double array[10];”,则表达式sizeof(array)/sizeof(array[0])的结果为array数组的( )。

A.首地址 B.元素个数C.每个元素所占的字节数 D.总字节数5.若使P指向包含30个整型元素的动态数组空间,则使用的定义语句为( )。

A.int*p=new int[30] B.int*p=new int(30) C.int*p=new[30]D.*p=new int[30] 6.软件产品与其他软件产品组合成一个整体的难易程度叫做软件的( )。

A.可维护性 B.可复用性C.兼容性 D.正确性7.在多文件结构的程序中,通常把类的声明单独存放于( )中。

A.主文件 B.实现文件C.库文件 D.头文件8.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队首的后一个位置为( )。

A.first+1B.(first+1)%MSC.(first一1)%MSD.(first+length)%MS9.假定一个类的构造函数为“A(int aa=1,int bb=0){a=aa;b=bb;)”,则执行“A x(4);”语句后,x.a和x.b的值分别为( )。

A.1和0 B.1和4 C.4和1 D.4和0。

面向对象程序设计答案

面向对象程序设计答案
{
m_fReal += c.m_fReal;
m_fImag += c.m_fImag;
return *this;
}
Complex& operator-= (const Complex &c)
{
m_fReal -= c.m_fReal;
m_fImag -= c.m_fImag;
return *this;
在日常生活或者说日常编程中,简单的问题用面向过程的思路解决,更加直接有效,但是当问题的规模稍大时,如要描述三万个人吃饭的问题,或者要构建一个航空母舰模型的时候,用面向过程的思想是远远不够的。而且面向过程程序的代码复用性、可扩展性、可移植性、灵活性、健壮性都会在处理大规模问题中出现问题。
二、综合回答(每小题15分,共30分)
一、简答题(每小题6分,共30分)
1、面向过程思想的优点是什么?
与人类思维习惯一致;稳定性好:以object模拟实体,需求变化不会引起结构的整体变化,因为实体相对稳定,故系统也相应稳定;可重用性好;可维护性好
2、比较Java和C++?
JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者,从而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,摒弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。用C++可以使用纯过程化的编程,也可以是基于对象的编程,还可以是面向对象的编程,当然大部分是混合编程,c++可以跨平台

《C++面向对象程序设计》习题答案

《C++面向对象程序设计》习题答案
int IsOpen=0;/*当前是否有磁盘文件被打开标志*/
int found=0;/*在查找学生信息时是否找到标志*/
Student stud[MAXSIZE];/*用于存放读入内存中的所有学生信息的全局数组*/
int Index=0;/*存放实际学生人数的全局变量*/
/*各自定义函数原型声明*/
switch(choice){
case 1: Create();break;
case 2: Open();break;
case 3: Display();break;
case 4: Search();break;
case 5: Append();break;
case 6: Modify();break;
printf("***************学生信息管理系统*******************\n");
printf("****************************************************\n");
printf("************ 1.新建学生信息文件*****************\n");
if(n==0)
{printf("\n****************************************************\n");
printf("*************谢谢使用本系统!***************\n");
printf("****************************************************\n");

《C++面向对象程序设计》习题答案

《C++面向对象程序设计》习题答案
(3)面向对象程序设计有助于软件的维护与复用。某类对象数据结构的改变只会引起该类对象操作代码的改变,只要其对外提供的接口不发生变化,程序的其余部分就不需要做任何改动。面向对象程序设计中类的继承机制有效解决了代码复用的问题。人们可以像使用集成电路(IC)构造计算机硬件那样,比较方便地重用对象类来构造软件系统。
case 7: Delete();break;
case 8: Total();break;
case 9: Sort();break;
case 10: Backup();break;
case 0: return;
default: printf("选择错误!请重新选择。\n");
}/*switch结束*/
Index++;
}
Index--;
printf("学生总人数为:%d\n",Index);
fclose(fp);
printf("%s文件打开成功!\n",FileName);
strcpy(CurFile,FileName);
}
}
else
printf("%s文件已经打开!\n",FileName);
二、编程题
【程序参考代码】
/*学生信息管理系统C语言源代码student.c*/
#include <stdio.h>/*包含输入/输出头文件*/
#include <string.h>/*包含字符串处理头文件*/
#include <stdlib.h>
#define MAXSIZE 100/*能够处理的学生总人数,可以随意修改*/
printf("***************学生信息管理系统*******************\n");

专升本《面向对象程序设计》_试卷_答案

专升本《面向对象程序设计》_试卷_答案

专升本《面向对象程序设计》一、(共75题,共150分)1. 的值为()。

(2分)A.1B.2C.3D.4.标准答案:B2. 调用C++的标准函数exit(0)退出程序,将()。

(2分)A.析构全局对象,不析构局部对象B.析构全局对象,析构局部对象C.不析构全局对象,不析构局部对象D.不析构全局对象,析构局部对象.标准答案:A3. 对于定义的值为()。

(2分)A.1B.2C.3D.4.标准答案:A4. 对于定义使用f的正确方法为()。

(2分)A.见图 B.见图 C.见图 D.见图.标准答案:C5. 对于则调用f(x)的返回值为()。

(2分)A.6 B.7 C.8 D.9.标准答案:C6. 对于定义正确的叙述为()。

(2分)A.w引用u,v引用wB.w引用u,v引用uC.w未引用u,v引用wD.w未引用u,v未引用w .标准答案:B7. C++的非静态函数成员()。

(2分)A.可以重载,可以省略参数B.不能重载,不能省略参数C.可以重载,不能省略参数D.不能重载,可以省略参数.标准答案:A8. 对于定义类F定义对象将调用哪一个构造函数()。

(2分)A.F::F(int)B.F::F(int, int)C.F::F(int, int, int)D.F::F(int, int, int,int).标准答案:D9. 关于类的静态数据成员和非静态数据成员,哪个叙述正确()。

(2分)A.它们存储在一起,为所有对象共用B.它们不存储在一起,为所有对象共用C.它们存储在一起,而静态数据成员为所有对象共用D.它们不存储在一起,而非静态数据成员为所有对象共用.标准答案:C10. 使用cin>>x>>y输入,正确的说法是()。

(2分)A.cin是输入函数,一次接受两个实参x和yB.cin是输入函数,每次接受一个实参,因此,cin函数被调用两次C.>>是输入函数,一次接受两个实参:cin和要输入的变量如x(或者y)D.>>是输入函数,一次接受三个实参:cin、x、y.标准答案:C11. 关于C++静态数据成员指针和普通非成员指针的叙述哪个正确()。

面向对象程序设计教程-答案

面向对象程序设计教程-答案

面向对象程序设计教程-答案(共19页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--面向对象程序设计教程(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语言是面向过程的。

《面向对象程序设计》课程作业及答案汇总

《面向对象程序设计》课程作业及答案汇总

《面向对象程序设计》课程作业及答案作业1:是非题1. 头文件中一般存放着变量和常量的定义、函数的原型以及类的定义。

1. 错2. 程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。

4. 对填空题下面是一个求数组元素之和的程序。

主程序中定义并初始化了一个数组,然后计算该数组各元素的和,并输出结果。

函数sum计算数组元素之和。

填充程序中不完整的部分。

________A__________int sum(int [],int;void main({int ia[5] = {2,3,6,8,10};B ;sumOfArray = sum(ia,5;cout << "Sum of array:" << sumOfArray << endl;}int sum(int array[],int len{int iSum = 0;for(int i = 0; C ; DE ;return iSum;}答案:A #includeB int sumOfArray;C i < lenD i++E iSum += array[i];阅读理解题写出下列程序的运行结果://file1.cppstatic int i = 20;int x;static int g(int p{return i + p;}void f(int v{x=g(v;}//file2.cpp#includeextern int x;void f(int;void main({int i=5;f(i;cout << x;}回答以下问题:1. 程序的运行结果是什么样的?2. 为什么文件file2.cpp中要包含头文件?3. 在函数main(中是否可以直接调用函数g(?为什么?4. 如果把文件file1.cpp中的两个函数定义的位置换一下,程序是否正确?为什么?5. 文件file1.cpp和file2.cpp中的变量i的作用域分别是怎样的?在程序中直接标出两个变量各自的作用域。

西安交通大学17年9月课程考试《面向对象程序设计》作业考核试题100分答案

西安交通大学17年9月课程考试《面向对象程序设计》作业考核试题100分答案

: ( )西安交通大学17年9月课程考试《面向对象程序设计》作业考核试题一、单选题(共 30 道试题,共 60 分。

)1. 如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()。

A. a.operator+(b)B. b.operator+(a)C. operator+(a,b)D. operator(a+b)正确答案:A2. 派生类的成员函数可以直接访问基类的()成员。

A. 所有B. 公有和保护C. 保护和私有D. 私有正确答案:B3. 定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为()。

A. int *p=new int[30];B. int *p=new int(30);C. int *p=new [30];D. *p=new int[30];正确答案:A4. 下列的符号常变量定义中,错误的定义是()。

A. const M=10;B. const int M=20;C. const char ch;D. const bool mark=true;正确答案:C5. 类的析构函数是一个对象被( )时自动调用的。

A. 建立B. 撤消C. 赋值D. 引用正确答案:B6. 在创建派生类对象时,构造函数的执行顺序是()。

A. 对象成员构造函数、基类构造函数、派生类本身的构造函数B. 派生类本身的构造函数、基类构造函数、对象成员构造函数C. 基类构造函数、派生类本身的构造函数、对象成员构造函数D. 基类构造函数、对象成员构造函数、派生类本身的构造函数正确答案:D7. 类的析构函数的作用是( )。

A. 一般成员函数B. 类的初始化C. 对象的初始化D. 对象释放后的操作正确答案:D8. 下列关于成员函数特征的描述中,()是错误的。

A. 成员函数一定是内置函数B. 成员函数可以重载C. 成员函数可以设置参数的默认值D. 成员函数可以是静态的正确答案:A9. 类的析构函数是在()调用的。

《C++面向对象程序设计》习题答案

《C++面向对象程序设计》习题答案
if(IsOpen==0)
{FILE *fp;
if((fp=fopen(FileName,"rb"))==NULL)
{printf("%s文件打开失败!\n",FileName);}
else
{IsOpen=1;
Index=0;
while(!feof(fp))
{fread(&stud[Index],sizeof(struct Stud),1,fp);
exit(1);
}
}
void main()
{printf("****************************************************\n");
printf("*********欢迎使用学生信息管理系统!*********\n");
printf("****************************************************\n");
printf("*************** 0.退出系统**************\n");
printf("****************************************************\n");
printf("请选择(1/0)?_");
scanf("%d",&n);
typedef struct {/*用于存放生日信息的结构体*/
int year;
int month;
int day;
}Date;
typedef struct Stud{/*用于存放学生信息的结构体*/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

面向对象程序设计作业参考答案

面向对象程序设计作业参考答案

面向对象程序设计作业参考答案《面向对象程序设计》作业及答案作业一1.类和对象的概念和关系是什么?对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。

一个对象由一组属性和对这组属性进行操作的一组服务组成,类是具有相同属性和服务的一组对象的集合。

类是对象的模板,对象是类的实例2.用UML表示交通工具Vehicle类及名为car1,car2及car3的三个Vehicle对象3.简述对象之间的消息传递机制是如何实现的?当程序运行时,我们使用类和由类生成的对象来完成任务。

而要命令类或对象执行某项任务,就需要给它发送一条消息(message)。

为了能够处理所接收到的消息,类或对象必须拥有相应的方法(method)。

一个方法就是一个指令序列,也就是一段程序代码,类似于C语言中的函数。

为类定义的方法称为类方法(class method),为对象定义的方法称为实例方法(instance method)。

类方法可以通过类直接调用,实例方法则必须先创建类的实例才能够调用。

4.import语句的用途是什么?Java程序是否总要包括import语句?import保留字用于引入其他包中的类。

Java如果使用的都是同一包的类的话则不需要import保留字。

5.什么是Java的源文件?什么是字节码文件?Java的源文件是以.java结尾的文本文件,字节码文件是将Java源文件经过Java编译器编译后的文件,字节码文件不能直接运行,只能运行于Java虚拟机之上。

6.Java虚拟机是什么?它有作用是什么?Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。

Java语言的一个非常重要的特点就是与平台的无关性。

而使用Java 虚拟机是实现这一特点的关键。

一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。

而引入Java 语言虚拟机后,Java 语言在不同平台上运行时不需要重新编译。

Java 语言使用模式Java 虚拟机屏蔽了与具体平台相关的信息,使得Java 语言编译程序只需生成在Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

答案吉大17年9月课程考试《面向对象程序设计》作业考核要求.docx

答案吉大17年9月课程考试《面向对象程序设计》作业考核要求.docx

一、名称解释(每题5分,共20分)1.多态答:就是将程序所处理的对象的类型参数化,使得一段程序可用于处理多种不同类型的对象。

简单说来,就是让参数在后期绑定。

编译吋并不考虑其类型,而在实现一个具体的实例时,编译器才知道其具体类型。

2.引用答:引用即一个别名。

引用必须初始化,因为它总是附属于某个实体。

引用一旦初始化后,则与它附属的实体再不分开。

3.友元答:为了增加灵活性,提出了友元的概念。

友元即刖友(friend),具有普通类型所不具有的访问权限。

友元可分为三种:友元函数、友元成员、友元类。

4.模板答:模板是一种参数化多态性的工具,可以为逻辑功能相同而类型不同的程序提供代码共亨的机制,它允许程序员为一组相关的函数和类编写统-的代码段,分别称为函数模板和类模板。

利用模板机制可以减少兀余信息,能大幅度地节约程序代码,进一步捉髙而向对象程序的可重用性和可维护性。

二、简答题(每题8分,共40分)1、什么是面向过程设计思想?答:“面向过程”是一种以过程为屮心的编程思想。

结构化方法的基本思想主要体现在以下三方而.口顶向下,逐步求精:把程序看成是一个逐步演化的过程。

把一个系统与程序看成是一层一层的。

例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分.模块化:即将儿个系统分成儿个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。

模块跟模块Z间通过接口传递信息,模块最重要的特点就是独立性,模块Z间还有上下层的关系,上层模块调用下层模块來实现一些功能。

整个项冃经过这样的模块化后,开发人员就可以开始有目的的逐个模块、逐个函数的去实现,进而完成整个项1=1。

语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。

2、比较Java 和C++?答:JAVA和C++都是而向对彖语言。

也就是说,它都能够实现面向对彖思想(封装、继承、多态)。

《面向对象程序设计》答案

《面向对象程序设计》答案

实验一熟悉VC++IDE开发环境一、实验目的1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。

2、掌握如何编辑、编译、连接和运行一个C++程序。

3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。

二、实验要求1、分析下列程序运行的结果。

程序一:#include <iostream.h>int add(int x,int y=8);void main(){ int x=4;cout<<add(x)<<",";cout<<add(x,add(add(x,add(x))))<<endl;}int add(int x,int y){ return x+y;}//12,28程序二:#include <iostream.h>void main(){ int *p,i;i=5;p=&i;i=*p+10;cout<<"i="<<i<<endl;}//i=15程序三:#include <iostream.h>void main(void){ int i=10;int &r=i;r++;cout<<"i="<<i<<", r="<<r<<'\n';i=88;cout<<"i="<<i<<", r="<<r<<'\n';}//i=11,r=11i=88,r=88程序四:#include <iostream.h>int f(int i){ static int k=1;for(;i>0;i--)k +=i;return k;}void main(){ int i;for(i=0;i<5;i++)cout<<f(i)<<" ";}// 1 2 5 11 21程序五:#include <iostream.h>void func();int n=1;void main(){ static int a;int b= -9;cout <<"a:"<<a<<" b:"<<b<<" n:" <<n<<endl;b+=4;func();cout <<"a:"<<a<<" b:"<<b<<" n:"<<n<<endl;n+=10;func();}void func(){ static int a=2; int b=5;a+=2;n+=12;b+=5;cout <<"a:" <<a<<" b:" <<b<<" n:" <<n <<endl;}// a:0 b:-9 n:1a:4 b:10 n:13a:0 b:-5 n:13a:6 b:10 n:35实验二C++对C的扩充一、实验目的1、了解在面向对象程序设计过程中C++对C功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。

面向对象程序设计课程作业及答案_百度文库资料

面向对象程序设计课程作业及答案_百度文库资料

《面向对象程序设计》课程作业及答案中央电大理工部计算机教研室作业1:是非题1. 头文件中一般存放着变量和常量的定义、函数的原型以及类的定义。

1. 错2. 程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量。

4. 对填空题下面是一个求数组元素之和的程序。

主程序中定义并初始化了一个数组,然后计算该数组各元素的和,并输出结果。

函数sum计算数组元素之和。

填充程序中不完整的部分。

________A__________int sum(int [],int;void main({int ia[5] = {2,3,6,8,10};B ;sumOfArray = sum(ia,5;cout << "Sum of array:" << sumOfArray << endl;}int sum(int array[],int len{int iSum = 0;for(int i = 0; C ; DE ;return iSum;}答案:A #includeB int sumOfArray;C i < lenD i++E iSum += array[i]; 阅读理解题写出下列程序的运行结果://file1.cppstatic int i = 20;int x;static int g(int p{return i + p;}void f(int v{x=g(v;}//file2.cpp#includeextern int x;void f(int;void main({int i=5;f(i;cout << x;}回答以下问题:1. 程序的运行结果是什么样的?2. 为什么文件file2.cpp中要包含头文件?3. 在函数main(中是否可以直接调用函数g(?为什么?4. 如果把文件file1.cpp中的两个函数定义的位置换一下,程序是否正确?为什么?5. 文件file1.cpp和file2.cpp中的变量i的作用域分别是怎样的?在程序中直接标出两个变量各自的作用域。

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

201709考试批次《面向对象程序设计》结课作业学生姓名 xxx学习中心 xxxx奥鹏学习中心学号 xxxxxxxxxxxx专业计算机科学与技术年级层次 xxxxxx北京语言大学网络教育学院《面向对象程序设计》结课作业注意:本学期所布置的结课作业,请同学一律按照以下要求执行:1) 结课作业提交起止时间:2017年8月2日--9月11日。

(届时平台自动关闭,逾期不予接收。

)2) 结课作业课程均需通过“离线作业”栏目提交电子版,学院不收取纸介的结课作业,以纸介回寄的作业一律视为无效;3)截止日期前可多次提交,平台只保留最后一次提交的文档,阅卷时以最后一次提交的结课作业为准,截止日期过后将关闭平台,逾期不交或科目提交错误者,按0分处理;4) 提交文档要求:提交的文档格式为doc、rar,大小10M以内;5) 必须严格按照每门课程的答题要求完成作业,没有按照学院要求来做的结课作业,将酌情扣分。

一、【程序分析题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,本题要求读懂题目中的程序或函数,写出程序或函数的功能)1、#include<iostream.h>void main(){int i,s=0;for(i=2;i<=30;i+=2) s+=i*i;cout<<"s="<<s<<endl;}2、int s1(int n){int x;if(n==1) x=1;else x=s1(n-1)+n*n;return x;}3、void fun5(char* a, const char* b){while(*b) *a++=*b++;*a=0;}4、void fun3(int a[][N], int m, int n, int& row, int& col){int x=a[0][0];row=col=0;for(int i=0;i<m;i++)for(int j=0;j<n;j++)if(a[i][j]>x) {x=a[i][j]; row=i; col=j;}}5、char* f8(char* str1, const char* str2){int i=0,j=0;while(str1[i]) i++;while(str2[j]) str1[i++]=str2[j++] ;str1[i]='\0';return str1;}二、【编写程序实现算法】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题30分,根据题目要求编写算法实现,要求程序没有语法错误)1、按照函数原型语句“void p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。

5555544443332212、按照函数原型语句“void p(int n);”编写一个递归函数显示出如下图形,此图形是n=5的情况。

1223334444555553、按照下面函数原型语句编写一个递归函数计算出数组a中n个元素的平方和并返回。

int f(int a[],int n);4、根据下面类中MaxMin 函数成员的原型和注释写出它的类外定义。

class AA {int* a;int n;int MS;public:void InitAA(int aa[], int nn, int ms) {if(nn>ms) {cout<<"Error!"<<endl; exit(1);}MS=ms;n=nn;a=new int[MS];for(int i=0; i<n; i++) a[i]=aa[i];}int MaxMin(int& x, int& y); //从数组a的前n个元素中求出//最大值和最小值,并分别由引用参数x和y带回,//同时若n大于0则返回1,否则返回0。

};5、如果A和B都是m行n列矩阵,且它们对应元素相等,则A= =B。

试定义矩阵类,对“= =”运算符重载。

三、【程序设计题】(本大题共5小题,请任选其中一道题作答,答题时请注明题号,本题40分,根据题目要求编写完整程序实现,要求程序能够正常运行,没有语法错误)1、编写一个程序,计算三角形、正方形和圆形三种图形的面积和周长。

(用多态性实现)2、已有若干个学生数据,包括学号、姓名、成绩,编写程序要求输出这些学生数据并计算平均分。

3、应用C++的多态性编写一个程序,编写程序计算正方体、球体和圆柱体的表面积和体积。

4、编写一个程序,实现图书和杂志销售管理。

当输入一系列图书和杂志销售记录后,将销售良好(图书每月售500本以上,杂志每月2500本以上)的图书和杂志名称显示出来。

5、一名兽医要记录他所治疗的各种类型的狗以及治疗信息,尤其想了解不同的病症对带斑点的狗和不带斑点的狗所产生的影响。

为该兽医设计一个程序,要求记录狗的品种(breed),身高(height),体重(weight),颜色(color)等信息。

为斑点狗和不带斑点的狗设计不同的类。

下面的程序使用你设计的类。

void main(){// 定义一个白色的Dalmatian斑点狗,它身高24,体重60,斑点为红色spotted_dog redSpot("Dalmatian",24,60,"white","red");//定义一个黄色的Labrador无斑点狗,它身高30,体重40unspotted_dog rover("Labrador Retriever",30,40,"yellow");redSpot.show_name(); //显示狗名redSpot.show_breed(); //显示狗品种redSpot.spot_info(); //显示狗斑点信息rover.show_name(); //显示狗名rover.show_breed(); //显示狗品种}一、【程序分析题】1、答:程序的功能是:计第一次循环s=s+i*i=0+1*1=1 第二次循环s=1+2*2=5 第三次循环s=5+3*3=14 第四次循环s=14+4*4=30 第五次循环s=30+5*5=55二、【编写程序实现算法】1.答:void p(int n){if(n==1){printf("1\n");return;}else{for(int i=1; i<=n; i++){printf("%d",n);}printf("\n");p(n-1);}}void main(){p(5);}三、【程序设计题】4、答:#include <iostream>#include <string>using namespace std;int main() {string bookName;string magazineName;string a[100],b[100];int bookNumber;int magazineNumber;int i=0,j=0,c,d;do { cout<<"请输入图书的名称:"<<endl;cin>>bookName;cout<<"请输入图书销售的数量:"<<endl;cin>>bookNumber;if (bookNumber>500){ a[i]=bookName;i++; }cout<<"请问还有图书需要输入吗?有请按1,没有请按0"<<endl; cin>>c;}while(c==1);do { cout<<"请输入杂志的名称:"<<endl;cin>>magazineName;cout<<"请输入杂志销售的数量:"<<endl;cin>>magazineNumber;if (magazineNumber>2500){ b[j]=magazineName;j++;}cout<<"请问还有杂志需要输入吗?有请按1,没有请按0"<<endl; cin>>d;}while(d==1);cout<<"销售良好的图书有:"<<endl;for(int k=0;k!=i;k++)cout<<a[k]<<'\n';cout<<"销售良好的杂志有:"<<endl;for(int x=0;x!=j;x++)cout<<b[x]<<'\n';return 0;system("pause");}。

相关文档
最新文档