面向对象程序设计实验指导书(共13页)_第1页
面向对象程序设计实验指导书(共13页)_第2页
面向对象程序设计实验指导书(共13页)_第3页
面向对象程序设计实验指导书(共13页)_第4页
面向对象程序设计实验指导书(共13页)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上实验一 实验日期 年 月 日 实验目的 :了解C+开发工具的特点,熟悉C+开发环境,学习用C+编写标准的C+程序; 实验内容 :使用C+来建立一个非图形化的标准C+程序,编译、运行下例程序: #include <iostream.h> void main(void) cout<<”Hello!n”; cout<<”Welcome to C+!n”; 实验原理和步骤 :(1) 启动Visual C+或C+Builder开发环境(2) 创建一个项目A) 单击File菜单中的New选项,显示示新建对话框B) 选择Console Wizar

2、d(C+Builder) 或Win32 Console Application(VC+)。C) 选择项目所在路径及输入项目的名称D) 依次按下一步直至完成为止。(3) 至此,C+Builder已经建立好工程相关的文件(请不要随意更改其自动生成的文件),在生成的main函数中写入必要的内容即可。(4) 对于VC,请继续下面的步骤:A) 建立C+源程序文件a)选选菜单命令Project|Add to Project|New,弹出New对话框b)在New对话框的Files选项卡中选择C+ Source File,并填入文件名称,单击OK按钮,完成新建C+源程序文件B) 编辑C+源程序文件a) 在文件

3、编辑窗口中输入代码b) 完成后,选择菜单File|Save保存这个文件C) 建立并运行可执行程序a) 选择菜单命令Build,建立可执行程序如果你正确输入了源程序,此时便成功地生成了可执行程序。如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源程序进行修改后,重新选择菜单命令Build建立可执行程序。b) 选择菜单命令Run,运行程序,观察屏幕显示内容。D) 关闭工作空间选择菜单命令File|Colse WorkSpace关闭工作空间。 实验结果 :#include <iostream>using namespace std;int main() cou

4、t<<”Hello!n”; cout<<”Welcome to C+!n”; 实验总结 :这个实验是个基础,他让我初步了解了C+以及它的运行环境工具。实验中开始对iostream.h与iostream之间的不同不了解导致错误。这次实验让我学会了C+的基本格式,以后实验前要先对实验进行初步了解。实验二 实验日期 年 月 日 实验目的 :学会编写简单的C+程序,练习使用简单的输入输出,观察头文件的作用,学会使用VC+ 6.0的DEBUG调试程序。 实验内容 :(1)输入并运行教材C+语言程序设计中的例题2-7,即:用do-while语句编程,求自然数110之和。程序正确运行

5、之后,去掉源程序中的#include语句,重新编译,观察会有什么问题。(2) do-while语句用for语句代替,完成相同的功能。(3) 程计算图形的面积。程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积后将其显示出来。a) 使用debug调试功能观察程序运行中变量值的变化情况。b) 定义一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。 实验原理和步骤 :(1) 建立一个控制台应用程序项目lab

6、2_1,向其中添加一个C+源文件lab2_1.cpp,输入教材C+语言程序设计中例2-7的代码,检查一下确认没有输入错误,选择菜单命令编译源程序,再选择Execute运行程序,观察输出是否与教材中的答案一致。(2) 建立项目lab2_3,计算图形面积。圆形的面积计算公式为S=PI*r*r,长方形的面积计算公式为S=a*b,正方形的面积市场计算公式为S=a*a。程序中定义一个整型变量iType表示图形的类型,用cout语句输出提示信息让用户选择图形的型,用cin读入iType的值,然后,使用switch语句判断图形的类型,分别提示用户输入需要的参数值,计算出面积的值后用cout语句显示出来。最后

7、编译运行程序。(3)定义一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来 实验结果 :(1) #include<iostream>using namespace std;int main()int i=1,sum=0;do sum+=i;i+;while(i<=10);cout<<"sum="<<sum<<endl;return 0;运行出错,无法进行正常运作。 (2) #include<iostream>using namespace

8、std;int main()int i,sum=0; for(i=1;i<=10;)sum+=i;i+;cout<<"sum="<<sum<<endl;return 0;(3) #include<iostream>using namespace std;const float PI=3.1416;int main()int iType;float r,a,b,S;cout<<"图形的类型(1-圆2-长方形3-正方形):"cin>>iType;switch(iType)case

9、1: cout<<"r="cin>>r;S=PI*r*r;cout<<"S="<<S<<endl;break;case 2: cout<<"a="cin>>a;cout<<"b="cin>>b;S=a*b;cout<<"S="<<S<<endl;break;case 3: cout<<"a="cin>>a;S=

10、a*a;cout<<"S="<<S<<endl;break;default :cout<<"不是合法的输入值!"<<endl;return 0;(4)#include<iostream>using namespace std;struct timeint year,month,day,hour,minute,second;int main()struct time t;cout<<"输入相应 year,month,day,hour,minute,second:&

11、quot;<<endl;cin>>t.year>>t.month>>t.day>>t.hour>>t.minute>>t.second;cout<<t.year<<"-"<<t.month<<"-"<<t.day<<"-"<<t.hour<<"-"<<t.minute<<"-"<<t

12、.second<<endl;return 0; 实验总结 :这次试验我初步学会了一些基本的C+知识,输入输出以及将C语言的知识运用到C+上实现一些基本程序的编写,了解了头文件的作用。另外我还学会了运行工具中的调试工具。总体说来,这实验学到了基础方便以后的学习。要学会区分C语言与C+之间的区别与相同之处。实验三 实验日期 年 月 日 实验目的 :掌握函数的定义和调用方法,练习重载函数使用,练习函数模板的使用,练习使用系统函数。 实验内容 :(1)编写一个函数把华氏温度转换为摄氏温度,转换公式为:C=(F-32)*5/9。(2)编写重载函数Max1可分别求取两个整数,三个整数,两个双精

13、度数,三个双精度数的最大值。(3)使用重函数模板重新实现上小题中的函数Max1。(4)使用系统函数pow(x,y)计算xy的值,注意包含头文件math.h。a) 用递归的方法编写函数求Fibonacci级数,观察递归调用的过程。 实验原理和步骤 :1) 编写函数float Convert(float TempFer),参数的返回值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。程序名为lab3_1.cpp.2) 分别编写四个同名函数max1,实现函数重载,在main()函数中测试函数功能。程序名:lab3_2.cpp。3) 使用函数模板实现求任意类型数

14、的最大值,针对不同的参数个数,编写两个同名函数模板max1,其参数个数不同,实现函数重载,在main()函数中测试函数的功能。和序名:lab3_3.cpp。4) 在main()函数中提示输入两个整数x,y,使用cin语句得到x,y的值,调用pow(x,y)函数计算x的y次幂的结果,再显示出来。程序名:lab3_4.cpp。5) 编写递归函数int fib(int n),在主程序中输入n的值,调用fib函数计算Fibonacci级数。公式为fib(n)=fib(n-1)+fib(n-2),n>2;fib(1)=fib(2)=1。使用if语句判断函数的出口,在程序中用cout语句输出提示信息

15、。程序名:lab3_5.cpp。6) 使用debug中的Step Info追踪到函数的内部,观察函数的调用过程,参考程序如下:/lab3_5#include <iostream.h>int fib(int n);int main() int n,answer; cout<<”Enter number:”; cin>>n; cout <<”nn”; answer=fib(n); cout<<answer<<”is the “<<n<<”th Fibonnaci numbern”; return 0;i

16、nt fib(int n) if(n<3) return 1; else return fib(n-2)+fib(n-1); 7)调试操作步骤如下:i. 选择菜单命令Build|Start Debug |Step In,系统进入单步执行状态,程序开始运行,并出现一个DOS窗口,此时光标停在main()函数的入口处。 ii. 把光标移到语句answer=fib(n)前,从Debug菜单单击Run To Cursor,在程序运行的DOS窗口中按提示输入数字10,这时回到可视界面中,光标停在第11行,观察一下n的值。iii. 从Debug菜单中单击Step Into,程序进入fib函数,观察一

17、下n的值,把光标移到语句return(fib(n-2)+fib(n-1)前,从Debug菜单单击Run to Cursor,再单击Step Into,程序递归调用fib函数,又进入fib函数,观察n的值。iv. 继续执行程序,参照上述的方法,观察程序的执行顺序,加深对函数调用和递归调用的理解。v. 再试试Debug菜单栏中的别的菜单项,熟悉Debug的各种方法。 实验结果 :(1)#include <iostream>using namespace std;float Convert(float TempFer)float C;C=(TempFer-32)*5/9;return C

18、;float Convert(float TempFer);int main() float F,C;cout<<"输入华氏温度="<<endl;cin>>F;Convert(F);C=Convert(F);cout<<"相应的摄氏度="<<C<<endl;(2)#include<iostream>using namespace std;int Max1(int a,int b)if (a>b) return a ;elsereturn b ;int Max1(in

19、t a,int b,int c) int d=Max1(a,b);if (c>d) return c ;elsereturn d;double Max1(double a,double b) if (a>b) return a ;elsereturn b ;double Max1(double a,double b,double c) double d=Max1(a,b);if (c>d) return c ;elsereturn d; int main()int a,b,c;double e,f,g; cout<<"输入二个整数"<&l

20、t;endl; cin>>a>>b; cout<<Max1(a,b)<<endl; cout<<"输入三个整数"<<endl; cin>>a>>b>>c; cout<<Max1(a,b,c)<<endl; cout<<"输入二个双精度数"<<endl; cin>>e>>f; cout<<Max1(e,f)<<endl; cout<<"

21、;输入三个双精度数"<<endl; cin>>e>>f>>g; cout<<Max1(e,f,g)<<endl; return 0; (3)模板函数使用#include<iostream>using namespace std;template<class M>M Max1(M t1, M t2, M t3) M t = t1 > t2 ? t1 : t2; return t > t3 ? t : t3;template<class N>N Max2(N t1, N

22、 t2) N t = t1 > t2 ? t1 : t2; return t;int main() int a, b, c; double d, e, f;cout<< "输入二个整数:"<<endl; cin >> a >> b ; cout << Max2(a, b) <<endl; cout<< "输入二个双精度浮点数:"<<endl; cin >> d >> e ; cout << Max2(d, e)<

23、<endl;cout<< "输入三个整数:"<<endl; cin >> a >> b >> c; cout << Max1(a, b, c) <<endl; cout<< "输入三个双精度浮点数:"<<endl; cin >> d >> e >> f; cout << Max1(d, e, f)<<endl; return 0;(4)#include<iostream>

24、#include<math.h>using namespace std;int pow(int x,int y)int m=1;for(y>=1;y-;)m=m*x;return m;int main()int x,y;float m;cout<<"x="cin>>x;cout<<"y="cin>>y;cout<<pow(x,y)<<endl;return 0;(5)#include<iostream>using namespace std;float

25、fib(int n)if (n<=2) return 1;else return fib(n-2)+fib(n-1);int main()int n;cout<<"输入n:"<<endl;cin>>n;cout<<"fibonacci 级数为:"<<fib(n)<<endl;return 0; 实验总结 :这次实验我初步掌握了函数的定义与其的调用方法,使用重载函数来进行运算,练习函数模板并使用系统函数。这次实验中出现错误相对比较多。首先在函数的定义与调用中多次出现定义函数与调用

26、不一致导致无法运行。重载函数上运用也比较生疏。在函数模板的使用上经常出现错误。总体说来这次实验中学到的东西还是比较多的。实验四 实验日期 年 月 日 实验目的 :掌握类的定义和使用,掌握类的定义和对象的声明,复习具有不同访问属性的成员的访问方式,察构造函数和析构函数的执行过程,学习类的聚集使用方法,使用DEBUG来调试程序,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。 实验内容 :1)定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中rank为枚举类型CPU_Rank,定义为enum CPU_Ran

27、k=P1=1,P2,P3,P4,P5,P6,P7,frequency为单位为MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。2)定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。3)(选做)设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数。 实验原理和步骤 :(1)首先定义枚举类型CPU_Rank,例如 enum CPU_Rank P1=1,P2,P3,P4,P5,P6,P7,再定义

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论