ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:18.19KB ,
资源ID:12369174      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12369174.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++实验讲义1.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++实验讲义1.docx

1、C+实验讲义1C+程序设计实验讲义河北大学电子信息工程学院 2007年1月31日 目 录实验1 在小范围内用C+增强C的功能 2实验2 类的定义与应用 4实验3 this指针、静态数据成员和友元函数的使用 5实验4 运算符重载 8实验5 派生与继承 10实验1 在小范围内用C+增强C的功能1 实验目的和要求目的:,快速掌握C+语言编程的方法,在小范围内增强C+的功能,主要内容有:(1)输入流、输出流的使用;(2)函数原型;(3)new和delete运算符分配内存。2实验内容:(1) 编写一个用输入和输出流运算符进行的输入和输出的程序。从键盘输入两个数,分别对两个数进行加,减,乘和除的运算。并输

2、出计算结果,如: 23+123=146。(2) 用new和delete运算符动态分配内存空间的方法编写程序。从键盘输入33整型数组的数据,并计算出所有元素之和,打印出最大值和最小值。输入输出要用流运算符实现。(3) 编写C+风格的程序,解决百钱问题:将1元人民币兑换成1,2,5分的人民币,有多少种换法?(4) 在主函数中定义包含10个元素的一维数组,并赋值为9,8,7,6,5,4,3,2,1,0。用引用作函数参数的方法,在函数中实现将数据逆序存放,并在主函数中打印出来。(5) 假设我们班有50名同学,每个同学都报出自己的生日, 每个同学的生日都不相重的概率只有0.096,如果有100个同学,不

3、相重的概率为3.072510-7。相重复的概率如此之大与我们主观想象不同。写一个程序,输入同学的人数n计算出其生日不重复的概率。然后在用彷真的方法, 利用随机数产生每个同学的生日,计算出生日不重复的概率并与前面的结果进行比较。 学生的生日可以用随机数产生,rand()产生032767之间的伪随机数,因为此需要一个种子,种子不同产生的随机数列不同,rand()产生的随机数也不同,可以调用srand(long int *)函数设置种子,比如我们可以获得计算机中的时间获得随机数种子, 以上函数需要包含头文件 stdlib.h 3 思考题:结合上机的体会,回答下列问题.(1) C+引入了I/O流运算符

4、,与 C语言相比,它们好处是什么?(2) 与C语言的动态分配内存函数相比,C+的new 和delete运算符的优点是什么?(3) 引用是C+的很重要的功能,在函数定义中,如何使用引用,会实现怎样的效果? 实验2 类的定义与应用1、实验目的和要求: 掌握类定义的方法,理解类类型,实例的含义,体会面向对象程序设计中数据隐藏的概念。2、实验内容:(1)定义一个时间类Time,它能提供由时分秒组成的时间。要求能够修改时间和打印出时间。(2)编写一个计数器类,定义一个私有数据成员,通过两个成员函数,分别使其完成加1和减1操作。用构造函数数据成员初始化为0,输出函数可以输出数据成员函数的值。(3) 定义一

5、个类包含一个整型数的指针变量,在构造函数中用new分配10各整型数的内存空间,在析构函数中用delete释放内存空间,并编写给内存空间赋值和输出函数。3、思考题:结合编程实践回答下列的问题。(1) 结合第一个例子,说明什么是类?什么是对象?你是如何理解类和对象的?(2) 面向对象的程序设计与结构化程序设计有何不同?实验3 this指针、静态数据成员和友元函数的使用1、 实验目的和要求:(1) 掌握显式使用this指针的方法(2) 掌握静态数据成员的意义及使用方法(3) 掌握友元函数的使用方法2、 实验内容:(1)有如下类的定义。类成员函数copy用于实现两个对象的相互拷贝,请完成该函数的实现。

6、(有两种方法即不用this 指针和用this指针)include class Myclass public: Myclass (int a,int b) x=a;y=b; Void copy(Myclass & my);void print( ) cout“x=”xendl; cout”y=”yendl; private:int x,y; void main() Myclass my(10,20),t(30,40); my.print( );my. Copy(t);my.print( ); (2)商店经销一种货物,货物成箱购进,成箱卖出,购进和卖出时以重量为单位,各箱的重量不一样,单价不一样,

7、因此商店需要记录下目前库存的货物的总重量和总价值。编写一个程序,通过定义类Carlo来模拟商店货物购进和卖出的情况。(本题目主要练习静态数据成员的使用,定义私有变量存每件货物的价格和重量,用静态数据成员存货物的总重量和总价钱,定义构造函数和析构函数,当定义新的对象完成初始化的功能和删除对象时,从总重量和总价钱中减去对象的重量和价格)(3) 个类分别为整型数集合类和实型数集合数类。将缺少的内容补齐。并完成要求的其它内容。如: class Intset private:int num3;public:Intset ( int x,int y, int z)/添加初始化内容void print( )

8、 /打印数据 ; class floatset private:float num3;public:floatset ( float x,float y, float z)/添加初始化内容void print( ) /打印数据;(1) 在Intset中再增加一个成员函数,将对象的整型数据拷贝的到floatset的对象中此成员函数的原型为:void settofloat(floatset &set); /形参为拷贝的目标对象(2) 办法需要调用函数,程序的开销较大,可以定义一个友元函数来实现上述的功能。请分别完成两个程序。3、思考题:结合编程实践回答下列的问题。(1) 什么是this指针,它的主

9、要作用是什么?(2) 总结静态成员的特点。实验4 运算符重载1、 实验目的和要求: 掌握运算符重载的语法要点,学会运算符重载的编程方法。2、 实验内容(1) 先读程序,预测程序的输出结果,再运行程序验证程序的输出。用友元重载方式重新编写次程序。#include class Vector public:Vector()Vector(int i,int j) x=i;y=j;friend Vector operator+=(Vector v1,Vector v2) v1.x+=v2.x; v1.y+=v2.y; return v1;Vector operator-=(Vector v) Vecto

10、r temp; temp.x=x-v.x; temp.y=y-v.y; return temp;void display() cout(x,y)endl;private: int x,y;void main() Vector v1(1,2),v2(3,4),v3,v4; v3=v1+=v2; v4=v1-=v2; coutv1=; v1.display(); coutv2=; v2.display(); coutv3=; v3.display(); coutv4=; v4.display();(2) 定义一个有理数类,重载比较运算符.写一个完整的程序,进行数据成员的设置和输出。class ra

11、tionalprivate: long denom,den; /denom为分子,den为分母public:rational(int num=0, int denom=1;int operator(rational r) const;int operator=(rational r) const;int operator= =(rational r) const;int operator!=(rational r) const;/这里增加赋值和读出函数(3) 设计一个复数类,并重载,/ 和 运算符。写完整程序并调试。实验5 派生与继承1、 实验目的和要求: 此实验用两个单元的时间完成,是一个综

12、合性的实验,要求编写的程序涉及到C+的许多知识点,如类的定义,动态分配内存,构造函数,派生,虚基类等。实验内容给出的是一个完整的程序,4个题目实际是类等级。同学也可以在此基础上发挥增加新的内容。2、 实验内容:1. 定义一个基类MyArray,基类中可以存放一组数组。Class Myarray int *alist; int length;public: Myarray( int leng); myarray(); void input(); void display();编写构造函数,析构函数及其它函数,实现动态分配内存,释放内存和数据输入输出等功能。并进行调试。2定义一个类averarray继承自myarray,在类中求数组的平均值,并输出。进行调试。3定义一个类revarray继承自 myarray, 使数组按反序存放,并输出。进行调试。4. 定义一个类Nawarray继承自averarray和revarray。在继承过程中声明为虚基类,体会虚基类在解决二义性中的问题中的作用。调试中可以试一试不用虚基类出现的问题。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1