C++上机实验题目及解答.docx

上传人:b****6 文档编号:6327642 上传时间:2023-01-05 格式:DOCX 页数:74 大小:213.26KB
下载 相关 举报
C++上机实验题目及解答.docx_第1页
第1页 / 共74页
C++上机实验题目及解答.docx_第2页
第2页 / 共74页
C++上机实验题目及解答.docx_第3页
第3页 / 共74页
C++上机实验题目及解答.docx_第4页
第4页 / 共74页
C++上机实验题目及解答.docx_第5页
第5页 / 共74页
点击查看更多>>
下载资源
资源描述

C++上机实验题目及解答.docx

《C++上机实验题目及解答.docx》由会员分享,可在线阅读,更多相关《C++上机实验题目及解答.docx(74页珍藏版)》请在冰豆网上搜索。

C++上机实验题目及解答.docx

C++上机实验题目及解答

实验一C++开发环境与程序设计步骤

一、目的和要求

1. 学习VisualC++6.0集成环境,掌握源程序编辑方法;

2. 掌握在VisualC++6.0集成开发环境中编译、调试与运行程序的方法;

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

二、实验设备及分组

1. Windows2000以上操作系统;

2. VisualC++6.0语言环境;

3. 每人一台PC机。

三、内容和步骤

(一)C++程序设计步骤

一个C++程序的设计可分成5个步骤:

1. 分析问题。

根据实际问题,分析需求,确定解决方法。

2. 编辑源程序。

编写C++源程序,并利用一个编辑器将源程序输入到计算机中的某一个文件中。

C++源文件的扩展名为“.cpp”。

3. 编译程序。

编译源程序,检查语法错误,生成目标代码文件。

目标代码文件的扩展名为“.obj”。

4. 连接程序。

将一个或多个目标程序与库函数进行连接后,生成一个可执行文件。

可执行文件的扩展名为“.exe”。

5. 运行程序。

执行可执行文件,分析运行结果。

若有算法错误,可进一步进行修改、编译、调试。

在编译、连接和运行程序的过程中,都有可能出现各式各样的错误,要不断地修改源程序,重复以上过程,直到获得正确的结果为止。

 

(二)VisualC++6.0上机操作方法

VisualC++6.0系统包含了许多独立的组件,如编辑器、编译器、调试器以及各种各样为开发Windows环境下的C++程序而设计的工具。

其中最重要的是一个名为DeveloperStudio的集成开发环境(IDE)。

DeveloperStudio把所有的VisualC++工具结合在一起,集成为一个由窗口、对话框、菜单、工具栏、快捷键及宏组成的和谐系统,通过该集成环境,程序员可以观察和控制整个开发进程。

使用VisualC++6.0调试C++程序要经过以下几个步骤:

1.                    启动VisualC++6.0系统

启动VisualC++6.0系统有很多种方法,最常见的是通过鼠标单击“开始”菜单,选择“程序”,选择“MicrosoftVisualStudio6.0”,选择“MicrosoftVisualC++6.0”启动VisualC++6.0。

如果已经在桌面上建立了“MicrosoftVisualC++6.0”图标,则也可用鼠标双击该图标启动VisualC++6.0。

VisualC++6.0启动成功后,就产生如图1.1所示的VisualC++集成环境。

图1.1典型的DeveloperStudio窗口

图1.1显示了一个典型的DeveloperStudio主窗口。

它分为几个部分:

窗口顶部是菜单和工具栏,其中包括“File(文件)”、“Edit(编辑)”、“View(视图)”、“Insert(插入)”、“Project(项目)”、“Build(编译、连接和运行)”、“Tools(工具)”、“Windows(窗口)”、“Help(帮助)”等菜单,分别对应一个下拉子菜单。

左面的一个子窗口是工作区窗口,工作区的右面是编辑子窗口。

最下面是输出子窗口。

除了各种对话框外,DeveloperStudio显示两种类型的窗口,即文档窗口和停靠窗口。

文档窗口是一般的带边框子窗口,其中含有源代码文本或图形文档。

Window子菜单中列出了在屏幕上以平铺方式还是以层叠方式显示文档窗口的命令。

所有其他的DeveloperStudio窗口,包括工具栏和菜单栏,都是停靠式窗口。

开发环境有两个主要的停靠窗口――Workspace(工作区)窗口和Output(输出)窗口。

另外还有一个Debugger(调试器)停靠窗口,只在调试过程中显示。

停靠窗口可以固定在DeveloperStudio用户区的顶端、底端或侧面,或者浮动在屏幕上任何地方。

停靠窗口,不论是浮动着的或是固定着的,总是出现在文档窗口的上面。

这样,就保证了当焦点从一个窗口移到另一个时,浮动的工具栏一直都是可见的。

但这也意味着,文档窗口偶尔会看起来像消失了似的。

例如,如果你正在文本编辑器中编辑源代码,此时打开一个占据整个DeveloperStudio用户区的停靠窗口,源代码文档就会消失,它隐藏在新窗口之下。

解决方法是要么关了覆盖的窗口,要么把它拖到不挡眼的地方去。

值得注意的是,上述各种部件,包括子窗口、菜单栏和工具栏的位置不是一成不变的,可以根据个人的喜好重新安排。

2.                    创建项目文件

通常都是使用项目的形式来控制和管理C++程序文件的,C++的项目中存放特定程序的全部信息,包含源程序文件、库文件、建立程序所用的编译器和其他工具的清单。

C++的项目以项目文件的形式存储在磁盘上。

图1.2新建项目对话框

图1.3新建项目向导对话框

生成项目的操作步骤为:

(1)选择集成环境中的“File”菜单中的“New”命令,产生“New”对话框,如图1.2所示。

(2)选择对话框中的“Projects”标签,以便生成新的项目。

在产生新项目时,系统自动生成一个项目工作区,并将新的项目加入到该项目工作区中。

(3)在项目类型清单中,选择“Win32ConsoleApplication”项目,表示要生成一个Windows32位控制台应用程序的项目。

(4)在“Location”文本框中输入存放项目文件的文件夹路径,如“C:

\DOCUMENTSANDSETTINGS\YUYONGYAN\桌面\新建文件夹”。

(5)在“ProjectName”文本框中输入项目名。

例如:

Exe1_1。

(6)检查“Platforms”文件框中是否已显示“Win32”,表示要开发32位的应用程序。

(7)单击“New”对话框中的“OK”按钮。

产生一个对话框向导,如图1.3所示。

选“Anemptyproject”,按下“Finish”按钮,显示验证对话框,直接按“OK”按钮,这时就产生了一个项目文件。

系统自动加上文件扩展名“.dsw”。

3.                    创建C++源程序文件并将其加入到项目文件

(1)选择“File”菜单中的“New”命令,则产生“New”对话框,如图1.4所示。

图1.4新建文件对话框

(2)选择对话框中的“Files”标签。

(3)在文件类型清单中,选择“C++SourceFile”项目,表示要生成一个C++源程序。

(4)在“File”文本框中输入C++源程序文件名。

系统自动加上文件扩展名“.cpp”。

例如:

Exe1_1_1.cpp。

(5)若“Addtoproject”复选框没有选中,则单击该复选框使其选中,表示系统要将指定的源程序文件加入到当前的项目文件中。

(6)单击“OK”按钮。

这时就建立了一个新的C++源程序文件,并已加入到了当前的项目文件中。

产生如图1.5所示的窗口。

该窗口有三个子窗口,左边的子窗口为项目工作区窗口;右边的子窗口为源程序编辑窗口,用于输入或编辑源程序;下边的窗口为信息输出窗口,用来显示出错信息或调试程序的信息。

4.                    输入和编辑源程序

在源程序编辑窗口输入例1.1中的源程序代码,如图1.5所示。

5.                    保存源程序文件

选择“File”菜单中的“Save”命令,将源程序保存到相应的文件中。

6.                    编译和连接

图1.5VisualC++6.0工作窗口

选择“Build”菜单中的“Compile”或“Build”命令,将源程序编译或编译连接,产生可执行文件。

系统自动加上文件扩展名“.exe”。

例如:

Exe1_1_1.exe。

在编译和连接期间,若出现错误,则在信息输出窗口给出错误或警告信息。

改正错误后,重新编译或编译连接源程序,直到没有错误为止。

7.                    运行

选择“Build”菜单中的“Execute”命令,则在VC++集成环境的控制下运行程序。

被启动的程序在控制台窗口下运行,与Windows中运行DOS程序的窗口类似。

见下图。

图1.6运行结果

注意:

也可以单击工具栏中的“!

”按钮(BuildExecute)或者按快捷键“Ctrl+F5”,直接编译与运行源程序。

8.                    打开已存在的项目文件

可用两种方法打开已存在的项目文件:

(1)选择“File”菜单中的“Openworkspace”命令,然后在弹出的对话框中选择要打开的项目文件。

(2)选择“File”菜单中的“Recentworkspaces”命令,然后再选择相应的项目文件。

特别提醒:

在调试一个应用程序时,VisualC++集成环境一次只能打开一个项目文件。

当一个程序调试完成后,要开始输入另一个程序时,必须先关闭当前的项目文件,然后为新源程序建立一个新的项目文件。

否则将出现不可预测的错误。

关闭当前的项目文件的方法是:

选择“File”菜单中的“Closeworkspace”命令。

9.                    退出VisualC++集成环境

选择“File”菜单中的“Exit”命令,可以退出集成环境。

(三)验证分析程序

1.设计一个C++程序,输出以下信息:

***************

Hello!

***************

解:

#include

voidmain()

{

cout<<"***************"<<'\n';

cout<<"Hello!

"<<'\n';

cout<<"***************"<<'\n';

}

运行结果:

***************

Hello!

***************

2.设计一个程序,从键盘输入一个圆的半径,求其周长和面积。

解:

#include

voidmain()

{

floats,r;

cout<<"请输入圆的半径:

"<

cin>>r;

s=3.14159*r*r;

cout<<"圆的面积为:

" <

}

运行结果:

请输入圆的半径:

5

圆的面积为:

78.5397

(四)完成实验项目

1.        设计一个程序,从键盘输入一个小写字母,将它转换成大写字母输出。

2.        输入一个球的半径,求其表面积和体积。

四、课后作业

撰写实验报告。

 五、实验机时

2个标准学时。

实验二数据类型、表达式和输入输出

一、目的和要求

1.掌握C++语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符;

2.学会使用C++的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(——)运算符的使用;

3. 进一步熟悉C++程序的编辑、编译、连接和运行的过程;

4. 掌握数据的输入输出方法。

二、实验设备及分组

1. Windows2000以上操作系统;

2. VisualC++6.0语言环境;

3. 每人一台PC机。

三、内容和步骤

(一)验证分析程序

1.编写程序完成变量x和变量y值的交换,调试程序并观察运行结果。

要交换变量x和变量y的值,可以借用临时变量z进行交换。

一个完整的参考程序如下:

#include

voidmain()

{

intx,y,z;//A

cout<<"x,y=";

cin>>x>>y;

cout<<"输入的x="<

z=x;

x=y;

y=z;

cout<<"输出的x="<

}

思考:

●        在键盘上分别按如下格式输入两组数据,并观察程序运行结果:

5,3(回车)

53(回车)

●        将程序中的x,y,z命名为auto,break,case,观察是否出错?

分析原因。

●        只将程序A行x改为大写X,观察是否出错?

分析原因。

●        修改程序,用条件运算符输出两个数中的较大数。

2.编程序输入x、y和z的值,计算

的值。

表达式

的值不一定为整数,故程序中变量的类型应采用实型。

参考程序如下:

#include

voidmain()

{

floatx,y,z,e,f,w;//A

cout<<"x,y,z="<

cin>>x>>y>>z;

e=(x+1)*(y-1);//B

f=x+y;//C

w=e/f;//D

cout<<"w="<

}

思考:

●        输入x=5.4,y=3.1,z=2.7,观察程序运行结果。

●        将程序中A行改为“intx,y,z,e,f,w;”,输入x=5.4,y=3.1,z=2.7,观察程序运行结果。

●        将程序中A行改为“floatx,y,z,w;”,B、C、D行改为“w=(x+1)*(y-1)/x+y;”,观察程序运行结果。

3.编写程序,从键盘输入一个三位正整数,将其倒序输出。

例如:

输入861,输出为168。

输入的三位数为整数,变量类型按整型进行处理。

可采用求余数的方法计算各位上的数,然后逆序输出。

参考程序如下:

#include

voidmain()

{

intn,i,j,k;

cout<<"输入一个三位正整数n:

";

cin>>n;

i=n%10;//i存放个位数

n=(n-i)/10;//去掉个位数

j=n%10;//j存放十位数

n=(n-j)/10;//去掉十位数

k=n;//k存放百位数

n=i*100+j*10+k;

cout<<"逆转数为:

"<

}

思考:

●        修改程序,使其先取百位数,再取十位数,最后取个位数。

4.本例测试了不同数据类型之间的数据转换。

分析下列程序的运行结果。

#include

voidmain()

{

inta=32,b;

doublec=2.7,d;

chare='D',f;

b=a+c;//A

d=a+c;

f=a+e;

cout<<"b="<

cout<<"d="<

cout<<"f="<

cout<

}

思考:

●        修改程序A行,对b的输出值四舍五入。

●        修改程序B行,按整型值输出f。

●        分析C行数据的值的类型。

(二)完成实验项目

1.        输入二整数a、b,实现二个数的交换(不借用第三变量)。

2.        从键盘输入三角形的三边长,输出三角形的周长和面积(此处假设可以构成三角形)。

3.        编写程序输入两个整数,输出它们的商和余数。

四、课后作业

1.        从键盘输入一个三位整数n=abc,从左到右用a、b、c表示各位的数字,现要求依次输出从右到左的各位数字,即输出另一个三位数m=cba,例如:

输入123,输出321。

(不得采用实验中已使用过的方法)

2.        撰写实验报告。

 五、实验机时

2个标准学时。

实验三选择结构的程序设计

一、目的和要求

1.        掌握VisualC++6.0集成环境中的单步执行;

2.        熟悉if与switch语句的格式、执行过程、使用方法及典型案例;

3.        学会使用选择结构解决一般的实际问题,能编写简单的应用程序。

二、实验设备及分组

1. Windows2000以上操作系统;

2. VisualC++6.0语言环境;

3. 每人一台PC机。

三、内容和步骤

(一)验证分析程序

1.由键盘输入三个数,判断能否构成三角形。

分析:

判断b+c>a是否成立,若不成立则一定不能构成三角形;若成立则有可能构成三角形,再判断b-c

因b-c有可能小于0,用b-c

参考程序如下:

#include

voidmain()

{

doublea,b,c,t;

cout<<"请输入a的值"<

cin>>a;

cout<<"请输入b的值"<

cin>>b;

cout<<"请输入c的值"<

cin>>c;

t=b-c;

if(t<0)

t=-t;

if(b+c>a)

{

if(t

cout<<"能构成三角形"<

else

cout<<"不能构成三角形"<

}

else

cout<<"不能构成三角形"<

}

思考:

●        将程序改为非嵌套的if语句实现。

●        在程序中增加语句,使其在能构成三角形的情况下进一步判断三角形的类型(直角、钝角、锐角三角形)。

提示:

三角形的类型由最长边所对的角决定。

假定三角形最长边为c,其所对的角为θ。

其他两边为a、b。

计算公式如下:

例如,

当c2=a2+b2时,为直角三角形;

当c2>a2+b2时,为钝角三角形;

当c2

2.某商店“五·一”长假期间购物打折。

规则如下:

若每位顾客一次购物,

①    满1000元,打九折;

②    满2000元,打八折;

③    满3000元,打七折;

④    满4000元,打六折;

⑤    5000元,打五折;

编写程序,输入购物款,输出实收款。

解:

本例使用了if-elseif语句进行多重判断。

参考程序如下:

#include

voidmain()

{

doublem,p;

cout<<"输入购物款:

";

cin>>m;

if(m<1000)p=m;

elseif(m<2000)p=0.9*m;

elseif(m<3000)p=0.8*m;

elseif(m<4000)p=0.7*m;

elseif(m<5000)p=0.6*m;

elsep=0.5*m;

cout<<"实收款:

"<

}

 

3.有下列分段函数:

 编一程序,输入x,输出y的值。

解:

程序如下:

#include

voidmain()

{

floatx,y;

cout<<"Inputx:

";

cin>>x;

if(x>=0)

if(x>=10)

y=x*x*x;

else

y=x*x-5;

else

y=x+1;

cout<<"y="<

}

运行结果:

Inputx:

-3

y=-2

(二)完成实验项目

1.设计一个程序,判断从键盘输入的整数的正负性和奇偶性。

2.编写程序,实现下列函数功能:

3.已知奖金税率如下:

(a代表奖金,r代表税率)

a<500(元)r=0%

500≤a<1000r=3%

1000≤a<2000r=5%

2000≤a<5000r=8%

a≥5000r=12%

输入一个奖金数,求税率、应交税款及实得奖金数。

3.输入某一年的年份和月份,计算该月的天数。

提示

(1)一年中的大月(1月、3月、5月、7月、8月、10月、12月),每月的天数为31天;

(2)一年中的小月(4月、6月、9月、11月),每月的天数为30天;

(3)对于2月,则要判断该年是平年还是闰年,平年的2月为28天,闰年的2月为29天。

某年符合下面两个条件之一就是闰年:

①年份能被400整除;

②年份能被4整除,但不能被100整除。

4.输入平面直角坐标系中一点的坐标值(x,y),判断该点是在那一个象限中或那一条坐标轴上。

四、课后作业

1.        设计一个计算器,可以实现简单的四则运算;

2.        撰写实验报告。

 五、实验机时

2个标准学时。

实验四循环结构的程序设计

一、目的和要求

1.掌握循环结构while、do-while、for等语句格式、执行过程、使用方法及典型案例。

2.学习循环结构的嵌套使用。

3.掌握分支与循环综合程序的编写方法;

4.学习并熟悉break、continue的区别与使用。

5.学会常用数值与图形的编程方法。

二、实验设备及分组

1. Windows2000以上操作系统;

2. VisualC++6.0语言环境;

3. 每人一台PC机。

三、内容和步骤

(一)验证实验程序

1.计算:

S=1+2+3+4+…+n。

解:

程序流程图如图4.1所示,程序如下:

#include

voidmain()

{

inti,n,sum;

cout<<"Inputaninteger:

";

cin>>n;

sum=0;

i=1;

while(i<=n)

{

sum=sum+i;

i++;

}

cout<<"sum="<

}

运行结果:

Inputaninteger:

5

sum=15 

2.裴波那契数列的前几个数为1,1,2,3,5,8,……,其规律为:

F1=1(n=1)

F2=1(n=2)

Fn=Fn-1+Fn-2(n≥3)

编写程序求此数列的前面40个数。

分析:

可设两个变量f1和f2,它们的初值为f1=1,即数列的第1项,f2=1,即数列的第2项,用一个循环结构来求数列的前40项,每次处理两项,所以共循环20次,进入循环后,首先输出f1、f2,然后令f1=f1+f2,即可求得第3项,再令f2=f2+f1,注意此时的f1已经是第3项了,所以可求得第4项;进入下一次循环时,首先输出第3、4项,然后按上述方法求得第5、6项,以此类推即可求得前40项。

解:

#include

#include

voidmain()

{

longintf1,f2;

inti;

f1=1;f2=1;

for(i=1;i<=20;i++)

{

cout<

if(i%2

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

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1