c++程序设计上机指导书

上传人:第*** 文档编号:56198302 上传时间:2018-10-10 格式:DOC 页数:10 大小:640.50KB
返回 下载 相关 举报
c++程序设计上机指导书_第1页
第1页 / 共10页
c++程序设计上机指导书_第2页
第2页 / 共10页
c++程序设计上机指导书_第3页
第3页 / 共10页
c++程序设计上机指导书_第4页
第4页 / 共10页
c++程序设计上机指导书_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《c++程序设计上机指导书》由会员分享,可在线阅读,更多相关《c++程序设计上机指导书(10页珍藏版)》请在金锄头文库上搜索。

1、 上机实验指导书上机实验指导书课程名称课程名称 C+程序设计 主撰人 宋晓宇、刘继飞 审核人 栾方军沈阳建筑大学信息学院2008 年 3 月课程名称:课程名称:C+程序设计程序设计 上机学时:上机学时:16 适用专业:计算机科学与技术适用专业:计算机科学与技术 先修课程:先修课程:C 语言语言一、上机实验总体目标上机实验总体目标 C+程序设计是为计算机科学与技术专业开设的一门程序设计基础课。本课程强调动手实践,主要讲授 C+语言的基本语法与面向对象程序设计的基础理论知识,作为该课程的重要组成部分,其上机实验是理论运用于实践的教学环节。通过上机实践,可以使学生更深入地了解 C+编程思想,掌握结构

2、化和面向对象的编程方法与技巧,熟悉常用的软件开发环境(如 Visual C+) ,提高学生在程序设计方面和解决实际问题的能力,为学生后续课程的学习及求职就业奠定良好的基础。二、上机实验课时分配上机实验课时分配 序号上机实验项目实验类型每组人数上机学时 1字符串类的设计与使用设计4 2派生类的设计与使用设计4 3运算符重载设计4 4类模板设计和使用设计4三、上机实验环境上机实验环境硬件:CPU P3 500Hz,内存 256MB,硬盘 500MB 或以上软件:Windows XP Professional 简体中文版,Visual C+ 6.0四、参考书参考书(3 种以上)1、 C+大学教程 ,

3、Harvey M.Deitel 等著,邱仲潘等译,电子工业出版社 20012、 C+编程思想 ,Bruce Eckel 著,刘宗田等译,机械工业出版社 20023、 C+精粹 ,Ira Pohl 著,王树武等译,机械工业出版社 20034、 数据结构 ,严蔚敏编,清华大学出版社 2004实验实验 1 字符串类设计与使用字符串类设计与使用【实验目的实验目的】 1. 熟悉 C+语言程序的运行环境 Visual C+; 2. 了解在该集成环境下如何编辑、编译、连接和运行一个 C+程序; 3. 掌握 C+中的面向对象设计的基本知识(类、对象、构造函数等) ; 4. 通过字符串类的设计和使用,初步了解

4、C+程序的基本结构。 【实验准备实验准备】 1. 类的声明格式: class 类名 private: 私有数据成员和成员函数; public: 公有数据成员和成员函数; ; 2. 构造函数和析构函数* 构造函数 析构函数 重载构造函数和拷贝构造函数 3. main 函数 由一组相互通信的类对象组成 【实验内容实验内容】 1. 编写字符串类 CTString,设计样式如下: class CTString char *m_pData;/ 用于保存字符数据 int m_nLen;/ 记录字符长度 public: / 构造函数和析构函数 CTString(); CTString(char *); CT

5、String(const CTString CTString(); / 其它成员函数 CTString *Copy(CTString*, CTString*);/ 拷贝 CTString *Connect(CTString*, CTString*);/ 连接 char* Find(CTString*, CTString*);/ 查找子串 char* Find(CTString*, char);/ 查找字符 void Print();/ 打印输出字符串内容 / 学生自己扩充成员函数; 要求学生实现上面成员函数的功能,有能力的同学可以自己扩充类的功能(成员函 数) 。 2. 编写构造函数和析构函数

6、 要求使用 new 和 delete 申请内存空间和释放空间,并注意内存泄漏的问题(空间申 请不释放) 。 3. 类的测试 编写类功能测试用的主程序,并显示结果。 【思考题思考题】 1. 运行下面的程序,分析结果产生的原因。#include void main() CTString *pstr;pstr = new CTString;pstr-Print();pstr-Copy(“hello”);pstr-Print(); 2. 如何改写这个 CTString 类,使其能够有记录对象个数的功能? 实验实验 2 派生类的设计与使用派生类的设计与使用【实验目的实验目的】 1. 掌握派生类的设计方法

7、; 2. 了解继承的本质和好处; 3. 熟悉继承过程中派生方法及访问性质的改变; 4. 通过实验加深对 C+中继承概念的理解。 【实验准备实验准备】 1. 派生类的声明格式: class 派生类名 : 派生方式 基类名 / 派生类新特性(新增成员) private: 私有数据成员和成员函数; public:公有数据成员和成员函数; ; 2. 派生类的构造函数和析构函数* 1)派生类两构函数的执行顺序 2)派生类两构函数的构造规则 3. 调整派生类中的访问属性的其他方法1)同名成员2)访问声明 【实验内容实验内容】 1. 设计雇员类 CEmpoyee,该类的格式如下: class CEmpoye

8、e char *m_pName;/ 姓名 int m_nAge;/ 年龄 float m_fSalary; / 薪水 public: / 构造函数和析构函数 CEmpoyee (char * pName=NULL, int age=0, float salary=0.0 ); CEmpoyee (const CEmpoyee CEmpoyee ();/ 其它成员函数 void SetName(char*); char* GetName(); void SetAge(int);int GetAge(); void SetSalary(float); float GetSalary(); void

9、 Print();/ 打印输出信息 / 学生自己扩充其它成员函数; 2. 设计管理者类 CManager,其的格式如下: class CManager : public (private) CEmployee int m_nLevel;/ 级别 public: / 构造函数和析构函数 CManager (char * pName=NULL, int age=0, float salary=0.0, ); CEmpoyee (const CEmpoyee CEmpoyee ();/ 其它成员函数 void SetLevel(int); int GetLevel(); void Print();/

10、 打印输出信息 / 学生自己扩充其它成员函数 ; 3. 编写主函数或者其它函数来测试 CEmpoyee 和 CManager 两类的性质和功能。 声明两个类的对象,观察两者的内存结构(有哪些数据成员?各占多少字节?) 。CManager 定义时使用多种派生方式,然后用 CManager 对象使用其成员,观察 private 和 public 访问控制性质的变化。 【思考题思考题】 1. 每个类都有显式或隐式的构造函数和析构函数。派生类中有一个隐含的基类对象,如 何对这个对象进行初始化或销毁? 2. 有两个类: class X int a,c;public: void print( ); cla

11、ss Y : public X int b,c; public: void print( ) print(); / 要使用从 X 那继承过来的 print ; Y 类中的 print 函数能正常运行吗?为什么?实验实验 3 运算符重载运算符重载【实验目的实验目的】 1. 通过在复数类 CComplex 中对+,-,*,/,=,等运算符进行重载的设计,掌握运算符重载; 2. 通过虚函数进一步了解 C+多态的特性和作用。 【实验准备实验准备】 1. 多态性的概念1)多态性的概念2)多态性的实现 2. 函数重载1)普通函数重载2)类的成员函数重载 3. 运算符重载 1)运算符重载 2)一般运算符函数

12、(友元) 3)成员运算符重载 4)调用方式 4. 虚函数1)虚函数的概念2)虚函数的定义和使用 【实验内容实验内容】 1. 实现一个 CComplex class(数学里的复数) ,练习运算符的重载。 要求具有以下操作: 构造函数 拷贝构造函数 operator= operator* operator+ operator- operator/ operator= operator operator!= 其中,复数类的实部和虚部的取值类型为 float。 2. 用一个简单的程序,使用 CComplex 的各个成员函数和运算符。 3. 在 CComplex 中编写若干个虚函数,观察类对象有无虚函数

13、内存结构的变化。 【思考题思考题】 1. C 语言为什么不支持函数重载,而 C+却支持? 2. -和 () 两个运算符如何实现重载? 3. C+实现虚函数的内存结构有什么好处?实验实验 4 类模板设计和使用类模板设计和使用【实验目的实验目的】 1. 掌握 C+模板的设计方法; 2. 了解模板的机制和好处; 3. 同时复习数据结构中的知识。 【实验准备实验准备】 1. 函数模板的定义格式: template 返回类型 函数模板名(参数表) 使用 Type 的函数模板定义体 2. 类模板的定义格式: template class 类模板名 类模板的定义体 ; template 返回类型 类模板名:

14、函数模板名(参数表) 类模板中成员函数模板的定义体 【实验内容实验内容】1. 设计数据结构中链栈的类模板(链表形式的栈)template class LinkStack / ; 栈模板中的内容参照数据结构教材自己设计。 2. 编写 main 函数等测试模板类。 3. 有能力的同学可以选作一下附加题。 【附加题附加题】 使用基类管理一个时钟的列表(可以使用标准模板库中 STL 中的 vector) 。基类 CTimer, 他提供了基本的接口外,还提供了一个功能 GetTimeZone,主要是取得时区, 同时打印自己所在时区的字符串。返回值可以是时区的代号。这是一个虚函数,每个子 类必须重载它。子

15、类继承于 CTimer, 比如 CBeijingTimer. 每个 Timer 的对象有一个编号(可以是一个无符号的 long 或 short) ,以方便在全局 中区分每个 Timer 对象。 基类提供一个纯虚函数 GetTimerID 来取得 Timer 的编号。 用户界面可以随时创建一个 Timer,并且可以根据 TimerID 随时删除一个 Timer, 可以以查询当前所有创建的 Timer,可以查看指定 TimerID 的时区情况。 创建 Timer 时使用基类的指针保存子类对象的地址,使用 STL 的 vector 来保存。 【思考题思考题】 定义一个数组类模版,然后以它为基类模板,如何定义一个派生类模板?

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号