- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++程序设计实验讲义
软件学院C++教学团队目录
实验1 在小范围内用C++增强C的功能 3
实验2 类的定义与应用 5
实验3 this指针、常量和静态成员和友元函数的使用 8
实验4 派生与继承 13
实验5 多态性 16
实验6 IO流上机实验 20
实验7 运算符重载、模板 22
实验8 windows程序设计 25
实验1 在小范围内用C++增强C的功能
实验目的和要求
目的:快速掌握C++语言编程的方法,在小范围内增强C++的功能,主要内容有:(1)输入流、输出流的使用;(2)函数原型;(3)new和delete运算符分配内存。
2.实验内容:
编写一个用输入和输出流运算符进行的输入和输出的程序。从键盘输入两个数,分别对两个数进行加,减,乘和除的运算。并输出计算结果,如: 23+123=146。
用new和delete运算符动态分配内存空间的方法编写程序。从键盘输入3?3整型数组的数据,并计算出所有元素之和,打印出最大值和最小值。输入输出要用流运算符实现。
编写C++风格的程序,解决百钱问题:将1元人民币兑换成1,2,5分的人民币,有多少种换法?
在主函数中定义2个整型元素a,b,用引用作函数参数的方法,在函数void swap(int x, int y)中实现将数据交换存放,并在主函数中打印出来。
假设我们班有50名同学,每个同学都报出自己的生日, 每个同学的生日都不相重的概率只有0.0296,如果有100个同学,不相重的概率为3.0725?10-7。相重复的概率如此之大与我们主观想象不同。写一个程序,输入同学的人数n计算出其生日不重复的概率。然后在用彷真的方法, 利用随机数产生每个同学的生日,计算出生日不重复的概率并与前面的结果进行比较。
[学生的生日可以用随机数产生,rand()产生0—32767之间的伪随机数,因为此需要一个种子,种子不同产生的随机数列不同,rand()产生的随机数也不同,可以调用srand(long int *)函数设置种子,比如我们可以获得计算机中的时间获得随机数种子, 以上函数需要包含头文件 stdlib.h]
思考题:
结合上机的体会,回答下列问题.
C++引入了I/O流运算符,与 C语言相比,它们好处是什么?
与C语言的动态分配内存函数相比,C++的new 和delete运算符的优点是什么?
引用是C++的很重要的功能,在函数定义中,如何使用引用,会实现怎样的效果?
实验2 类的定义与应用
1、实验目的和要求:
掌握类定义的方法,理解类类型,实例的含义,体会面向对象程序设计中数据隐藏的概念。理解构造函数和析构函数的作用和运行实际,掌握拷贝构造函数的作用。并熟练掌握复杂对象类型的运用。
2、实验内容:
(1)定义一个时间类Time,它能提供由时分秒组成的时间。要求能够修改时间和打印出时间。
(2)编写一个计数器类,定义一个私有数据成员,通过两个成员函数,分别使其完成加1和减1操作。用构造函数数据成员初始化为0,输出函数可以输出数据成员函数的值。
(3)设计一个时间类,要求包含以下功能:
数据成员:时、分、秒
成员函数:
各种构造函数
析构函数
可以通过函数分别设置时间的各个组成部分
也可以整体设置时间
有一个tick函数,负责给当前时间加1秒钟,然后输出新的时间
(4)定义一个分数类如下,要求实现各个成员函数,并在主函数中测试两个分数的加减乘除等运算。
class Rational{
public:
Rational(int nn=1,int mm=1); //构造
Rational R_add(Rational A); //加
Rational R_sub(Rational A); //减
void R_mul(Rational A); //乘
void R_div(Rational A, Rational B); //除
void simple( ); //约分
void print(); //以分数形式显示,注意约分
private:
int m; // 分母
int n; // 分子
};
(5)定义一个类包含一个整型数的指针变量,在构造函数中用new分配10各整型数的内存空间,在析构函数中用delete释放内存空间,并编写给内存空间赋值和输出函数。
(6)编写类String 的构造函数、析构函数
已知类String 的原型为:
class String
{
public:
String(const char *str = NULL); // 普通构造函数
String(const String other); // 拷贝构造函数
~
文档评论(0)