1、实验一 C++开发环境与程序设计步骤 一、目的和要求 1. 学习Visual C++6.0集成环境,掌握源程序编辑方法; 2. 掌握在Visual C++6.0集成开发环境中编译、调试与运行程序的方法; 3. 通过运行简单的C++程序,初步了解C++源程序的特点。 二、实验设备及分组 1. Windows2000以上操作系统; 2. Visual C++6.0语言环境; 3. 每人一台PC机。 三、内容和步骤 (一)C++程序设计步骤 一个C++程序的设计可分成5个步骤: 1. 分析问题。根据实际问题,分析需求,确定解决方法。 2. 编辑源程序。编写
2、C++源程序,并利用一个编辑器将源程序输入到计算机中的某一个文件中。C++源文件的扩展名为“.cpp”。 3. 编译程序。编译源程序,检查语法错误,生成目标代码文件。目标代码文件的扩展名为“.obj”。 4. 连接程序。将一个或多个目标程序与库函数进行连接后,生成一个可执行文件。可执行文件的扩展名为“.exe”。 5. 运行程序。执行可执行文件,分析运行结果。若有算法错误,可进一步进行修改、编译、调试。 在编译、连接和运行程序的过程中,都有可能出现各式各样的错误,要不断地修改源程序,重复以上过程,直到获得正确的结果为止。 (二)Visual C++6.0上机操作方法 Vis
3、ual C++6.0系统包含了许多独立的组件,如编辑器、编译器、调试器以及各种各样为开发Windows环境下的C++程序而设计的工具。其中最重要的是一个名为Developer Studio的集成开发环境(IDE)。Developer Studio把所有的Visual C++工具结合在一起,集成为一个由窗口、对话框、菜单、工具栏、快捷键及宏组成的和谐系统,通过该集成环境,程序员可以观察和控制整个开发进程。 使用Visual C++6.0调试C++程序要经过以下几个步骤: 1. 启动Visual C++6.0系统 启动Visual C++6.0系统有很
4、多种方法,最常见的是通过鼠标单击“开始”菜单,选择“程序”,选择“Microsoft Visual Studio 6.0”,选择“Microsoft Visual C++ 6.0”启动Visual C++6.0。如果已经在桌面上建立了“Microsoft Visual C++ 6.0”图标,则也可用鼠标双击该图标启动Visual C++6.0。Visual C++6.0启动成功后,就产生如图1.1所示的Visual C++集成环境。 图1.1 典型的Developer Studio窗口 图1.1显示了一个典型的Developer Studio主窗口。它分为几个部分:窗口顶部是菜单和工
5、具栏,其中包括“File(文件)”、“Edit(编辑)”、“View(视图)”、“Insert(插入)”、“Project(项目)”、“Build(编译、连接和运行)”、“Tools(工具)”、“Windows(窗口)”、“Help(帮助)”等菜单,分别对应一个下拉子菜单。左面的一个子窗口是工作区窗口,工作区的右面是编辑子窗口。最下面是输出子窗口。 除了各种对话框外,Developer Studio显示两种类型的窗口,即文档窗口和停靠窗口。文档窗口是一般的带边框子窗口,其中含有源代码文本或图形文档。Window子菜单中列出了在屏幕上以平铺方式还是以层叠方式显示文档窗口的命令。所有其他的Dev
6、eloper Studio窗口,包括工具栏和菜单栏,都是停靠式窗口。 开发环境有两个主要的停靠窗口――Workspace(工作区)窗口和Output(输出)窗口。另外还有一个Debugger(调试器)停靠窗口,只在调试过程中显示。 停靠窗口可以固定在Developer Studio用户区的顶端、底端或侧面,或者浮动在屏幕上任何地方。停靠窗口,不论是浮动着的或是固定着的,总是出现在文档窗口的上面。这样,就保证了当焦点从一个窗口移到另一个时,浮动的工具栏一直都是可见的。但这也意味着,文档窗口偶尔会看起来像消失了似的。例如,如果你正在文本编辑器中编辑源代码,此时打开一个占据整个Developer
7、 Studio用户区的停靠窗口,源代码文档就会消失,它隐藏在新窗口之下。解决方法是要么关了覆盖的窗口,要么把它拖到不挡眼的地方去。 值得注意的是,上述各种部件,包括子窗口、菜单栏和工具栏的位置不是一成不变的,可以根据个人的喜好重新安排。 2. 创建项目文件 通常都是使用项目的形式来控制和管理C++程序文件的,C++的项目中存放特定程序的全部信息,包含源程序文件、库文件、建立程序所用的编译器和其他工具的清单。C++的项目以项目文件的形式存储在磁盘上。 图1.2 新建项目对话框 图1.3 新建项目向导对话框 生成项目的操作步骤为:
8、1)选择集成环境中的“File”菜单中的“New”命令,产生“New”对话框,如图1.2所示。 (2)选择对话框中的“Projects”标签,以便生成新的项目。在产生新项目时,系统自动生成一个项目工作区,并将新的项目加入到该项目工作区中。 (3)在项目类型清单中,选择“Win32 Console Application”项目,表示要生成一个Windows 32位控制台应用程序的项目。 (4)在“Location”文本框中输入存放项目文件的文件夹路径,如“C:\DOCUMENTS AND SETTINGS\YU YONG YAN\桌面\新建文件夹”。 (5)在“Project Name
9、文本框中输入项目名。例如:Exe1_1。 (6)检查“Platforms”文件框中是否已显示“Win 32”,表示要开发32位的应用程序。 (7)单击“New”对话框中的“OK”按钮。产生一个对话框向导,如图1.3所示。 选“An empty project”,按下“Finish”按钮,显示验证对话框,直接按“OK”按钮,这时就产生了一个项目文件。系统自动加上文件扩展名“.dsw”。 3. 创建C++源程序文件并将其加入到项目文件 (1)选择“File”菜单中的“New”命令,则产生“New”对话框,如图1.4所示。 图1.4 新建文件
10、对话框 (2)选择对话框中的“Files”标签。 (3)在文件类型清单中,选择“C++ Source File”项目,表示要生成一个C++源程序。 (4)在“File”文本框中输入C++源程序文件名。系统自动加上文件扩展名“.cpp”。例如:Exe1_1_1.cpp。 (5)若“Add to project”复选框没有选中,则单击该复选框使其选中,表示系统要将指定的源程序文件加入到当前的项目文件中。 (6)单击“OK”按钮。这时就建立了一个新的C++源程序文件,并已加入到了当前的项目文件中。产生如图1.5所示的窗口。 该窗口有三个子窗口,左边的子窗口为项目工作区窗口;右边的子窗口为
11、源程序编辑窗口,用于输入或编辑源程序;下边的窗口为信息输出窗口,用来显示出错信息或调试程序的信息。 4. 输入和编辑源程序 在源程序编辑窗口输入例1.1中的源程序代码,如图1.5所示。 5. 保存源程序文件 选择“File”菜单中的“Save”命令,将源程序保存到相应的文件中。 6. 编译和连接 图1.5 Visual C++6.0工作窗口 选择“Build”菜单中的“Compile”或“Build”命令,将源程序编译或编译连接,产生可执行文件。系统自动加上
12、文件扩展名“.exe”。例如:Exe1_1_1.exe。 在编译和连接期间,若出现错误,则在信息输出窗口给出错误或警告信息。改正错误后,重新编译或编译连接源程序,直到没有错误为止。 7. 运行 选择“Build”菜单中的“Execute”命令,则在VC++集成环境的控制下运行程序。被启动的程序在控制台窗口下运行,与Windows中运行DOS程序的窗口类似。见下图。 图1.6 运行结果 注意:也可以单击工具栏中的“!”按钮(BuildExecute)或者按快捷键“Ctrl+F5”,直接编译与运行源程序。 8.
13、 打开已存在的项目文件 可用两种方法打开已存在的项目文件: (1)选择“File”菜单中的“Open workspace”命令,然后在弹出的对话框中选择要打开的项目文件。 (2)选择“File”菜单中的“Recent workspaces”命令,然后再选择相应的项目文件。 特别提醒:在调试一个应用程序时,Visual C++集成环境一次只能打开一个项目文件。当一个程序调试完成后,要开始输入另一个程序时,必须先关闭当前的项目文件,然后为新源程序建立一个新的项目文件。否则将出现不可预测的错误。 关闭当前的项目文件的方法是:选择“File”菜单中的“Close workspace”
14、命令。
9. 退出Visual C++集成环境
选择“File”菜单中的“Exit”命令,可以退出集成环境。
(三)验证分析程序
1.设计一个C++程序,输出以下信息:
***************
Hello!
***************
解:
# include
15、<'\n';
}
运行结果:
***************
Hello!
***************
2.设计一个程序,从键盘输入一个圆的半径,求其周长和面积。
解:
# include 16、 设计一个程序,从键盘输入一个小写字母,将它转换成大写字母输出。
2. 输入一个球的半径,求其表面积和体积。
四、课后作业
撰写实验报告。
五、实验机时
2个标准学时。
实验二 数据类型、表达式和输入输出
一、目的和要求
1.掌握C++语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符;
2.学会使用C++的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(——)运算符的使用;
3. 进一步熟悉C++程序的编辑、编译、连接和运行的过程;
4. 掌握数据的输入输出 17、方法。
二、实验设备及分组
1. Windows2000以上操作系统;
2. Visual C++6.0语言环境;
3. 每人一台PC机。
三、内容和步骤
(一)验证分析程序
1.编写程序完成变量x和变量y值的交换,调试程序并观察运行结果。
要交换变量x和变量y的值,可以借用临时变量z进行交换。
一个完整的参考程序如下:
#include 20、输入x=5.4,y=3.1,z=2.7,观察程序运行结果。
l 将程序中A行改为“float x,y,z,w;”, B、C、D行改为“w=(x+1)*(y-1)/x+y;”,观察程序运行结果。
3.编写程序,从键盘输入一个三位正整数,将其倒序输出。例如:输入861,输出为168。
输入的三位数为整数,变量类型按整型进行处理。可采用求余数的方法计算各位上的数,然后逆序输出。参考程序如下:
#include 21、in>>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<<"逆转数为:"< 22、in()
{
int a=32,b;
double c=2.7,d;
char e='D',f;
b=a+c; //A
d=a+c;
f=a+e;
cout<<"b="< 23、数据的值的类型。
(二)完成实验项目
1. 输入二整数a、b,实现二个数的交换(不借用第三变量)。
2. 从键盘输入三角形的三边长,输出三角形的周长和面积(此处假设可以构成三角形)。
3. 编写程序输入两个整数,输出它们的商和余数。
四、课后作业
1. 从键盘输入一个三位整数n=abc,从左到右用a、b、c表示各位的数字,现要求依次输出从右到左的各位数字,即输出另一个三位数m=cba,例如:输入123,输出321。(不得采用实验中已使用过的方法)
2. 撰写实验报告。
五、实验机时
2个标准学时 24、
实验三 选择结构的程序设计
一、目的和要求
1. 掌握Visual C++6.0集成环境中的单步执行;
2. 熟悉if 与switch语句的格式、执行过程、使用方法及典型案例;
3. 学会使用选择结构解决一般的实际问题,能编写简单的应用程序。
二、实验设备及分组
1. Windows2000以上操作系统;
2. Visual C++6.0语言环境;
3. 每人一台PC机。
三、内容和步骤
(一)验证分析程序
1.由键盘输入三个数,判断能否构成三角形。
分析:
判断b+c>a是否成立,若不成立则一定不能构成三 25、角形;若成立则有可能构成三角形,再判断b-c
void main()
{
double a,b,c,t;
cout<<"请输入a的值"< 26、t<<"能构成三角形"< 27、 28、) p=m;
else if (m<2000)p=0.9*m;
else if(m<3000) p=0.8*m;
else if(m<4000) p=0.7*m;
else if(m<5000) p=0.6*m;
else p=0.5*m;
cout<<"实收款:"<
void main()
{
float x,y;
cout<<"Input x 29、";
cin>>x;
if (x>=0)
if (x>=10)
y=x*x*x;
else
y=x*x-5;
else
y=x+1;
cout<<"y="< 30、8%
a≥5000 r=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),判断该点是在那一个象限中或那一条坐标 31、轴上。
四、课后作业
1. 设计一个计算器,可以实现简单的四则运算;
2. 撰写实验报告。
五、实验机时
2个标准学时。
实验四 循环结构的程序设计
一、目的和要求
1.掌握循环结构while、do-while、for等语句格式、执行过程、使用方法及典型案例。
2.学习循环结构的嵌套使用。
3.掌握分支与循环综合程序的编写方法;
4.学习并熟悉break、continue的区别与使用。
5.学会常用数值与图形的编程方法。
二、实验设备及分组
1. Windows2000以上操作系统;
2. Visual C++6.0语言环境 32、
3. 每人一台PC机。
三、内容和步骤
(一)验证实验程序
1.计算:S=1+2+3+4+…+n。
真
假
i≤n
sum=sum+i
i++
开始
输入n
sum=0
i=1
输出sum
结束
图4.1 求累加和流程图
解:
程序流程图如图4.1所示,程序如下:
#include 33、n;
sum=0;
i=1;
while (i<=n)
{
sum=sum+i;
i++;
}
cout<<"sum="< 34、值为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 35、or (i=1;i<=20;i++)
{
cout< 36、 34 55 89 144
233 377 610 987
1597 2584 4181 6765
10946 17711 28657 46368
75025 121393 196418 317811
514229 832040 134 37、6269 2178309
3524578 5702887 9227465 14930352
24157817 39088169 63245986 102334155
3.求出100~200之间的所有素数,输出时一行打印五个素数。
分析:判断一个数a是否为素数,只需将它整除以2~(取整)即可,如果都不能整除,则a就是素数。
解:
#include 38、
int a,k,i,n;
n=0;
for (a=100;a<=200;a++)
{
k=sqrt(a);
for (i=2;i<=k;i++)
if (a%i==0)
break;
if (i>k) //若i>k,则i为素数
{
cout< 39、out< 40、191 193 197
199
4.编写程序用公式计算e的近似值。直到最后一项小于给定精度。
分析:这是一个累加求和的问题,仔细分析各项,可以发现从第二项开始,各项的值为前一项除以序号n:
解:
#include 41、e+=y;
++n;
}
cout< 42、为前两项之和。
兔子数目的规律是:
1、1、2、3、5、8、13、21、……。
解:
#include 43、f1=f2;
f2=f3;
}
}
思考:
l 将程序A行中改写为“for(i=20;i>=3;i--)”后,观察程序运行结果;
l 画出本例的流程图。
6.编写程序打印如图4-2所示蝶形图形。
分析:此图形为上下对称结构,用-3~3的整数标识行号i,则每行字符“B”的个数可表示为6*|i|+1。每行字符“B”前空格的个数随着|i|的增大而减少,空格的个数要大于0。
解:
BBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBB
BBBBBBBBB
BBB
BBBBBBBBB
BBBBBBBBBBB 44、BBBB
BBBBBBBBBBBBBBBBBBBBB
图4-2 蝶形
# include 45、10-3*d;j++)”用“for(j=1;j<=30-3*d;j++)”改写后,观察程序运行结果。
l 将程序中的“for(i=-3;i<=3;i++)”用“for(i=-10;i<=10;i++)”改写后,观察程序运行结果。
l 将程序中的“for (k=1;k<=6*d+3;k++)”用“for (k=1;k<=10*d+3;k++)”改写后,观察程序运行结果。
7.将下列do-while结构修改为while结构,分别观察输出结果。
#include 46、 //A
do
{
a++;
cout<<"a="<1);
}
思考:
l 将条件while(a>1)改为while(a),分别观察输出结果。
l 将A语句改为a=-10,while(a>1)改为while(a),计算循环执行的次数。
8.从键盘输入任意多个整数(-999为结束标志),计算其中正数之和。
分析:采用转向语句break和continue实现。break在循环体中用于退出本层循环;continue用于结束本次循环。
解:
#in 47、clude 48、3所示的数字金字塔:
图4-3 数字金字塔
2.输入一行字符,分别统计出其中英文字母、空格、数字字符、其它字符及单词的个数。
3.设有一个数列,它的前四项为0、0、2、5,以后每项分别是其前四项之和,编程求此数列的前20项。
4.求π近似值的公式为:
其中,n=1、2、3…设计一个程序,求出当n=1000时的π的近似值。
5.求出1~599中能被3整除,且至少有一位数字为5的所有整数。如15、51、513均是满足条件的整数。
四、课后作业
1. 设用100元钱买100支笔,其中钢笔每支3元,圆珠笔每支2元,铅笔每支0.5元,问钢笔、圆珠笔和铅笔可以 49、各买多少支(每种笔至少买1支)?
2. 撰写实验报告。
五、实验机时
2个标准学时。
实验五 数组
一、目的和要求
1. 掌握一维数组、二维数组、字符数组的定义、初始化赋值、数组元素的引用方法;
2. 掌握求最大、小值、平均值、排序的方法以及有序数组的查找、增加、删除的编程方法;
3. 初步掌握字符串处理函数的使用方法以及字符串复制、连接、测长等程序的编写方法;
4. 掌握数组的典型应用。
二、实验设备及分组
1. Windows2000以上操作系统;
2. Visual C++6 50、0语言环境;
3. 每人一台PC机。
三内容和步骤
(一)验证实验程序
1.应用一维数组,对10个数进行冒泡排序,使其按照从大到小的顺序输出。
分析:n个数冒泡排序的方法是将第一个数与其后面的数逐个进行比较,发现大者进行交换,完成后最大的数就放到了第一个的位置;第二个数与其后面的数逐个进行比较,发现大者进行交换,完成后次大的数就放到了第二个的位置;如此循环,直到第n-1个数与第n个数进行比较,发现大者进行交换。
解:
#include






