2016面向对象程序设计B卷

2016面向对象程序设计B卷
2016面向对象程序设计B卷

重庆大学《面向对象程序设计》课程试卷

2016—2017学年第1学期

开课学院:计算机课程号:CST21101

考试日期:2017.1.4

考试方式: 考试时间:120分钟

SECTION 1: Short Answer Questions (40 points, 8 points each)

1. Please describe the role of the “class”.

2. Describe the key components of STL.

3. What is pure virtual function?

4. What is copy constructor?

5. What is function object ?

SECTION 2: Analyzing and Understanding Program (40 points, 10 points each)

命题人:曾令秋、刘骥、杨广超组题人:葛亮审题人:邹东升命题时间:2016.12.20

教务处制

学院专业、班年级学号姓名考试教室

公平竞争、诚实守信、严肃考纪、拒绝作弊

线

1. Please write the output result of the following program. #include

#include

#include

using namespace std;

int myFunction(int x, int y) {

return x + 2 * y;

}

class MyObject {

public:

int operator()(int x, int y) {

return x + 3 * y;

}

};

int main() {

int init = 100;

int numbers[] = { 10, 20, 30 };

cout << "using default accumulate: ";

cout << accumulate(numbers, numbers + 3, init);

cout << '\n';

cout << "using functional's minus: ";

cout << accumulate(numbers, numbers + 3, init, minus());

cout << '\n';

cout << "using custom function: ";

cout << accumulate(numbers, numbers + 3, init, myFunction);

cout << '\n';

cout << "using custom object: ";

MyObject obj;

cout << accumulate(numbers, numbers + 3, init, obj);

cout << '\n';

return 0;

}

2. Please write the output result of the following program. #include

using namespace std;

class Sample

{

private:

int x,y;

public:

Sample(){x=y=0;}

Sample(int i,int j)

{ x=i; y=j;}

void copy(Sample &s);

void setxy(int i,int j)

{x=i;y=j;}

void print()

{

cout<<"x="<

}

};

void Sample::copy(Sample &s)

{

x=s.x;

y=s.y;

}

void func(Sample s1,Sample &s2)

{

s1.setxy(10,20);

s2.setxy(30,40);

}

int main()

{

Sample p(1,2),q;

q.copy(p);

func(p,q);

p.print();

q.print();

return 0;

}

3.Please write the output result of the following program. #include

using namespace std; class A

{

private:

int a;

public:

A(int x): a(x){ cout << "A Constructor" << endl;}

void Show() const { cout << "A::a=" << a << endl; }

};

class B: public A

{

private:

int b;

public:

B(int x, int y): A(x), b(y){ cout << "B Constructor" << endl;}

void Show() const { cout << "B::b=" << b << endl; }

};

class C: public A

{

private:

int c;

public:

C(int x, int y): A(x), c(y){ cout << "C Constructor" << endl;}

void Show() const { cout << "C::c=" << c << endl; }

};

int main()

{

B b(1, 6);

C c(2, 8);

A *p = &c;

p->Show();

return 0;

}

4.Please find out the errors in the following program and correct them. #include

using namespace std;

class A

{

public:

A( );

A(A);

A& operator = (const A& r);

int operator[](int index);

friend const A operator + (A& r1,A& r2);

friend ostream &operator<<( ostream &, const A & ); private:

int arr[10];

};

A::A()

{

for(int i=0;i<10;i++)

arr[i]=i;

}

A::A(A array)

{

for(int i=0;i<10;i++)

arr[i]=array.arr[i];

}

A& A::operator = (const A& r)

{

for(int i=0;i<10;i++)

arr[i]=r.arr[i];

return this;

}

const A operator+ (A& r1, A& r2)

{

A re;

for(int i=0;i<10;i++)

re[i]=r1[i]+r2[i];

return re;

}

int A::operator[](int index)

{

return arr[index];

}

ostream &operator<<( ostream & output, const A & r)

{

for(int i=0;i<10;i++)

output<

return output;

}

int main( )

{

A a1,a2,a3;

a3=a1+a2;

a3[3]=7;

cout<

return 0;

}

SECTION 3: Write the program to solve the following problem.

(20 points, 20 points each)

Create an inheritance hierarchy that containing a base class Film and two derived classes Film2D and Film3D. The base class Film should include a data member of type string to represent the film name and a data member of type float to represent the film duration. You should design the constructor to initial the two data members. And there should be a pure virtual function named seeFilm.

Derived class Film2D should inherit the functionality of the Film. But also include a data member of type int to represent the film hall(电影厅). You should implement the constructor and the virtual function seeFilm.

Derived class Film3D should also inherit the functionality of the Film. and include an additional data member of type int to represent the film private room(电影包房). You also should implement the constructor and the virtual function seeFilm.

In the main function, you should create a vector of Film pointers to Film2D and Film3D objects. For each Film in the vector, using member function seeFilm to show what film to see.

Please write the code.

c++面向对象程序设计大作业

《面向对象程序设计》 大作业 题目学生成绩管理系统 学院 专业 班级 姓名 指导教师 2015 年11 月11 日

目录 一大作业的目的 (1) 二大作业的内容............................ . .. (2) 三大作业的要求与数据............... ...... . (3) 四大作业应完成的工作.................. . (4) 五总体设计(包含几大功能模块)........... . (5) 六详细设计(各功能模块的具体实现算法——流程图) (6) 七调试分析(包含各模块的测试用例,及测试结果) (7) 八总结 (8) 十参考资料 (9)

一大作业的目的 《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解决问题的能力。更好地掌握运用C++语言独立地编写、调试应用程序和进行其它相关设计的技能。 二大作业的内容 对学生信息(包括学号、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出.将学生的成绩信息进行记录,信息内容包含:(1)学生的学号(2)学生的姓名(3)学生的成绩。假设,现收集到了一个班学生的所有成绩信息,要求用C语言编写一个简单的成绩管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。 三大作业的要求与数据 1、用C++语言实现系统; 2、对学生信息(包括学号、姓名、语文、数学、英语、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出. 3、学生信息包括:其内容较多,为了简化讨论,要求设计的管理系统能够完成以下功能: (1) 每一条记录包括一个学生的学号、姓名、3门课成绩 (2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录 的输入。) (3)、成绩信息显示浏览功能:完成全部学生记录的显示。 (4)、查询功能:完成按姓名查找学生记录,并显示。 (5)成绩信息的删除:按学号进行删除某学生的成绩. (6)、排序功能:按学生平均成绩进行排序。 (7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

《面向对象程序设计C++》期末考试试卷(B)

《面向对象程序设计C++》期末考试试卷(B) 一、单项选择题(每小题2分,共40分) 1、关于C++与C语言关系的描述中,()是错误的。 A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的 2、已知:int m=10;下列表示引用的方法中,()是正确的。A.int&x=m;B.int&y=10;C.int&z;D.float&t=&m; 3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A.testDefaulParam(5);B.testDefaulParam(5,8); C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。 A.函数的返回值类型B.参数的类型C.函数名称D.参数个数 5、下列有关C++类的说法中,不正确的是()。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所有成员的访问权限均为私有

的 D.在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X类,则当程序执行到语句X array[3];时,调用了()次构造函数。 A.0B.1C.2D.3 7、有关析构函数的说法,不正确的是()。 A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是在系统释放对象之前作一些存清理工作D.析构函数无任何函数类型 8、类定义的容允许被其对象无限制地存取的是()。A.private部分B.protected部分C.public部分D.以上都不对 9、关于常数据成员的说法,不正确的是()。 A.常数据成员的定义形式与一般常变量的定义形式相同,只不过常数据成员的定义必须出现在类体中 B.常数据成员必须进行初始化,并且不能被更新 C.常数据成员通过构造函数的成员初始化列表进行初始化D.常数据成员可以在定义时直接初始化 10、运用运算符delete删除一个动态对象时()。 A.系统首先为该动态对象调用构造函数,再释放其占用的存

2016年江苏“专转本”高等数学试题及参考答案

江苏省2016年普通高校专转本选拔考试 高等数学试题卷 注意事项: 1.本试卷分为试题卷和答题卡两部分,试题卷共3页,全卷满分150分,考试时间120分钟。 2.必须在答题卡上作答,作答在试题卷上无效,作答前务必将自己的姓名和准考证号准确清晰地填写在试题卷和答题卡上的指定位置。 3.考试结束时,须将试题卷和答题卡一并交回。 一、单项选择题(本大题共6小题,每小题4分,共24分,在下列每小题中选出一个正确答案,请在答题卡上将所选的字母标号涂黑) 1.函数()f x 在0x x =处有定义是极限0lim ()x x f x →存在的() A.充分条件 B.必要条件 C.充分析要条件 D.无关条件 2.设()sin f x x =,当0x +→时,下列函数中是()f x 的高阶无穷小的是( )A.tan x B.11x -- C.21 sin x x D.1 x e -3.设函数()f x 的导函数为sin x ,则()f x 的一个原函数是( )A.sin x B.sin x - C.cos x D.cos x -4.二阶常系数非齐次线性微分方程"'22x y y y xe ---=的特解*y 的正确假设形式为( )A.x Axe - B.2x Ax e - C.()x Ax B x -+ D.()x x Ax B e -+5.函数2()z x y =-,则1,0|x y dz ===( )A.22dx dy + B.22dx dy - C.22dx dy -+ D.22dx dy --6.幂级数212n n n x n ∞=∑的收敛域为( )A.11[,]22- B.11[,)22- C.11(,]22- D.11(,)22 -二、填空题(本大题共6小题,每小题4分,共24分) 7.极限x x x 10) 21(lim -→▲.

面向对象程序设计实验指导书讲解

面向对象程序设计实验指导书 实验一、C++开发环境应用入门(2学时)(选做) 1、实验目的 (1)了解C++开发工具的特点 (2)熟悉C++开发环境 (3)学习用C++编写标准的C++程序 2、实验任务 使用C++来建立一个非图形化的标准C++程序,编译、运行下例程序: #include void main(void) { cout<<”Hello!\n”; cout<<”Welcome to C++!\n”; } 3、实验步骤 (1)启动Visual C++或C++Builder开发环境 (2)创建一个项目 A)单击File菜单中的New选项,显示示新建对话框 B)选择Console Wizard(C++Builder) 或Win32 Console Application(VC++)。 C)选择项目所在路径及输入项目的名称 D)依次按‘下一步’直至完成为止。 (3)至此,C++Builder已经建立好工程相关的文件(请不要随意更改其自动生成的文件),在生成的main函数中写入必要的内容即可。 (4)对于VC,请继续下面的步骤: A)建立C++源程序文件 a)选选菜单命令Project|Add to Project|New,弹出New对话框 b)在New对话框的Files选项卡中选择C++ Source File,并填入文件名称,单击OK按钮,完成 新建C++源程序文件 B)编辑C++源程序文件 a)在文件编辑窗口中输入代码 b)完成后,选择菜单File|Save保存这个文件 C)建立并运行可执行程序 a)选择菜单命令Build,建立可执行程序 如果你正确输入了源程序,此时便成功地生成了可执行程序。 如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源 程序进行修改后,重新选择菜单命令Build建立可执行程序。 b)选择菜单命令Run,运行程序,观察屏幕显示内容。 D)关闭工作空间 选择菜单命令File|Colse WorkSpace关闭工作空间。

2016年电大面向对象程序设计技术-作业题

2015秋季学期计算机科学与技术本科 《面向对象程序设计技术》作业题 (在电大在线该课程讨论区跟帖提交,注明姓名和学号以记录成绩)选择题 1.可以在本类及派生类的成员函数中进行访问的访问控制修饰符是(B) A.private B.protected C.public 2.在IDE中将编程项目采用多文件结构下,类的定义一般放在(A) A.头文件 B.程序文件 C.主程序文件 3.内联成员函数在类外定义时要将其和类定义一起放在(A) A.头文件 B.程序文件 C.主程序文件 4.下面哪个内存区域是C++中的运行时动态内存分配区域?( D ) A.代码区 B.栈区 C.数据区 D.堆区 5.对象作为函数参数使用时,一般使用(A)形式 A.引用 B.指针 C.对象拷贝

6.同类的多个不同对象的数据成员值各有不同,但不同对象可以共享类的成员函数代码, 实际调用成员函数时,是通过(B )来区分不同对象的。 A.显式给出不同对象不同地址 B.隐含的this指针 C.引用 7.下面哪一种情况不会自动调用拷贝构造函数。(E) A.用一个对象初始化另一个对象时 B.当一个对象作为值传递给一个函数时 C.当一个对象作为值从一个函数返回之前,该对象被拷贝到栈区 D.函数调用结束后,栈区中的返回对象拷贝给主调程序的对象 E.建立指向对象的指针并初始化指针值时 8.下列哪些对象的数据成员类型可以不用初始化表的方式进行初始化(D) A.常量数据成员 B.引用数据成员 C.类中对象成员 D.一般数据成员 9.下列哪一种类设计一般无需在类中设计静态数据成员以使建立的多个对象共享静态数 据数据成员。( D ) A.一个链表类的头指针和尾指针 B.一个学生类中用于保存建立了多少个学生对象的计数器 C.银行帐号类中的年利率 D.一般只用于建立一个对象的类 10.一个类中的公有(public)性质的静态数据成员,以下哪一种访问方式是错误的(D) A.对象名.静态数据成员名 B.指向对象的指针—>静态数据成员名 C.类名::静态数据成员名 D.类名.静态数据成员名 11.下列哪一个运算符不能够被类所重载(E) A.“.”成员访问运算符 B.“*”成员指针访问运算符 C.“::”域运算符 D.“?:”条件运算符 E.“=”赋值运算符

面向对象程序设计考试题库

面向对象程序设计期末综合练习一(单选题) 单选题 1. C++源程序文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 4. 编写C++程序一般需经过的几个步骤依次是( )。 A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试 C. 编译、调试、编辑、连接 D. 编辑、调试、编辑、连接 5. 以下标识符中不全是保留字的是( )。 A. case for int B. default then while C. bool class long D. goto return char 6. 能作为C++程序的基本单位是( )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 7. 程序中主函数的名字为( )。 A. main B. MAIN C. Main D. 任意标识符 8. C++程序的基本模块为( )。 A. 表达式 B. 标识符 C. 语句 D. 函数 9. 可用作C++语言用户标识符的一组标识符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 10. 存储以下数据,占用存储字节最多的是( )。 A. 0 B. …0? C. “0” D. 0.0 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。 A. 12 B. 144 C. 156 D. 288 13. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc 1的表达式是( )。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 14. 设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( )。 A. 15 B. 26,15 C. 15,26 D. 26

《面向对象程序设计》实验指导书

《面向对象程序设计》课程实验指导书

实验一 Java开发环境的安装与配置 一、实验目的: 1. 掌握JDK、Eclipse的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及Eclipse的配置。 3. 熟悉Eclipse的编辑、编译与调试环境,编写简单的Application程序 编译执行并完成调试。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序 (能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调试程序、编译,运行后得到正确的结果 四、实验步骤: 1.从https://www.360docs.net/doc/7716621934.html,/technetwork/java/index.html上下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Eclipse环境下编写一个HelloWorld.java程序, (1)在主方法static public void main(String[ ] args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序)

实验二 Java语言基础 一、实验目的: 熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 二、实验内容: 1.编写Java Application程序,输出1900年到2000年之间的所有润年。 (闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.金字塔:Pyramid.java 在屏幕上显示一个由星型符号“*”组成的金字塔图案,示例如下: * *** ***** ******* 要求:金字塔高度h,可以由用户设置。 三、实验要求: 1. 正确使用Java语言的选择语句,循环语句; 2. 调试程序、编译,运行后得到正确的结果 3.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成 示,并给出解决办法。 四、实验步骤: 1.编写主类; 2.在static public void main(String[ ] args)方法中加入实现要求功能 的代码,主要步骤如下: (第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。 (第二题)允许用户设置金字塔高度。 4. 编译运行程序,观察输出结果是否正确。

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

学号:姓名: 第三章面向对象程序设计作业 一、判断题 1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。对 2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。对 3、接口中的成员变量全部为常量,方法为抽象方法。对 4、抽象类可以有构造方法,可以直接实例化。错 5、对static方法的调用可以不需要类实例。对 6、包含抽象方法的类一定是抽象类。对 7、方法中的形参可以和方法所属类的属性同名。对 8、接口无构造器,不能有实例,也不能定义常量。错 9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。对 10、Java应用程序的入口main方法只有一种定义法。对 二、选择题 1、下列答案正确的是(A ) A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为public B) 在同一个Java源文件中只能包含一个类,并被声明为public C) 在同一个Java源文件中可以包含多个类,都可以被声明为public D) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default 2、Java实现动态多态性是通过( B )实现的。 A) 重载B) 覆盖 C) 接口D) 抽象类 3、下列哪一个是正确的方法重载描述( A ) A) 重载方法的参数类型必须不同 B) 重载方法的参数名称必须不同 C) 返回值类型必须不同 D) 修饰词必须不同 4、final关键字不可以用来修饰( D ) A) 类B) 成员方法 C) 域D) 接口 5、接口的所有成员方法都具有( B )属性 A) private, final B) public, abstract C) static, protected D) static 6、Java的封装性是通过(A )实现的 A) 访问控制B) 设计内部类 C) 静态域和静态方法D) 包 7、下列接口或类不属于.*包的是( D ) A) Collection B)Vector C) Map D) Integer 8、下述哪一组方法,是一个类中方法重载的正确写法( A ) A) int addValue( int a, int b ){return a+b;}

面向对象程序设计及C++ 期末试卷B

南京邮电大学 学年第 二 学期 《面向对象程序设计及C++》期末试卷2 院(系) 班级 学号 姓名 (★温馨提醒: ① 这是试题纸,教师不批改,请将所有最终答案写在答题纸上 ② 请在试题纸和答题纸上均完整填写班级、学号、姓名信息 ③ 考试结束时请将答题纸、试题纸及草稿纸一并交来 谢谢合作!祝同学们取得好成绩!) 一、填空题(共10分,每空1分) 1、面向对象程序设计思想中的几个主要特征是:抽象和 ① 、 ② 、 ③ 。 2、C++为类的成员函数提供了一个名字为 ④ 的指针,当创建一个对象时,系统将这种指针初始化为指向该对象。 3、假设AB 为一个类,则该类的拷贝构造函数的原型是 ⑤ 。 4、C++中有三种继承方式,如果基类的公有成员到派生类中仍是公有成员,则应使用 ⑥ 继承方式;如果基类的保护成员到派生类中变成私有成员,则应使用 ⑦ 继承方式。 5、cout 是C++中的标准输出流对象,它在标准头文件 ⑧ 里定义。 6、通过在虚函数参数表后加 ⑨ ,可以定义为纯虚函数。含有纯虚函数的类称为 ⑩ 。 二、单选题(共20分,每题2分) 1、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是 。 A 、参数的个数 B 、参数的类型 C 、参数的顺序 D 、函数的返回类型 2、下列定义引用类型变量时, 是正确的。 已知:int k=1000; A 、int &x=k; B 、char &y; C 、int &z=1000; D 、float &t=&k; 装 订 线 内 不 要 答 题 自 觉 遵 守 考 试 规 则,诚 信 考 试,绝 不 作 弊

C++面向对象程序设计实验报告

C++面向对象程序设计实验报告 学院:信息科学与技术学院 班级:卓越电子1201 姓名:刘强 学号:120910115 实验二 C++面向过程程序设计 实验目的 掌握函数声明、定义和使用的方法 掌握函数递归调用的方法 实验内容 1、编写一个函数,求数列运算中从n个不同的数中取r个数的所有选择的个数,要求如下:主程序中设计一个循环,不断从输入接收n和r的值,计算结果并输出,当用户输入0 0时,程序结束; 能检查输入数据的合法性,要求n>=1并且n>=r; 能得到正确结果。 输入:5 3输出:10 输入:10 20;输出:Input Invalid !; 输入:-1 4;输出:Input Invalid!; 步骤: 利用一个函数fn(int n)计算n!, 利用另一个函数Cnr(int n, int r)计算Cnr,在该函数中调用fn(), 程序代码: #include int fn(int n) { int s=1; for(int i=1;i<=n;i++) { s=s*i; } cout<<"n!="<

int Cnr(int n,int r) { cout<<"Please input two numbers:"<>n>>r; if(n==0&&r==0) { cout<<"Programme shutdown."<=1&&n>=r) { int a; int b; int c; int d; a=fn(n); b=fn(r); c=fn(n-r); d=a/(b*c); cout<

面向对象程序设计实验报告完整版

资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 综合实验报告 面向对象程序设计 专业名称: 物联网工程 ___班级: _____ 级2班__ ___________姓名: 你哥哥 学号: 02051928 信息科学与工程学院 二零一三年七月

第一题: (1) 1.1题目概述 (1) 1.2设计思路 (2) 1.3设计说明与调试分析 (2) 1.4编码实现 (2) 1.5程序运行结果 (5) 1.6设计心得 (5) 第二题: (6) 2.1题目概述 (6) 2.2设计思路 (7) 2.3设计说明与调试分析 (7) 2.4编码实现 (7) 2.5程序运行结果 (11) 2.6设计心得 (11)

第一题: 1.1题目概述 用抽象类设计计算二维平面图形图形面积的程序, 在基类TDshape中设计纯虚函数area()和printName(), area()用于计算几何图形的面积, printName()用于打印输出几何图形的类名, 如Triangle类的对象就打印输出”Triangle”。每个具体形状的类则从抽象类TDshape派生, 各自需要定义其它独有的数据成员和成员函数, 而且定义area()和printName()的具体实现代码, 如图所示。 要求编写以TDshape为接口的函数, 借以访问具体类如

Triangle和Rectangle类的成员函数area(), printName ()。1.2设计思路 由简到繁, 逐步实现。 1.3设计说明与调试分析 编写基类TDshape->编写虚函数->编写继承类Triangle ->实例化TDshape和Triangle ->调用基类虚函数实现调用继承类相应函数->同样的方式处理继承类Rectangle. 1.4编码实现 #include using namespace std; class TDshape{ public: virtual void area()=0; virtual void printName()=0; }; class Triangle:public TDshape{ private: double width,height;

面向对象程序设计大作业(C++)

面向对象分析/设计课程大作业 银行业务处理系统 13级软件学院测试班 1367004029 曾丹 1.需求分析 随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。 现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如

何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。 近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,为其提供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群众生活密切相关的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务开展方式多种多样,但一般都离不开计算机的高效管理支持。 随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行的电子化水平和相应的管理水平提出了更高的要求。如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。支持决策系统的,需要在数据库的基础上,进行联机分析处理,每次处理的数据量大,响应时间长。 特别是银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速、有效、准确、安全的处理银行事物。 主要用于银行的储蓄卡管理系统,它可以帮助我们有效、准确、并且高效实现的完成存取事件。此系统操作方便效率、安全性高,只要客户开户并设定好密码就可以轻松的实现存取款。 系统实现的主要有储蓄卡开户管理、存取款管理、用户查询历史数据显示、注销等功能。 储蓄卡开户管理模块:卡号、姓名、开户金额、身份证号、地址、电话、密码、确认密码和保存组成。(开户金额必须是数字,密码和确认密码必须一样是六位数字) *注销模块:一旦注销该卡号就不存在且余额提醒你取出。 通过该银行账户管理系统地运行,使办公人员可以轻松快捷的完成对账户管理的任务,提高账目管理效率,使银行的账目管理工作系统化、规范化、自动化。 该银行帐目管理信息系统,优点是设计过程思路清晰、模块划分简洁,设计各阶段分工明确。经过实践证明,该划分是合理的,极大得提高了本系统的实现。

面向对象程序设计试卷(D)

公 安 海 警 学 院 《 面向对象程序设计 》考试(查)卷( D 卷) (2012—2013学年第一学期) 考核类型: ;考核年级: ; 考试时间: 分钟 考试须知 公安海警学院学员参加学院组织的各类考试必须严格遵守考场纪律。有考试违纪作弊行为者,严格按照学院有关规定进行处理。 各考场排定的监考教员,必须认真履行监考职责,确保考场正常秩序。 阅卷教员要依照批阅试卷程序与规定,公平公正地完成好阅卷工作。 一、填空题(共10分,每空1分) 1.面向对象程序设计将数据及对数据的 操作 放在一起,作为一个相互依存,不可分割的整体来处理,即对象。 2.为了使类中的成员不能被类外的函数访问,则应把该成员的访问权限定义为 私有的或受保护的 属性。 3.在C++中,声明布尔类型变量所用的关键字是__ bool __。 4.C++中定义常量的关键字是 const 。 5.C++中进行输入、输出操作时,将数据对象从输入流提取出来的运算符是“>>”,插入到输出流的运算符是__ << __。 6.类的继承是指子类继承基类的_ 数据成员 __和成员函数。 7.不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为__ 多态性 __。 8.设类A 有成员函数void Fun(void);若要定义一个指向类成员函数的指针变量pafn 来指向Fun ,该指针变量的声明语句是:__ void (A ::*pafn )(viod ) ; __。 9.在保护派生中,基类权限为Private 的成员在派生类中__ 不可访问 __。 10.将指向对象的指针作为函数参数,形参是对象指针,实参是对象的__ 首地址 _。 二、选择题(共30分,每题2分) 1.C++对C 语言作了很多改进,下列描述中( D )使得C 语言发生了质变,即从面向过程变成了面向对象。 A .增加了一些新的运算符 B .允许函数重载,并允许设置默认参数 C .规定了函数说明必须用原型 D .引进了类和对象的概念 2.在C++中使用流进行输入输出,其中用于屏幕输出的对象是( C ) A .cerr B .cin C .cout D .cfile 3.对使用关键字new 所开辟的动态存储空间,释放时必须使用( C ) A .free B .create C .delete D .realse 4.用C++中定义一个类,当没有明确指定成员的访问权限时,则系统约定该成员为( C ) A .public B .protected C .private D .friend 5.C++的继承性允许派生类继承基类的( A ) A .部分特性,并允许增加新的特性或重定义基类的特性 B .部分特性,但不允许增加新的特性或重定义基类的特性 C .所有特性,并允许增加新的特性或重定义基类的特性 D .所有特性,但不允许增加新的特性或重定义基类的特性 6.类的私有成员可在何处访问( D ) A .通过子类的对象访问 B .本类及子类的成员函数中 C .通过该类对象访问 D .本类的成员函数中 7.一个类可包含析构函数的个数是( B ) A .0个 B .1个 C .至少一个 D .0个或多个 8.this 指针存在的目的是( B ) A .保证基类公有成员在子类中可以被访问 B .保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码 C .保证基类保护成员在子类中可以被访问 D .保证基类私有成员在子类中可以被访问 9.下列关于类的权限的描述错误的是( A ) A .类本身的成员函数只能访问自身的私有成员 B .类的对象只能访问该类的公有成员 C .普通函数不能直接访问类的公有成员,必须通过对象访问 D .一个类可以将另一个类的对象作为成员 10.关于虚函数,下列说法正确的是( A ) A. 虚函数在基类中说明后,不用再在派生类中重新说明 B. 包含有虚函数的基类称为抽象基类 C. 每个派生类必须对从基类继承的虚函数进行重新重定义 D. 包含虚函数的类不能够生成实例对象 11.设类A 将其它类对象作为成员,则建立A 类对象时,下列描述正确的是( B ) A .A 类构造函数先执行 B .成员构造函数先执行 C .两者并行执行 D .不能确定 12.下列描述错误的是( A ) A .在创建对象前,静态成员不存在 B .静态成员是类的成员 C .静态成员不能是虚函数 D .静态成员函数不能直接访问非静态成员 13.对于友元描述正确的是( B ) A .友元是本类的成员函数 B .友元不是本类的成员函数 C .友元不是函数 D .友元不能访问本类私有成员 14.可以在派生类的成员函数中访问基类的非私有成员,并能通过派生类的对象直接访问基类公有成员的派生方式是( A ) A .public B .protected C .private D .friend 15.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是( A ) A .编译器总是自动创建一个不带参数的构造函数 B .这个类没有构造函数 C .这个类不需要构造函数 D .该类不能通过编译 三、判断题(共10分,每题1分) 密 封 线

2016年广东专插本考试《高等数学》真题

2016年广东省普通高校本科插班生招生考试 《高等数学》试题 一、单项选择题(本大题共5小题,每小题3分,满分15分。每小题给出的四个选项中, 只有一项是符合题目要求的。) 1.若函数???<+≥+= 1 11 3)(x x x a x x f , ,在点1=x 出连续,则常数=a A .-1 B .0 C .1 D .2 2.已知函数)(x f 满足6) ()3(lim 000 =?-?+→?x x f x x f x ,则=')(0x f A .1 B .2 C .3 D .6 3.若点)2 1(,为曲线23bx ax y +=的拐点,则常数a 与b 的值应分别为 A .-1和3 B .3和-1 C .-2和6 D .6和-2 4.设函数)(x f 在区间[]1 1, -上可导,c 为任意实数,则? ='dx x f x )(cos sin A . c x xf +)(cos cos B .c x xf +-)(cos cos 错误!未找到引用源。 C .c x f +)(cos D .c x f +-)(cos 5.已知常数项级数∑∞ =1 n n u 的部分和)(1 *N n n n s n ∈+= ,则下列常数项级数中,发散的是 A . ∑∞ =12n n u B . ∑∞ =++1 1)(n n n u u 错误!未找到引用源。 C .∑∞ =+1)1(n n n u D .∑∞ =-1 ])53([n n n u 二、填空题(本大题共5小题,每小题3分,满分15分。) 6.极限=∞ →x x x 3 sin lim 。 7.设 2 1x x y += ,则==0 x dy 。 8.设二元函数y x z ln =,则 =???x y z 2 。

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

习题一 5、分析下面程序运行的结果。 # using namespace std; int main() { cout<<”This”<<”is”; cout<<”a”<<”C++”; cout<<”program.”< using namespace std; int main() { int a,b,c; a = 10; b = 23; c = a + b; cout<<'a + b ="; cout< using namespace std; int main() { int a, b; a = b = 0; int c = a + b; cout<<”a + b =”<

9、输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,在进行编译,直到没有错误,然后进行连接和运行,分析运行结果。 修改后的程序如下: #include using namespace std; int add(int x,int y); int main() { int a = 0, b = 0; int c = add(a,b); cout<<" a + b ="<

面向对象程序设计期末试卷B

1 绍兴文理学院 2011 学年 01学期 信计 专业 09 级《面向对象程序设计》试卷(答题卷) (B) (考试形式:闭卷 ) 一、选择题: (共15分,每小题1分) 1.在C++中,函数原型不能标识( ) A.函数的返回类型 B.函数参数的个数 C.函数参数类型 D.函数的功能 p108有叙述 2.在C++程序中,对象之间的相互通信通过( ) ? A.继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现 3.对于任意一个类,析构函数的个数最多为( ) A.0 B.1 C.2 D.3 4.下面函数模板定义中不正确的是( ) A.template B.template QF(Q x){ QF(Q x){ return Q+x; return x+x; } } C.template D.template TF(T x){ TF(T x){ return x*x; return x>1; } } 5.友元关系不能( ) A.继承 B.是类与类的关系 C.是一个类的成员函数与另一个类的关系 p316 D.提高程序的运行效率 6.语句ofstream f(〃SALARY.DAT 〃,ios::app |ios::binary);的功能是建立流对象f ,试图打开文件SALARY.DAT 并与之连接,并且( ) A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B.若文件存在,将其置为空文件;若文件不存在,打开失败 C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件 7.下面说法正确的是( ) A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键字inline 定义 8.可以用p.a 的形式访问派生类对象p 的基类成员a ,其中a 是( ) A.私有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.公有继承的公有成员 9.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( ) A.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用 C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址可以赋给指向基类的指针 10.对于类定义 class A{ public: virtual void func1( ){ } void func2( ){ } }; class B:public A{ public: void func1( ){cout<<〃class B func 1〃<

面向对象程序设计实验

实验一C++基础1.1 实验目的 1.了解并熟悉开发环境,学会调试程序; 2.熟悉C++中简单的标准输入输出函数的使用方法; 3.理解const修饰符的作用并学会应用; 4.理解内联函数的优缺点并学会其使用场合; 5.理解并学会函数重载; 6.理解并熟练掌握使用new和delete来分配内存; 7.理解并熟练掌握引用的使用方法。 1.2 实验内容 1.2.1 程序阅读 1.理解下面的程序并运行,然后回答问题。 #include int max_def(int x, int y) { return (x>y?x:y); } int max_def(int x, int y, int z) { int temp = 0; return (temp=(x>y?x:y))>z?temp:z; } double max_def(double x, double y) { return (x>y?x:y); } int main()

{ int x1 = 0; int x2 = 0; double d1 = 0.0; double d2 = 0.0; x1 = max_def(5,6); x2 = max_def(2,3,4); d1 = max_def(2.1,5.6); d2 = max_def(12.3,3.4,7.8);-----------------------------------------------------①cout<<"x1="<=’a’ && a<=’z’|| a>=’A’ && a<=’Z’) fputc(a,fptr); a = getchar(); } fclose(fptr); return 0; } 作业二 定义一个矩形类Rectangle,并在main函数中用它声明一个矩形对象,然后利用接口 设置该矩形对象的长和宽、计算面积并输出。(本题总分10分,类结构2分,设置矩阵对象的长与高各1分,计算面积函数2分,输出函数2分,主函数2分。程序结构完整,有不妥之处,酌情扣分。) #include #include class Rectangle { public: int getArea(); void setWidth(int w); void setLength(int l); private: int Length; int Width;

}; int Rectangle::getArea() { return Length*Width; } void Rectangle::setLength(int l) { Length=l; } void Rectangle::setWidth(int w) { Width=w; } main() { int len,wid; Rectangle r1; cout<<"Input the Rectangle's Information"<>len; cout<<"Width:"<>wid; r1.setLength(len); r1.setWidth(wid); cout<<"Rectangle's Area:"< #include struct Node { int item; struct Node *next; };

相关文档
最新文档