C++(实验报告)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

徐州工程学院管理学院实验报告实验课程名称:面向对象程序设计实验地点:经济管理教学实验中心2011—2012学年(二)学期2012年2月至2012年6月专业信息管理与信息系统班级10信管学生姓名xx学号20101511215指导老师xxx实验一实验名称:C++程序运行环境与上机步骤成绩:实验目的和要求1.熟悉VisualC++6.0的集成环境。2.学会使用VisualC++6.0编辑、编译、连接和运行C++单文件程序的方法。3.初步了解C++源程序的基本结构,学会使用简单的输入输出操作。4.了解C++在非面向对象方法对C语言功能的扩充与增强。实验内容和步骤1.编辑、编译、连接和运行以下的C++单文件程序。源程序:#includeiostreamusingnamespacestd;intmain(){cout我是余秀!\n;cout10级信管2班15号.endl;return0;}运行结果:2.编写一个程序,用来分别求2个整数、3个整数、2个双精度数和3个双精度数的最大值。(用函数重载完成)源程序:#includeiostreamusingnamespacestd;intmax(intx,inty){intm;if(xy)m=x;elsem=y;return(m);}intmax(intx,inty,intz){intm;if(xy)m=x;elsem=y;if(zm)m=z;return(m);}doublemax(doublea,doubleb){doublem;if(ab)m=a;elsem=b;return(m);}doublemax(doublea,doubleb,doublec){doublem;if(ab)m=a;elsem=b;if(cm)m=c;return(m);}intmain(){intx,y,z;doublea,b,c;cinxyz;cinabc;coutm=max(x,y)endl;coutm=max(x,y,z)endl;coutm=max(a,b)endl;coutm=max(a,b,c)endl;return0;}运行结果:3.编写一个完整的C++程序,使用系统函数pow(x,y)计算x^y的值,注意包含头文件cmath.源程序:#includeiostream#includecmathusingnamespacestd;intmain(){intx,y;longz;cinxy;z=pow(x,y);coutz;return0;}运行结果:实验二实验名称:类和对象的应用成绩:实验目的和要求1.理解类和对象的概念,学习声明类和定义对象的方法。2.学习使用类和对象编制C++程序。3.学习构造函数和析构函数的实现方法。4.学习string类的使用方法。实验内容和步骤1.输入下列程序。//test3_1.cpp#includeiostreamusingnamespacestd;classCoordinate{public:Coordinate(intx1,inty1){x=x1;y=y1;}Coordinate(Coordinate&p);~Coordinate(){coutDestructoriscalleded\n;}intgetx(){returnx;}intgety(){returny;}private:intx,y;};Coordinate::Coordinate(Coordinate&p){x=p.x;y=p.y;coutCopy-initializationConstructoriscalled\n;}intmain(){Coordinatep1(3,4);Coordinatep2(p1);Coordinatep3=p2;coutp3=(p3.getx(),p3.gety())\n;return0;}(1)写出程序的运行结果。(2)将Coordinate类中带有两个参数的构造函数进行修改,在函数体内增添下述语句:coutConstructorisCalled.\n;写出运行结果,并解释输出结果。(3)按下列要求进行调试:在主函数体内,添加下述语句:Coordinatep4;Coordinatep5(2);调试程序时会出现什么错误?为什么?如何对已有的构造函数进行适当修改?(1)运行结果:(2)运行结果:原因:执行Coordinatep1(3,4)时调用构造函数Coordinate(intx1,inty1)输出:Constructoriscalled.执行Coordinatep2(p1)和Coordinatep3=p2时调用拷贝函数Coordinate(Coordinate&p)两次输出:copy-initializationConstructouiscalled执行coutp3=(p3.getx(),p3.gety())\n时调用intgetx()和intgety()输出:p3=(3,4)最后程序结束时连续调用三次析构函数输出:Destructoriscalleded(3)调试程序时会出现以下错误:errorC2512:'Coordinate':noappropriatedefaultconstructoravailableerrorC2664:'__thiscallCoordinate::Coordinate(classCoordinate&)':cannotconvertparameter1from'constint'to'classCoordinate&'原因:执行Coordinatep4和Coordinatep5(2)时没有合适的构造函数供其调用。修改:在Coordinate(intx1,inty1)后{x=x1;y=y1;}再加一个构造函数Coordinate(){x=3;y=4;coutConstructoriscalled.\n;}2.设计一个4*4魔方程序,让魔方的各行值的和等于各列值的和,并且等于两对角线值的和。例如,以下魔方:313525921191517131123727291各行、各列以及对角线值的和都是64.源程序:#includeiostream#includeiomanipusingnamespacestd;classmagic{public:voidgetdata();voidsetfirstmagic();voidgeneratemagic();voidprintmagic();private:inti,j;intm[4][4];intstep;intfirst;intsum;};voidmagic::getdata(){cout请输入起始值和差值:endl;cinfirststep;}voidmagic::setfirstmagic(){for(i=0;i4;i++){for(j=0;j4;j++)m[i][j]=first+(i*4+j)*step;}}voidmagic::generatemagic(){sum=m[0][0]+m[3][3];for(i=0;i4;i++)for(j=0;j4;j++){if(i+j==3||i==j)m[i][j]=sum-m[i][j];}}voidmagic::printmagic(){for(i=0;i4;i++)for(j=0;j4;j++){if(j3)coutsetw(4)m[i][j]'';if(j==3)coutsetw(4)m[i][j]endl;}}intmain(intargc,char*argv[]){magicg;g.getdata();g.setfirstmagic();g.generatemagic();g.printmagic();return0;}运行结果:3.使用C++的string类,将5个字符串按逆转顺序后的顺序显示出来。例如,逆转前的5个字符串是:GermanyJapanAmericaBritainFrance逆转后的顺序输出字符串是:FranceBritainAmericanJapanGermany源程序:#includeiostream#includestringusingnamespacestd;voidmain(){stringstr[5];cout请分别输入5个字符串:endl;cout1:;cinstr[0];coutendl2:;cinstr[1];coutendl3:;cinstr[2];coutendl4:;cinstr[3];coutendl5:;cinstr[4];coutendl输入的5个字符串分别是:endl;coutstr[0]str[1]str[2]str[3]str[4]endl;cout逆转后的顺序为:endl;coutstr[4]str[3]str[2]str[1]str[0]endl;}运行结果:5.定义一个日期类Date,该类对象存放一个日期,可以提供的操作有:void:printDate();voidGetYear();voidGetMonth();voidGetDay();voidSetDate(intY,intm,intd),还允许对日期对象做以下定义:Dated1(2012,3,15);Dated2;Dated3(d1);要求每一个成员函数都要被调用。源程序:#includeiostreamusingnamespacestd;classDate{public:Date(inty,intm,intd);intGetYear();//取年份intGetMonth();//取月份intGetDay();//取日子值voidPrint();//以年、月、日形式输出日期private:intyear;intmonth;intday;};Date::Date(inty,intm,intd){year=y;month=m;day=d;}voidDate::Print(){coutyear年month月day日endl;}intmain(){Datedate1(2012,3,15);date1.Print();return0;}运行结果:实验三实验名称:类和对象的高级应用成绩:实验目的和要求1.学会使用VisualC++6.0编辑、编译、连接和运行C++的多文件程序的方法。2.熟悉对象数组和对象指针的使用方法。3.学习使用对象、对象指针和对象引用作为函数参数的方法。4.学习类和对象作为成员的使用方法。5.学习静态数据成员和静态成员函数的使用方法。6.理解友元的概念和学习友元的使用方法。实验内容和步骤1.编辑、编译、连接和运行以下的C++多文件程序。源程序://file1.cpp#includeiostreamusingnamespacestd;intadd(inta,intb);intmain(){intx,y,sum;coutEntertwonumbers:endl;cinx;ciny;sum=add(x,y);coutThesumis:sumendl;return0;}//file2.cppintadd(inta,intb){intc;c=a+b;returnc;}运行结果:2.调试下列程序,写出输出结果。源程序://test4-2.cpp#includeiostreamusingnamespacestd;classtoy{public:toy(intq,intp){quan=q;price=p;}intget_quan(){returnquan

1 / 64
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功