面向对象程序设计 .docx
精品名师归纳总结面对对象程序设计试验指导书试验类别:设计试验课程名称:面对对象程序设计方法学试验室名称:软件基础试验室试验课程编号:总学时:56学 分: 3.5适用专业:运算机科学与技术、网络工程、物联网先修课程:有一门程序设计语言基础试验在教案培育方案中位置、作用:面对对象程序设计方法学是一门实践性很强的课程,每个同学必需完成肯定数量的上机试验。试验课是对同学的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不行少的一个教案环节。本课程使同学熟识C+ 的语法特性,明白C 与 C+的区分和兼容性。懂得面对对象程序设计的基本原理,包括类、对象、抽象、封装、继承和多态性等关键要素以及其关键语法特性类。把握用C+ 编写面对对象程序的一般方法。明白VC+ 编程环境。通过上机试验进一步加深对课程基本内容的懂得。同时,在程序设计方法及上机操作等基本技能和科学作风方面受到比较系统的、严格的训练。可编辑资料 - - - 欢迎下载精品名师归纳总结试验一语句与程序流程(2 学时)1、试验目的( 1)明白 C+ 开发工具的特点( 2)熟识 C+ 开发环境( 3)学会编写简洁的C+ 程序。( 4)练习使用简洁的输入输出。( 5)熟识各种流程掌握语句的功能。2、试验内容( 1)输入并运行程序:用do-while 语句编程,求自然数110 之和。程序正确运行之后,去掉源程序中的 #include 语句,重新编译,观看会有什么问题。( 2) do-while 语句用 for 语句代替,完成相同的功能。( 3)编程运算图形的面积。程序可运算圆形、长方形、正方形的面积,运行时先提示用户挑选图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,运算出面积后将其显示出来。3、试验要求( 1)留意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。( 2)独立完成所布置习题。( 3)为保证尽量在统一支配的上机时间内编译运行通过程序,应事先设计好程序。( 4)仔细完成每次试验,并写出试验报告。4、试验步骤( 1)启动 Visual C+ 开发环境( 2)创建一个工程1)单击 File 菜单中的 New 选项,显示新建对话框2)挑选 Win32 Console ApplicationVC+。 3)挑选工程所在路径及输入工程的名称lab1_14)依次按下一步直至完成为止。( 3)至此,已经建立好工程相关的文件,在生成的main 函数中写入必要的内容即可。( 4)输入并运行程序:用do-while 语句编程,求自然数110 之和1) 建立 C+ 源程序文件选菜单命令 Project|Add to Project|New, 弹出 New 对话框在 New 对话框的 Files 选项卡中挑选C+ Source File, 并填入文件名称lab1_1,单击 OK 按钮,完成新建 C+ 源程序文件2) 编辑 C+ 源程序文件在文件编辑窗口中输入代码完成后,挑选菜单File|Save 储存这个文件3)建立并运行可执行程序挑选菜单命令Build, 建立可执行程序假如你正确输入了源程序,此时便胜利的生成了可执行程序。假如程序有语法错误,就屏幕下方的状态窗口中会显示错误信息,依据这些错误信息对源程序进行修改后,重新挑选菜单命令Build 建立可执行程序。可编辑资料 - - - 欢迎下载精品名师归纳总结挑选菜单命令Run,运行程序,观看屏幕显示内容。( 5)程序正确运行之后,在源程序第一行”#include <iostream.h> ”前面加注释标记”/”使之成为注释行,重新编译,观看编译的结果。( 6)挑选菜单命令 File|Colse WorkSpace 关闭工作空间,另建立一个工程 lab1_2,包含一个 C+ 源程序 lab1_2.cpp ,将 do-while 语句用 for 语句代替,完成与试验内容 1 相同的功能。( 7)挑选菜单命令File|Colse WorkSpace 关闭工作空间,建立工程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>using namespace std。const float PI=3.1416 。int mainint iType 。float radius,a,b,area。cout<< ”图形的类型?(1 为圆形, 2 为长方形, 3 为正方形):”。 cin>>iType 。switchiTypecase 1:cout << “圆的半径为:”。cin>>radius 。area=PI*radius*radius 。cout<< ”面积为” <<area<<endl。break。case 2:cout<< ”矩形的长为:”。cin>>a 。cout<< ”矩形的宽为:”。cin>>b 。area=a*b。cout<< ”面积为:” <<area<<endl。break。可编辑资料 - - - 欢迎下载精品名师归纳总结case 3:cout<< ”正方形的边长为:”。cin>>a 。area=a*a。cout<< ”面积为:” <<area<<endl。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结default:break。cout<< ”不是合法的输入值!”<<endl 。可编辑资料 - - - 欢迎下载精品名师归纳总结return 0 。可编辑资料 - - - 欢迎下载精品名师归纳总结试验二函数与重载( 2 学时)1、试验目的( 1)把握函数的定义和调用方法。( 2)练习重载函数使用。( 3)练习缺省参数的函数使用( 4)练习使用系统函数。2、试验内容:( 1)编写一个函数把华氏温度转换为摄氏温度,转换公式为:C=F-32*5/9 。( 2)编写重载函数max1 可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。( 3)给求取两个整数最大值的重载函数max1 赋缺省参数值0,并利用该函数来判定某个整数是否大于0,比如 max1-6 。( 4)使用系统函数 powx,y 运算 xy 的值,留意包含头文件cmath。3、试验要求( 1)留意自始至终贯彻课程中所介绍程序设计风格,养成良好的编程习惯。( 2)独立完成所布置习题。( 3)为保证尽量在统一支配的上机时间内编译运行通过程序,应事先设计好程序。( 4)仔细完成每次试验,并写出试验报告。4、试验步骤:( 1)编写函数 float ConvertfloatTempFer,参数的返回值都为float 类型,实现算法C=F-32*5/9 ,在 main 函数中实现输入、输出。程序名为lab2_1.cpp.( 2)分别编写四个同名函数max1,实现函数重载,在main 函数中测试函数功能。程序名: lab2_2.cpp。参考程序如下:#include <iostream> using namespace std。int max1int a=0,int b=0return a>b.a:b。int max1int a,int b,int cint tmp=max1a,b 。return tmp>c.tmp:c 。double max1double a,double breturn a>b.a:b。double max1double a,double b,double c可编辑资料 - - - 欢迎下载精品名师归纳总结double tmp=max1a,b 。return tmp>c.tmp:c 。int mainint n1,n2,n3 。cout<<" 请输 1 个整数 :"。cin>>n1 。if max1n1=0cout<<" 这个数小于或等于0" 。elsecout<<" 这个数大于 0" 。cout<<" 请输 2 个整数 :"。cin>>n1>>n2 。cout<<" 最大值为 "<<max1n1,n2<<endl 。cout<<" 请输 3 个整数 :"。cin>>n1>>n2>>n3 。cout<<" 最大值为 "<<max1n1,n2,n3<<endl 。double d1,d2,d3 。cout<<" 请输 2 个实数 :"。cin>>d1>>d2 。cout<<" 最大值为 "<<max1d1,d2<<endl 。cout<<" 请输 3 个实数 :"。cin>>d1>>d2>>d3 。cout<<" 最大值为 "<<max1d1,d2,d3<<endl 。return 0 。( 3)如将三个整数的函数给定缺省参数值0,重新编译,观看编译的结果。( 4)在 main 函数中提示输入两个整数x,y,使用 cin 语句得到x,y 的值,调用powx,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>using namespace std。#ifndef TDate_H #define TDate_Hclass TDatepublic:TDate可编辑资料 - - - 欢迎下载精品名师归纳总结year=2021。month=1 。 day=1。cout<<" 调用缺省的构造函数 "<<endl 。TDateint y,int m=1,int d=1可编辑资料 - - - 欢迎下载精品名师归纳总结 。private: 。#endifyear=y。month=m 。day=d 。cout<<" 调用带参数的构造函数"<<endl 。void SetDateint y,int m,int d 。void AddOneDay 。void print 。TDatecout<<" 调用析构函数 "<<endl 。int year。int month 。int day 。可编辑资料 - - - 欢迎下载精品名师归纳总结/= 日期类实现部分 TDate.cpp =/ #include "TDate.h"int maxDaysint,int 。void TDate:printcout<<year<<" 年"<<month<<" 月"<<day<<" 日"<<endl 。 void TDate:SetDateint y,int m,int dyear=y。month=m 。day=d。 void TDate:AddOneDayday=day+1 。if day>maxDaysyear,monthmonth=month+1 。day=1。 if month>12year=year+1 。month=1 。int maxDaysint y,int mint days。switchmcase 1:case 3:case 5:case 7:case 8:可编辑资料 - - - 欢迎下载精品名师归纳总结case 10:case 12:case 2:days=31。 /31 天break。if y%4=0&&y%100.=0|y%400=0/闰年 29 天可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结else break。/ default:/30 天days=29。days=28。可编辑资料 - - - 欢迎下载精品名师归纳总结return days。 。days=30。break。可编辑资料 - - - 欢迎下载精品名师归纳总结/= 主函数部分 Lab3.cpp =/int mainTDate d0 。cout<<" 不带参数的日期对象:TDate d12003 。"。d0.print 。cout<<" 带 1 个参数的日期对象:"。d1.print 。TDate d22003,12 。cout<<" 带 2 个参数的日期对象:"。d2.print 。TDate d32021,10,14 。d3.AddOneDay 。cout<<" 带 3 个参数的日期对象加一天后:"。 d3.print 。d3.SetDate2005,4,8 。cout<<" 重新设定日期后:"。d3.print 。return 0。可编辑资料 - - - 欢迎下载精品名师归纳总结试验四静态成员与常成员的使用(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 类添加一个常数据成员const char * name 来表示货物名称,改写构造函数及主程序的调用,在构造函数的成员初始化列表中对货物名称赋初值。重新编译,观看运行结果。( 5)将前面已定义的某些成员函数改写为常成员函数,观看是否该类中全部的成员函数是否都可设定为常成员函数。参考程序如下: #include <iostream.h> class Goodspublic:可编辑资料 - - - 欢迎下载精品名师归纳总结Goodsint w 。int GetWeight const 。void Sell 。static int GetTotalWeight 。private:int weight 。static int totalWeight 。public:const char* name。 。Goods:Goodsint w:name" 鸡蛋 "weight=w 。totalWeight+=w 。void Goods:SelltotalWeight-=weight 。weight=0 。int Goods:GetWeight constreturn weight 。int Goods:GetTotalWeightreturn totalWeight 。int Goods:totalWeight=0 。int mainint w 。cout<<" 购进第 1 箱货物重量为:"。cin>>w 。Goods g1w 。cout<<" 购进第 2 箱货物重量为:"。cin>>w 。Goods g2w 。cout<<" 库存货物重量为:"。cout<<Goods:GetTotalWeight<<endl 。g2.Sell 。cout<<" 卖掉第 2 箱货物后,库存货物重量为:" 。cout<<g1.GetTotalWeight<<endl 。可编辑资料 - - - 欢迎下载精品名师归纳总结cout<<" 货物名称为: "<<g1.name<<endl 。return 0。可编辑资料 - - - 欢迎下载