实验1_2_C++简单程序设计

一、实验目的和要求

    1.  学会编写简单的C++程序。
    2. 复习基本数据类型变量和常量的应用。
    3. 复习运算符与表达式的应用。
    4. 复习结构化程序设计基本控制结构的运行。
    5. 复习自定义数据类型的应用。
    6. 练习使用简单的输入输出。
    7. 观察头文件的作用。
    8. 学会使用VC++6.0开发环境中的debug调试功能:单步执行、设置断点、观察变量值。

 

二、实验环境(软、硬件及条件)

一台安装有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 ;

}

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值