版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 上机实验指导书课程名称 C+程序设计 主撰人 宋晓宇、刘继飞审核人 栾方军沈阳建筑大学信息学院2008 年3月课程名称:C+程序设计上机学时:16适用专业:计算机科学与技术先修课程:C语言一、 上机实验总体目标 C+程序设计是为计算机科学与技术专业开设的一门程序设计基础课。本课程强调动手实践,主要讲授C+语言的基本语法与面向对象程序设计的基础理论知识,作为该课程的重要组成部分,其上机实验是理论运用于实践的教学环节。通过上机实践,可以使学生更深入地了解C+编程思想,掌握结构化和面向对象的编程方法与技巧,熟悉常用的软件开发环境(如Visual C+),提高学生在程序设计方面和解决实际问题的能力,
2、为学生后续课程的学习及求职就业奠定良好的基础。二、 上机实验课时分配序号上机实验项目实验类型每组人数上机学时1字符串类的设计与使用设计42派生类的设计与使用设计43运算符重载设计44类模板设计和使用设计4三、 上机实验环境 硬件:CPU P3 500Hz,内存256MB,硬盘500MB或以上软件:Windows XP Professional简体中文版,Visual C+ 6.0四、 参考书(3种以上)1、C+大学教程,Harvey M.Deitel等著,邱仲潘等译,电子工业出版社 20012、C+编程思想,Bruce Eckel著,刘宗田等译,机械工业出版社 20023、C+精粹,Ira P
3、ohl著,王树武等译,机械工业出版社 20034、数据结构,严蔚敏编,清华大学出版社 2004实验1 字符串类设计与使用【实验目的】1. 熟悉C+语言程序的运行环境Visual C+;2. 了解在该集成环境下如何编辑、编译、连接和运行一个C+程序;3. 掌握C+中的面向对象设计的基本知识(类、对象、构造函数等);4. 通过字符串类的设计和使用,初步了解C+程序的基本结构。【实验准备】1. 类的声明格式:class 类名private:私有数据成员和成员函数;public:公有数据成员和成员函数; ;2. 构造函数和析构函数*构造函数析构函数重载构造函数和拷贝构造函数3. main函数由一组相互
4、通信的类对象组成【实验内容】1. 编写字符串类CTString,设计样式如下:class CTString char *m_pData;/ 用于保存字符数据int m_nLen;/ 记录字符长度public:/ 构造函数和析构函数CTString();CTString(char *);CTString(const CTString&); CTString();/ 其它成员函数CTString *Copy(CTString*, CTString*);/ 拷贝CTString *Connect(CTString*, CTString*);/ 连接char* Find(CTString*, CTSt
5、ring*);/ 查找子串char* Find(CTString*, char);/ 查找字符void Print();/ 打印输出字符串内容 / 学生自己扩充成员函数 ;要求学生实现上面成员函数的功能,有能力的同学可以自己扩充类的功能(成员函数)。2. 编写构造函数和析构函数要求使用new和delete申请内存空间和释放空间,并注意内存泄漏的问题(空间申请不释放)。 3. 类的测试编写类功能测试用的主程序,并显示结果。【思考题】1. 运行下面的程序,分析结果产生的原因。#include void main() CTString *pstr;pstr = new CTString; pstr-
6、Print();pstr-Copy(“hello”);pstr-Print(); 2. 如何改写这个CTString类,使其能够有记录对象个数的功能? 实验2 派生类的设计与使用【实验目的】1. 掌握派生类的设计方法;2. 了解继承的本质和好处;3. 熟悉继承过程中派生方法及访问性质的改变;4. 通过实验加深对C+中继承概念的理解。【实验准备】1. 派生类的声明格式:class 派生类名 : 派生方式 基类名/ 派生类新特性(新增成员)private:私有数据成员和成员函数;public: 公有数据成员和成员函数; ;2. 派生类的构造函数和析构函数*1)派生类两构函数的执行顺序2)派生类两构
7、函数的构造规则3. 调整派生类中的访问属性的其他方法 1)同名成员 2)访问声明【实验内容】1. 设计雇员类CEmpoyee,该类的格式如下:class CEmpoyeechar *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()
8、;void SetAge(int);int GetAge();void SetSalary(float);float GetSalary();void Print();/ 打印输出信息 / 学生自己扩充其它成员函数 ;2. 设计管理者类CManager,其的格式如下:class CManager : public (private) CEmployeeint m_nLevel;/ 级别public:/ 构造函数和析构函数CManager (char * pName=NULL, int age=0, float salary=0.0, );CEmpoyee (const CEmpoyee &,
9、float); CEmpoyee ();/ 其它成员函数void SetLevel(int);int GetLevel();void Print();/ 打印输出信息 / 学生自己扩充其它成员函数;3. 编写主函数或者其它函数来测试CEmpoyee和CManager两类的性质和功能。声明两个类的对象,观察两者的内存结构(有哪些数据成员?各占多少字节?)。CManager定义时使用多种派生方式,然后用CManager对象使用其成员,观察private和public访问控制性质的变化。【思考题】1. 每个类都有显式或隐式的构造函数和析构函数。派生类中有一个隐含的基类对象,如何对这个对象进行初始化或
10、销毁?2. 有两个类:class Xint a,c; public: void print( ); ;class 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
11、. 运算符重载1)运算符重载2)一般运算符函数(友元)3)成员运算符重载4)调用方式4. 虚函数 1)虚函数的概念 2)虚函数的定义和使用【实验内容】1. 实现一个CComplex class(数学里的复数),练习运算符的重载。要求具有以下操作:构造函数拷贝构造函数 operator=operator*operator+operator-operator/operator= operatoroperator!=其中,复数类的实部和虚部的取值类型为float。2. 用一个简单的程序,使用CComplex的各个成员函数和运算符。3. 在CComplex中编写若干个虚函数,观察类对象有无虚函数内存结
12、构的变化。【思考题】1. C语言为什么不支持函数重载,而C+却支持?2. -和 () 两个运算符如何实现重载?3. C+实现虚函数的内存结构有什么好处?实验4 类模板设计和使用【实验目的】1. 掌握C+模板的设计方法;2. 了解模板的机制和好处;3. 同时复习数据结构中的知识。【实验准备】1. 函数模板的定义格式:template返回类型 函数模板名(参数表) 使用Type的函数模板定义体2. 类模板的定义格式:templateclass 类模板名 类模板的定义体;template返回类型 类模板名:函数模板名(参数表) 类模板中成员函数模板的定义体【实验内容】1. 设计数据结构中链栈的类模板
13、(链表形式的栈)template class LinkStack / ;栈模板中的内容参照数据结构教材自己设计。2. 编写main函数等测试模板类。3. 有能力的同学可以选作一下附加题。【附加题】使用基类管理一个时钟的列表(可以使用标准模板库中STL中的vector)。基类CTimer, 他提供了基本的接口外,还提供了一个功能GetTimeZone,主要是取得时区,同时打印自己所在时区的字符串。返回值可以是时区的代号。这是一个虚函数,每个子类必须重载它。子类继承于CTimer, 比如CBeijingTimer.每个Timer的对象有一个编号(可以是一个无符号的long或 short),以方便在全
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年全国教师资格证考试测试题及答案
- Galactamine-生命科学试剂-MCE
- 心脏康复中的心理康复政策建议
- 2026mba面试题库及答案
- 急性消化道梗阻的急诊护理
- 2026年浙江东阳市事业单位招考65人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年泰州市高港区事业单位招考易考易错模拟试题(共500题)试卷后附参考答案
- 2026年河南郑州市信访局政府购买服务工作人员招聘20人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年河南省新蔡县乡镇事业单位等招考易考易错模拟试题(共500题)试卷后附参考答案
- 2026年河南洛阳师范学院招聘工作人员45人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年合肥聚和运营管理有限公司委托招聘考试备考试题及答案解析
- 2026中国铁路南宁局集团有限公司招聘高校毕业生80人三(本科及以上学历)考试备考题库及答案解析
- 2026年北京市丰台区高三二模政治试卷(含答案)
- 2026年煤矿安全生产管理人员考试题库(附答案)
- 陆上风力发电工程施工质量验收规程
- 2026年宁夏电投永利能源有限公司公开招聘考试模拟试题及答案解析
- 2026广东佛山市禅城区祖庙街道公有企业招聘初试笔试历年参考题库附带答案详解
- 《预算执行常态化监督发现问题纠偏整改操作指南(试行)》
- T-CCSAS 062-2026《行为安全观察与沟通实施指南》
- 2026年部编版语文五年级下册期末考试真题及答案(共3份)
- 物业工程安全管理培训(设备安全篇)
评论
0/150
提交评论