一、实验目的和要求
|
二、实验环境(软、硬件及条件) 一台安装有Visual C++ 6.0的计算机 |
三、实验步骤 1.建立一个控制台应用项目Lab2,向其中添加一个C++源文件Lab2.cpp,编译、编辑、运行程序,观察输出结果是否正确。Lab2.cpp示例代码如下: #include<iostream.h> void main() { int i(1), sum(0); //此句与int i=1,sum=0;等价 do { sum+=i; i++; } while(i<=100); cout<<"sum="<<sum<<endl; } 2.程序正确运行之后,在源程序第一行” #include<iostream.h>”前面加注释标记”//”使之成为注释行,重新编译,会出现错误提示。这是因为C++语言本身没有输入/输入语句,只是C++编译系统带有一个面向对象的I/O流类库。cout和cin是这个类库预定义的流对象,#include<iostream.h>指示编译器在对程序进行预处理时,将头文件iostream.h中的代码嵌入到该程序中该指令所在的地方,文件iostream.h中声明了程序所需要的输入和输出操作的有关信息。注意:在C++程序中如果使用了系统中提供了一些功能,就必须包含相关的头文件,否则,系统无法找到实现这些函数功能的代码。 删除注释标识后,恢复程序正确。 3.另建立一个项目(必须如此,如果只是在项目Lab1中添加一个C++源程序Lab2.cpp,编译成可执行程序时会出错)Lab2,包含一个C++源程序Lab2.cpp,将do-while语句用for语句代替,来完成与实验任务1相同的功能。Lab2.cpp示例代码如下: #include<iostream.h> void main() { int i, sum=0; for(i=1; i<=100; i++) sum+=i; cout << "sum=" << sum << endl; } 4.另建立一个项目Lab3,包含一个C++源程序Lab3.cpp,计算并显示表达式1-2+3-4…+99-100的值。Lab3.cpp示例代码如下: #include<iostream.h> void main() { int i, sum=0,flag=1; for(i=1; i<=100; i++) { sum+=i*flag; flag=flag*-1; } cout << "sum=" << sum << endl; } 5.建立项目Lab4,包含一个C++源程序Lab4.cpp,计算图形的面积。圆的面积公式为S=PI*r*r,长方形的面积公式为S=a*b,正方形的面积公式为S=a*a。程序中定义一个整形变量iType表示图形的类型,用cout语句输出提示信息让用户选择图形的类型,用cin读入iType的值,然后,使用switch语句判断图形的类型,分别提示用户输入需要的参数值,计算出面积的值后用cout语句显示。最后,编译运行程序。Lab4.cpp示例代码如下: #include <iostream.h> const float PI = 3.1416; void main() { int iType; float radius, a, b, area; cout << "图形的类型为?(1-圆形 2-长方形 3-正方形):"; cin >> iType; switch(iType) { case 1: cout << "圆的半径为:"; cin >> radius; area = PI * radius * radius; cout<<"面积为:"<<area<<endl; break; case 2: cout << "矩形的长为:"; cin >> a; cout << "矩形的宽为:"; cin >> b; area = a * b; cout<<"面积为:"<<area<<endl; break; case 3: cout << "正方形的边长为:"; cin >> a; area = a * a; cout<<"面积为:"<<area<<endl; break; default: cout << "不是合法的输入值!"<<endl; } } 6.通过对Lab4.cpp进行跟踪分析,学习简单的debug调试功能。说明:源程序编写完成后,可能有两类错误,一类是语法错误,这可以在编译连接阶段由编译系统发现并指出错误位置与信息,用户分析这些信息修改这类错误;另一类是运行错误,往往表现为运行结果与预期的不一致,甚至运行中止或发生死机,要寻找这类错误的位置与原因,从而排除错误,就需要对程序进行运行时调试,这可以通过设置断点、单步运行、观察变量和表达式的值等方式实现。 1)在Lab4.cpp中语句cout << "图形的类型为?(1-圆形 2-长方形 3-正方形):"处设置调试断点。用鼠标右键单击该行左边的空白处,将出现一个菜单(如图1所示),选择Insert|Remove Breakpoint选项,可看到左边出现了一个褐色的圆点,表示已经在这里设置了一个断点。所谓断点就是程序运行时的暂停点,程序运行到断点处便暂停,这样我们可以观察程序的执行流程,以及执行到该断点处时有关变量的值。 图1 添加断点 2)然后选择菜单命令Build|Start Debug|Go,或按下快捷键F5,系统进入调试状态,程序开始运行,并出现一个DOS窗口,此时,Visual Studio的外观如图2所示,程序暂停在断点处。 3)单步执行:从Debug菜单单击Step Over,或按下快捷键F10两次。在程序运行的DOS窗口中输入选择的图形类型,例如,输入3。回到Visual Studio中,把鼠标放在变量名iType上片刻,可以看到出现了一个提示:iType=3;此时,在Variables窗口中也可看到iType以及其他变量的值。注意:单步执行时每次执行一行语句,便于跟踪程序的执行流程。因此为了调试方便,需要单步执行的语句不要与其他语句写在一行中。 4)在watch窗口中,在Name栏中输入iType,按回车键,可看到Value栏中出现3,这是变量iType现在的值(如果没有看到Variable窗口或Watch窗口,可通过View菜单的Debug Windows|Variable或Debug Windows|Watch选项打开它们)。图3是此时Variables窗口和Watch窗口的状态。 图2 状态下的Visual Studio 图3 Varibles窗口和Watch窗口的状态 5)继续执行程序,参照上述的方法,再试试Debug菜单栏中别的菜单项,熟悉Debug的各种方法。 7.建立一个项目Lab5,包含一个C++源程序Lab5.cpp。定义一个表示时间的结构体,有表示年、月、日、小时、分、秒的成员,可以使用short类型;在主程序中实现输入输出。 |
四、实验中遇到的问题及解决 1.上学期学过的do -while语句不是记得很牢,需要看一下书复习一下才可以很好地利用。 2.在实验中需要用到调试来寻找错误,来找到自己的错误。 |
实验结果及分析 1. 3. #include<iostream> using namespace std; void main() {int i=1,sum=0; do{i+=1; sum+=i; }while(i<=100); cout<<"sum="<<sum<<endl; } 4. #include<iostream> using namespace std; int main() { int i, sum,flag; i=0,sum=0,flag=1; do {i+=1; sum+=i*flag; flag=flag*(-1); }while(i<=100); cout << "sum=" << sum << endl; }*/ 7. #include<iostream> using namespace std; struct{ int year; int month; int day; int hour; int minute; int second; } time; int main() { cout << "请依次输入年、月、日、时、分、秒:"<<endl; cin >> time.year>> time.month >>time.day >>time.hour >>time.minute >> time.second ; cout<<time.year << " 年 " << time.month << " 月 " << time.day << " 日 " << time.hour << " 时 " << time.minute << " 分 " << time.second << " 秒" << endl ; return 0 ; }
|
实验1_2_C++简单程序设计
最新推荐文章于 2023-05-29 12:14:15 发布