• C++程序设计实验指导
21年品牌 40万+商家 超1.5亿件商品

C++程序设计实验指导

正版全新

19.95 6.9折 29 全新

库存5件

上海浦东
认证卖家担保交易快速发货售后保障

作者胡思康

出版社清华大学出版社

ISBN9787302503095

出版时间2018-06

装帧其他

开本16开

纸张胶版纸

定价29元

货号1339678

上书时间2023-10-14

闲暇一卷书的书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
【书    名】 C++程序设计实验指导
【书    号】 9787302503095
【出 版 社】 清华大学出版社
【作    者】 胡思康
【出版日期】 2018-06-01
【版    次】 1
【开    本】 16开
【定    价】 29.00元

【编辑推荐】 
强调实验的综合性应用,避免在实验中出现对单一的知识点进行实验设计

【内容简介】 
本书全面、系统地引导读者进行面向对象程序设计的学习和实验。本书注重知识的原理性、系统性,并通过各章实验的逐步展开,不仅使读者巩固面向对象程序设计的基本原理和概念,而且有利于读者提升对面向对象三大特性的理解、掌握和实际应用。
本书共分为8章。第1章是本书实验指导目标的说明;第2章简要介绍本书实验所用的Visual C  与Visual Studio 2017集成开发环境;第3章进行面向对象程序设计基础的实验,包括指针、引用、数组、函数、重载等要素;第4章进行面向对象封装性的实验,包括构造函数、拷贝构造函数、析构函数、运算符重载等内容;第5章进行面向对象继承性的实验,包括单继承、函数覆盖、聚集(组合)、类间关系分析等内容;第6章进行面向对象多态性的实验,包括虚函数、纯虚函数、抽象类、继承过程中的构造函数和析构函数、类家族分析与设计等内容;第7章进行面向对象错误处理的异常机制实验,包括异常的声明、定义、抛出、捕获等技术和方法;第8章综合实验指导,用于巩固和提高面向对象程序设计的实践和综合应用能力。
本书可作为高等院校计算机专业或信息类相关专业课程的上机实验教材或教学参考书,也可作为从事软件开发的工程人员或计算机用户的参考用书。

【目录】 
目录

第1章实验指导目标/1

1.1目的1

1.2实验指导的结构1

第2章C  语言集成开发环境/3

2.1Visual C   6.0集成开发环境3

2.1.1Visual C   6.0集成开发环境概述3

2.1.2Visual C   6.0的菜单项4

2.1.3Visual C   6.0的工具条5

2.1.4Visual C   6.0的项目工作区7

2.1.5编写第*个C  程序——Hello
World!8

2.1.6Visual C   6.0 的帮助系统——MSDN9

2.2Visual Studio 2017集成开发环境10

2.2.1Visual Studio 2017集成开发环境概述10

2.2.2Visual Studio 2017的第*个程序——Hello
World!

10

第3章面向对象程序设计基础/15

3.1实验目的15

3.2知识要点15

3.3实验一: 返回数组的函数16

3.3.1实验内容16

3.3.2实验要求17

3.3.3实验解答及解析17

3.4实验二: 统计英文文本中的单词个数20

3.4.1实验内容20

3.4.2实验要求21

3.4.3实验解答及解析21

3.5实验三: 分析程序——Stash的数据结构及内存分配23

3.5.1实验内容23

3.5.2实验要求23

3.5.3实验解答及解析23

3.6实验四: 求不同类型数据的长度27

3.6.1实验内容27

3.6.2实验要求27

3.6.3实验解答及解析27

3.7实验五: 求指定范围内的数组元素之和29

3.7.1实验内容29

3.7.2实验要求29

3.7.3实验解答及解析29

3.8实验六: 互换两个变量的值30

3.8.1实验内容30

3.8.2实验要求31

3.8.3实验解答及解析31

3.9实验七: 通过函数指针调用不同宠物的进食过程32

3.9.1实验内容32

3.9.2实验要求32

3.9.3实验解答及解析32

〖1〗C  程序设计实验指导目录〖3〗〖3〗第4章面向对象封装性/34

4.1实验目的34

4.2知识要点34

4.3实验一: 表示平面位置的点CPoint类35

4.3.1实验内容35

4.3.2实验要求35

4.3.3实验解答及解析35

4.4实验二: 分析程序——构造函数与析构函数的自动调用37

4.4.1实验内容37

4.4.2实验要求38

4.4.3实验解答及解析38

4.5实验三: 对结构体Stash的实现进行面向对象转换40

4.5.1实验内容40

4.5.2实验要求40

4.5.3实验解答及解析41

4.6实验四: 完善CStash类的功能43

4.6.1实验内容43

4.6.2实验要求43

4.6.3实验解答及解析43

4.7实验五: 分析程序——查找并修改程序中的错误44

4.7.1实验内容44

4.7.2实验要求46

4.7.3实验解答及解析46

4.8实验六: 实现对日期的计算48

4.8.1实验内容48

4.8.2实验要求48

4.8.3实验解答及解析49

4.9实验七: 定义自己的字符串CMyString类57

4.9.1实验内容57

4.9.2实验要求57

4.9.3实验解答及解析58

第5章面向对象继承性/64

5.1实验目的64

5.2知识要点64

5.3实验一: 分析程序——类间的聚集和继承关系65

5.3.1实验内容65

5.3.2实验要求65

5.3.3实验解答及解析65

5.4实验二: 给出两个圆的相互位置关系68

5.4.1实验内容68

5.4.2实验要求68

5.4.3实验解答及解析68

5.5实验三: 使用自定义的字符串CMyString类71

5.5.1实验内容71

5.5.2实验要求72

5.5.3实验解答及解析72

5.6实验四: 计算几何图形的面积与周长74

5.6.1实验内容74

5.6.2实验要求74

5.6.3实验解答及解析75

5.7实验五: 显示不同类的对象名称77

5.7.1实验内容77

5.7.2实验要求78

5.7.3实验解答及解析78

5.8实验六: 根据位置与边长来确定矩形与正方形80

5.8.1实验内容80

5.8.2实验要求80

5.8.3实验解答及解析81

5.9实验七: 银行个人账户不同类别的管理85

5.9.1实验内容85

5.9.2实验要求85

5.9.3实验解答及解析85

第6章面向对象多态性/89

6.1实验目的89

6.2知识要点89

6.3实验一: 分析程序——不同工种工人的工作90

6.3.1实验内容90

6.3.2实验要求90

6.3.3实验解答及解析90

6.4实验二: 改进计算几何图形的面积与周长的设计94

6.4.1实验内容94

6.4.2实验要求94

6.4.3实验解答及解析95

6.5实验三: 快递运费的计算97

6.5.1实验内容97

6.5.2实验要求98

6.5.3实验解答及解析98

6.6实验四: 管理家庭宠物101

6.6.1实验内容101

6.6.2实验要求102

6.6.3实验解答及解析102

6.7实验五: 显示不同艺术品的基本信息和重要信息106

6.7.1实验内容106

6.7.2实验要求106

6.7.3实验解答及解析106

6.8实验六: 根据元素个数改变栈大小109

6.8.1实验内容109

6.8.2实验要求109

6.8.3实验解答及解析110

6.9实验七: 栈的应用——在类模板中保存类的对象114

6.9.1实验内容114

6.9.2实验要求114

6.9.3实验解答及解析114

第7章错误处理机制: 异常/118

7.1实验目的118

7.2知识要点118

7.3实验一: 分析程序——抛出和捕获异常118

7.3.1实验内容118

7.3.2实验要求119

7.3.3实验解答及解析119

7.4实验二: 数组下标越界的异常处理121

7.4.1实验内容121

7.4.2实验要求121

7.4.3实验解答及解析122

7.5实验三: 定义抛出除以0错误和下标越界的异常类124

7.5.1实验内容124

7.5.2实验要求124

7.5.3实验解答及解析124

第8章综合实验指导/128

8.1实验目的128

8.2实验一: 切分字符串为多个子串129

8.3实验二: 仓库进出货统计129

8.4实验三: 多用户与文件130

8.5实验四: 整数与字符130

8.6实验五: 大整数运算130

8.7实验六: 集合运算131

8.8实验七: 构建SQL语句132

8.9实验八: 统计英文文本中词频*高与*低的词频133

8.10实验九: 硬件与软件133

8.11实验十: 图书、图书馆与读者134

8.12实验十一: 数据库的建立与数据存储134

8.13实验十二: 教师与学生信息的综合查询136

8.14实验十三: 菜单操作138

8.15实验十四: 工厂与产品139

8.16实验十五: 食肉动物与食草动物139

参考文献/140

【文摘】 
第5章面向对象继承性5.1实 验 目 的面向对象继承性是面向对象思想的三大特征之一,是实现软件重用的重要手段。继承(泛化)是指一个类自动获取另一个类的属性和方法,同时增加自身类的属性和方法,从而实现扩充类功能的机制。继承关系是类与类之间的重要关系,它将类以层次结构组织起来,利于项目中类的管理、扩展和维护。此外,继承机制还是实现面向对象多态性的基础。C  语言提供了多种继承形式和不同实现机制来体现继承关系,包括单继承、多继承的技术,以及公有继承、私有继承和受保护继承等机制。结合实际项目应用和面向对象程序语言的发展趋势,在本书中不体现多继承,以及私有继承与受保护继承形式。本章的目的是通过完成实验,不仅让读者掌握类继承的技术,而且在实验过程中,贯穿继承、聚合等类间关系的设计和比较,务求让读者掌握在实际项目的分析设计中,懂得如何设定类间关系。更重要的是,本章的部分实验需要用到前几章中实现的类。通过把读者自己实现的类应用起来,才能检查出原来分析、设计的类中存在的问题和不足,不断促进自身编程能力的提升。完成本章的实验指导,读者将能够:  理解面向对象继承性的意义和应用。 掌握C  语言的单继承技术。 理解和掌握C  语言中的公有继承(public)机制,包括派生类对基类成员的调用权限及其实现方法。 理解和掌握C  语言中的受保护(protected)机制,掌握受保护部分在继承中起到的独特作用,即受保护部分的成员能被派生类成员直接调用,但不能被基类和派生类对象调用。这样,既体现继承中的垂直访问,又体现类的封装性。 理解和掌握继承过程中,基类与派生类的构造函数与析构函数的调用和执行顺序,从而更进一步理解对象的生存周期。5.2知 识 要 点C  语言对面向对象继承性提供了相关的概念与技术,主要包括:  面向对象继承性的基本概念,包括继承、派生、基类/父类、派生类/子类、子孙类、公有继承、受保护成员。 C  语言中,类继承的具体实现机制,包括继承的语法、继承所包括的基类内容。 派生类对基类的访问权限,包括派生类和子孙类的成员函数对基类成员的访问权限,派生类和子孙类的对象对基类成员的访问权限。 C  语言的继承过程中,派生类对基类构造函数和析构函数的调用过程。 C  语言的继承过程中,在派生类中基类对象的定义、初始化过程和使用方法。〖1〗C  程序设计实验指导第5章面向对象继承性〖3〗〖3〗5.3实验一: 分析程序——类间的聚集和继承关系〖*4/5〗5.3.1实验内容本实验内容是: 教师(CTeacher)是一个用户(CUser),他完成教学(CCourse)工作。教学是一项事务(CTransaction),事务根据不同的权限(CPermission)对外提供差异化服务。本实验给出的源代码描述了上述类间的相互关系。根据描述信息与源代码,给出程序运行结果,并进行说明。5.3.2实验要求本实验结合源代码的注释信息,仔细阅读源代码并给出运行结果。具体实验要求是:  画出类图及类间关系。 给出程序运行结果。 对运行结果逐一进行说明。5.3.3实验解答及解析【解答】本实验的源程序在Visual C   6.0以及Visual Studio 2017集成开发环境下编译通过。源程序及注释如下。/                              Lab5.1:分析程序——类间的聚集和继承关系  仔细阅读源代码,给出运行结果并进行说明                             /#include using namespace std;//-----------------------------------------------class CPermission{public:CPermission() { cout using namespace std;//-----------------------------------------------// 定义两个圆相互关系的枚举类型,分别是两圆外离、两圆外切、// 两圆相交、两圆内切、两圆内含、两圆同心或两圆重合enum RELATION { SEPERATATION, EXTERNALLY_TANGENCY, OVERLAP, INTERNALLY_TANGENCY,INCLUSION, CONCENTRICITY, COINCIDENCE };//-----------------------------------------------class CCircle : public CPoint{private:double m_dRadius; //圆的半径public:CCircle(double z, double x = 0, double y = 0) : CPoint(x, y){ m_dRadius = z; }RELATION Relation(const CCircle& C){double distance = Distance(C); //调用基类的成员函数Distance// 两圆分离if (distance > m_dRadius   C.m_dRadius) return SEPERATATION;// 两圆外切if (distance == m_dRadius   C.m_dRadius) return EXTERNALLY_TANGENCY;// 两圆内切if (distance != 0 && distance == fabs(m_dRadius - C.m_dRadius))return INTERNALLY_TANGENCY;// 两圆相交if((fabs(m_dRadiusC.m_dRadius)using namespace std;//-----------------------------------------------// 定义两个圆相互关系的枚举类型,分别是两圆外离、两圆外切、// 两圆相交、两圆内切、两圆内含、两圆同心或两圆重合enum RELATION { SEPERATATION, EXTERNALLY_TANGENCY, OVERLAP, INTERNALLY_TANGENCY, INCLUSION, CONCENTRICITY, COINCIDENCE };//-----------------------------------------------class CCircle{private:CPoint m_Center; //圆心double m_dRadius; //圆的半径public:// 对子对象m_Center的初始化必须在构造函数的初始化列表处进行CCircle(double z, double x = 0, double y = 0) : m_Center(x, y){m_dRadius = z;}RELATION Relation(const CCircle& C){double distance = m_Center.Distance(C.m_Center);//通过子对象调用成员函数// 两圆分离if (distance > m_dRadius   C.m_dRadius) return SEPERATATION;// 两圆外切if (distance == m_dRadius   C.m_dRadius) return EXTERNALLY_TANGENCY;// 两圆内切if (distance != 0 && distance == fabs(m_dRadius - C.m_dRadius)) return INTERNALLY_TANGENCY;// 两圆相交if ((fabs(m_dRadius-C.m_dRadius)using namespace std;//-----------------------------------------------// 定义URL类class CURL : public CMyString{public:CURL(const CMyString&);CMyString GetDomain();CMyString GetDomainType();CMyString GetDomainCountry();};// 构造函数的初始化列表用于初始化基类CURL::CURL(const CMyString& my) : CMyString(my) { }/ 实现:获取网站的顶*域名 返回:返回获取的网站域名或空串/CMyString CURL::GetDomain(){int pos = Find('/');//查找'/' 第1次出现的位置if (pos == -1)return CMyString(m_pString);//URL没有'/'if (pos == Length() - 1)return Mid(0, pos); //URL的*后一个字符是'/'// 分析“//”的情况if (m_pString\[pos 1\] == '/')pos = Find('/', pos 2);if (pos == -1) return CMyString(m_pString);return Mid(0, pos);}// 获取网站类型。在实际项目中,可以定义网站类型数组来处理所有类型的网站// 本实验仅给出几个有限类型CMyString CURL::GetDomainType(){CMyString domain = GetDomain();if (domain.Find(".com") != -1) return "com";if (domain.Find(".edu") != -1) return "edu";if (domain.Find(".gov") != -1) return "gov";if (domain.Find(".org") != -1) return "org";return "";}// 获取网站国别或地区。在实际项目中,可以定义网站国别或地区数组来处理所有国别或地区// 的网站// 本实验仅给出几个有限国别或地区类型CMyString CURL::GetDomainCountry(){CMyString domain = GetDomain();if (domain.Find(".cn") != -1) return "cn";if (domain.Find(".us") != -1) return "us";if (domain.Find(".uk") != -1) return "uk";if (domain.Find(".jp") != -1) return "jp";return "";}//-----------------------------------------------void main(){CURL url("https://www.baidu.com/gaoji/advanced.html");cout

【前言】 
前言
本书是C  程序设计的实验指导书,以Visual C   6.0集成开发环境或Visual Studio 2017集成开发环境为开发工具,内容包含面向对象程序设计领域内的基本概念和技术,突出面向对象程序设计的思想,培养程序设计的良好风格。本实验指导书的目的是使读者在学习面向对象技术以及C  程序设计语言的过程中,同步进行上机实验。更重要的是,在读者学习的过程中,本书能起良师益友的作用——给予必要的实验指导和说明。本书以标准C  语言提供的语法、语句和结构为基础来指导上机实验,实验内容涉及C  语言的基本概念、变量、常量、指针、数组、引用、静态量、函数、参数、类与对象、运算符重载、类的继承、虚函数、纯虚函数、多态性、异常、函数模板、类模板以及C  的I/O流库等。本书所选实验按相关内容划分成章,概念清晰,覆盖面广,在每章开始部分给出本次实验的基础知识、实验目的和要求。对每个实验不仅给出参考答案,还进一步给出实验解答及解析,并给出在实现中的意见和建议,引起读者的注意和讨论,以期拓宽程序设计的思路。读者应如何使用本书的指导实验来巩固和提高所学内容?首先,本书的实验指导专注于

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP