C++实验报告.docx
- 文档编号:3086692
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:30
- 大小:282.12KB
C++实验报告.docx
《C++实验报告.docx》由会员分享,可在线阅读,更多相关《C++实验报告.docx(30页珍藏版)》请在冰点文库上搜索。
C++实验报告
面向对象程序设计
实验报告
姓名:
XX
学院:
XXX
班级:
XXX
学号:
XXX
实验二:
简单程序设计
1、实验目的
1.学会编写简单的C++程序。
2.练习使用简单的输入输出。
3.观察头文件的作用。
4.学会使用VC++6.0的DEBUG调试程
2、实验内容
1.输入并运行教材《C++语言程序设计》中的例题2-7,即:
用do-while语句编程,求自然数1~10之和。
程序正确运行之后,去掉源程序中的#include语句,重新编译,观察会有什么问题。
2.do-while语句用for语句代替,完成相同的功能。
3.程计算图形的面积。
程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积后将其显示出来。
a)使用debug调试功能观察程序运行中变量值的变化情况。
b)定义一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。
3、实验步骤
(1)例题2-7
#include
usingnamespacestd;
voidmain()
{
inti
(1),sum(0);
do
{
sum+=i;
i++;
}
while(i<=10);
cout<<"sum="< } (2)用FOR语句代替 #include usingnamespacestd; voidmain() {inti (1),sum(0); for(i;i<=10,i++) { sum+=i; } cout<<"sum="< } (3)计算图形面积: #include usingnamespacestd; constfloatpi=3.1416; voidmain() { intitype; floatradius,a,b,area; cout<<"图形的类型是: 1: 圆形2: 长方形3: 正方形"; cin>>itype; switch(itype) { case1: cout<<"圆的半径是: "; cin>>radius; area=pi*radius*radius; cout<<"面积是: "< break; case2: cout<<"矩形的长,宽分别为"; cin>>a>>b; cout<<"面积为: "< break; case3: cout<<"正方形的边长是"; cin>>a; cout<<"面积是"< break; defaut: cout<<"不是合法的输入"< } } 时间的结构体: #include usingnamespacestd; structriqi { intyear; intmon; intday; inthour; intminut; intsecond; }; voidmain() { riqia; cout<<"输入时间日期"< cout<<"输入年份"< cin>>a.year; cout<<"输入月份"< cin>>a.mon; cout<<"输入日期"< cin>>a.day; cout<<"输入小时"< cin>>a.hour; cout<<"输入分钟"< cin>>a.minut; cout<<"输入秒"< cin>>a.second; cout<<"时间是: "<<< "< "< } [实验结果] 运行结果: sum=55 去掉#include后出现四个错误 errorC2143: syntaxerror: missing';'before'<' errorC2065: 'cout': undeclaredidentifier errorC2297: '<<': illegal,rightoperandhastype'char[5]' errorC2065: 'endl': undeclaredidentifier 实验三、函数的应用(2学时) 1、实验目的: 掌握函数的定义和调用方法。 练习重载函数使用。 练习函数模板的使用 练习使用系统函数。 2、实验任务: 编写一个函数把华氏温度转换为摄氏温度,转换公式为: C=(F-32)*5/9。 编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。 使用重函数模板重新实现上小题中的函数Max1。 使用系统函数pow(x,y)计算xy的值,注意包含头文件math.h。 用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。 3、实验步骤与结果 编写函数floatConvert(floatTempFer),参数的返回值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。 程序名为lab3_1.cpp. 分别编写四个同名函数max1,实现函数重载,在main()函数中测试函数功能。 程序名: lab3_2.cpp。 使用函数模板实现求任意类型数的最大值,针对不同的参数个数,编写两个同名函数模板max1,其参数个数不同,实现函数重载,在main()函数中测试函数的功能。 和序名: lab3_3.cpp。 在main()函数中提示输入两个整数x,y,使用cin语句得到x,y的值,调用pow(x,y)函数计算x的y次幂的结果,再显示出来。 程序名: lab3_4.cpp。 编写递归函数intfib(intn),在主程序中输入n的值,调用fib函数计算Fibonacci级数。 公式为fib(n)=fib(n-1)+fib(n-2),n>2;fib (1)=fib (2)=1。 使用if语句判断函数的出口,在程序中用cout语句输出提示信息。 程序名: lab3_5.cpp。 7)调试操作步骤如下: 选择菜单命令Build|StartDebug|StepIn,系统进入单步执行状态,程序开始运行,并出现一个DOS窗口,此时光标停在main()函数的入口处。 把光标移到语句answer=fib(n)前,从Debug菜单单击RunToCursor,在程序运行的DOS窗口中按提示输入数字10,这时回到可视界面中,光标停在第11行,观察一下n的值。 从Debug菜单中单击StepInto,程序进入fib函数,观察一下n的值,把光标移到语句return(fib(n-2)+fib(n-1))前,从Debug菜单单击RuntoCursor,再单击StepInto,程序递归调用fib函数,又进入fib函数,观察n的值。 继续执行程序,参照上述的方法,观察程序的执行顺序,加深对函数调用和递归调用的理解。 再试试Debug菜单栏中的别的菜单项,熟悉Debug的各种方法。 4、实验原理 C++中函数的重载使得同样的函数名下,只要参数类型、数目不同时,即可根据输入的数据进行相应的函数调用,使用起来简单方便。 5、思考与体会 C++中,函数的运用与之前学过的C语言既有相同之处,也有着不同的地方。 相同的地方在于格式、用法等框架上的不变。 但是C语言中对于同样的函数名是只能够申明一种函数的,倘若有相同的函数名出现系统即会报错,所以用起来有时是极为不便的。 而C++中,函数的多态性与重载使得这一缺点得以补偿。 在对于不同的元素或对象进行同一种操作时,可以使用同样的函数名,只是对于形参类型的不同,虽然是调用的不同的函数,但是只要形参的个数、类型不同,是允许同名函数的存在的。 这对于编程与审阅都是很方便的。 6、部分参考代码 lab3_1: #include //转换公式 floatConvert(floatTempFer){ floatcon; con=(TempFer-32)*5/9.0; returncon; } //主函数 voidmain(void){ floatTem; cout<<"请输入华氏温度: "< cin>>Tem; cout<<"摄氏温度为: "< } Lab3_2: #include //参数为两个整形的函数 intmax1(inta,intb){ a=a>b? a: b; returna; } //参数为三个整形的函数 intmax1(inta,intb,intc){ a=a>b? a: b; a=a>c? a: c; returna; } //参数为两个双精度浮点形的函数 intmax1(doublea,doubleb){ a=a>b? a: b; returna; } //参数为三个双精度浮点形的函数 intmax1(doublea,doubleb,doublec){ a=a>b? a: b; a=a>c? a: c; returna; } voidmain(void){ inta; doubleb; a=max1(1,2); cout< a=max1(3,9,5);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 实验 报告