版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上机实验指导书课程名称C++程序设计主撰人宋晓宇、刘继飞
审核人栾方军沈阳建筑大学信息学院2008年3月课程名称:C++程序设计上机学时:16适用专业:计算机科学与技术先修课程:C语言一、上机实验总体目标C++程序设计是为计算机科学与技术专业开设的一门程序设计基础课。本课程强调动手实践,主要讲授C++语言的基本语法与面向对象程序设计的基础理论知识,作为该课程的重要组成部分,其上机实验是理论运用于实践的教学环节。通过上机实践,可以使学生更深入地了解C++编程思想,掌握结构化和面向对象的编程方法与技巧,熟悉常用的软件开发环境(如VisualC++),提高学生在程序设计方面和解决实际问题的能力,为学生后续课程的学习及求职就业奠定良好的基础。、上机实验课时分配在舁厅P上机实验项目实验类型每组人数上机学时1字符串类的设计与使用设计42派生类的设计与使用设计43运算符重载设计44类模板设计和使用设计4三、上机实验环境硬件:CPUP3500Hz,内存256MB,硬盘500MB或以上软件:WindowsXPProfessional简体中文版,VisualC++6.0四、参考书(3种以上)1、《C++大学教程》,HarveyM.Deitel等著,邱仲潘等译,电子工业出版社20012、《C++编程思想》,BruceEckel著,刘宗田等译,机械工业出版社20023、《C++精粹》,卜aPohl著,王树武等译,机械工业出版社20034、《数据结构》,严蔚敏编,清华大学出版社2004【实验目的】熟悉C++语言程序的运行环境VisualC++;了解在该集成环境下如何编辑、编译、连接和运行一个C++程序;掌握C++中的面向对象设计的基本知识(类、对象、构造函数等)通过字符串类的设计和使用,初步了解C++程序的基本结构。【实验准备】类的声明格式:class类名{[private:]私有数据成员和成员函数;public:公有数据成员和成员函数;};构造函数和析构函数*构造函数析构函数重载构造函数和拷贝构造函数main函数由一组相互通信的类对象组成【实验内容】编写字符串类CTString,设计样式如下:classCTString{char*m_pData;//用于保存字符数据intm_nLen;//记录字符长度public://构造函数和析构函数CTString();CTString(char*);CTString(constCTString&);~CTString();//其它成员函数CTString*Copy(CTString*,CTString*);//拷贝CTString*Connect(CTString*,CTString*);//连接char*Find(CTString*,CTString*);//查找子串char*Find(CTString*,char);//查找字符voidPrint();//打印输出字符串内容……〃学生自己扩充成员函数};要求学生实现上面成员函数的功能,有能力的同学可以自己扩充类的功能(成员函数)。编写构造函数和析构函数要求使用new和delete申请内存空间和释放空间,并注意内存泄漏的问题(空间申请不释放)。类的测试编写类功能测试用的主程序,并显示结果。【思考题】运行下面的程序,分析结果产生的原因。#include<iostream.h>voidmain(){CTString*pstr;pstr=newCTString;pstr->Print();pstr->Copy(“hello”);pstr->Print();}如何改写这个CTString类,使其能够有记录对象个数的功能?【实验目的】掌握派生类的设计方法;了解继承的本质和好处;熟悉继承过程中派生方法及访问性质的改变;通过实验加深对C++中继承概念的理解。【实验准备】派生类的声明格式:class派生类名:派生方式基类名{//派生类新特性(新增成员)[private:]私有数据成员和成员函数;public:公有数据成员和成员函数;};派生类的构造函数和析构函数*)派生类两构函数的执行顺序2)派生类两构函数的构造规则调整派生类中的访问属性的其他方法)同名成员2)访问声明【实验内容】设计雇员类CEmpoyee,该类的格式如下:classCEmpoyee{char*m_pName;//姓名intm_nAge;//年龄floatm_fSalary;//薪水public://构造函数和析构函数CEmpoyee(char*pName=NULL,intage=0,floatsalary=0.0);CEmpoyee(constCEmpoyee&);~CEmpoyee();//其它成员函数voidSetName(char*);char*GetName();voidSetAge(int);intGetAge();voidSetSalary(float);floatGetSalary();voidPrint();//打印输出信息……〃学生自己扩充其它成员函数};设计管理者类CManager,其的格式如下:classCManager:public(private)CEmployee{intm_nLevel;//级别public://构造函数和析构函数CManager(char*pName=NULL,intage=0,floatsalary=0.0,);CEmpoyee(constCEmpoyee&,float);~CEmpoyee();//其它成员函数voidSetLevel(int);intGetLevel();voidPrint();//打印输出信息……〃学生自己扩充其它成员函数};编写主函数或者其它函数来测试CEmpoyee和CManager两类的性质和功能。①声明两个类的对象,观察两者的内存结构(有哪些数据成员?各占多少字节?)②CManager定义时使用多种派生方式,然后用CManager对象使用其成员,观察private和public访问控制性质的变化。【思考题】每个类都有显式或隐式的构造函数和析构函数。派生类中有一个隐含的基类对象,如何对这个对象进行初始化或销毁?有两个类:classX{inta,c;public:voidprint();};classY:publicX{intb,c;public:voidprint(){printprint();//要使用从X那继承过来的}print};Y类中的print函数能正常运行吗?为什么?【实验目的】通过在复数类CComplex中对+,-,*,/,=,[]等运算符进行重载的设计,掌握运算符重载;通过虚函数进一步了解C++多态的特性和作用。【实验准备】多态性的概念)多态性的概念2)多态性的实现函数重载)普通函数重载2)类的成员函数重载运算符重载)运算符重载2)一般运算符函数(友元)3)成员运算符重载4)调用方式虚函数)虚函数的概念2)虚函数的定义和使用【实验内容】实现一个CComplexclass(数学里的复数),练习运算符的重载。要求具有以下操作:①构造函数②拷贝构造函数operator=operator*operator+operator-operator/operator==operator[]operator!=其中,复数类的实部和虚部的取值类型为float。用一个简单的程序,使用CComplex的各个成员函数和运算符。在CComplex中编写若干个虚函数,观察类对象有无虚函数内存结构的变化。【思考题】C语言为什么不支持函数重载,而C++却支持?->和()两个运算符如何实现重载?C++实现虚函数的内存结构有什么好处?【实验目的】掌握C++模板的设计方法;了解模板的机制和好处;同时复习数据结构中的知识。【实验准备】函数模板的定义格式:template<classType•••>返回类型函数模板名(参数表){使用Type的函数模板定义体}类模板的定义格式:template<classType•••>class类模板名{类模板的定义体};template<classType…>返回类型类模板名<Type…>::函数模板名(参数表){类模板中成员函数模板的定义体}【实验内容】设计数据结构中链栈的类模板(链表形式的栈)template<ClassT>classLinkStack{〃…};栈模板{}中的内容参照数据结构教材自己设计。编写main函数等测试模板类。有能力的同学可以选作一下附加题。【附加题】使用基类管理一个时钟的列表(可以使用标准模板库中STL中的vector)。基类CTimer,他提供了基本的接口外,还提供了一个功能GetTimeZone,主要是取得时区,同时打印自己所在时区的字符串。返回值可以是时区的代号。这是一个虚函数,每个子类必须重载它。子类继承于CTimer,比如CBeijingTimer.每个Timer的对象有一个编号(可以是一个无符号的long或short),以方便在全局中区分每个Timer对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业化消防工程安装协议范本(2024年版)版
- 2025年度厂区新能源发电项目合作协议3篇
- 2025年度电商大数据安全保护合作协议4篇
- 旅游业绩深度剖析
- 专业汽车起重机租赁协议2024版范本版B版
- 二零二五年度智能化家居系统安装合同3篇 - 副本
- 二零二五年度大渡口区吸污车租赁与环保技术研发协议3篇
- 2025年度测井设备研发与技术服务合同4篇
- 二零二五年度船舶航行安全GPS监控合同文本3篇
- 2025年度公共场所场地借用及安全保障协议书2篇
- 品质经理工作总结
- 供电抢修述职报告
- 集成电路设计工艺节点演进趋势
- 新型电力系统简介演示
- 特种设备行业团队建设工作方案
- 眼内炎患者护理查房课件
- 肯德基经营策略分析报告总结
- 买卖合同签订和履行风险控制
- 中央空调现场施工技术总结(附图)
- 水质-浊度的测定原始记录
- 数字美的智慧工业白皮书-2023.09
评论
0/150
提交评论