《实验一C“加”“加”开发环境与程序设计步骤_7.doc》由会员分享,可在线阅读,更多相关《实验一C“加”“加”开发环境与程序设计步骤_7.doc(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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 编辑源程序。编写C+源程序,并利用一个编辑器将源程序输入到计算机中的某一个文件中。C+源文件的扩展名为“.cpp。3 编译
2、程序。编译源程序,检查语法错误,生成目标代码文件。目标代码文件的扩展名为“.obj。4 连接程序。将一个或多个目标程序与库函数进行连接后,生成一个可执行文件。可执行文件的扩展名为“.exe。5 运行程序。执行可执行文件,分析运行结果。假设有算法错误,可进一步进行修改、编译、调试。在编译、连接和运行程序的过程中,都有可能出现各式各样的错误,要不断地修改源程序,重复以上过程,直到获得正确的结果为止。二Visual C+6.0上机操作方法Visual C+6.0系统包含了许多独立的组件,如编辑器、编译器、调试器以及各种各样为开发Windows环境下的C+程序而设计的工具。其中最重要的是一个名为Dev
3、eloper Studio的集成开发环境IDE。Developer Studio把所有的Visual C+工具结合在一起,集成为一个由窗口、对话框、菜单、工具栏、快捷键及宏组成的和谐系统,通过该集成环境,程序员可以观察和控制整个开发进程。使用Visual C+6.0调试C+程序要经过以下几个步骤:1. 启动Visual C+6.0系统启动Visual C+6.0系统有很多种方法,最常见的是通过鼠标单击“开始菜单,选择“程序,选择“Microsoft Visual Studio 6.0”,选择“Microsoft Visual C+ 6.0”启动Visual C+6.0。如果已经在桌面上建立了“
4、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主窗口。它分为几个局部:窗口顶部是菜单和工具栏,其中包括“File文件、“Edit编辑、“View视图、“Insert插入、“Project工程、“Build编译、连接和运行、“Tools工具、“Windows窗口、“Help帮助等菜单,分别对应一个下拉子菜单。左面的一个子窗口是工作区窗口,工作区
5、的右面是编辑子窗口。最下面是输出子窗口。除了各种对话框外,Developer Studio显示两种类型的窗口,即文档窗口和停靠窗口。文档窗口是一般的带边框子窗口,其中含有源代码文本或图形文档。Window子菜单中列出了在屏幕上以平铺方式还是以层叠方式显示文档窗口的命令。所有其他的Developer Studio窗口,包括工具栏和菜单栏,都是停靠式窗口。开发环境有两个主要的停靠窗口Workspace工作区窗口和Output输出窗口。另外还有一个Debugger调试器停靠窗口,只在调试过程中显示。停靠窗口可以固定在Developer Studio用户区的顶端、底端或侧面,或者浮动在屏幕上任何地方。
6、停靠窗口,不管是浮动着的或是固定着的,总是出现在文档窗口的上面。这样,就保证了当焦点从一个窗口移到另一个时,浮动的工具栏一直都是可见的。但这也意味着,文档窗口偶尔会看起来像消失了似的。例如,如果你正在文本编辑器中编辑源代码,此时翻开一个占据整个Developer Studio用户区的停靠窗口,源代码文档就会消失,它隐藏在新窗口之下。解决方法是要么关了覆盖的窗口,要么把它拖到不挡眼的地方去。值得注意的是,上述各种部件,包括子窗口、菜单栏和工具栏的位置不是一成不变的,可以根据个人的喜好重新安排。2. 创立工程文件通常都是使用工程的形式来控制和管理C+程序文件的,C+的工程中存放特定程序的全部信息,
7、包含源程序文件、库文件、建立程序所用的编译器和其他工具的清单。+的工程以工程文件的形式存储在磁盘上。图1.2 新建工程对话框图1.3 新建工程向导对话框生成工程的操作步骤为:1选择集成环境中的“File菜单中的“New命令,产生“New对话框,如图1.2所示。2选择对话框中的“Projects标签,以便生成新的工程。在产生新工程时,系统自动生成一个工程工作区,并将新的工程参加到该工程工作区中。3在工程类型清单中,选择“Win32 Console Application工程,表示要生成一个Windows 32位控制台应用程序的工程。4在“Location文本框中输入存放工程文件的文件夹路径,如“
8、C:DOCUMENTS AND SETTINGSYU YONG YAN桌面新建文件夹。5在“Project Name文本框中输入工程名。例如:Exe1_1。6检查“Platforms文件框中是否已显示“in 32”,表示要开发32位的应用程序。7单击“New对话框中的“OK按钮。产生一个对话框向导,如图1.3所示。选“An empty project,按下“Finish按钮,显示验证对话框,直接按“OK按钮,这时就产生了一个工程文件。系统自动加上文件扩展名“.dsw。3. 创立+源程序文件并将其参加到工程文件1选择“File菜单中的“New命令,那么产生“New对话框,如图1.4所示。图1.4
9、 新建文件对话框2选择对话框中的“Files标签。3在文件类型清单中,选择“C+ Source File工程,表示要生成一个+源程序。4在“File文本框中输入+源程序文件名。系统自动加上文件扩展名“.cpp。例如:Exe1_1_1.cpp。5假设“Add to project复选框没有选中,那么单击该复选框使其选中,表示系统要将指定的源程序文件参加到当前的工程文件中。6单击“OK按钮。这时就建立了一个新的+源程序文件,并已参加到了当前的工程文件中。产生如图1.5所示的窗口。该窗口有三个子窗口,左边的子窗口为工程工作区窗口;右边的子窗口为源程序编辑窗口,用于输入或编辑源程序;下边的窗口为信息输
10、出窗口,用来显示出错信息或调试程序的信息。4. 输入和编辑源程序在源程序编辑窗口输入例1.1中的源程序代码,如图1.5所示。5. 保存源程序文件选择“File菜单中的“Save命令,将源程序保存到相应的文件中。6. 编译和连接图1.5 Visual C+6.0工作窗口选择“Build菜单中的“Compile或“Build命令,将源程序编译或编译连接,产生可执行文件。系统自动加上文件扩展名“.exe。例如:Exe1_1_1.exe。在编译和连接期间,假设出现错误,那么在信息输出窗口给出错误或警告信息。改正错误后,重新编译或编译连接源程序,直到没有错误为止。7. 运行选择“Build菜单中的“Ex
11、ecute命令,那么在+集成环境的控制下运行程序。被启动的程序在控制台窗口下运行,与Windows中运行DOS程序的窗口类似。见以下图。图1.6 运行结果注意:也可以单击工具栏中的“!按钮(BuildExecute)或者按快捷键“Ctrl+F5”,直接编译与运行源程序。8. 翻开已存在的工程文件可用两种方法翻开已存在的工程文件:1选择“File菜单中的“Open workspace命令,然后在弹出的对话框中选择要翻开的工程文件。选择“File菜单中的“Recent workspaces命令,然后再选择相应的工程文件。特别提醒:在调试一个应用程序时,Visual C+集成环境一次只能翻开一个工程
12、文件。当一个程序调试完成后,要开始输入另一个程序时,必须先关闭当前的工程文件,然后为新源程序建立一个新的工程文件。否那么将出现不可预测的错误。关闭当前的工程文件的方法是:选择“File菜单中的“Close workspace命令。9. 退出Visual C+集成环境选择“File菜单中的“Exit命令,可以退出集成环境。三验证分析程序1设计一个C+程序,输出以下信息: *Hello! *解:# include void main() cout *n; cout Hello!n; cout *n;运行结果: *Hello! *2设计一个程序,从键盘输入一个圆的半径,求其周长和面积。解:# inc
13、lude void main() float s,r; cout请输入圆的半径:r; s=3.14159*r*r; cout 圆的面积为:sendl;运行结果:请输入圆的半径:5圆的面积为:78.5397四完成实验工程1. 设计一个程序,从键盘输入一个小写字母,将它转换成大写字母输出。2. 输入一个球的半径,求其外表积和体积。四、课后作业撰写实验报告。五、实验机时2个标准学时。实验二 数据类型、表达式和输入输出一、目的和要求1掌握C+语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符;2学会使用C+的有关算术运算符,以及包含这些运
14、算符的表达式,特别是自加和自减运算符的使用;3 进一步熟悉C+程序的编辑、编译、连接和运行的过程;4 掌握数据的输入输出方法。二、实验设备及分组1 Windows2000以上操作系统;2 Visual C+6.0语言环境;3 每人一台PC机。三、内容和步骤一验证分析程序1编写程序完成变量x和变量y值的交换,调试程序并观察运行结果。要交换变量x和变量y的值,可以借用临时变量z进行交换。一个完整的参考程序如下:#includevoid main()int x,y,z;/Acoutxy;cout输入的x=x y=y endl;z=x;x=y;y=z;cout输出的x=x y=y endl;思考:l
15、在键盘上分别按如下格式输入两组数据,并观察程序运行结果:5,3回车5 3回车l 将程序中的x,y,z命名为auto,break,case,观察是否出错?分析原因。l 只将程序A行x改为大写X,观察是否出错?分析原因。l 修改程序,用条件运算符输出两个数中的较大数。2编程序输入x、y和z的值,计算的值。表达式的值不一定为整数,故程序中变量的类型应采用实型。参考程序如下:#includevoid main()float x,y,z,e,f ,w;/Acoutx,y,z= xyz;e= (x+1)*(y-1);/Bf=x+y;/Cw=e/f;/Dcoutw=wendl;思考:l 输入x5.4,y3.
16、1,z2.7,观察程序运行结果。l 将程序中A行改为“int x,y,z,e,f,w ;,输入x5.4,y3.1,z2.7,观察程序运行结果。l 将程序中A行改为“float x,y,z,w;, B、C、D行改为“w=(x+1)*(y-1)/x+y;,观察程序运行结果。3编写程序,从键盘输入一个三位正整数,将其倒序输出。例如:输入861,输出为168。输入的三位数为整数,变量类型按整型进行处理。可采用求余数的方法计算各位上的数,然后逆序输出。参考程序如下:#includevoid main()int n,i,j,k; coutn;i=n%10;/i存放个位数n=(n-i)/10;/去掉个位数
17、j=n%10;/j存放十位数n=(n-j)/10;/去掉十位数k=n;/k存放百位数n=i*100+j*10+k;cout逆转数为:nendl;思考:l 修改程序,使其先取百位数,再取十位数,最后取个位数。4本例测试了不同数据类型之间的数据转换。分析以下程序的运行结果。#includevoid main()int a=32,b;double c=2.7,d;char e=D,f;b=a+c; /Ad=a+c; f=a+e;coutb=bendl;coutd=dendl;coutf=fendl; /B coutb+d+fa是否成立,假设不成立那么一定不能构成三角形;假设成立那么有可能构成三角形,
18、再判断b-ca是否成立。因b-c有可能小于0,用b-ca时不能准确描述两边之差小于第三边,需取绝对值进行分析。参考程序如下:#includevoid main()double a,b,c,t;cout请输入a的值a;cout请输入b的值b;cout请输入c的值c;t=b-c;if(ta)if(ta) cout能构成三角形endl;else cout不能构成三角形endl;else cout不能构成三角形a2+b2 时,为钝角三角形;当c2a2+b2 时,为锐角三角形。2某商店“五一长假期间购物打折。规那么如下:假设每位顾客一次购物, 满1000元,打九折; 满2000元,打八折; 满3000元
19、,打七折; 满4000元,打六折; 5000元,打五折;编写程序,输入购物款,输出实收款。解:本例使用了if-else if语句进行多重判断。参考程序如下:#includevoid main() double m,p; coutm; if(m1000)p=m; else if (m2000)p=0.9*m; else if(m3000) p=0.8*m; else if(m4000) p=0.7*m; else if(m5000) p=0.6*m; else p=0.5*m; cout实收款:pendl;3有以下分段函数:编一程序,输入x,输出y的值。解:程序如下:#include void
20、main() float x,y;coutx;if (x=0)if (x=10)y=x*x*x;elsey=x*x-5;elsey=x+1;couty=yendl;运行结果:Input x: -3y=-2二完成实验工程1设计一个程序,判断从键盘输入的整数的正负性和奇偶性。2编写程序,实现以下函数功能:3奖金税率如下:a代表奖金,r代表税率a500(元)r=0%500a1000r=3%1000a2000r=5%2000a5000r=8%a5000r=12%输入一个奖金数,求税率、应交税款及实得奖金数。3输入某一年的年份和月份,计算该月的天数。提示(1)一年中的大月(1月、3月、5月、7月、8月、
21、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、dowhile、for等语句格式、执行过程、使用方法及典型案例
22、。2学习循环结构的嵌套使用。3掌握分支与循环综合程序的编写方法;4学习并熟悉break、continue的区别与使用。5学会常用数值与图形的编程方法。二、实验设备及分组1 Windows2000以上操作系统;2 Visual C+6.0语言环境;3 每人一台PC机。三、内容和步骤一验证实验程序1计算:S=1+2+3+4+n。真假insum=sum+ii+开始输入nsum=0i=1输出sum结束图4.1 求累加和流程图解:程序流程图如图4.1所示,程序如下:#include void main() int i,n,sum; coutn; sum=0; i=1; while (i=n) sum=s
23、um+i; i+; coutsum=sumendl;运行结果: Input an integer:5 sum=152裴波那契数列的前几个数为1,1,2,3,5,8,其规律为:F1=1(n=1)F2=1(n=2)Fn=Fn-1+Fn-2 (n3)编写程序求此数列的前面40个数。分析:可设两个变量f1和f2,它们的初值为f1=1,即数列的第1项,f2=1,即数列的第2项,用一个循环结构来求数列的前40项,每次处理两项,所以共循环20次,进入循环后,首先输出f1、f2,然后令f1=f1+f2,即可求得第3项,再令f2=f2+f1,注意此时的f1已经是第3项了,所以可求得第4项;进入下一次循环时,首先
24、输出第3、4项,然后按上述方法求得第5、6项,以此类推即可求得前40项。解:#include #include void main() long int f1,f2; int i; f1=1;f2=1; for (i=1;i=20;i+) coutsetw(12)f1setw(12)f2; if (i%2=0)coutendl; f1=f1+f2; f2=f2+f1; 例中“if语句的作用是使在一行中输出4个数。运行结果: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 4
25、6368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 1023341553求出100200之间的所有素数,输出时一行打印五个素数。分析:判断一个数a是否为素数,只需将它整除以2取整即可,如果都不能整除,那么a就是素数。解:#include #include #include void main(void) int a,k,i,n; n=0; for (a=100;a=200;a+) k=sqrt(a); f
26、or (i=2;ik)/假设ik,那么i为素数 coutsetw(12)a; /输出素数 n=n+1;/对素数统计个数 if (n%5=0) coutendl; coutendl;程序运行后,输出,: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 1994编写程序用公式计算e的近似值。直到最后一项小于给定精度。分析:这是一个累加求和的问题,仔细分析各项,可以发现从第二项开始,各项的值为前一项除以序号n:解:#include void main()double e = 1.0,x =
27、 1.0,y,z;int n=1;coutz ;y=1/x ;while(y=z)x*=n;y=1/x;e+=y;+n; couteendl;思考:l 将程序中while结构改写为dowhile,观察程序的运行结果。l 增加“continue或“break语句,使程序在输入数据大于0.01时,显示“精度要求太低,请重新输入的提示。5有一对兔子,从第3个月起每个月生一对兔子,小兔子从第3个月起每个月又生一对兔子。假设所有兔子都不死,编程序计算每个月的兔子是多少对?求20个月。分析:从第3个月开始,下个月兔子的对数为本月兔子的对数与上月兔子对数之和。这样可得出该序列的规律是:从第3项开始,该项的值
28、为前两项之和。兔子数目的规律是: 1、1、2、3、5、8、13、21、。解:#include void main( ) int f1,f2,f3; int i; f1=f2=1; for(i=3;i=20;i+) /A f3=f1+f2; couti月兔子对数为:f3=3;i-)后,观察程序运行结果;l 画出本例的流程图。6编写程序打印如图4-2所示蝶形图形。分析:此图形为上下对称结构,用-33的整数标识行号i,那么每行字符“B的个数可表示为6*|i|+1。每行字符“B前空格的个数随着|i|的增大而减少,空格的个数要大于0。解:BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
29、BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB图4-2 蝶形# include void main()int i,j,k,d; for(i=-3;i=3;i+)coutendl;d=i;if (i0) d=-i;for (j=1;j=10-3*d;j+)cout ;for (k=1;k=6*d+3;k+)coutB;coutendl; 思考:l 将程序中的“for(j=1;j=10-3*d;j+)用“for(j=1;j=30-3*d;j+)改写后,观察程序运行结果。l 将程序中的“for(i=-3;i=3;i+)用“fo
30、r(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 void main()int a=0; /Adoa+;couta=a1);思考:l 将条件while(a1)改为while(a),分别观察输出结果。l 将A语句改为a=-10,while(a1)改为while(a),计算循环执行的次数。8从键盘输入任意多个整数-999为结束标志,计算其中正数之和。分析:采用转向语句break和
31、continue实现。break在循环体中用于退出本层循环;continue用于结束本次循环。解:#include void main()int x,s=0;while(1)cinx;if (x=-999) break; /Aif (x0) continue; /Bs=s+x;couts=sendl;思考:l 交换A行和B行的位置,观察程序运行结果。l 修改程序“输入任意多个整数-999为结束标志为“直到包含20个正数时,计算正数之和。二完成实验工程1编程序打印一个如图4-3所示的数字金字塔:图4-3 数字金字塔2输入一行字符,分别统计出其中英文字母、空格、数字字符、其它字符及单词的个数。3设
32、有一个数列,它的前四项为0、0、2、5,以后每项分别是其前四项之和,编程求此数列的前20项。4求近似值的公式为:其中,n=1、2、3设计一个程序,求出当n=1000时的的近似值。5求出1599中能被3整除,且至少有一位数字为5的所有整数。如15、51、513均是满足条件的整数。四、课后作业1. 设用100元钱买100支笔,其中钢笔每支3元,圆珠笔每支2元,铅笔每支0.5元,问钢笔、圆珠笔和铅笔可以各买多少支每种笔至少买1支? 2. 撰写实验报告。五、实验机时2个标准学时。实验五 数组一、目的和要求1. 掌握一维数组、二维数组、字符数组的定义、初始化赋值、数组元素的引用方法;2. 掌握求最大、小
33、值、平均值、排序的方法以及有序数组的查找、增加、删除的编程方法;3. 初步掌握字符串处理函数的使用方法以及字符串复制、连接、测长等程序的编写方法;4. 掌握数组的典型应用。二、实验设备及分组1 Windows2000以上操作系统;2 Visual C+6.0语言环境;3 每人一台PC机。三内容和步骤一验证实验程序1应用一维数组,对10个数进行冒泡排序,使其按照从大到小的顺序输出。分析:n个数冒泡排序的方法是将第一个数与其后面的数逐个进行比拟,发现大者进行交换,完成后最大的数就放到了第一个的位置;第二个数与其后面的数逐个进行比拟,发现大者进行交换,完成后次大的数就放到了第二个的位置;如此循环,直到第n-1个数与第n个数进行比拟,发现大者进行交换。解:#include void main()int a10;