2012计算机科学与技术专业
面向对象课程设计题目
一设计要求
每个题目可以1人或至多两人,按题目要求完成程序设计及课程设计报告。
(若两人一个题目,需各自独立完成,题目相同者的课程设计报告不能完全相同。)二题目列表
三题目内容及要求
题目1 矩阵运算
内容及要求:
定义矩阵类,实现矩阵加法、减法、乘法、矩阵转置、求矩阵的逆矩阵等。
用程序实现验证n*n矩阵的如下定理:
A(BC)=(AB)C。
题目2 填XO游戏程序
内容及要求:
游戏规则和胜利条件:
棋盘共有5行5列:
选择难度(1):两个斜对角之一都为X或O,则玩家胜。一横行都为X或O则玩家胜。)一竖行都为X或O则玩家胜。
选择难度(2):两个斜对角之一都为X或O,则玩家胜。
选择难度(3):两个斜对角都为X或O,则玩家胜。
输入必须为一个两位整数,如11,代表棋盘的第一行第一列,输完后按回车键;
玩者下一步X或O,计算机也自动下一步X或O。
程序运行示例:
题目3 统计学生成绩
内容及要求:
要求编写一个“Student”类及用来存取文件的save()和load()函数,使用函数及运算符重载技术完成如下操作:
(1)计算每个学生的平均成绩,将数据存入文件stud.dat中并验证是否正确地存入了文件。(2)要求对“<<”和“>>”运算符进行重载。
(3)把学生姓名和平均成绩抽取出来,建立一个简明文件stud_mean.dat,并验证是否正确地存入了。
(4)从文件stud.dat按如下格式输出大于等于平均成绩的学生信息:
学号姓名算术语文平均
(5)将两门功课成绩都不及格的学生信息从文件中删除并另外存入文件bad.dat中。
(6)编写能检索文件中某个学生信息的子程序。如无此学生,输出“未查到”信息。
(7)使用多文件编程和菜单操作。
题目4 会议记录管理系统
内容及要求:
定义会议信息类class Conference
会议信息包括:会议编号,会议名称、部门名称、会议地点,会议日期,会议主持人,会议记录人,出席人员,会议摘要。会议信息以二进制形式存储在文件中。
(1) 添加会议记录
(2) 浏览所有会议记录信息
(3) 按不同字段(会议编号,会议名称等)查询会议记录
(4) 修改会议记录
(5) 删除会议记录
题目5 设计菜单选择趣味程序
内容及要求:
设计一个比较使用的菜单,通过菜单选择不同的功能。设计分两步:首先涉及一个含有多个菜单项的菜单演示程序,然后再为这些菜单项配上相应的功能。
出圈游戏一:
(1)设计一个SeqList类。
(2)在头文”head.h”中声明类,并使用默认的内联函数方式定义它们。
(3)使用类的数组来求解。
(4)用Joseph()函数求解出圈,使用函数game1()作为菜单项。
(5)在文件game1.cpp中实现Joseph和game1()函数。
出圈游戏二:
(1)使用上题中的SqList类.使用向量数组求解。
(2)重载Joseph()函数来求解出圈,使用函数game2()作为菜单项。
(3)在文件game2.cpp中实现Joseph()和game2()函数
求解方程:
(1)设计类FindRoot
将方程系数设计成属性,将方程的根x1,x2。以及用来作为判定条件的d(d=b*b-4*a*c) 均设计成类的属性
(2)设计构造函数
(3)设计求根成员函数Find().
(4)设计输出结果成员函数Display().
题目6 个人财政管理
内容及要求:
(1)完善程序,补充类中数据成员盈余(dlBalance)的计算和输出,要求每笔收入和支出都要重新统计当前情况下的盈余数目。
(2)程序中的收支情况按时间顺序排序存放,将其放入一个文件中,每次运行程序时首先打开这个文件,程序运行完毕时将更新的记录放回文件中。
(3)可以按时间的范围来检查账目,即在主菜单中增加检索的功能选项,输入时间范围即可打印出详细报表。
(4)可以修改、删除某笔收入或支出。
(5)增加程序监控功能,当输入时间发生错误(如月份超过12等)时,要求重新输入正确的时间;当结余的数目为负数时,打印出信息,警告已经透支。
题目7 求解有理数分式方程
内容及要求:
设计一个Rational(有理数)类,用来求解有理数分式方程。为它设计两个数据成员,一个作为分子,另一个作为分母。分母不能为0。有理数1/2可以使用这个类的对象r表示为r(1,2)。需要完成如下操作:
如果分子和分母友公约数,就应该进行化简;
有理数可以进行四则运算,需要重载运算符;
重载流运算符,可以直接输入分子和分母,以及作为整体输出,如:
cin>>r;
1/6 //输入
cou< 1/6 //输出 解有理数方程a/b x+c/d =e/f,用有理数表示为: r1=a/b r2=b/c r3=e/f 则 x=(r3-r2)/r1 题目8 模拟21点扑克牌游戏 内容及要求: 模拟21点扑克牌游戏,玩家最多可以要5张牌,但如果牌的点数之和超过21,则自动出局;在不超过21点的情况下,玩家与庄家比牌的点数的大小,大者为赢家。 程序设计要求: (1)将大于10点的点数改为半点。 (2)高级玩家可以查看下一张牌,然后按要求输入密码,密码正确可以看牌,决定是否要牌。 (3)超级玩家可以查看庄家的所有牌面,并任意输入自己想要的牌,有赢无输。 (4)每次要完牌后可以重新设定赔率,只能加注。 题目9 计算算术运算表达式 内容及要求: 计算算术运算表达式。实现将括号内的数提出计算,再将结果并入愿字符串,每次只计算一个简单的式子,如对算式(3+22)*3而言,先计算式子3+22,得到结果25,再求25*3,得到最终结果75 要求:计算string所表示的算术运算表达式的值。 题目10 通信录 内容及要求: (1)输入信息,建立文件; (2)文件的存取和显示; (3)删除记录; (4)查询记录; (5)整体性能; (6)测试程序。 题目11 分数运算 内容及要求: 分数相加,两个分数分别是1/5和7/20,它们相加之后得11/20。方法是先求出两个分数分母的最小公倍数,通分后,再求两个分子的和,最后约简结果分数的分子和分母(如果两个分数相加的结果是4/8,则必须将其化简成最简分数的形式1//2),即用分子分母的最大公约数分别除分子和分母。试建立一个一个分数类Fract,来完成两个分数相加的功能。 (1)重载提取和插入运算符<<和>>,实现分数类对象的直接输入输出,即可以用cin 运算符从键盘输入具体的分数数据,同时将运算结果用cout输出。 (2)重载加法运算符+,完成两个或多个对象的加法,同时约简结果。 (3)重新用两种方法实现m,n的最大公约数的函数int gcd(int m,int n)。 题目12 彩票游戏 内容及要求: 该程序模拟体彩和福彩的投彩的开奖过程。 (1)进一步完善福彩部分,无论是开奖还是下注,福彩的6个号码都不能重复,请在程序中进行设置。 (1)福彩的中奖号码与其数字的顺序无关,重新设置中奖等级。 (3)进一步完善体彩部分,体彩的中奖等级分为特等奖(数字完全吻合),一等奖(6个连续数字吻合),二等奖(5个连续数字吻合),三等级(4个连续数字吻合),安慰奖(2个连续数字吻合)。 题目13 职工信息表 内容及要求: 设计职工信息表,并由此产生一个信息简表,并使用虚函数实现多态性,完成显示不同简表信息的任务。使用了继承的方法,编写最多能输入10个职工的信息表,再根据这个表产生一个职工信息简表,并利用多态性实现信息的输出。使用类和向量及菜单实现选择功能。为了允许用户交替选择1-5选项,必须对各种可能的输入进行处理。 设计的简单界面如下: 1.增加职工记录 2.生成信息简表 3.显示原始记录 4.显示简表记录 5.查找职工信息 6.结束程序运行 题目14 字符串类的设计 内容及要求: 定义字符串类(String),包含存放字符串的字符数组和字符串中字符的个数。 (1)字符串的输入与赋值; (2)字符串的运算:连接、复制、查找、交换、求子串、比较; (3)字符串的输出。 对字符串的输入和输出都用文件实现。 题目15 矩阵的旋转反射 内容及要求: 输入矩阵的行列,选择旋转方式,输出旋转后的矩阵。 (1)绕X轴旋转; (2)绕Y轴旋转; (3)绕原点旋转。 题目16 学生成绩管理 内容及要求: 设计一个实用的小型学生成绩管理程序。它有查询和检索等功能,并且能够对指定文件操作,也可以将多个文件组成一个文件。 (1)建立文件:可以使用默认文件名或指定文件名将记录存储文件。设置适当的标志位,作为对记录进 行操作的信息。写同名文件将覆盖原来文件的内容。 (2).增加学生记录:可在已有记录后面追加新的记录。可以随时增加新的记录,它们仅保存在向量数组中。可以将一个文件读入,追加在已有记录之后。采取文件追加方式时,在没有保存到文件之前,将继续保持文件追加状态,以便实现连续文件追加操作方式。如果没有记录存在,给出提示信息。 (3)新建学生信息文件:用来重新建立学生信息记录。如果已经有记录存在,可以覆盖原记录或者在原记录后面追加,也可以将原有记录信息保存到一个指定文件,然后重新建立记录。给出相应的提示信息。 (4)显示、删除、修改、查询记录。 题目17 复数计算器 内容及要求: (1)所设计的复数计算器可以进行+ - * += -= *= ++ -- >= <= == !=运算符,其中>= <=是针对复数的模进行运算。 (2)设计输入重载函数,要求能接收从键盘输入a+bi形式的复数,在程序中可以识别出实部虚部并正确赋值。 (3) 设计计算器测试程序,对加减法进行测试,要求在两位数以内进行,对乘法进行测试,乘法要求为一位数的运算。 (4) 设计记录功能,可以记录下不同用户使用计算器的情况,记录以文件的形式保存在计算机内,开机时要求用户输入用户名,显示该名户以前的记录。用户记录用包括:做了多少次加减法、乘法、进行测试的次数,后3次的测试平均分等,在退出计算器程序时用心的用户记录代替原有的记录。 题目18 工资管理 内容及要求: 设计一个员工工资管理程序,有显示、储存、显示、修改和删除功能。 (1)定义类CSalary,在工资表的数据类中增加一个私有数据选项:工号,用字符数组的形式,从000001开始编号,该工号不能人工修改,是有计算机自动根据录入的先后赋值的,录入数据时的时候不必输入工号。 (2)可以选择显示的多种排序形式,如按姓名的顺序、工资总额的顺序、职务工资获奖金的顺序,显示超过一屏的显示范围要能分屏显示。 (3)可以查询某一范围内的数据,如工资总跟小于2000元的人的数据,介于1000~2000元的人的数据等,根据具体要求列出菜单供用户选择。 (4)可以根据工号或者姓名修改、删除数据,在修改、删除时先要确定用户确认,确认后再进行操作。 (5)每次显示时,将所有要显示数据的工资总额、职务工资总额、奖金总额一起计算显示。 题目19猜数字游戏 内容及要求: 猜数:用户从键盘输入4位不重复的数,来匹配计算机给出的4位随机数,若数字和位置均等同,表示用户赢了。每猜一次,计算机均给出提示信息(x,y),x表示数字,位置都匹配的个数,y表示数字匹配但位置不匹配的个数。 (1)设计有好的中文交互界面; (2)按8888键,可以得到更详细的帮助信息,如:第1位数字正确等。 (3)按7777键后,可以查看计算机所给的4位数,但需要输入密码,密码自定。 (4)猜的结果以分数给出,每猜错一次扣40分,若猜对1个数,奖励20分。 (5)每次游戏结束后将分值存盘,文件名自定。 题目20股票交易系统 内容及要求: (1)修改数据结构,增加现金成员,每只股票增加牌价;每个用户的数据库中同样也增加现金数目的成员。 (2)增加股票交易系统的接口程序,新增如下设计: AddNewStock( ) 增加新股票 DeleteOldStock( ) 删除旧股票 HangUpStock( ) 挂起股票,停止交易 ModifyStock( ) 修改股票的名称、代码 以上修改均须输入密码,密码吻合后才能进入数据库进行修改,结果均存入Stock_File.dat中。 (3)将股票数据的处理由数组改为链表,可以处理多只股票的交易,链表以交易代码的序号进行排序,也可根据需要以股票的牌价进行排序。 四课程设计报告 1 题目内容及设计要求 2 总体方案设计 2.1 总体功能框图 2.2 类的设计说明 2.3 主要算法流程图 3 程序清单及注释 4 运行结果与分析 5 总结 6 参考文献 1.对象 (1)从概念层面讲,对象是某种拥有责任的抽象。 (2)从规格层面讲,对象是一系列可以被其他对象使用的公共接口。 (3)从语言实现层面讲,对象封装了代码和数据。 2.软件开发中的经典阶段:需求、分析、设计、规范、实现、测试、部署、维护。 3.设计7原则:开闭原则、里氏代换原则、依赖倒转原则、合成/聚合复用原则、 迪M特原则、接口隔离原则、单一职责原则。 4.面向对象的方法学:UML(统一建模语言)、RUP(统一软件开发过程)、XP(极限 编程)。 开发方法:Booch、Coad、OMT、UML、OOSE、Wirfs—Brock 5.OOA——运用面向对象方法进行需求分析。 OOD——运用面向对象方法进行系统设计。 OOP——运用面向对象方法进行程序设计。 6.OOA的基本任务:是运用面向对象的方法,对问题域和系统责任进行分析和理解,对其中的事物和它们之间的关系产生正确的认识,找出描述问题域及系统责任所需的类及对象,定义这些类和对象的属性和操作,以及它们之间所形成的结构、静态联系和动态联系。最终目的:是产生一个符合用户需求,并能够直接反映问题域和系统责任的OOA模型及其详细说明。 优点:(1)加强了对问题域和系统责任的理解。(2)改进与分析有关的各类人员之间的交流。(3)对需求的变化具有较强的适应性。(4)支持软件复用。 OOA的三大策略是:属性策略、方法策略、对象策略。 7.(1)封装:是指对象在其操作中隐藏属性。它是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装的目的是使对象的使用者和生产者分开,使对象的定义和实现分开。 例如:要从同事那里借钱,在商店购买食物,就不会抢夺同事的钱包,大翻一通,看看里 面是否有足够的钱。而应该询问他们是否可以借你一些钱,他们就会自己翻钱包。 以表示圆的一个对象作为封装的例子。圆的操作应能计算出半径、直径、周长和面积。假定选择存储直径,要访问直径的程序员都会选择存储直径属性,而不是通过“获取直径”的操作来访问。如果在软件的后续版本中要存储的是半径,就必须找出系统中直接访问直径的所有代码,并更正它们,有了封装,就不会有问题。 (2)继承:可以指定类从父类中获取一些特性,再添加它自己的独特特性。继承是类间的 基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承父类的属性和操作,也可以对父类中的操作重新定义其实现方法。 例如:在面向对象中,我们可以把洗衣机、电冰箱、微波炉、收音机看成是家用电气类的 子类,也可以说家用电器类是这些类的超类。家用电器类具有的属性OnOffSwitch和electricWire,具有turnOn()和turnOff()操作。因此,如果你知道某物是家用电器,那么就会立即知道它 具有家用电器类的属性和操作,这种关系就是继承。每个家用电器类的子类都继承了家用电器类的特征。同时,每个子类都增加了自己的属性和操作。 (3)多态:是指同一操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。例如:“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形;作用在“圆”对象上, 则在屏幕上画一个圆。也就是说,相同操作的消息发送给不同对象时,每个对象将根据自1 / 9 1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。 《面向对象编程思想》实验报告 专业年级: 姓 学 名: 号: 指导教师: 开课时间: 中南林业科技大学理学院信计教研室 制 说明 随着计算机的发展,传统的面向过程的设计方法不能满足用户需求,需要一种可视化的,面向对象的程序设计语言,用于发开。本课程先介绍面向对象的基本概念,再介绍一种面向对象程序设计开发工具-POWERBUILDER,过程中整书贯穿了一个应用程序实例“教学管理系统”设计开发的全过程,讲完后,由学生上机实践。教学计划在进行24学时理论知识讲授的同时,穿插有16学时的上机实验。通过实验,使学生熟悉POWERBUILDER的使用,设置实验内容时,在完成基本训练的基础上,设计了应用性、综合性的实验内容,使学生通过实验提高综合分析问题、解决问题的能力。 信息与计算科学教研室 目录 目录...................................................................................................................................II 实验一实验二实验三PowerBuilder基本操作及应用程序对象的创建(2学时) (1) 数据库操作一(2学时) (4) 数据库操作二(2学时) (5) 实验四应用对象、窗口、控件操作一(2学时) (6) 实验五实验六数据窗口对象(2学时) (14) 菜单对象(2学时) (15) 实验一 《面向对象编程思想》实验报告 PowerBuilder基本操作及应用程序对象的创建(2学时) 一、实验目的 熟悉PowerBuilder 开发环境,掌握使用帮助查找信息的方法,掌握应用程序对象的创建方法,了解对象、属性、事件的基本概念,了解编写一般脚本的方法。 二、实验内容 PowerBuilder 的启动和退出,熟悉PowerBuilder 的桌面(Desktop),包括 菜单(Menu)、工具条(Toolbar)、工作区(Workspace)等;完成一些基本的程序编写;学习使用在线帮助系统。 三、实验步骤 1、打开PowerBuilder 主窗体,熟悉PowerBuilder 开发环境。 2、分别使用帮助主题窗口的“目录”和“索引”页查找messagebox 函数的使 用方法。 3、运行以下程序: int n for n=1000to0step–1 if mod(n,17)=0 then exit next 结果为: 四、思考题 1、PowerBuilder有哪些特点? 《面向对象程序设计》课程设计 课程代码:*****(采用现行5位数字的课程代码) 课程名称:面向对象程序设计课程设计 设计周数:1周 学分:0.5学分 课程类别:必修课 一、课程设计的目的与任务 面向对象程序设计课程设计是计算机科学与技术、网络工程、信息管理与信息系统等专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。通过课程设计,学生可以将本课程所学知识点融会贯通,举一反三,加深实践与理解,提高学生综合运用所学知识的能力;另一方面,在参与一系列子项目的实践过程中,能使学生获得相关项目管理和团队合作等众多方面的实践经验。其目的在于加深对面向对象程序设计理论和基本知识的理解,通过对所选项目的分析、程序算法的设计、运行与调试过程的分析,使学生掌握基本的信息系统分析方法、设计方法和上机操作的各种技巧,对培养学生的逻辑思维能力、团队合作精神、创新能力、动手操作能力各方面素质有提供了良好的实践平台,为后续课程的学习打下一定的基础。 二、本课程设计的基本理论 本课程设计使用面向对象程序设计的方法解决实际问题,涵概了课程的所有重要知识点,如类与对象、继承与组合、虚函数与多态性等。 三、课程设计的形式与基本要求 形式:召开课程设计动员会,根据学生的学习水平和特长进行分组,每组选择指定课程设计的题目和内容。学生在规定的时间内,经过小组的协同工作和指导教师的辅导,完成所选课题的设计,最后由指导教师进行验收及评定。 基本要求:要求学生做好预习,认真分析设计过程中涉及到的算法,并确定所选课题的功能模块,详细描述各模块的具体内容;用流程图描述实现算法,根据算法进行代码的编写,最后进行反复上机调试修改,直到输出正确结果为止。 认真写好课程设计报告,根据每组学生的分工,各自写出对解决问题的详细分析、模块功能、调试结果,最后将课程设计报告上交给指导教师。 四、课程设计的内容 选题一:员工管理信息系统 (1)建立职工信息数据,包括职工编号、姓名、性别、工资、出生时间、部门、参加工作时间和年龄(必须计算得到)。 一选择题(共 45题) 1.对类的构造函数和析构函数描述正确的是()。 A.构造函数可以重载,析构函数不能重载√ B.构造函数不能重载,析构函数可以重载 C.构造函数可以重载,析构函数也可以重载 D.构造函数不能重载,析构函数也不能重载 2.继承具有(),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。 A)规律性 B.传递性√ C.重复性 D.多样性 3.假设OneClass为一个类,则该类的复制初始化构造函数的声明语句为()。 (OneClass p); B. OneClass& (OneClass p ); C. OneClass(OneClass & p);√ D. OneClass (OneClass * p); 4.对于结构中定义的成员,其默认的访问权限为()。 B. protected D. static 5.下面对静态数据成员的描述中,不正确的是()。 A.静态数据成员可以在类体内进行初始化√ B.静态数据成员不可以在类体内进行初始化 C.静态数据成员能受private控制符的作用 D.静态数据成员调用前必须初始 6. C++中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过()派生了新的类。 A.复用 B.继承√ C.封装 D.引用 7. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a 的格式为()。 A. x(a) B. x[a] C. x->a D. √ 9. 对于一个类的构造函数,其函数名与类名( )。 A. 完全相同√ B. 基本相同 C. 不相同 D. 无关系 10. 一个类的构造函数通常被定义为该类的( )成员。 A. 公有√ B. 保护 C. 私有 D. 友元 11. 一个类的析构函数通常被定义为该类的( )成员。 A. 私有 B. 保护 C. 公有√ D. 友元 12. 一个类的静态数据成员所表示属性 ( )。 A. 是类的或对象的属性 B. 只是对象的属性 C. 只是类的属性√ D. 类和友元的属性 13.类的析构函数的作用是()。 A.一般成员函数 B.类的初始化 C.对象初始化D.删除对象之前的善后工作√ 14.下列对基类和派生类关系的描述中,错误的是()。 A.派生类是基类的具体化B.派生类是基类的子集√ C.派生类是基类定义的延续 D.派生类是基类的组合 15.下列对派生类的描述中,错误的是()。 A.一个派生类可以作为另一个派生类的基类 B.派生类至少有一个基类 C.派生类的缺省继承方式是private D.派生类只继承了基类的公有成员和保护成员√ 16.下列对继承的描述中,错误的是()。 A.析构函数不能被继承 22. 下列的符号常量定义中,错误的定义是()。 A. const M=10; B. const int M=20; C. const char ch; D. const bool mark=true; 40. 函数重载是指()。 A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C. 两个以上的函数名字不同,但形参的个数或类型相同 D. 两个以上的函数取相同的函数名,并且函数的返回类型相同 41. 以下关于函数模板叙述正确的是()。 A. 函数模板也是一个具体类型的函数 B. 函数模板的类型参数与函数的参数是同一个概念 C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型 42. 下列()的调用方式是引用调用。 A. 形参和实参都是变量 B.形参是指针,实参是地址值 C. 形参是引用,实参是变量 D.形参是变量,实参是地址值 43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。 A. 内联函数 B.重载函数 C.递归函数 D.函数模板 44. 函数原型语句正确的是()。 A. int Function(void a); B.void Function (int); C. int Function(a); D.void int(double a); 45. C++中函数返回值的类型是由()决定的。 A. return语句中表达式的类型 B.该函数定义时的类型 C.调用函数时的调用语句 D.系统根据结果 56. 采用重载函数的目的是()。 A. 实现共享 B. 减少空间 C. 提高速度 D. 使用方便,提高可读性 58. 以下叙述中正确的是( )。 A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值 B. 使用const定义的常量,其值在程序运行时是不可改变的 C. 在程序中使用内联函数使程序的可读性变差 D. 在定义函数时可以在形参表的任何位置给出缺省形参值 70. 用new运算符创建一个含10个元素的一维整型数组的正确语句是( )。 A. int *p=new a[10]; B. int *p=new float[10];面向对象程序设计 复习资料
什么是面向对象程序设计
《面向对象编程思想》实验报告册剖析
面向对象程序设计课程设计
面向对象程序设计 C 复习题
面向对象程序设计期末综合练习一(单选题)
《面向对象程序设计》答案