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

    2023年面向对象程序设计及c++实验报告.docx

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

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

    2023年面向对象程序设计及c++实验报告.docx

    课程名称 实验名称 实验时间 指导单位 指导教师实验报告(学年第二学期)面向对象程序设计及C+实验一:类和对象的定义及使用年3 月垄 日物联网学院Boy ::Bo y ().void Boy: : prin t ()(c o ut«/zBoy: H «nam e ,z<<age<< e nd 1 ;).Girl: : Girl (char N, i n t A)(str c py (n a me, N);a g e=A;Girl:Girl。).voi d G i r 1 : p rin t () .cou t <V"Gir 1 : "<Vname<<" "<< a ge«endl;).v oi d Girl: VisitB o y(Boy & boy) (c os nam e : “ <<boy. name «en d 1 ;cout«/zBoy, s age: "<Xboy. age<en d 1 ;) int mai n () .Boy a("xpx”, 19);Girl b ("lai a”, 19);b. Vi s it Bo y ( a );prin t ()a. p ri n t (); r e turn 0 ;).实验报告程序的运营结果是:B o y' s nam e xpxBoy' s ag e : 19Boy: xpx 19G i rl: 1 ala 19Pre ss any key to co n t i nueL. T人人人人UBoy's name: xpxBoy's age: 19Boy: xpx 19Girl: lala 19Press any key to continue将G i rl类作为Boy类的友元类,写出Girl类的成员函数Visi t B oy(Bo y &)的实 现代码。void Girl: :Vi s itBoy (Boy & b o y )(c o u t<<nB o y's name: "<<b o y. n ame« e n dl;cout<<nBoy,s age: n<<b o y. a g e «e n dl;)实验报告 在Bo y类的某成员函数Vi s itGirl(G i rl & )中试图访问Girl类的私有成员,记 录编译器给出的错误信息,与对比,你能得出友元的什么特性? 友元关系是单向的,不具有互换性在上面代码的基础上,在Girl类的定义中,增长一行代码:friend Boy;在主函数中 通过Boy类对象.V i sitGi r 1 (Gi r 1类对象)的形式输出Girl类对象的信息。编译的结 果是?写出这一步你的主函数代码,规定分别用友元函数Gir 1类对象.VisitB o y(B o y类对象);和Boy类对象.Vis i t Gir 1 (Gi r 1类对象);和输出两个类对象的信息。D :Microsoft Visu a 1 S t udi o MyP r o je c ts 实验二e x p3_L c p p|1 4 |e r r or: n o "void Gi r 1 : :Vi s i t Bo y (Bo y &)' m e mber fu n ct i on deci a re d in class ' GiiT|Gl. VisitBoy(B2);B 2. VisitG i r 1 (G 1);输出:G irl con s truct i ngBoy construe t i ngBoy,s n a me: Jac kBoy' s age: 2 2Girl' s name: Mar yGi r r s age: 2 0实验报告定义一个顶层函数void VisitBo y Girl(Boy &, Girl &),作为以上两个类的友元函数, 主函数中通过调用该函数输出男孩和女孩的信息。写出该友元函数的完整代码,以及主函 数的代码。v o id Visi t BoyGirl (Boy &boy, Gir 1 & g irl) (cout«/zGi r r s name: «girl. name<<endl;co u t«/zGirl,s age: << g irl. age«endl;c out«/zB o yz s nam e : " «bo y name« e ndl; cout<<" Boy's ag e : "boy. ag e V Vendl;).Visi t BoyGirl(B2, Gl);实验报告四、实验小结(涉及问题和解决方法、心得体会、意见与建议等)L在题目(1)中不改变main。函数中的对象的定义方式,若取消构造函数中参 数的默认值,编译程序错误提醒信息及犯错因素是:D: M i cros oft Visu a 1 S t udioMyP r oj e ct s、实验一T ime. cpp|7|e r ror: n o matchin g func t i o n f or c a 11 to ' T im e : :TimeO,|D: M i cr o s o ft V isua 1 S tudio'My P r o jects实验一 T i me. cpp181 error: noma tching func t ion for c all to Tim e : : Time(int)fD: Micro s of t Vis ual S t ud i oMyPr o jec t s实验一Time. c pp | 9|e r ror: no matching f u notion f or cal 1 t o ' T i me: : Time (i nt, i nt)' I函数二义性2 .在题目(1 )中假如删除类中自定义的构造函数,仅使用系统默认构造函数,再编 译,程序错误提醒信息及犯错因素是:D:Microsoft V is u a 1 Stu d i o M y P r ojec t s 实验 一 Time, cpp171 error: no m a tc h i ng func tion for call to Time: :T i m e ()7 |D: Microsof t Vi s u al S t u d i oM y Pro j ects实验一'Time, cpp error: no mate h ing function for call to Time : :Time( i nt)' ID : M i crosoft V isual S t udi o MyP r oject s、实验一'Tiine. c p p | 9 | e r r or: no m a tchi n g f u ncti o n fo r c all to ' T ime: T ime (in t , i n t), ID: Mi c ros o f t V i sua 1 S t u d i oM y P r ojects实验一 Time. c p p| 10| erro r : no ma t chi n g func tion for ca 1 1 to T i me: : T ime (i n t, int, in t |构造函数实参不对的3 .在题目(1 )中恢复成的对的状态,假如将ma i n()函数中的输出语句改为: co u 对象名.Ho u r <<":<对象名.M i nut e << : ” <<对象名.S e c o nd<<en d 1 ; 重新编译,会出现什么错误提醒?在这种情况下,假如将成员变量的访问属性修改为P u b 1 ic再编译,结果如何?D: Mi c ros o ft Visu a 1 StudioMyPr o j e c ts 实验一T im e . h I 17|erro r : ' in t Time: :Hour' i s p r i va t e|D:Mic r o so f t Visu a 1 S t udioM y P r ojec t s '实验一T ime. c p p I 1 7 I error: within this context ID:Micros o ft V i sual Stud ioM y P r o jects实验一Ti m e . cpp 117 I error:' t 4 . T i me: :Hour, c annot b e u sed a s a fun c tio n |D: Mier o soft Vi s u a 1 StudioMy Pr o jects实验一 T i me. h| 1 7 | e rro r : ' int T i me: : Minute' i s p ri vat e |.D: Mic r osof t V i sua 1 Studio M y P ro j ects实验一 T ime. c p p I 171 e rror: wi t hin t his context |.D:Mic r osof t V i sual S t udi o MyProjects 实验一 Time, cpp I 1 71 err or: ' t4. Time: : Mi nute, cann o t b e used a s a f unc t ion|D:Mi cro s oft Vis u al Stu d i o MyPr o ject s、实验一Tim e . h| 1 71 e r ro r : 、i nt Time: : S e c o nd' is p ri v a t e|D : M i croso f t Visual Studio MyP r ojects实验一kT i me. c p p| 1 71 e rro r : with i n t h is context |D:Micro s oft Visual Stud i o M y Projects 实验一 T i me. cpp I 1 7 | e r ror: , t4 Time:Second' cannot be use d as a fun c tion|5 .心得体会:1,注意向前引用。,2,要注意构造函数的用法。3,友元可以提高效率,方便编程。但会破坏类的整体操作性和封装性。五、指导教师评语成绩批阅人实验报告实验名称类和对象的定义及使用指导教师肖学中实验类型验证实验学时2实验时间3月20日一、实验目的和规定(1)掌握类与对象的定义与使用方法,理解面向对象方法中通过对象间传递消息的 工作机制。(2)对的掌握类的不同属性成员的使用方法。(3)掌握构造函数与析构函数的概念,理解构造函数与析构函数的执行过程。(4 )掌握友元函数和友元类的定义和使用。(5)基本掌握指针和引用作为函数参数的应用。二、实验环境(实验设备)硬件:微型计算机软件: M i crosoft V i sua 1 C+ 6.0三、实验原理及内容实验题目(1)定义一个时间类Tim e ,有三个私有成员变量Hou r、Minute、Sec ond,定义构造函数、析构函数以及用于改变、获取、输出时间信息的公有函数,主函 数中定义时间对象,并通过调用各种成员函数完毕时间的设定、改变、获取、输出等功 能。按规定完毕类的定义与实现。 修改数据成员的访问方式,观测编译结果。 在Tim e类中定义一个成员函数,用于实现时间增长一秒的功能,主函数中通过 对象调用该函数,并输出增长一秒后的时间信息。定义一个普通函数。v o i d f (Time t)(t. Pr i ntTime();在Time类中增长拷贝构造函数的定义,主函数中调用该函数,运用调试工具跟踪,分析 整个程序调用构造函数(涉及拷贝构造函数)和析构函数的次数;再将f函数的形式参数 分别修改为引用参数和指针参数(此时函数代码修改为t-> PrintTime( ); ,主函数中调用,再分析此时调用构造函数和析构函数的次数。实验报告参考实验教材中相应的实验提醒部分按规定完毕程序,并回答相关问题。 规定完毕后的源程序代码如下:Winclud e <ios t r e a m>us i ng n a mesp a c e s t d;c 1 as s Tim e(priva t e:.i nt Hou r , Mi nu t e, S e cond;pub 1 ic:Time(in t h=0, i nt m= 0 , in t s =0);,Time( c on s t Tim e & o b );吁 T im e ();ovoid Chan g e Time(int h, in t m, int s);o i nt GetHou r ();'int GetMi n u te ();nnt Get S e co n d();ovoid PrintTim e ();ovo id I ncrease 0 n eSeco n d (););T im e : :Tim e (in t h, i n t m, int s)(Hour= hMi n u te=m;S econ d =s;)T ime: :Time(co n s t Time &ob)(Hour= ob. Hour;Minute= o b . M i nu t e ;Sec o nd=ob. Seco nd;)T i me::T ime ()()v oid Tim e : :Ch a n g eTime (i n t h, in t m, i nt s)(H o u r= h ;Minu t e=m;S e c on d =s;).i n t T i me: : GetHour ()(r e tu r n H o ur;)int T i me: G e tM i nu t e ()(ret u rn Minute;)int Time: :GetSecond()(retur n Se c o n d ;)void Time: :Pri n t Time()(c o u t «Hou r <<": "<<Min u t eV": "<<Se c o nd<<e n dl;)vo i d T ime:In creaseOn e Second ()(Sec o nd+;)Avoid Time: :f (Tim e t)(t . P r intTimeO ;cout« n call fn;*/i nt main()(Time a;.Tim e b( 1 3 );T i me c(13, 15);Time d ( 1 3, 15, 4 5);.a. Print T ime ();b . PrintTime ();c PrintT i me();d. Prin t T i me ();a. C h an g e Tim e (12, 15, 45);b. Chang e T ime(12, 1 5, 45);c. Ch a n geTime (12,15, 45);,d. Ch a n g eTim e ( 1 2, 15, 4 5 );coutVV a . Ge t Hour()<<": " <<a GetMinute()V":"V<a. GetS e cond() «endl;cou t «b. Get Ho u r () <<: z/«b. Ge t Minute ()<<zz:/z<<b. G e tSe c o nd () <<e ndl;cou t<<c. G e tHou r ()<<": "<<c. GetM i nute()<< ":"<<c. G e tSe c ond() <<end 1;cout«d. G e tHour()<<z,: /z«d. G e t M i nu t e ()« n :d . G e t Se c ond() <<e n d 1;r e t u r n 0;).程序的运营结果是:0 : 0: 01 3: 0: 01 3: 15:013: 15: 4512: 15 :4512:15: 4512: 1 5:451 2:15:45Press an y ke y to continueE:C +6.0B14070519Debuggexe"l 口 I U_里一1构造函数与析构函数的调用方式及执行顺序是: 先是构造函数然后是析构函数。调用方式是自动调用,执行顺序是先执行构造函数,待程序结束时再执行 析构函数。实验报告取消类中成员函数Inc reaceOneSecond()的注释标志为该函数补充完整,注意时间在 增长一秒情况下的进位关系。该函数的代码如下:v oid Tim e : :In c r e aseOn e Second () (i f (Second<5 9 ) Second+;e 1 se i f (Secon d =59 & &Minut e=59& & Hour= 2 3) (Hour=0;Minute= 0 ;Sec o n d =0;else if (S e co n d=59&&Minut e =5 9 &&Hour<23) (M i n u te = 0;Secon d=0;H o ur+;el s e i f (S e con d=59&&Minu t e <59&&Hour< 2 3) (Minute+;S econd=0;Hour+;)c out<<H o ur<<:/z<<Minut e <<ZZ:,Z«S e con d <<e n dl;). 主函数中定义一个T i me类对象并调用一次f函数,观测结果填写下表:f函数的原型主函数中调用f 的语句构造函数 调用次数拷贝构造函数 调用次数析构函数 调用次数void f (Time t);F(tO)112v o id f (Time &t);F(tO)101voi d f (Time*t);F (p)101通过以上结果,关于对象作形式参数、对象引用作形式参数、对象指针作形式参数时构 造函数、析构函数的调用次数及顺序,你得到什么结论?.实验报告实验题目(2)定义一个Gi r 1类和一个Boy类,这两个类中都有表达姓名、年龄的 私有成员变量,都要定义构造函数、析构函数、输出成员变量信息的公有成员函数。根据规定定义相应的类。将Girl类作为Boy类的友元类,在G i r 1类的成员函数V i sitB o y (Bo y & ) 中访问B oy类的私有成员,观测程序运营结果。在Boy类的某成员函数Vi s itG i r 1 (Girl & )中试图访问Gi r 1类的私有成员, 观测编译器给出的错误信息,理解因素。主函数中对的定义两个类的对象,调用各自的成员函数实现相应功能。再将Boy类作为Girl类的友元类,在Boy类的某成员函数V i s itG i rl (Gi r 1 & )中访问G i rl类的私有成员,观测编译器给出的信息。删除两个类中的函数V i s itG i rl (Girl & ) , V i sit Boy (Boy & ),定 义一个顶层函数V i sit BoyG i r 1 (Boy &, G ir 1&),作为以上两个类的友元,通过调用该函数输出男孩和女孩的信息。实验解答:定义相应的类,主函数中定义相应的类成员,调用各类的输出函数显示信息。 源程序代码如下:# inc 1 ude<i o stre a m>us i ng n a mes p ace s td;cl a ss Boy;class Girl(public:c har name 25;a i nt age;oG i rl (char N, i n t A=19);G i rl ();dvoid pri n t ();void Visi t Boy (Boy & );cla s s Boy(pub lie:.c h ar name 25;int age;Boy (c har N , int A=19);。B o y();v oi d print ();,f rien d Girl;);Boy:B o y(char N, int A)(str c p y (name, N);age=A;).

    注意事项

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

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




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

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

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

    收起
    展开