西南交通大学2012年面向对象程序设计(专业版 )Microsoft Word 文档
C++面向对象程序设计2011-2012学年第二学期

{
os<<(char*)str;
return os;
}
//实现MyClass类
//参数有缺省值的,缺省值只能在声明中指定,如这里的pData的缺省值是NULL
ostream& operator<<(ostream& os, const MyString& str); //定向输出
class MyString {
public:
MyString(const char* pData = NULL); // 普通构造函数
MyString(const MyString &); // 拷贝构造函数
mpData = new char[strlen(pData)+1];
strcpy(mpData, pData);
}
}
// 拷贝构造函数
MyString::MyString(const MyString & rhs)
{
mpData=new char[strlen(rhs.mpData)+1];
MyString::MyString(const char* pData)
{
if ( pData == NULL ) {
mpData = new char[1];
strcpy(mpData, ""); //或mpData[0]='\0';
} else {
~ MyString(); // 析构函数
2012年3月全国计算机等级考试《二级VisualBasic语言程序设计》真题及答案

2012年3月全国计算机等级考试《二级VisualBasic语言程序设计》真题及答案2012年3月全国计算机等级考试二级笔试试卷Visual Basic 语言程序设计(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A )、B )、C )、D )四个选项中,只有一个选项是正确的。
请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。
(1)下列叙述中正确的是A )循环队列是队列的一种链式存储结构B )循环队列是队列的一种顺序存储结构C )循环队列是非线性结构D )循环队列是一种逻辑结构(2)下列叙述中正确的是A )栈是一种先进先出的线性表B )队列是一种后进先出的线性表C )栈与队列都是非线性结构D )以上三种说法都不对(3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为A )16B )10C )6D )4(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A )外模式B )内模式C )概念模式D )逻辑模式(5)在满足实体完整性约束的条件下A )一个关系中应该有一个或多个候选关键字B )一个关系中只能有一个候选关键字C )一个关系中必须有多个候选关键字D )一个关系中可以没有候选关键字(6)有三个关系R 、S 和T 如下:R ST 则由关系R 和S 得到关系T 的操作是A )自然连接B )并C )交D )差(7)软件生命周期中的活动不包括A )市场调研B )需求分析C )软件测试D )软件维护(8)下面不属于需求分析阶段任务的是A )确定软件系统的功能需求B )确定软件系统的性能需求C )需求规格说明书评审 A B Ca 1 2b 2 1c 3 1 A B C a 1 2d 2 1 A B C b 2 1 c 3 1整理:陈远跃D)制定软件集成测试计划(9)在黑盒测试方法中,设计测试用例的主要根据是A)程序内部逻辑B)程序外部功能C)程序数据结构D)程序流程图(10)在软件设计中不适用的工具是A)系统结构图B)PAD图C)数据流图(DFD图)D)程序流程图(11)以下合法的VB变量名是D)x*y A)case B)name10 C)t-name(12)设x是小于10的非负数。
面向对象程序设计方法

普通高等教育“十二五”规划教材
6.1 面向对象程序设计方法
6.1.5 类和对象可视化设计方法 1.基类 基类是Visual FoxPro内部预先定义的类,在 “新建类”对话框的“派生于”下拉列表框中包含 了全部基类,例如表单,表单控件工具栏中所有的 控件也是基类。 基类可作为用户自定义类的基础,用户可以在 此基础上创建新类,并增添自己需要的新功能。由 基类可以创建对象,对象将继承该类的功能。每一 个对象都会对特定事件作出响应,对一些最小事件 (基本事件)的响应,各类是共同的。
Visual FoxPro支持面向对象程序设计(ObjectOriented Programming),面向对象程序设计所追求的目
标是将现实世界的问题求解尽可能简单化,采用符合人类
处理问题的思维方式。它用“对象”表现事物,用“事件” 表示处理事物的动作,用“方法”表现处理事物的过程,
用“消息”传递对象与对象之间的相互联系。
Visual FoxPro 程序设计
普通高等教育“十二五”规划教材
6.1 面向对象程序设计方法
3.Visual FoxPro中类的类型 Visual FoxPro中类可以分为容器类和控件类。 (1)容器类 容器类可以容纳别的对象,这些对象可以是容器类对象, 也可以是控制类对象,并且允许访问这些对象。例如,表单类 是一个容器,它可以放入命令按钮控件、复选框控件等一组控 件类,并将这些类作为一个整体进行操作。容器类提供了一种 将多个对象按需要进行组合的功能。容器类中的对象还可以是 容器类的,这就形成了容器类对象的嵌套。
Microsoft
主编 杜春敏
中国水利水电出版社
普通高等教育“十二五”规划教材
第6章 面向对象的程序设计
C#2012程序设计实践教程C#面向对象基础

52
上述代码中,通过 new BookType()实例化 BookType 类,booktype1 和 booktype2 分 别表示类的 两个实例对 象,分别为 这两个对象 的 typeName 字段赋值,最后通 过 Console.WriteLine()向控制台中输出 typeName 字段的值。在输出图书类型时,上面的两 种方式都是正确的,第一种方式是通过占位符来输出的,第二种方式是直接输出。 运行 Program.cs 文件,控制台的输出结果如下。
第 3 章 C#面向对象基础
C#是一种安全的、稳定的、简单的、优雅的、由 C 和 C++衍生出来的面向对象编程 语言。面向对象编程是一种功能强大的程序设计方法,它以“数据控制访问代码”为主 要原则,围绕数据来组织程序。在面向对象编程中,最基础的内容就是类。本章将对类 进行详细的介绍,包括类的声明和使用、对象的创建和使用、构造函数和析构函数、成 员变量以及面向对象编程的三大特性等内容。 本章学习要点: “ “ “ “ “ “ “ 掌握类和对象的创建 掌握构造函数和析构函数 掌握类中的字段、常量、属性和方法 熟悉类的三大特性和实现 了解 base 关键字的使用 熟悉 sealed 关键字的使用 掌握 abstract 和 static 的使用
表 3-1
第 3 章
类的可访问修饰符 说明 同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类及 类中的成员 只有同一类或结构中的代码可以访问该类及类中的成员 只有同一类或结构或者此类的派生类中的代码才可以访问该类及类中的成员 类的默认访问类型。同一程序集中的任何代码都可以访问该类或成员,但其他程 序集中的代码不可以
static void Main(string[] args) { BookType booktype1 = new BookType(); //创建第一个对象 booktype1.typeName = "校园小说"; //指定字段的值 BookType booktype2 = new BookType(); //创建第二个对象 booktype2.typeName = "旅游杂志"; //指定字段的值 Console.WriteLine("第一本图书类型:{0}", booktype1.TypeName); Console.WriteLine("第二本图书类型:" + booktype2.TypeName); Console.ReadLine(); }
面向对象期中考试试卷(2012)

西南交通大学2011-2012学年第(2)学期考试课程代码 0471004 课程名称 面向对象程序设计 考试时间90分钟阅卷教师签字:答题说明:① 考试形式:闭卷;② 考试时间:90分钟; ③ 全部答案请写在答题卷上,试题卷上作答无效。
④ 假设所有程序代码中的头文件和命名空间都已经具备。
一、填空题(每空1分,共10分)1. 运算符重载函数既可以定义为类的友元函数,也可以定义为类的 【1】 函数。
2. 含有纯虚函数的类称为 【2】 。
3. 面向对象的三大机制是:是封装、 【3】 和多态 。
4. 在C++程序中,动态申请存储空间是采用 【4】 ,释放存储空间采用 【5】 。
5. 对于【6】继承方式,基类中访问属性为public 成员和【7】成员在子类中的访问属性都是private 。
6. 后置++运算符被重载为友元函数时,其参数的个数为 【8】 个。
7. 在C++中,当定义一个class 时,成员的默认访问权限是【9】,而struct 中成员的默认访问权限是【10】。
.二、单项选择题(每空2分,共24分)1. C++语言建立类族是通过 ( )(A )类的嵌套 (B ) 类的继承 (C ) 虚函数 (D ) 抽象类 2. 关于new 运算符的下列描述中,下面那一项 ( )是错的。
(A ) 它可以用来动态创建对象和对象数组;(B ) 使用它创建的对象或对象数组可以使用运算符delete 删除; (C ) 使用它创建对象时要调用构造函数; (D ) 使用它创建对象数组时必须指定初始值。
3. 有如下两个类定义class XX {private:double x1; protected:double x2;班 级 学 号 姓 名密封装订线密封装订线 密封装订线public: double x3;};class YY: protected XX{ private: double y1;protected: double y2;public: double y3;};在类YY中受保护成员的数量是()(A)1 (B) 2 (C) 3 (D) 44.在C++中,以下不能重载的运算符是( ) 。
面向对象程序设计实验指导书(2012级适用)

辽东学院自编教材《面向对象程序设计》实验指导书王昕编(信息管理及电子商务专业用)信息技术学院2014年6月目录实验一 JDK的安装和配置及帮助文档的使用 (1)实验二基本数据类型和控制语句的使用 (3)实验三类与对象的使用 (6)实验四继承和接口的使用 (9)实验五 JAVA基本类库的使用 (15)实验六 GUI编程 (19)实验七多线程 (22)实验八输入输出流 (24)实验九网络编程 (26)实验一JDK的安装和配置及帮助文档的使用实验类型:验证型实验课时: 2 指导教师:时间:201 年月日课次:第节教学周次:第周实验分室:实验台号:实验员:一、实验目的1.JDK下载、安装与开发环境设置2.学习编写第一个Java 程序二、实验内容和要求1.JDK的安装及配置1)下载JDK 1.7或更高版本及其帮助文档。
2)执行安装文件并按提示进行安装。
3)设置环境变量,使用鼠标右击“我的电脑”->属性->高级->环境变量系统变量->新建->变量名:JA V A_HOME 变量值:为JDK的安装目录,例如c:\jdk1.7 系统变量->新建->变量名:CLASSPATH 变量值:.;%JA V A_HOME%\lib,注意路径中最前面的.代表当前路径,一定要加上。
修改系统变量Path,在其值的后面加上:%JA V A_HOME%\bin;2.编写JA V A程序1)使用文本编辑器(例如记事本)编写如下代码,并保存为文件:Hello.java(注意:Java区分大小写)。
public class Hello{public static void main (String args[ ]){System.out.println("你好,很高兴学习Java");}}编译运行:在DOS环境下进入Hello1.java文件所在的路径,然后输入下列命令进行编译:javac Hello.java输入下列命令运行程序:java Hello2) 使用文本编辑器(例如记事本)编写如下代码,并保存为文件FirstApplet.java:import java.applet.*;import java.awt.*;public class FirstApplet extends Applet{ public void paint(Graphics g){ g.setColor(Color.red);g.drawString("我一边喝着咖啡,一边学Java呢",5,30);g.setColor(Color.blue);g.drawString("我学得很认真",10,50);}}编译此文件,再编写一个静态网页文件命名为applet.html,内容如下所示:<html><body><applet code= FirstApplet .class height=100 width=300></applet></body></html>最后在命令提示符下执行appletviewer applet.html。
西安交通大学《面向对象程序设计》作业考核试题

西安交通大学《面向对象程序设计》作业考核试题一、单选题1.??C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是()。
A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型[正确]D. 引进了类和对象的概念??????满分:2??分2.??如果一个类至少有一个纯虚函数,那么该类称为().。
[正确]A. 抽象类B. 虚基类C. 派生类D. 以上都不对??????满分:2??分3.??假定AB为一个类,则执行“AB r1=r2;”语句时将自动调用该类的( )。
A. 无参构造函数B. 带参构造函数C. 赋值重载函数[正确]D. 拷贝构造函数??????满分:2??分4.??带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化()。
A. 与虚基类下面的派生类个数有关B. 多次C. 二次[正确]D. 一次??????满分:2??分5.??派生类的构造函数的成员初始化列表中,不能包含()。
A. 基类的构造函数;B. 派生类中子对象的初始化;[正确]C. 基类的子对象初始化;D. 派生类中一般数据成员的初始化;??????满分:2??分6.??由C++目标文件连接而成的可执行文件的缺省扩展名为()。
A. cpp[正确]B. exeC. objD. lik??????满分:2??分7.??以下叙述中正确的是()A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值[正确]B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C. 在程序中使用内置函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值??????满分:2??分8.??下列不是C++基本数据类型的是()。
A. int[正确]B. stringC. charD. void??????满分:2??分9.??下列函数中,()不能重载。
面向对象程序设计

5.1.1
类定义
对一个用户自定义的类,要为类取一个名字,并指 明类中包含哪些变量和方法以及相应的类型、实现 等,这称为类的定义。类定义语句的一般形式为:
[修饰符]class 类名 [extends 父类名] [implements 接口名表] { 成员变量声明 // 类体 方法成员声明 }
(1)构造方法名与类名相同。
(2)构造方法不返回任何值,也没有返回类型。 (3)每一个类可以有零个或多个构造方法。 (4)构造方法在创建对象时自动执行,一般不能显式地直接 调用。
【例5.6】分别计算长、宽分别为20、10和6、 3的 两个长方形面积。本程序用构造方法来初始化长方 形的大小。
对象名.数据成员名 对象名.成员方法名() // 方法名带圆括号
运算符“.”在这里称为成员运算符,在对象名和成 员名)之间起到连接的作用,指明是哪个对象的哪个 成员。 例如:设已经定义了例5.2中的Rectangle类,可以 用如下的方法来引用对象的成员:
Rectangle r = new Rectangle(); // 定义类的对象 r.length,r.width // 引用对象的数据成员 r.area() // 引用对象的成员方法
final double PI = 3.1416; final double G = 9.18;
因为final变量不能改变,没有必要在每个对象中进 行存储,可以将final变量声明为静态的,以节省存 储空间。
例如: static final double PI = 3.1416;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南交通大学2012年面向对象程序设计试题及答案开发环境为VC++6.0,运行结果有截图,若发现错误欢迎指正。
实验一、C++程序开发环境及c++简单程序设计。
题目1、简单c++程序任务:按提示的操作步骤输入下面的代码,编译连接并执行。
源程序代码:#include"iostream.h"void main(){ cout<<"Hello!\n";cout<<"Welcome to c++!"<<endl;cout<<"This is my first c++ program"<<endl;}运行结果:题目2、编写程序,从标准输入读入一个数,把它转化为英文单词输出,如输入123,这是输出“one two three”。
源程序代码:#include<iostream>using namespace std;void main(){ char ch;cout <<"请输入数字用来转化为英文单词:";while(1){ cin>>ch;if(ch=='\n') break;switch(ch-48){case 0:cout<<"zero "; break;case 1:cout <<"one "; break;case 2:cout <<"two "; break;case 3:cout <<"three ";break;case 4:cout <<"four "; break;case 5:cout <<"five "; break;case 6:cout <<"six "; break;case 7:cout <<"seven ";break;case 8:cout <<"eight ";break;case 9:cout <<"nine "; break;}}运行结果:题目3、循环结构程序设计任务把一张一元纸币换成一分、二分和五分的硬币,假如每一种至少一枚,文友多少种换法,编程将各种换法显示出来。
源程序代码:#include<iostream>using namespace std;void main(){int i,j,k,x=0;cout<<"一角"<<"两角"<<"三角"<<endl;for(i=1;i<=93;i++)for(k=1;k<=47;k++)for(j=1;j<=19;j++)if(i+2*k+5*j==100){x++;cout<<i<<" "<<j<<" "<<k<<" "<<endl;}cout<<"换法的总数为:"<<x<<endl;}运行结果:(由于种数太多截图不方便所以只截了最后的部分!)实验二、函数题目1、内联函数任务(1)定义内敛函数max(),求两个整数中的最大值,然后在main()函数中惊醒调用(2)定义内联函数inline-fun()和一般函数common-fun(),使整型参数值加1,然后在main()函数中惊醒调用;源程序代码:#include<iostream>using namespace std;inline int max(int x,int y);inline int inline_fun(int x);int common_fun(int x);void main()int x=4,y=5;cout<<x<<","<<y<<"中最大的是:"<<max(x,y)<<endl;cout<<x<<"加1后为:"<<inline_fun(x)<<endl;cout<<y<<"加1后为:"<<common_fun(y)<<endl;}inline int max(int x,int y){ if(x>y) return x;else return y;}inline int inline_fun(int x){ return ++x;}int common_fun(int x){ return ++x;}运行结果:题目2、函数参数的传递机制、重载函数任务(1)编写重载函数max1()可分别求2个整数、3个整数、2个双精度和3双精度数的最大值。
(2)定义两个名称都为sum()的函数,第一个函数支持整型数组,第二个函数支持浮点型数组,求数组元素的和。
源程序代码:#include<iostream>using namespace std;int max1(int x,int y){ if(x>y) return x;else return y;}int max1(int x,int y,int z){if(x>max1(y,z)) return x;else return max1(y,z);}double max1(double x,double y){ if(x>y) return x;else return y;}double max1(double x,double y,double z){ if(x>max1(y,z) ) return x;else return max1(y,z);}int sum(int *p,int n){ int i=0,s=0;for(;i<n;i++)s+=p[i];return s;}double sum(double *p,int n){int i; double s=0;for(i=0;i<n;i++)s+=p[i];return s;}void main(){ int a=1,b=2,c=3; double x=4.5, y=6.7, z=8.9;int p[5]={1,2,3,4,5}; double q[5]={4.5 ,6.7,8.9,2.4,1.2};cout<<a<<","<<b<<"的最大值为:"<<max1(a,b)<<endl;cout<<a<<","<<b<<","<<c<<"的最大值为:"<<max1(a,b,c)<<endl;cout<<x<<","<<y<<"的最大值为:"<<max1(x,y)<<endl;cout<<x<<","<<y<<","<<"的最大值为:"<<max1(x,y,z)<<endl;cout<<"int 型p数组元素的和为:"<<sum(p,5)<<endl;cout<<"double 型数组q的元素和为:"<<sum(q,5)<<endl;}运行结果:题目3、带默认参数的函数任务定义函数volume(),计算立体的体积,要求在主函数中以5中不同的形式调用此函数。
源程序代码:#include<iostream>using namespace std;double volume(double x=1,double y=2,double z=3);void main(){double x=4,y=5,c=6;cout<<volume()<<endl;cout<<volume(4)<<endl;cout<<volume(4,5)<<endl;cout<<volume(5,6)<<endl;cout<<volume(4,5,6)<<endl;}double volume(double x,double y,double z)//注意这里不可以再带默认的参数!!!{cout<<"以"<<x<<","<<y<<","<<z<<"为棱的长方体的体积为:";return x*y*z;}运行结果:实验三、类于对象题目1、私有成员的访问任务下面的程序中用ERROR标明的语句有错误,在不删除和增加代码行的情况下,改正错误的语句,使其正确运行。
错误代码及改正方法:#include<iostream>using namespace std;class Aa{public :Aa(int i=0){ a=i; cout<<"Constructor"<<a<<endl;}~Aa() { cout<<"Destructor"<<a<<endl;}void print(){ cout<<a<<endl;}private :int a;};int main(){Aa a1(1),a2(2);a1.print();cout<<a2.a<<endl;//ERROR将该行代码中访问了a2的私有属性,改为a2.print();return 0;}改正后的运行结果:题目2、构造函数、拷贝构造函数任务(1)调试下列程序源程序代码:#include <iostream>using namespace std;class Topint{public:Topint(int x,int y) { X=x;Y=y;}Topint(Topint &p);~Topint () { cout<<"destructor is called \n";}int getx() { return X;}int gety() { return Y;}private :int X,Y;};Topint::Topint(Topint &p){X=p.X; Y=p.Y;cout<<"Copy -initialization Cnstructor is called\n";}int main(){Topint p1(4,9);Topint p2(p1);Topint p3=p2;cout<<"p3=("<<p3.getx()<<","<<p3.gety()<<")\n";return 0;}运行结果:问题:(1)在该程序中将Topint类的带有两个参数的构造函数进行修改,在函数体内添加下述语句:cout<<"Constructor is Called.\n"。