资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
杜红燕 编C+程序设计课程实验指导书长 沙 学 院 计 算 机 科 学 与 技 术 系1前 言本书是C+程序设计课程的实验指导书。初学程序设计的人,都有一个体会,看程序容易,但自己动手写程序难,甚至感觉无从下手,究其原因就在于没有把握住学习程序设计的根本方法,学习程序设计的关键是多实践,通过上机体会和掌握程序设计的思想和方法,通过上机验证程序的正确性,为此我们编写了这本实验指导书。本书的主要内容分为三个部分,第一部分为实验内容,对每个实验的实验目的、实验类型、实验学时、实验原理及知识点、实验环境(硬件环境、软件环境)和实验内容及步骤进行简单介绍,第二部分为实验指导,对每个实验的实验方法,实验步骤及补充的实验知识进行详细介绍,第三部分为实验报告。C+程序设计的环境有许多,在这里我们选用的是 MicroSoft Visual C+ 6.0。对书中的每个实验题目,在实验指导部分都给出了编程提示,个别实验给出了程序的参考代码,最后还介绍了常用标准库函数的函数原型。需要强调一点,程序设计是一个创作的过程,解决一个问题的方法不是唯一的,所以请大家在阅读本书的实验指导之前,已经独立思考过对这些问题的解决方法,这样才有助于程序设计水平的提高。编者2008 年 2 月I目 录第一部分 实验内容实验 1:类的定义和构造2实验 2:堆与拷贝构造函数、静态成员与友元、运算符重载4实验 3:通过继承进行软件的渐增式开发8实验 4:I/O 流与文件操作.11实验 5:模板与异常处理13第二部分 实验指导Visual C+ 6.0 的集成环境.16实验 1:类的定义和构造26实验 2:堆与拷贝构造函数、静态成员与友元、运算符重载31实验 3:通过继承进行软件的渐增式开发34实验 4:I/O 流与文件操作.39实验 5:模板与异常处理 43C/C+常用标准库函数 461第一部分实验内容2实验 1:类的定义和构造一、实验目的1、掌握类的定义和使用2、学习构造类的方法3、掌握如何定义构造函数和析构函数4、掌握初始化对象的方法5、理解面向对象程序设计的思想二、实验类型 验证三、实验学时 4 学时四、实验原理及知识点1、类的定义2、类成员的访问控制3、类的数据成员和成员函数4、构造函数和析构函数5、对象的定义与初始化五、实验环境(硬件环境、软件环境)1、软件:Windows 操作系统, Visual C+ 6.02、硬件:CPU 奔腾;内存 64 兆以上(最好 128 兆以上) ;六、实验内容及步骤1、定义一个描述学生通讯录的类,数据成员包括:姓名、学校、电话号码和邮编;成员函数包括:输出各个数据成员的值,分别设置和获取各个数据成员的值。2、将第一个上机实验题中的成员函数 Init 改为构造函数,将成员函数 FreeSpace 改为析构函数。增加一个缺省的构造函数,使指针 pName,pSchool 和 pNum 的初值为 0,使 Box包含空字符串。3、定义分数类 Rational,要求在 private 部分用整数表示分子和分母,分子和分母以简化形式表示,即 24/36 应该以 2/3 的形式表示,并提供 public 成员函数实现如下功能:(1) 两个分数相加,结果表示为简化形式;(2) 两个分数相减,结果表示为简化形式;(3) 按 a/b 的形式输出分数的值,a、b 为整数;(4) 按浮点数的形式输出分数的值。七、思考与练习1、编写 Time 类,要求:(1) 包含年、月、日、时、分、秒的信息;(2) 构造函数将类的对象初始化为系统当前时间(使用头文件 time.h 中的 time()函数);(3) 能按标准格式输出对象表示的时间。2、编写矩形类,要求可以提示用户输入矩形的长度和宽度,并显示该矩形的长度、宽3度和面积。4实验 2:堆与拷贝构造函数、静态成员与友元、运算符重载一、实验目的1、领会拷贝构造函数的实质2、学会使用堆对象的分配与释放3、领会运算符重载的意义4、学会使用 this 指针5、理解友元的语法和含义6、在此基础上领会和掌握面向对象的程序设计思想。二、实验类型 验证三、实验学时 4 学时四、实验原理及知识点1、堆对象的分配与释放2、拷贝构造函数3、类的复合4、This 指针5、静态数据、友元函数和友元类6、运算符重载的概念7、单目运算符重载8、双目运算符重载9、重载流插入和流提取运算符10、赋值运算符重载五、实验环境(硬件环境、软件环境)1、软件:Windows 操作系统, Visual C+ 6.02、硬件:CPU 奔腾;内存 64 兆以上(最好 128 兆以上) ;六、实验内容及步骤1、建立一个 Stock 类,含有股票代码和股票现价两个数据成员。用 new 自动为 Stock 类的对象分配内存,并将股票”600001”,现价 8.89 存入内存的相应域中。在类中增加静态数据成员记载创建对象的个数,增加拷贝构造函数并调用。2、对如下圆柱类 Column 的定义:class Column public:Column(double x, double y, double r, double h);Column();5double area(); /求圆柱面积double volume(); /求圆柱体积private:double height; /高度double radius; /半径double x; /底面圆心 x 坐标double y; /底面圆心 y 坐标;要求:(1) 实现类 Column 中的四个成员函数;(2) 增加一个友元函数,实现从键盘读取四个 double 类型的数据对类 Column 的对象进行赋值的功能;(3) 增加一个友元函数,实现将类 Column 的对象输出到屏幕的功能,输出信息包括对象的基本信息以及对象的面积和体积。3、对于下面定义的类 Test:class Test private:int a;double b;要求:(1) 为类 Test 的每个数据成员增加一个 set 函数,并使这些 set 函数都可以被连续调用;(2) 为类 Test 的每个数据成员增加一个 get 函数。(3) 如果要求所有 get 函数都可以被连续调用,这些函数该如何编写?4、 定义一个复数类,通过重载运算符: *,/,直接实现二个复数之间的乘除运算。编写一个完整的程序,测试重载运算符的正确性。要求乘法“*” 用友元函数实现重载,除法“/”用成员函数实现重载。七、思考与练习1、定义一个复数类,通过重载运算符: *,/ ,直接实现二个复数之间的乘除运算。编写一个完整的程序,测试重载运算符的正确性。要求乘法“*” 用友元函数实现重载,除法“/”用成员函数实现重载。2、定义包含年、月、日信息的日期类 Date,并重载二元运算符 “+”,使之具有日期对象和整数(天数)相加的功能,并编程测试。3、下列程序定义了一实部为 real,虚部为 imag 的复数类 complex,要求重载运算符“+”、 “-”、 “*”实现复数对象的加法、减法、乘法运算,并编写测试程序。如果要进行 a = 6b + c * d;(a、b、c、d 都是类 Complex 的对象)这样的运算,需要重载赋值运算符吗?为什么?class Complexpublic:complex(double r=0, double i=0)real=r; imag=i; private:double real, imag;4、于下面的类 MyString,要求重载一些运算符后可以计算表达式: a = b + c;,其中a、b、c 都是类 MyString 的对象。请重载相应的运算符并编写程序测试。class MyString public:MyString(char *s) str = new charstrlen(s)+1;strcpy(str, s);MyString() delete str;private:char *str;5、对于下面的 Time 类:class Time public:Time(int h = 0, int m = 0, int s = 0);private:int hour, minute, second;要求:(1) 实现构造函数,是类 Time 的数据成员可以得到正确的赋值;(2) 重载流插入运算符,按照 hh-mm-ss 的格式输入类 Time 的对象。8实验 3:通过继承进行软件的渐增式开发一、实验目的1、掌握继承方法,理解多态性2、掌握虚函数的用法,观察其多态性3、掌握软件的渐增式开发方法二、实验类型 设计三、实验学时 6 学时四、实验原理及知识点1、继承和派生的基本概念2、继承的定义3、基类和派生类对象的转换4、类指针的使用5、多态性的意义和作用6、虚函数的定义方法7、抽象基类的作用和定义方法8、虚析构函数的作用和使用方法9、如何在程序中实现多态性10、软件的渐增式开发方法五、实验环境(硬件环境、软件环境)1、软件:Windows 操作系统, Visual C+ 6.02、硬件:CPU 奔腾;内存 64 兆以上(最好 128 兆以上) ;六、实验内容及步骤1、下面是一个形状类 Shape,编写类 Shape 的派生类:圆类 Circle、三角形类 Triangle和矩形类 Rectangle,并重定义基类的成员函数使之返回正确的结果(show 函数要输出对象的基本信息) ,然后编写程序测试它们。class Shape public:/形状的面积double area() return 0;9/形状的周长double girth() return 0;/输出对象的信息void show() coutb+c,ba+c,ca+b;编写程序,输入 a,b,c,检查 a,b,c 是否满足以上条件,如不满足,由 cerr 输出有关出错信息。2、建立两个磁盘文件 f1.dat 和 f2.dat,编写程序实现以下工作:(1) 从键盘输入 20 个整数,分别存放在两个磁盘文件中(每个文件放 10 个) ;(2) 从 f1.dat 读入 10 个数,然后存放到 f2.dat 文件原有数据的后面;(3) 从 f2.dat 中读入 20 个整数,将它们按从小到大的顺序存放到 f2.dat(不保留原来的数据) 。3、设计一个管理图书目的简单程序,提供的基本功能包括:可连续将新书存入文件“book.dat”中,新书信息加入到文件的尾部;也可以根据输入的书名进行查找;把文件“book.dat”中同书名的所有书显示出来。为简单起见,描述一本书的信息包括:书号,书名,出版社和作者。13实验 5: 模板与异常处理一、实验目的了解模板的概念、定义,了解 C+的异常处理机制。二、实验类型 验证三、实验学时 4 学时四、实验原理及知识点1、异常的基本概念2、异常的触发、传播和处理3、类属程序设计4、模板的定义和使用五、实验环境(硬件环境、软件环境)1、软件:Windows 操作系统, Visual C+ 6.02、硬件:CPU 奔腾;内存 64 兆以上(最好 128 兆以上) ;六、实验内容及步
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号