面向对象程序设计试题.docx

上传人:b****5 文档编号:15206654 上传时间:2023-07-02 格式:DOCX 页数:57 大小:389.11KB
下载 相关 举报
面向对象程序设计试题.docx_第1页
第1页 / 共57页
面向对象程序设计试题.docx_第2页
第2页 / 共57页
面向对象程序设计试题.docx_第3页
第3页 / 共57页
面向对象程序设计试题.docx_第4页
第4页 / 共57页
面向对象程序设计试题.docx_第5页
第5页 / 共57页
面向对象程序设计试题.docx_第6页
第6页 / 共57页
面向对象程序设计试题.docx_第7页
第7页 / 共57页
面向对象程序设计试题.docx_第8页
第8页 / 共57页
面向对象程序设计试题.docx_第9页
第9页 / 共57页
面向对象程序设计试题.docx_第10页
第10页 / 共57页
面向对象程序设计试题.docx_第11页
第11页 / 共57页
面向对象程序设计试题.docx_第12页
第12页 / 共57页
面向对象程序设计试题.docx_第13页
第13页 / 共57页
面向对象程序设计试题.docx_第14页
第14页 / 共57页
面向对象程序设计试题.docx_第15页
第15页 / 共57页
面向对象程序设计试题.docx_第16页
第16页 / 共57页
面向对象程序设计试题.docx_第17页
第17页 / 共57页
面向对象程序设计试题.docx_第18页
第18页 / 共57页
面向对象程序设计试题.docx_第19页
第19页 / 共57页
面向对象程序设计试题.docx_第20页
第20页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

面向对象程序设计试题.docx

《面向对象程序设计试题.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计试题.docx(57页珍藏版)》请在冰点文库上搜索。

面向对象程序设计试题.docx

面向对象程序设计试题

 

《C++程序设计》实验指导书

董晓梅张天成编写

 

东北大学信息科学与工程学院

计算机软件与理论研究所

2006年3月

前言

本书是本科生课程《C++语言程序设计》的配套实验指导书。

C++语言程序设计是一门实践性很强的课程,学习C++语言程序设计最重要的环节就是实践,而不可能仅仅通过阅读教科书或听课来掌握。

书中内容包括13个精心设计的实验,与《C++语言程序设计》课程的各章内容配合,每一个实验都包括“实验目的”、“实验要求”、“实验内容及实验步骤”和“思考题”几部分,使学生在实践中达到对教科书和课堂内容的深入理解和熟练掌握。

本书中的实验内容不仅可以指导学生上机练习,也可以由教师作为例题在课堂上演示,以丰富教学内容。

 

MicrosoftVisualC++6.0开发环境简介

DeveloperStudio是VisualC++6.0的核心部分,是MicrosoftWindows环境下的一个集成开发环境,集成了开发C++或C应用程序所需要的所有工具和C++编译器。

1主窗口

包括标题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、输出窗口和状态栏,如图1所示。

图1VisualC++6.0集成开发平台的主窗口

2菜单栏

包括以下菜单项:

File,Edit,View,Insert,Project,Build,Tools,Windows和Help。

3工具栏

默认时显示三个工具栏:

Standard,Build和WizardBar。

4采用项目开发应用程序

采用项目开发一个应用程序的一般步骤如下:

(1)创建一个项目,系统自动创建了应用程序所需的基本文件。

(2)采用工作区窗口建立项目中的类、文件和资源。

(3)将文件添加到项目中,或从项目中删除文件。

(4)编辑项目中的源代码和资源。

(5)连编项目。

(6)执行应用程序。

Exercise1熟悉语言及程序开发环境

1实验目的

熟悉MicrosoftVisualC++6.0集成开发环境,学习创建控制台应用程序项目、编辑源程序、编译和调试程序。

2实验要求

(1)熟悉程序开发环境

(2)编辑源程序

(3)编译并调试程序

3实验内容及实验步骤

3.1熟悉MicrosoftVisualStudio6.0的开发环境

(1)启动VisualC++6.0;

(2)用鼠标左键分别单击各主菜单项,观察各下拉菜单的项目内容;

(3)单击“文件>新建”,观察弹出的对话框;

(4)分别单击“新建”对话框的各选项卡,查看其中的内容;

(5)单击“结束”按钮,关闭对话框;

(6)单击“帮助>帮助目录”,熟悉帮助的内容和使用方法。

3.2编辑并调试下面的程序

3.2.1在VisualC++环境中编辑并调试下面的程序

(1)启动VisualC++6.0;

(2)向AppWizard提供关于新项目的有关信息:

(a)单击“文件>新建”,

(b)在“新建”对话框中:

∙单击“工程”选项卡;

∙在列表中选中“Win32ConsoleApplication”;

∙在名为“工程”的文本框中输入项目名“Time”

∙在“位置”文本框中设置项目的位置;

∙选择“创建新工作区”选项;

∙确认在“平台”列表框中选中了“Win32”;

∙单击“确定”按钮。

以上过程如图1.1所示。

(3)选择项目类型:

Anemptyproject。

(4)单击“完成”按钮。

(5)在开发环境的主窗口中单击“插入>新建类”,类型为“GenericClass”,名字为“TimeType”,单击“确定”。

见图1.2。

图1.1向AppWizard提供关于新项目的有关信息

图1.2新建类

(6)在左侧的“ClassView”中选择类“TimeType”,单击右键,选择“添加成员变量”,在弹出的对话框中填入变量hrs的类型和名称,见图1.3和图1.4;重复此过程,加入成员变量mins和secs。

图1.3选择类“TimeType”,单击右键

图1.4添加成员变量

(7)选择类“TimeType”,单击右键,选择“添加成员函数”,在弹出的对话框中填入函数Set的原型说明,并在代码编辑窗口中填入函数体的代码,见图1.5和图1.6;重复此过程,加入所有的成员函数。

图1.5添加成员函数

图1.6添加代码

(8)保存文件。

(9)单击“文件>新建”,在“新建”对话框的“文件”选项卡中选择“C++源文件”,名字为“diary”。

(10)在代码编辑窗口中写入代码,保存文件。

(11)编译和执行程序:

单击“编译>构件Time.exe”,或者按F7键,生成可执行文件Time.exe;单击“编译>执行Time.exe”,或者同时按下“Ctrl”和“F5”键,执行程序,查看运行结果。

3.2.2源程序:

(1)文件TimeType.h:

//“TimeType.h”

classTimeType{

public:

voidSet(inthours,intminutes,intseconds);

voidIncrement();

voidWrite()const;

boolEqual(TimeTypeotherTime)const;

boolLessThan(TimeTypeotherTime)const;

private:

inthrs;

intmins;

intsecs;

};

(2)文件TimeType.cpp:

//“TimeType.cpp”

#include“timetype.h”

#include

voidTimeType:

:

Set(inthours,intminutes,intseconds)

{

hrs=hours;

mins=minutes;

secs=seconds;

}

voidTimeType:

:

Increment()

{

secs++;

if(secs>59){

secs=0;

mins++;

if(mins>59){

mins=0;

hrs++;

if(hrs>23)hrs=0;

}

}

}

voidTimeType:

:

Write()const

{

if(hrs<10)cout<<‘0’;

cout<

’;

if(mins<10)cout<<‘0’;

cout<

’;

if(secs<10)cout<<‘0’;

cout<

}

boolTimeType:

:

Equal(TimeTypeotherTime)const

{

return(hrs==otherTime.hrs&&mins==otherTime.mins&&secs==otherTime.secs);

}

boolTimeType:

:

LessThan(TimeTypeotherTime)const

{

return(hrs

}

(3)文件Diary.cpp:

//Diary.cpp

#include

#include"TimeType.h"

intmain()

{

TimeTypetime;

inthours;

intminutes;

intseconds;

cout<<"Enteratime(usehours<0toquit):

";

cin>>hours>>minutes>>seconds;

while(hours>=0)

{

time.Set(hours,minutes,seconds);

time.Increment();

cout<<"Incrementedtimeis";

time.Write();

cout<

cout<<"Enteratime(usehours<0toquit):

";

cin>>hours>>minutes>>seconds;

}

return0;

}

4思考题

(1)如何启动MicrosoftVisualStudio6.0?

(2)如何用AppWizard新建一个控制台项目?

(3)如何新建一个类,并添加类的成员?

(4)如何编译和连接一个程序?

(5)如何执行一个程序?

(6)如何使用帮助?

Exercise2C++简单程序设计

1实验目的

(1)学会编写简单的C++程序。

(2)复习基本数据类型变量和常量的应用。

(3)复习运算符与表达式的应用。

(4)复习结构化程序设计基本控制结构的运用。

(5)复习自定义数据类型的应用。

(6)练习使用简单的输入输出。

(7)观察头文件的作用。

(8)学会使用VisualC++6.0开发环境中的debug调试功能:

单步执行、设置断点、观察变量值。

2实验要求

(1)输入并运行教材《C++语言程序设计》中的例题2-7,即:

用do-while语句编程,求自然数1~10之和。

程序正确运行之后,去掉源程序中#include语句,重新编译,观察会有什么问题。

(2)将do-while语句用for语句代替,完成相同的功能。

(3)编程计算图形的面积。

程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积的值后将其显示出来。

(4)使用debug调试功能观察任务3程序运行中变量值的变化情况。

(5)定义一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。

3实验内容及实验步骤

(1)建立一个控制台应用程序项目lab2_1,向其中添加一个C++源文件lab2_1.cpp(方法见实验1),输入教材《C++语言程序设计》中例2-7的代码,检查一下确认没有输入错误,选择菜单命令Build|Build1ab2_1.exe编译源程序,再选择Build|Execute运行程序,观察输出是否与教材中的答案一致。

(2)程序正确运行之后,在源程序第一行“#include”前面加注释标记“//”使之成为注释行,重新编译,查看此时编译器会输出什么样的提示。

现在,删除注释标记,将程序恢复正确。

(3)另建立一个项目lab2_2,包含一个C++源程序1ab2_2.cpp,将do-while语句用for语句代替,完成与实验任务1相同的功能。

(4)建立项目lab2_3,计算图形的面积。

圆形的面积计算公式为S=PI*r*r,长方形的面积计算公式为S=a*b,正方形的面积计算公式为S=a*a。

程序中定义一个整型变量iType表示图形的类型,用cout语句输出提示信息让用户选择图形的类型,用cin读入iType的值,然后,使用switch语句判断图形的类型,分别提示用户输入需要的参数值,计算出面积的值后用cout语句显示出来。

最后,编译运行程序。

(5)学习简单的debug调试功能,参考程序如下:

∥lab2_3.cpp

#include

constfloatPI=3.1416;

voidmain()

{

intiType;

floatradius,a,b,area;

COUt<<”图形的类型为?

(1为圆形,2为长方形,3为正方形):

”;

cin>>iType;

switch(iType)

{

case1:

cout<<”圆的半径为:

”;

cin>>radius;

area=PI*radius*radius;

cout<<”面积为:

”<

break;

case2:

cout<<”矩形的长为:

”;

cin>>a;

cout<<”矩形的宽为:

”;

cin>>b;

area=a*b;

cout<<”面积为:

”<

break;

case3:

cout<<”正方形的边长为:

”;

cin>>a;

area=a*a;

cout<<”面积为:

”<

break;

default:

cout<<"不是合法的输入值!

"<

}

1)首先在第10行处设置调试断点。

用鼠标右键单击源程序第10行左边的空白处,出现一个菜单,如图2.1所示。

图2.1插入断点

2)选择Insert|RemoveBreakpoint选项,可看到左边的边框上出现了一个褐色的圆点,这代表已经在这里设置了一个断点。

所谓断点就是程序运行时的暂停点,程序运行到断点处便暂停,这样我们就可以观察程序的执行流程,以及执行到断点处时有关变量的值。

3)然后选择菜单命令Build|StartDebug|Go,或按下快捷键F5,系统进入Debug(调试)状态,程序开始运行,一个DOS窗口出现,此时,VisualStudio的外观如图2.2所示,程序暂停在断点处。

图2.2调试状态

4)单步执行:

从Debug菜单或Debug工具栏中单击StepOver选项或按钮两次。

在程序运行的DOS窗口中输入选择的图形类型,例如,输入3,代表正方形,这时,回到VisualStudio中,把鼠标放在变量名iType上片刻,可看到出现了一个提示:

iType=3;此时,在Variables窗口中也可看到iType以及其他变量的值。

单步执行时每次执行一行语句,便于跟踪程序的执行流程。

因此为了调试方便,需要单步执行的语句不要与其它语句写在一行中。

5)在Watch窗口中,在Name栏中输入iType,按回车键,可看到Value栏中出现3,这是变量iType现在的值(如果没看到Variables窗口或Watch窗口,可通过View菜单的DebugWindows|Variables或DebugWindows|Watch选项打开它们)。

图2—3是此时Variables窗口和Watch窗口的状态。

6)继续执行程序,参照上述的方法,再试试Debug菜单栏中别的菜单项,熟悉Debug的各种方法。

(6)建立一个项目lab2_4,包含一个C++源程序lab2_4.cpp。

定义一个表示时间的结构体,有表示年、月、日、小时、分、秒的成员,可以使用short类型;在主程序中实现输入输出。

4思考题

(1)如何在集成环境中建立一个简单的C++程序?

(2)如何设置断点?

(3)如何单步运行一个程序?

(4)如何观察程序运行过程中某个变量的值?

Exercise3函数的应用

1实验目的

(1)掌握函数的定义和调用方法

(2)练习重载函数的使用。

(3)练习使用系统函数。

(4)学习使用VC++的debug调试功能,使用stepinto追踪到函数内部。

2实验要求

(1)编写一个函数把华氏温度转换为摄氏温度,转换公式如下

C=(F-32)*5/9

(2)编写重载函数Max1可分别求两个整数,三个整数,两个双精度数,三个双精度数的最大值。

(3)使用系统函数pow(x,y)计算xy的值,注意包含头文件math.h。

(4)用递归的方法编写函数求Fibonacci级数,观察递归调用的过程

3实验内容及实验步骤

(1)编写函数floatConvert(floatTempFer),参______________________________________________________________________________________________________________________________数和返回值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。

程序名:

lab3_1.cpp。

#include

usingnamespacestd;

floatConvert(floatF){

floatC;

C=(F-32)*5/9;

returnC;

}

voidmain(){

floatF;

cout<<"请输入一个华氏温度:

";

cin>>F;

cout<

cout<<"摄氏温度是:

"<

}

(2)分别编写四个同名函数max1,实现函数重载,在main()函数中测试函数功能。

程序名:

lab3_2.cpp

#include

usingnamespacestd;

intMaxl(inta,intb){

intmax1;

if(a>=b)max1=a;

elsemax1=b;

returnmax1;

}

intMaxl(inta,intb,intc){

intmax2;

if(a>=b){

if(b>=c)max2=a;

elseif(a>=c)max2=a;

elsemax2=c;

}

else{

if(b<=c)max2=c;

elsemax2=b;

}

returnmax2;

}

doubleMaxl(doublea,doubleb){

doublemax3;

if(a>=b)max3=a;

elsemax3=b;

returnmax3;

}

doubleMaxl(doublea,doubleb,doublec){

doublemax4;

if(a>=b){

if(b>=c)max4=a;

elseif(a>=c)max4=a;

elsemax4=c;

}

else{

if(b<=c)max4=c;

elsemax4=b;

}

returnmax4;

}

intmain(){

inta1,a2,b1,b2,b3;

cout<<"请输入两个整数:

";

cin>>a1>>a2;

cout<

cout<<"两个整数中最大的是:

"<

cout<<"请输入三个整数:

";

cin>>b1>>b2>>b3;

cout<

cout<<"三个整数中最大的是:

"<

doublec1,c2,d1,d2,d3;

cout<<"请输入两个双精度数:

";

cin>>c1>>c2;

cout<

cout<<"两个双精度数中最大的是:

"<

cout<<"请输入三个双精度数:

";

cin>>d1>>d2>>d3;

cout<

cout<<"三个双精度数中最大的是:

"<

return0;

}

(3)在main()函数中提示输入两个整数x、y,使用cin语句得到x、y的值,调用pow(x,y)函数计算x的y次幂的结果,再显示出来。

程序名:

lab3_4.cpp

调试(4)编写递归函数intfib(intn),在主程序中输入n的值,调用fib函数计算Fibonacci级数。

公式为fib(n)=fib(n-1)+fib(n-2),n>2;

fib

(1)=fib

(2)=1。

使用if语句判断函数的出口,在程序中用cout语句输出提示信息。

程序名:

lab3_5.cpp

(5)使用debug中的StepInto追踪到函数内部,观察函数的调用过程,参考程序如下:

//lab3_5

#include

intfib(intn);

intmain()

{

intn,answer;

cout<<”Enternumber:

”;

cin>>n;

cout<<”\n\n”;

answer=fib(n);

cout<

return0;

}

intfib(intn)

{

cout<<”Processingfib(“<

if(n<3)

{

cout<<”Reutrn1!

\n”;

return

(1);

}

else

{

cout<<”Callfib(“<

return(fib(n-2)+fib(n-1));

}

}

(6)调试操作步骤如下:

1)选择菜单命令Build|StartDebug|Stepin,或按下快捷键F11,系统进入单步执行状态,程序开始运行,并出现一个DOS窗口,此时VisualStudio中光标停在main()函数的入口处。

2)把光标移到语句answer=fib(n)前,从Debug菜单或Debug工具栏中单击RuntoCursor,在程序运行的DOS窗口中按提示输入数字3,这时回到VisualStudio中,光标停在第11行,观察一下n的值(观察方法见实验2)。

3)从Debug菜单或Debug工具栏中单击StepInto,程序进入fib函数,观察一下n的值,把光标移到语句return(fib(n-2)+fib(n-1))前,从Debug菜单或Debug工具栏中单击RuntoCursor,再单击StepInto,程序递归调用fib函数,又进入fib函数,观察一下n的值。

4)继续执行程序,参照上述的方法,观察程序的执行顺序,加深对函数调用和递归调用的理解。

5)再试试Debug菜单栏中的菜单项,熟悉Debug的各种方法。

4思考题

(1)如何利用系统函数来实现一些常用的功能?

(2)如何查找系统函数?

(3)如何实现函数重载?

(4)如何编写一个递归程序?

Exercise4类与对象

1实验目的

(1)掌握类的定义和使用。

(2)掌握类的定义和对象的声明。

(3)复习具有不同访问属性的成员的访问方式。

(4)观察构造函数和析构函数的执行过程。

(5)学习类的聚集使用方法。

(6)使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。

2实验要求

(1)定义一个CPU类,包含等级(rank)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2