欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年面向对象程序设计实验指导书 .docx

    • 资源ID:37701362       资源大小:51.09KB        全文页数:22页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年面向对象程序设计实验指导书 .docx

    精品_精品资料_试验 1 类和对象1.1 试验目的和要求(1) 懂得类和对象的概念,把握声明类和定义对象的方法.(2) 把握构造函数和析构函数的实现方法.(3) 初步把握使用类和对象编制C+ 程序.(4) 把握对象数组、对象指针和string 类的使用方法.(5) 把握使用对象、对象指针和对象引用作为函数参数的方法.(6) 把握类对象作为成员的使用方法.(7) 把握静态数据成员和静态成员函数的使用方法.(8) 懂得友元的概念和把握友元的使用方法.1.2 试验内容和步骤1. 输入以下程序/test4-1.cpp #include<iostream> using namespace std.class Coordinate public:Coordinateint x1,int y1 x=x1 .y=y1 .CoordinateCoordinate &p .Coordinate cout<< ” Destructor is callededn”. int getxreturn x . int getyreturn y . private:int x,y . .Coordinate:CoordinateCoordinate &p x=p.x .y=p.y.cout<< ”copy-initialization Constructou is calledn”.int main Coordinate p13,4 .Coordinate p2p1 .可编辑资料 - - - 欢迎下载精品_精品资料_Coordinate p3=p2 .cout<< ”p3= “<<p3.getx<< ” ,<”<p3.gety<< ”n ”.return0 .(1) 写出程序的运行结果.(2) 将 Coordinate 类中带有两个参数的构造函数进行修改,在函数体内增加下述语句:cout<< ”Constructor is called.n ”.写出程序的运行结果,并说明输出结果.( 3)按以下要求进行调试: 在主函数体内,添加以下语句: Coordinate p4 .Coordinata p52 .调试程序时会显现什么错误?为什么?如何对已有的构造函数进行适当修改?( 4)经过以上第( 2)步和第( 3)步的修改后,结合运行结果分析:创建不同的对象时会调用不同的构造函数.2. 设计一个4*4 魔方程序,让魔方的各行值的和等于各列值的和,并且等于两对角线值的和.例如一下魔方:313525921191517131123727291各行、各列以及对角线值的和都是64.【提示】求 4*4 魔方的一般步骤如下:( 1)设置初始魔方的起始值和相邻元素之间的差值.例如上述魔方的初始魔方的起始值( first )和相邻元素之间的差值step分别为:first=1 step=22设置初始魔方元素的值.例如上述魔方的初始魔方为: 135791113151719212325272931(3)生成最终魔方.方法如下:求最大元素值与最小元素值的和sum,该实例的 sum 是: 1+31=32用 32 减去初始魔方全部对角线上元素的值,然后将结果放在原先的位置,这样就可求得最终魔方.本例最终魔方如下:313525921191517131123可编辑资料 - - - 欢迎下载精品_精品资料_727291此题的魔方类magic 的参考框架如下:class magic public:void getdata .void setfirstmagic .void generatemagic .void printmagic .private:int m44 .int step.int first .int sum . .3. 设计一个用来表示直角坐标系的Location 类,在主程序中创建类Location 的两个对象A 和 B,要求 A 的坐标点在第 3 象限, B 的坐标在第 2 象限,分别采纳成员函数和友元函数运算给定两个坐标点之间的距离,要求按如下格式输出结果:Ax1,y1,Bx2,y2Distance1=d1 Distance1=d2其中: x1、x2、y1 、y2 为指定的坐标值,d1 和 d2 为两个坐标点之间的距离.【提示】类 Location 的参考框架如下:class Location public:Locationdouble,double .double Getx double Getydouble distanceLocation & .friend double distance Location &,Location &.private: double x,y . .4. 声明一个 Student 类,在该类中包括一个数据成员score(分数)、两个静态数据成员total_score(总分)和count(同学人数).仍包括一个成员函数account 用于设置分数、累计同学成果之和、累计同学人数,一个静态成员函数sum 用于返回同学的成果之和, 另一个静态成员函数average()用于求全班成果的平均值.在main 函数中,输入 某班同学的成果,并调用上述函数求出全班同学的成果之和和平均分.5. 使用 C+ 的 string 类,将 5 个字符串按逆转后的次序显示出来.例如,逆转前的5 个字符串是:GermanyJapanAmericaBritainFrance按逆转后的次序输出字符串是:FranceBritainAmericaJapanGermany可编辑资料 - - - 欢迎下载精品_精品资料_试验 2 派生类与继承2.1 试验目的和要求(1) 把握派生类的声明方法和派生类构造函数的定义方法.(2) 把握不同继承方式下,基类成员在派生类中的拜访属性.(3) 把握在继承方式下,构造函数与析构函数的执行次序与构造规章.(4) 学习虚基类在解决二义性问题中的作用.2.2 试验内容与步骤·1. 输入以下程序./test4_1.cpp #include<iostream> using namespace std.class Basepublic:void setxint ix=i . Int getxreturn x . public:int x . .class Derived:public Base public:void setyint iy=i . int getyreturn y . void showcout<< ”Base:x=”<<x<<endl .public:inty . .int mainDerived bb .bb,setx16 .bb.sety25 .bb.show .cout<< ”Base:x=”<<bb.x<<endl . cout<< ”Derived:y= ”<<bb.y<<endl . cout<< ”Base:x= ”<<bb.getx<<endl .可编辑资料 - - - 欢迎下载精品_精品资料_cout<< ”Derived:y= ”<<bb.gety<<endl .return 0.(1) 写出程序的运行结果.(2) 按以下要求,对程序进行修改后再调试,指出调试中出错的缘由.将基类 Base中数据成员 x 的拜访权限改为 private 时,会显现哪些错误?为什么?将基类 Base中数据成员 x 的拜访权限改为 protected 时,会显现哪些错误?为什么?在源程序的基础上,将派生类Derived 的继承方式改为private 时,会显现哪些错误?为什么?在源程序的基础上,将派生类Derived 的继承方式改为protected 时,会显现哪些错误?为什么?2. 编写一个同学和老师的数据输入和显示程序.同学数据有编号、姓名、性别、年龄、系别和成果,老师数据有编号、姓名、性别、年龄、职称和部门.要求将编号、姓名、性别、年龄的输入和显示设计成一个类Person,并作为同学类Student 和老师类Teacher的基类.供参考的类结构如下:class Person. .class Student:public Person. .class Teacher:public Person. .3. 按要求阅读、编辑、编译、调试和运行以下程序.(1) 阅读、编辑、编译、调试和运行以下程序,并写出程序的运行结果./test4_3_1.cpp #include<iostream> #include<string>using namespace std.class MyArray public:MyArrayint leng.MyArray.void Input .void Displaystring.protected:int*alist .int length . .MyArray:MyArrayint lengifleng<=0cout<< ”error length ”. exit1 .可编辑资料 - - - 欢迎下载精品_精品资料_alist=new int leng .length=leng .ifalist=NULLcout<< ”assign failure ”. exit1 .cout<< ”MyArray 类对象已创建. ”<<endl .MyArray:MyArraydelete alist .cout<< ”MyArray 类对象被撤销. ”<<endl .void MyArray:Displaystring strint i .int *p=alist .cout<<str<<length<< ”个整数:“. fori=0 .i<length .i+,p+ cout<<*p<< ”.cout<<endl .void MyArray:Inputcout<< ”请键盘输入 ”<<length<< ”个整数 :”. int i .int *p =alist .fori=0 .i<length .i+,p+ cin>>*p .int mainMyArray a5 .a.Input .a.Display “显示已输入的 ”.return 0.(2) 声明一个类 SortArray 继承类 MyArray, 在该类中定义一个函数,具有将输入的整数从小到大进行排序的功能.【提示】在第( 1)步的基础上可增加下面的参考框架: class SortArray : public MyArray public:void Sort .SortArrayint leng:MyArraylengcout<< ”SortArray 类对象已创建. ”<<endl .virtual SortArray .可编辑资料 - - - 欢迎下载精品_精品资料_ .SortArray:SortArraycout<< ”SortArray 类对象被撤销. ”<<endl .void SortArray:Sort/请自行编写 Sort 函数的代码,将输入的整数从小到大排序./并将主函数修改为: int mainSortArray a5 .s.Input .s.Display “显示排序以前的 ”.s.Sort.s.Display “显示排序以后的 ”.return 0.声明一个类ReArray 继承类 MyArray, 在该类中定义一个函数,具有将输入的整数进行倒置的功能.【提示】在第( 1)步的基础上可增加下面的参考框架: Class ReArray:public MyArrayPublic:Void reverse.ReArrayint leng .Virtual ReArray . .请读者自行编写构造函数、析构函数和倒置函数ReArray, 以及修改主函数.(3) 声明一个类 AverArray 继承类 MyArray, 在该类中定义一个函数,具有求输入的整数平均值的功能.【提示】在第( 1)步的基础上增加下面的参考框架: class AverArray:public MyArrayPublic:AverArrayint leng .AverArray .Double Aver . .请读者自行编写构造函数、析构函数和求平均值函数Aver (求解整数的平均值),以及修改主函数.2声明一个NewArray类,同时继承了类SortArray,ReArray和 AverArray, 使得类NewArray的对象同时具有排序、倒置和求平均值的功能.在继承的过程中声明MyArray 为虚基类,体会虚基类在解决二义性问题中的作用.可编辑资料 - - - 欢迎下载精品_精品资料_试验 3 多态性3.1 试验目的和要求(1) 明白多态性的概念.(2) 把握运算符重载的基本方法.(3) 把握虚函数的定义和使用方法.(4) 把握纯虚函数和抽象类的概念和用法.3.2 试验内容与步骤1. 分析并调试以下程序,写出程序的输出结果,并说明输出结果./test5_1.cpp #include<iostream> using namespace std.class Bpublic:virtual void f1 double xcout<< ”B:f1double ”<<x<<endl .void f2double xcout<< ”B:f2double ”<<2*x<<endl .void f3double xcout<< ”B:f3double ”<<3*x<<endl .class D:public B public:virtual void f1double xcout<< ”D:f1double ”<<x<<endl .void f2double xcout<< ”D:f2double ”<<2*x<<endl .void f3double xcout<< ”D:f3double ”<<3*x<<endl . .int mainD d .B*pb=&d .D*pd=&d .pb->f11.23 .可编辑资料 - - - 欢迎下载精品_精品资料_pb->f11.23 .pb->f21.23 .pb->f31.23 .pb->f33.14 .return 0.2. 编写一个程序,其中设计一个时间类Time, 用来储存时、分、秒等私有数据成员,通过重载操作符“ +”实现两个时间的相加.要求将小时范畴限制在大于等于0,分钟范畴限制在 059 ,秒钟范畴限制在059 秒.【提示】时间类 Time public:Timeint h=0,int m=0,int s=0.Time operator+Time& .void disptimestring .private:int hourse.int minutes .int seconds. .3. 给出下面的抽象基类container.class containerprotected:double radius .public:containerdouble radius1 .virtual double surface_area=0 .virtual double volume=0 . .要求建立 3 个继承 container 的派生类 cube、sphere与 cylinder ,让每一个派生类都包含虚函数 surface_area和 volume ,分别用来运算正方体、球体和圆柱体的表面积及体积.要求写出主程序,应用C+ 的多态性,分别运算边长为6.0 的正方体、半径为5.0 的球体,以及半径为5.0 和高为 6.0 的圆柱体的表面积和体积.4. 编写一个程序,用于进行集合的并、差和交运算.例如输入整数集合95 4 3 6 7和2 4 6 9 ,运算出它们进行集合的并、差和交运算后的结果.【提示】i. 可用以下表达式实现整数集合的基本运算:s1+s2 两个整数集合的并运算s1-s2 两个整数集合的差运算s1*s2两个整数集合的交运算ii. 参考以下 Set 类的框架,用于完成集合基本运算所需的各项功能.class setpublic: set:set.可编辑资料 - - - 欢迎下载精品_精品资料_void set:inputint d .int set:length .int set:getdint i .void set:disp .set set:operator+set s1.set set:operator-set s1.set set:operator*set s1.set set:operator=set s1.protected: int len .int sMAX. .可编辑资料 - - - 欢迎下载精品_精品资料_试验 4 模板与反常处理4.1 试验目的和要求( 1)正确懂得模板的概念.( 2)把握函数模板和类模板的声明和使用方法.( 3)学习简洁的反常处理方法.4.2 试验内容和步骤1. 分析并调试以下程序,写出运行结果并分析缘由.( 1)/test6_1_1.cpp #include <iostream> using namespace std.template<typename T> T max T x,T y return x>y. x:y .int maxint a,int breturn a>b. a:b .double max double a,double breturn a>b. a:b .int main cout<< ”max3,7 is “<<max 3,7<<endl .return 0 . 2/test6_1_2.cpp #include <iostream>using namespace std.int maxint a,int breturn a>b. a:b .double max double a,double breturn a>b. a:b .int main cout<< ”max3,7 is “<<max 3,7<<endl . return 0 .2. 编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小可编辑资料 - - - 欢迎下载精品_精品资料_元素的函数设计成函数模板.3. 编写一个程序,使用类模板对数组元素进行排序、倒置、查找和求和.【提示】设计一个类模板template <class Type> class Array. .具有对数组元素进行排序、倒置、查找和求和功能,然后产生类型实参分别为int 型和double 型的两个模板类,分别对整型数组与双精度数组完成所要求的操作.4. 编写一个程序,求输入数的平方根.设置反常处理,对输入负数的情形给出提示.试验 5 C+ 的流类库与输入输出5.1 试验目的和要求( 1)把握 C+ 格式化的输入输出方法.( 2)把握重载运算符“ <<”和“ >>”的方法.( 3)把握磁盘文件的输入输出方法.5.2 试验内容和步骤1. 下面给出的 test7_1_1.cpp程序用于打印九九乘法表,但程序中存在错误.请上机调试,使得此程序运行后,能够输出如下所示的九九乘法表.*12345678911224336944812165510152025661218243036771421283542498816243240485664991827364554637281/test7_1_1.cpp #include <iostream> #include <iomanip>using namespace std.int mainint i,j.cout<< ” * ”.fori=1.i<=9 . i+可编辑资料 - - - 欢迎下载精品_精品资料_cout<<i<< ”.cout<<endl. fori=1.i<=9 .i+ cout<<i.forj=1. j<=i .j+ Cout<<i*j.return 0.2. 下面的程序用于统计文件xyz.txt中的字符个数,请填空完成程序./test7_2_1.cpp #include<iostream> #include<fstream>using namespace std.int main char ch.int i=0.ifstream file.file.open“ xyz.txt” ,ios:in.if cout<<” xyz.txt cannot open” <<endl .abort.While .file.eofi+.cout<< ”文件字符个数: ”<<i<<endl .return 0.3. 重载运算符“<< ”和“ >> ”,使其能够输入一件商品的信息和输出这件商品的信息.商品的信息由编号、商品名和价格.假如商品类Merchandise 的框架如下:class merchandise public:Merchandiss .Merchandiss .friend istream& operator>>istream& in,Merchandiss& s.friend ostream&operator<<ostream& out,Merchandiss& s.private:int no .char *name.double price .可编辑资料 - - - 欢迎下载精品_精品资料_ .要求实现该类,并编写以下的main 函数对该类进行操作.int main Merchandise mer .cin>>mer .cout<<mer .return 0.4. 编写一个程序,将两个文本文件连接成一个文件,然后将此文件中全部小写字母转换成大写字母,并打印出来.可编辑资料 - - - 欢迎下载

    注意事项

    本文(2022年面向对象程序设计实验指导书 .docx)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开