您好,欢迎访问三七文档
本科实验报告课程名称:面向对象的程序设计实验项目:实验地点:专业班级:物联网1403学号:学生姓名:指导教师:宋春花2015年5月10日实验一C++基础一、实验目的:(1)熟悉VisualStudio2010或VisualC++的编程环境;(2)掌握内联函数,带默认形参的函数,重载函数的定义和使用;理解函数的参数传递机制;(3)理解命名空间的概念,掌握命名空间的使用;(4)掌握引用的概念以及引用作为函数参数和函数返回值的使用方法;(5)掌握内存的动态分配的概念和使用方法;(6)掌握文件的打开、关闭以及读写操作。二、实验要求(1)按照实验内容编写程序,并调试程序,并给出测试数据和实验结果;(2)整理上机步骤,总结经验和体会;(3)完成实验报告和上交程序。三、实验设备PC机。四、实验内容(1)运行下面的程序,观察变量x、y的值。#includeiostreamusingnamespacestd;voidfnl(intz=5);intx=1,y=2;intmain(){coutBegin...endl;coutx=xendl;couty=yendl;coutEvaluatexandyinmain()…endl;intx=10,y=20;coutx=xendl;couty=yendl;coutStepintofnl()…endl;fnl();fnl(10);coutBackinmainendl;coutx=xendl;couty=yendl;return0;}voidfnl(intz){staticintx=100;inty=200;coutx=xendl;couty=yendl;x=x+y+z;}结果为:(2)编写重载函数max1可分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值。程序为:#includestdafx.h#includeiostreamusingnamespacestd;intadd(intx,inty);intadd(intx,inty,intz);doubleadd(doublex,doubley);doubleadd(doublex,doubley,doublez);intmain(intargc,char*argv[]){inta,b,c;doublex,y,z;cout输入3个整数endl;cinabc;add(a,b);add(a,b,c);cout输入3个浮点数endl;cinxyz;add(x,y);add(x,y,z);return0;}intadd(intx,inty){if(xy)coutmax2=xendl;elsecoutmax2=yendl;return0;}intadd(intx,inty,intz){inti;if(xy)i=x;elsei=y;if(iz)coutmax3=iendl;elsecoutmax3=zendl;return0;}doubleadd(doublex,doubley){if(xy)coutmax2=xendl;elsecoutmax2=yendl;return0;}doubleadd(doublex,doubley,doublez){doublei;if(xy)i=x;elsei=y;if(iz)coutmax3=iendl;elsecoutmax3=zendl;return0;}结果为:(3)用new操作为一个包含10个整数的数组分配内存,输入若干个值到数组中,分别统计其中正数和负数的个数后再用delete操作释放内存。程序为:#includestdafx.h#includeiostreamusingnamespacestd;intmain(intargc,char*argv[]){int*p,i,z,f;p=newint[10];for(i=0;i10;i++)cinp[i];z=0;f=0;for(i=0;i10;i++){if(p[i]0)z++;elsef++;}cout正数个数为:zendl;cout负数个数为:fendl;delete[]p;return0;}结果为:(4)编程计算图形的面积。程序可计算圆形、长方形、正方形的面积,运行时先提求用户选择图形的类型,然后,再要求用户对圆形输入半径值,对长方形输入长与宽,对正方形输入边长,计算出面积的值后,在屏幕上显示出来。程序为:#includestdafx.h#includeiostreamusingnamespacestd;constdoublePI=3.14159;voidareay();voidareac();voidareaz();intmain(intargc,char*argv[]){charn;couty-圆,c-长方形,z-正方形,输入要选择的图形:endl;cinn;switch(n){case'y':areay();break;case'c':areac();break;case'z':areaz();break;default:cout输入错误!endl;}return0;}voidareay(){intr;cout请输入半径:;cinr;cout圆面积为:PI*r*rendl;}voidareac(){intx,y;cout请输入长方形长和宽:;cinxy;cout长方形面积为:x*yendl;}voidareaz(){intx;cout请输入正方形边长:;cinx;cout正方形面积为:x*xendl;}结果为:五、实验心得(1)注意函数重载必须是形参个数或类型不同与返回值无关。(2)释放为数组动态分配的内存用delete[]p;语句。(3)注意静态变量所占内存在主函数结束时才释放的。实验二类与对象一、实验目的(1)掌握类和对象的定义使用方法;(2)掌握构造函数、析构函数的定义、使用方法、调用过程;(3)掌握对象数组和对象指针;(4)理解类的组合;(5)掌握静态数据成员和静态成员函数的定义和使用方法;(6)掌握友元函数和友元类的定义及使用二、实验要求(1)完善、编写程序,并调试程序,要给出测试数据和实验结果;(2)整理上机步骤,总结经验和体会;(3)完成实验报告和上交程序。三、实验设备PC机。四、实验内容(1、2、3中选择2个题,4、5、6中选择2个题)(1)定义一个复数类Complex,复数的实部Real与虚部Image定义为私有数据成员。用复数类定义复数对象c1、c2、c3,用默认构造函数将c1初始化为c1=20+40i,将c2初始化为c2=0+0i,用拷贝构造函数将c3初始化为c3=20+40i。用公有成员函数Dispaly()显示复数c1、c2与c3的内容。程序为:#includeiostreamusingnamespacestd;classComplex{private:intreal,image;public:Complex(intr,inti){real=r;image=i;}Complex(Complex&c){real=c.real;image=c.image;}voiddisplay(Complex&c){cout(c.real,c.imagei)endl;}};intmain(){Complexc1(20,40),c2(0,0);Complexc3(c1);c1.display(c1);c2.display(c2);c3.display(c3);return0;}结果为:(2)定义一个学生成绩类Score,描述学生成绩的私有数据成员为学号(No)、姓名(Name[8])、高等数学(Math)、大学物理(Phi)、数据结构(Data)、平均分(ave)。定义能输入学生成绩的公有成员函数Write(),能计算学生平均分的公有成员函数Average(),能显示学生成绩的公有成员函数Display()。在主函数中用Score类定义学生成绩对象数组s[3]。用Write()输入学生成绩,用Average()计算每个学生的平均分,最后用Display()显示每个学生的成绩。实验数据:NoNameMathPhiDataAve1001Zhou8070601002Chen9080851003Wang707589程序为:#includeiostreamusingnamespacestd;classScore{private:intNo;charname[8];intMath,Phi,Data,ave;public:voidWrite(Score&c){cinc.Noc.namec.Mathc.Phic.Data;}voidAverage(Score&c){c.ave=(c.Math+c.Phi+c.Data)/3;}voidDisplay(Score&c){coutc.Noc.namec.Mathc.Phic.Datac.aveendl;}};intmain(){Scores[3];inti;charn;cout输入学生学号、姓名、数学成绩、物理成绩、数据结构成绩:endl;for(i=0;i3;i++){s[i].Write(s[i]);s[i].Average(s[i]);}coutNoNameMathPhiDataAveendl;for(i=0;i3;i++)s[i].Display(s[i]);return0;}结果为:(3)定义一个矩形类Rectangle,矩形的左上角(Left,Top)与右下角坐标(Right,Bottom)定义为保护数据成员。用公有成员函数Diagonal()计算出矩形对角线的长度,公有成员函数Show()显示矩形左上角与右下角坐标及对角线长度。在主函数中用new运算符动态建立矩形对象r1,初值为(10,10,20,20)。然后调用Show()显示矩形左上角与右下角坐标及对角线长度。最后用delete运算符回收为矩形动态分配的存储空间。程序为:#includeiostream#includemath.husingnamespacestd;classRectangle{protected:intLeft,Top;intRight,Bottom;public:floatDia;Rectangle(intl,intb,intr,intt){Left=l;Top=t;Right=r;Bottom=b;}intDiagonal(Rectangle*r1){floatD;D=(r1-Top-r1-Bottom)*(r1-Top-r1-Bottom)+(r1-Right-r1-Left)*(r1-Right-r1-Left);floatT=sqrt(D);returnDia=T;}voidShow(Rectangle*r1){cout(Left,Top)=(r1-Left,r1-Top)endl;cout(Right,Bottom)=(r1-Right,r1-Bottom)endl;coutDiagonal=r1-Diaendl;}};intmain(){Rectangle*r1=newRectangle(10,10,20,20);r1-Diagonal(r1);r1-Show(r1);deleter1;return0;}结果为:(4)设计一个Dog类,
本文标题:C++实验报告模版
链接地址:https://www.777doc.com/doc-2901648 .html