欢迎来到天天文库
浏览记录
ID:35215445
大小:2.09 MB
页数:41页
时间:2019-03-21
《北邮小学期c实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、面向对象程序设计与实践c++实验总结报告——网络工程14班饶思哲——学号:2013211574实验一简单C++程序设计1.猜价格游戏编写C++程序完成以下功能:(1)假定有一件商品,程序用随机数指定该商品的价格(1-1000的整数);(2)提示用户猜价格,并输入:若用户猜的价格比商品价格高或低,对用户作出相应的提示;(3)直到猜对为止,并给出提示。题目1-1总结:1)本题需要随机生成整数,我开始只使用rand(),即price=rand();来生成随机整数但这样只是一个伪随机函数,每一次重新打开程序生成的数都是一
2、致的。因此加入时间随机种子:srand((unsigned)time(NULL))2)个人改进1:定义最大值最小值,在每次猜测数字时显示应猜的数字范围,作为提示。想到这个是因为有一次猜了很多遍都没猜到,一时突然忘记猜到什么范围,然后往前翻猜过的数字和大小感觉相当麻烦,所以就添上了应猜范围,方便再一次猜数。1)个人改进2:本来有一个判断条件判断生成的随机数是不是1~1000范围内,而后更进为随机生成整数对1000取余得到0~999整数,再+1得到1~1000的整数。实验二类与对象1.矩形编写C++程序完成以下功能:
3、(1)定义一个Point类,其属性包括点的坐标,提供计算两点之间距离的方法;(2)定义一个矩形类,其属性包括左上角和右下角两个点,提供计算面积的方法;(3)创建一个矩形对象,提示用户输入矩形左上角和右下角的坐标;(4)观察矩形对象以及Point类成员的构造函数与析构函数的调用;(5)计算其面积,并输出。题目2-1总结:1)这一题是第一次用到class类的题目,开始并不明白为何要定义class,然后还需要区分public和private。而后来去图书馆借了书看到c++最大特色就是可以封装,定义私有属性和公有函数,以
4、确保有些函数和参数不会被轻易访问到,降低错误率。1)class类在最起初定义时总是在classRectangle那一行报错,经查书发现class定义最后一个大括号后有分号,开始并没有加上。2)起初在调用class中函数时用c调用的方式,没有跟面向的对象结合,导致编译出错,而后从distance()改为p.distance()就正确了。3)计算两点距离和面积运用开方和绝对值函数,前面若没有加头文件math.h则会报错。4)输入左上角右下角坐标时,若输入不当,可能会出现面积为负值的情况,所以加上绝对值函数保证面积非负
5、。5)起初不知道构造函数和析构函数的定义和用法,经翻阅书籍和运行程序得知构造函数在创建对象时调用,可以有多个。而析构函数则在释放对象时调用,一般每一个class中都只有一个默认析构函数。且构造函数与类名称一致,析构函数则在类名称前加~。1.友元编写C++程序完成以下功能:(1)定义一个Boat和Car两个类,他们都具有私用属性——重量;(2)编写一个函数,计算两者的重量和。doubleTotalWeight(Boat&b,Car&c);题目2-3总结:1)友元函数:在两个对象中都使用到时,可以使用友元函数,并在类
6、外单独定义。友元函数是允许在类外访问类中的任何成员的。开始在类外单独定义时跟类的成员函数单独定义混淆,写成了doubleBoat::TotalWeight(),导致编译错误,而后发现友元函数直接用函数名和函数返回值类型定义即可,不需要加上class类的名称。2)起初定义完classBoat和classCar后发现编译错误,在友元函数的声明那一行出错,而后发现在这行之前没有定义Car类,于是将其在最开头声明出来,通过。3)起初并没有加上boat和car类的构造函数和析构函数,可是经上网查阅,默认构造函数和析构函数可
7、以系统自动生成,但析构函数只能删除成员指针,并不能释放指针指向的空间,所以若没有申请动态内存,析构函数可不写出,若申请,则需自行在析构函数中delete。实验三数组与指针1.矩阵(一)编写C++程序完成以下功能:(1)假定矩阵大小为4×5(整型数组表示);(2)定义矩阵初始化函数,可以从cin中输入矩阵元素;(3)定义矩阵输出函数,将矩阵格式化输出到cout;(4)定义矩阵相加的函数,实现两个矩阵相加的功能,结果保存在另一个矩阵中;(5)定义矩阵相减的函数,实现两个矩阵相减的功能,结果保存在另一个矩阵中;(6)定
8、义三个矩阵:A1、A2、A3;(7)初始化A1、A2;(8)计算并输出:A3=A1加A2,A3=A1减A2。题目3-1总结:1)起初在矩阵相加相减的赋值中所用语句为:m.matrix[i][j]=a.matrix[i][j]+b.matrix[i][j]但是运行程序发现m矩阵所有元素都是0。经单步调试,发现并没有赋值成功。经查阅书籍,了解到this指针是指向类的对象的地址
此文档下载收益归作者所有