版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《面向对象程序设计》实验指导书实验类别:设计实验课程名称:面向对象程序设计方法学实验室名称:软件基础实验室实验课程编号:总学时:56学分:3.5合用专业:计算机科学与技术、网络工程、物联网先修课程:有一门程序设计语言基础实验在教学培养计划中地位、作用:面向对象程序设计方法学是一门实践性很强的课程,每个学生必须完毕一定数量的上机实验。实验课是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。本课程使学生熟悉C++的语法特性,了解C与C++的区别和兼容性;理解面向对象程序设计的基本原理,涉及类、对象、抽象、封装、继承和多态性等关键要素以及其关键语法特性—类;掌握用C++编写面向对象程序的一般方法;了解VC++编程环境。通过上机实验进一步加深对课程基本内容的理解。同时,在程序设计方法及上机操作等基本技能和科学作风方面受到比较系统的、严格的训练。实验一语句与程序流程(2学时)1、实验目的(1)了解C++开发工具的特点(2)熟悉C++开发环境(3)学会编写简朴的C++程序。(4)练习使用简朴的输入输出。(5)熟悉各种流程控制语句的功能。2、实验内容(1)输入并运营程序:用do-while语句编程,求自然数1~10之和。程序对的运营之后,去掉源程序中的#include语句,重新编译,观测会有什么问题。(2)do-while语句用for语句代替,完毕相同的功能。(3)编程计算图形的面积。程序可计算圆形、长方形、正方形的面积,运营时先提醒用户选择图形的类型,然后,对圆形规定用户输入半径值,对长方形规定用户输入长和宽的值,对正方形规定用户输入边长的值,计算出面积后将其显示出来。3、实验规定(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。(2)独立完毕所布置习题。(3)为保证尽量在统一安排的上机时间内编译运营通过程序,应事先设计好程序。(4)认真完毕每次实验,并写出实验报告。4、实验环节(1)启动VisualC++开发环境(2)创建一个项目1)单击File菜单中的New选项,显示新建对话框2)选择Win32ConsoleApplication(VC++)。3)选择项目所在途径及输入项目的名称lab1_14)依次按‘下一步’直至完毕为止。(3)至此,已经建立好工程相关的文献,在生成的main函数中写入必要的内容即可。(4)输入并运营程序:用do-while语句编程,求自然数1~10之和1)建立C++源程序文献选菜单命令Project|AddtoProject|New,弹出New对话框在New对话框的Files选项卡中选择C++SourceFile,并填入文献名称lab1_1,单击OK按钮,完毕新建C++源程序文献2)编辑C++源程序文献在文献编辑窗口中输入代码完毕后,选择菜单File|Save保存这个文献3)建立并运营可执行程序选择菜单命令Build,建立可执行程序假如你对的输入了源程序,此时便成功地生成了可执行程序。假如程序有语法错误,则屏幕下方的状态窗口中会显示错误信息,根据这些错误信息对源程序进行修改后,重新选择菜单命令Build建立可执行程序。选择菜单命令Run,运营程序,观测屏幕显示内容。(5)程序对的运营之后,在源程序第一行”#include<iostream.h>”前面加注释标记”//”使之成为注释行,重新编译,观测编译的结果。(6)选择菜单命令File|ColseWorkSpace关闭工作空间,另建立一个项目lab1_2,包含一个C++源程序lab1_2.cpp,将do-while语句用for语句代替,完毕与实验内容1相同的功能。(7)选择菜单命令File|ColseWorkSpace关闭工作空间,建立项目lab1_3,包含一个C++源程序lab1_3.cpp,计算图形面积。圆形的面积计算公式为S=PI*r*r,长方形的面积计算公式为S=a*b,正方形的面积市场计算公式为S=a*a。程序中定义一个整型变量iType表达图形的类型,用cout语句输出提醒信息让用户选择图形的型,用cin读入iType的值,然后,使用switch语句判断图形的类型,分别提醒用户输入需要的参数值,计算出面积的值后用cout语句显示出来。最后编译运营程序。参考程序如下://lab3_3.cpp#include<iostream>usingnamespacestd;constfloatPI=3.1416;intmain(){intiType;floatradius,a,b,area;cout<<”图形的类型?(1为圆形,2为长方形,3为正方形):”;cin>>iType;switch(iType){case1:cout<<“圆的半径为:”;cin>>radius;area=PI*radius*radius;cout<<”面积为”<<area<<endl;break;case2:cout<<”矩形的长为:”;cin>>a;cout<<”矩形的宽为:”;cin>>b;area=a*b;cout<<”面积为:”<<area<<endl;break;case3:cout<<”正方形的边长为:”;cin>>a;area=a*a;cout<<”面积为:”<<area<<endl;break;default:cout<<”不是合法的输入值!”<<endl;}return0;}实验二函数与重载(2学时)1、实验目的(1)掌握函数的定义和调用方法。(2)练习重载函数使用。(3)练习缺省参数的函数使用(4)练习使用系统函数。2、实验内容:(1)编写一个函数把华氏温度转换为摄氏温度,转换公式为:C=(F-32)*5/9。(2)编写重载函数max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。(3)给求取两个整数最大值的重载函数max1赋缺省参数值0,并运用该函数来判断某个整数是否大于0,比如max1(-6)。(4)使用系统函数pow(x,y)计算x^y的值,注意包含头文献cmath。3、实验规定(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。(2)独立完毕所布置习题。(3)为保证尽量在统一安排的上机时间内编译运营通过程序,应事先设计好程序。(4)认真完毕每次实验,并写出实验报告。4、实验环节:(1)编写函数floatConvert(floatTempFer),参数的返回值都为float类型,实现算法C=(F-32)*5/9,在main()函数中实现输入、输出。程序名为lab2_1.cpp.(2)分别编写四个同名函数max1,实现函数重载,在main()函数中测试函数功能。程序名:lab2_2.cpp。参考程序如下:#include<iostream>usingnamespacestd;intmax1(inta=0,intb=0){ returna>b?a:b;}intmax1(inta,intb,intc){ﻩinttmp=max1(a,b);ﻩreturntmp>c?tmp:c;}doublemax1(doublea,doubleb){ returna>b?a:b;}doublemax1(doublea,doubleb,doublec){ doubletmp=max1(a,b);ﻩreturntmp>c?tmp:c;}intmain(){ﻩintn1,n2,n3; cout<<"请输1个整数:";ﻩcin>>n1;ﻩif(max1(n1)==0)ﻩﻩcout<<"这个数小于或等于0"; elseﻩﻩcout<<"这个数大于0"; cout<<"请输2个整数:"; cin>>n1>>n2; cout<<"最大值为"<<max1(n1,n2)<<endl;ﻩcout<<"请输3个整数:";ﻩcin>>n1>>n2>>n3;ﻩcout<<"最大值为"<<max1(n1,n2,n3)<<endl; doubled1,d2,d3;ﻩcout<<"请输2个实数:";ﻩcin>>d1>>d2; cout<<"最大值为"<<max1(d1,d2)<<endl;ﻩcout<<"请输3个实数:"; cin>>d1>>d2>>d3;ﻩcout<<"最大值为"<<max1(d1,d2,d3)<<endl;return0;}(3)若将三个整数的函数给定缺省参数值0,重新编译,观测编译的结果。(4)在main()函数中提醒输入两个整数x,y,使用cin语句得到x,y的值,调用pow(x,y)函数计算x的y次幂的结果,再显示出来。程序名:lab2_2.cpp。实验三类的定义与使用(2学时)1、实验目的(1)掌握类的定义和使用(2)掌握类的定义和对象的声明(3)观测构造函数和析构函数的执行过程。(4)观测具有不同访问属性的成员的访问方式。 2、实验内容(1)定义一个TDate类,包含年(year)、月(month)、日(day)等属性,有三个公有成员函数:SetDate来设立日期、AddOneDay来对日期进行加1天的操作、print来输出日期;(2)对构造函数或成员函数进行重载;(3)设立构造函数或成员函数的缺省参数(4)观测构造函数和析构函数的调用顺序;(5)观测具有不同访问属性的成员的访问方式。3、实验规定(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。(2)独立完毕所布置习题。(3)为保证尽量在统一安排的上机时间内编译运营通过程序,应事先设计好程序。(4)认真完毕每次实验,并写出实验报告。4、实验环节(1)添加一个头文献TDate.h来定义TDate类。包含:1)私有数据成员:年(year)、月(month)、日(day)等;2)定义2个构造函数,并对其中的一个构造函数设立缺省参数;3)定义1个析构函数。4)定义成员函数SetDate来设立日期,AddOneDay来对日期进行加1天的操作,print来输出日期。(2)添加一个源文献TDate.cpp来实现成员函数。(3)在主程序中定义若干个TDate类的对象,调用其成员函数,观测类对象的构造与析构顺序,以及成员函数的调用。写在此外一个cpp文献中。(4)将成员函数print的访问属性设为private或protected后,重新编译,观测编译结果。//======日期类定义部分TDate.h======//#include<iostream>usingnamespacestd;#ifndefTDate_H#defineTDate_HclassTDate{public:ﻩTDate()ﻩ{ year=2023;month=1;day=1; ﻩcout<<"调用缺省的构造函数"<<endl;ﻩ}ﻩTDate(inty,intm=1,intd=1) {ﻩﻩyear=y;month=m;day=d;ﻩ cout<<"调用带参数的构造函数"<<endl; }; voidSetDate(inty,intm,intd); voidAddOneDay();ﻩvoidprint();ﻩ~TDate(){cout<<"private: intyear; intmonth;ﻩintday;};#endif//======日期类实现部分TDate.cpp======//#include"TDate.h"intmaxDays(int,int);voidTDate::print(){cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;}voidTDate::SetDate(inty,intm,intd){ year=y;ﻩmonth=m; day=d;}voidTDate::AddOneDay(){ﻩday=day+1;ﻩif(day>maxDays(year,month)) {month=month+1;ﻩ day=1;}ﻩif(month>12)ﻩ{year=year+1; ﻩmonth=1; }}intmaxDays(inty,intm){ﻩintdays; switch(m)ﻩ{ﻩﻩcase1: ﻩcase3: ﻩcase5:ﻩﻩcase7:ﻩ case8:ﻩﻩcase10:ﻩﻩcase12:ﻩ ﻩdays=31;//31天ﻩ ﻩbreak;ﻩ case2: if((y%4==0&&y%100!=0)||y%400==0)//闰年29天 ﻩﻩ ﻩﻩﻩdays=29; ﻩelse days=28; break;ﻩﻩ //}ﻩ default://30天 ﻩdays=30;ﻩ break; } returndays;};//======主函数部分Lab3.cpp======//intmain(){ﻩTDated0; cout<<"不带参数的日期对象:"; d0.print(); TDated1(2023);ﻩcout<<"带1个参数的日期对象:"; d1.print();ﻩTDated2(2023,12);ﻩcout<<"带2个参数的日期对象:";ﻩd2.print(); TDated3(2023,10,14);ﻩd3.AddOneDay();ﻩcout<<"带3个参数的日期对象加一天后:";ﻩd3.print(); d3.SetDate(2023,4,8);ﻩcout<<"重新设定日期后:"; d3.print();ﻩreturn0;}实验四静态成员与常成员的使用(2学时)1、实验目的(1)学习静态成员的使用(2)学习常成员的使用(3)掌握静态数据成员与常数据成员的初始化2、实验内容(1)某商店经销一种货品,货品成箱购进,成箱卖出,购进和卖出时以重量为单位,各箱的重量不同样,因此,商店需要记录下目前库存的货品的总重量,现在规定设计一个Goods类并使用静态成员来模拟商店货品购进和卖出的情况;(2)为上面的Goods类添加一个常数据成员(货品名称),并对货品名称进行初始化;(3)将前面已定义的某些成员函数改写为常成员函数,观测是否该类中所有的成员函数是否都可设定为常成员函数。3、实验规定(1)注意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。(2)独立完毕所布置习题。(3)为保证尽量在统一安排的上机时间内编译运营通过程序,应事先设计好程序。(4)认真完毕每次实验,并写出实验报告。4、实验环节(1)添加一个头文献Goods.h来定义Goods类。包含:1)私有数据成员货品重量(weight)、私有静态数据成员库存总重量(totalWeight);2)定义构造函数来描述进货过程;3)定义成员函数Sell来描述货品卖出过程,成员函数GetWeight来获取当前货品重量。4)定义静态成员函数GetTotalWeight来读取当前货品的库存总重量。5)自定义若干个成员函数。(2)添加一个源文献Goods.cpp来实现成员函数。(3)在主程序中定义若干个Goods类的对象,模拟进货与卖出的过程。查看运营结果。(4)为Goods类添加一个常数据成员constchar*name来表达货品名称,改写构造函数及主程序的调用,在构造函数的成员初始化列表中对货品名称赋初值。重新编译,观测运营结果。(5)将前面已定义的某些成员函数改写为常成员函数,观测是否该类中所有的成员函数是否都可设定为常成员函数。参考程序如下:#incl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人工智能通识 学习情境5 智能语音技术
- 心理健康:学会表达情绪小学主题班会课件
- 智能硬件设计开发指导书
- 通信行业5G技术项目经理绩效考评表
- 医生门诊接诊效率绩效考评表
- 矿井维修钳工技能鉴定考试题库及答案
- 矿井调度员考试题库含答案
- 长期采访项目阶段性总结制度
- 促进假期阶段消费市场健康发展
- 2026下半年《小学道德与法治》教师资格证面试真题及答案【完整版】
- 眉山市2026年医务社会工作服务岗招募(26人)笔试模拟试题及答案详解
- 十堰竹溪县事业单位招聘笔试真题2025
- 2026年三级安全教育考试试题及答案(公司级+部门级+班组级 完整版)
- 2023版静脉治疗护理技术操作标准临床应用指南解读课件
- 2026学年部编版新教材语文五年级上册全册教案设计(含教学计划)
- 2026 年监理工程师《建设工程目标控制(土建)》冲关速记
- 华为任职资格体系(6版)
- 财务付款审批权限制度
- 印刷行业工艺流程与质量控制手册
- 2026年移动式压力容器充装R2作业证考试练习题库含答案
- 2025广东江门市江海区绿信再生资源有限公司拟聘人员笔试历年难易错考点试卷带答案解析
评论
0/150
提交评论