登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入   新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書

『簡體書』C++自学视频教程(配光盘)(软件开发自学视频教程)

書城自編碼: 2500878
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: 软件开发技术联盟
國際書號(ISBN): 9787302371021
出版社: 清华大学出版社
出版日期: 2014-12-01

頁數/字數: 498页
書度/開本: 16 釘裝: 平装

售價:HK$ 207.5

我要買

share:

** 我創建的書架 **
未登入.


新書推薦:
巴拉吉预言
《 巴拉吉预言 》

售價:HK$ 74.8
股权控制战略:如何实现公司控制和有效激励(第2版)
《 股权控制战略:如何实现公司控制和有效激励(第2版) 》

售價:HK$ 98.8
汉译名著·哲学经典十种
《 汉译名著·哲学经典十种 》

售價:HK$ 761.2
成吉思汗传:看历代帝王将相谋略 修炼安身成事之根本
《 成吉思汗传:看历代帝王将相谋略 修炼安身成事之根本 》

售價:HK$ 61.6
爱丁堡古罗马史-罗马城的起源和共和国的崛起
《 爱丁堡古罗马史-罗马城的起源和共和国的崛起 》

售價:HK$ 76.8
自伤自恋的精神分析
《 自伤自恋的精神分析 》

售價:HK$ 52.8
大宋悬疑录:貔貅刑
《 大宋悬疑录:貔貅刑 》

售價:HK$ 74.8
不被大风吹倒
《 不被大风吹倒 》

售價:HK$ 65.9

 

建議一齊購買:

+

HK$ 384.8
《完美C++(第5版)(双色)》
+

HK$ 207.5
《C#自学视频教程(配光盘)(软件开发自学视频教程)》
+

HK$ 207.5
《C语言自学视频教程(实例版)(配光盘)(软件开发自学视频教程》
+

HK$ 211.5
《C++开发实战(配光盘)(软件开发实战)》
+

HK$ 351.1
《C++程序设计(第8版)》
編輯推薦:
本书提供了极为丰富的学习资源,清单如下:本书学习资源清单:

1.配套自学视频79集

几乎覆盖全书所有实例,先听视频讲解,再仿照书中实例实践,会大幅提高学习效率。

2.编程实例分析961个

各类一应俱全,无论学习哪一章节,都可从中找到相关实例加以练习,相信对深入学习极有帮助。

3.典型模块分析15类

既可作为综合应用实例学习,又可将模块移植到相关应用中,从而避免重复劳动,提高工作效率。

4.项目案例分析16套

从需求分析、系统设计、模块分解到代码实现,几乎展现了项目开发的整个过程。

5.实践训练任务311项

大都是实践型任务,用于训练和提高熟练度,网站还提供了相关答案。

6.数学及逻辑思维能力、面试能力、编程英语能力测试616项

用以读者自我测试,为就业做准备。

7.编程人生23个

精选的IT成功人士经历,希望成为读者不断进取、勇攀高峰的强大精神动力。

8.电子课件126节

为了方便教学使用,本书附带了全套PPT电子课件。

9.全书实例源程序

提供了全书所有实例的源程序,读者可以直
內容簡介:
《C++自学视频教程》以初学者为主要对象,全面介绍了C++程序设计相关的各种技术。在内容排列上由浅入深,让读者循序渐进地掌握C++编程技术;在内容讲解上结合丰富的图解和形象的比喻,帮助读者理解晦涩难懂的技术;在内容形式上附有大量的注意、说明、技巧等栏目,夯实读者理论技术,丰富管理与开发经验。

《C++自学视频教程》共分3篇18章,其中,第1篇为入门篇,主要包括初识C++、认识C++程序、变量和数据类型、运算符与表达式、条件判断语句、循环控制语句、封装函数使程序模块化、C++中的指针、C++中的引用、使用数组获取连续空间等内容;第2篇为提高篇,主要包括面向对象编程、从基类到派生类、C++模板的使用、代码整理、掌握C++标准模板库、利用文件处理数据等内容;第3篇为实战篇,主要包括ATM机界面、猜数字游戏、吃豆子游戏和人事考勤管理系统4个实战项目。另外本书光盘含:

17小时视频讲解961个编程实例15个经典模块分析16个项目开发案例311个编程实践任务616个能力测试题目(基础能力测试、数学及逻辑思维能力测试、面试能力测试、编程英语能力测试)23个IT励志故事。

本书适用于C++编程的爱好者、初学者和中级开发人员,也可作为大中专院校和培训机构的教材。
關於作者:
软件开发技术联盟,是一家以计算机软件开发和教育为核心的高科技企业和一些中青年骨干教师组成松散组织,专门从事应用软件开发与服务,涉及的软件行业有煤矿、公交、物流、办公系统、零售、生产等多种领域。该企业近年来从事图书的研发编写,编写的图书有《软件开发视频大讲堂》、《软件开发全程实录》等多个系列,多种图书荣获全行业优秀畅销书奖。
目錄
第1篇 入 门 篇



第1章 初识C++ 2

(视频讲解:45分钟)

1.1 C++的历史背景 3

1.1.1 计算机的问世 3

1.1.2 C++发展历程 3

1.1.3 C++中的杰出人物 4

1.2 C++语言特点 5

1.3 Visual Studio 2010集成编译环境 6

1.3.1 安装Visual Studio 2010 6

1.3.2 卸载Visual Studio 2010 11

1.3.3 使用Visual Studio 2010创建一个C++控制台程序 12

1.3.4 编写第一个C++程序“Hello
World!” 15

1.4 本书代码使用指南 16

1.5 本章小结 16



第2章 认识C++程序 17

(视频讲解:54分钟)

2.1 我的第一个C++程序 18

2.1.1 创建第一个C++程序 18

2.1.2 C++程序的基本组成 20

2.2 C++的常用概念 21

2.2.1 预处理命令 21

2.2.2 注释 21

2.2.3 main函数 22

2.2.4 函数体 22

2.2.5 函数返回值 22

2.3 初步了解函数 22

2.3.1 一个简单的函数 22

2.3.2 函数的传参 24

2.3.3 函数的返回值、参数与变量 25

2.3.4 函数的声明和定义 26

2.3.5 变量 29

2.4 C++语言基本要素 30

2.4.1 解读标识符 31

2.4.2 关键字 31

2.4.3 定义和使用常量 32

2.4.4 变量的应用 32

2.5 C++代码编写规范 33

2.5.1 代码写规范的好处 33

2.5.2 如何将代码写规范 34

2.6 综合应用 34

2.7 本章常见错误 35

2.8 本章小结 35

2.9 跟我上机 35



第3章 变量和数据类型 37

(视频讲解:1小时5分钟)

3.1 常量 38

3.1.1 整型常量 38

3.1.2 实型常量 38

3.1.3 字符常量 39

3.1.4 字符串常量 40

3.1.5 其他常量 41

3.2 变量 41

3.2.1 标识符 41

3.2.2 变量与变量说明 42

3.2.3 整型变量 42

3.2.4 实型变量 43

3.2.5 变量赋值 43

3.2.6 变量赋初值 44

3.2.7 字符变量 44

3.3 常用数据类型 45

3.3.1 定义数值类型 46

3.3.2 字符类型 47

3.3.3 布尔类型 47

3.4 输入与输出数据 48

3.4.1 通过printf格式输出数据 48

3.4.2 利用scanf格式输入数据 51

3.4.3 标准IO流 54

3.4.4 控制输入输出格式 56

3.5 综合应用 60

3.5.1 计算贷款支付额 60

3.5.2 计算函数值 61

3.6 本章常见错误 62

3.7 本章小结 62

3.8 跟我上机 63



第4章 运算符与表达式 64

(视频讲解:40分钟)

4.1 C++中的运算符 65

4.1.1 算术运算符 65

4.1.2 关系运算符 66

4.1.3 逻辑运算符 67

4.1.4 赋值运算符 68

4.1.5 位运算符 69

4.1.6 移位运算符 70

4.1.7 sizeof运算符 73

4.1.8 条件运算符 73

4.1.9 逗号运算符 74

4.2 结合性和优先级 74

4.3 表达式 75

4.3.1 算术表达式 76

4.3.2 关系表达式 76

4.3.3 条件表达式 76

4.3.4 赋值表达式 76

4.3.5 逻辑表达式 77

4.3.6 逗号表达式 77

4.3.7 表达式中的类型转换 78

4.4 语句概述 81

4.5 判断左值与右值 82

4.6 综合应用 83

4.6.1 计算三角形周长 83

4.6.2 计算三角形的边长 83

4.7 本章常见错误 84

4.7.1 注意=和== 84

4.7.2 不要混淆strlen和sizeof 84

4.7.3 对浮点数求余 84

4.8 本章小结 84

4.9 跟我上机 85



第5章 条件判断语句 86

(视频讲解:35分钟)

5.1 决策分支 87

5.2 判断语句 87

5.2.1 第一种形式的判断语句——if语句 87

5.2.2 第二种形式的判断语句——if-else语句 89

5.2.3 第三种形式的判断语句——多次判断语句 91

5.3 使用条件运算符进行判断 93

5.4 switch判断语句 94

5.5 判断语句的嵌套 99

5.6 综合应用 101

5.6.1 图书的位置 101

5.6.2 计算增加后的工资 102

5.7 本章常见错误 103

5.7.1 注意case后不要跟变量 103

5.7.2 if else的匹配问题 104

5.7.3 if判断表达式的比较问题 104

5.8 本章小结 104

5.9 跟我上机 104



第6章 循环控制语句 106

(视频讲解:50分钟)

6.1 while循环 107

6.2 do…while循环 109

6.3 while和do…while比较 110

6.4 for循环 112

6.5 循环控制 115

6.5.1 控制循环的变量 116

6.5.2 break语句 117

6.5.3 continue语句 118

6.5.4 goto语句 119

6.6 循环嵌套 120

6.7 综合应用 122

6.7.1 阿姆斯壮数 122

6.7.2 巴斯卡三角形 123

6.7.3 输出闰年 124

6.8 本章常见错误 126

6.8.1 break和continue语句的区别 126

6.8.2 goto的问题 126

6.9 本章小结 126

6.10 跟我上机 127



第7章 封装函数使程序模块化 128

(视频讲解:1小时)

7.1 函数概述 129

7.1.1 定义函数 129

7.1.2 声明和使用函数 129

7.2 函数的参数 130

7.2.1 形参与实参 130

7.2.2 设置默认值 131

7.3 从函数中返回 132

7.3.1 函数返回值 132

7.3.2 了解空函数 133

7.4 递归调用函数 133

7.5 重载函数的使用 137

7.6 生存周期与作用域 139

7.6.1 变量的作用域 139

7.6.2 变量的生存周期 140

7.6.3 变量的储存方式 141

7.7 名称空间 145

7.8 综合应用 147

7.8.1 等差数列求和 147

7.8.2 提款机的记录 148

7.9 本章常见错误 149

7.9.1 函数中返回的数组地址无效 149

7.9.2 声明函数时不要忘记加分号 149

7.9.3 尽量不要用using namespace
std 149

7.10 本章小结 150

7.11 跟我上机 150



第8章
C++中的指针 152

(视频讲解:20分钟)

8.1 指针概述 153

8.1.1 保存变量地址 153

8.1.2 指针的运算 157

8.1.3 指向空的指针与空类型指针 159

8.1.4 指向常量的指针与指针常量 160

8.2 指针在函数中的应用 162

8.2.1 传递地址 162

8.2.2 指向函数入口地址 163

8.2.3 空指针调用函数 164

8.2.4 从函数中返回指针 165

8.3 安全使用指针 167

8.3.1 内存分配 167

8.3.2 内存安全 169

8.4 综合应用 172

8.4.1 水桶的平衡 172

8.4.2 分步计算 173

8.4.3 显示数组元素 173

8.5 本章常见错误 174

8.5.1 文字常量区不可修改 174

8.5.2 重复释放内存,错误提示“Debug
Assertion Failed!” 175

8.5.3 释放空间以后,记得给指针赋空 175

8.5.4 *p--输出的不是想要的值 175

8.6 本章小结 176

8.7 跟我上机 176



第9章
C++中的引用 177

(视频讲解:14分钟)

9.1 引用概述 178

9.1.1 引用的概念 178

9.1.2 引用就是别名常量 179

9.1.3 右值引用 180

9.2 引用在函数中的应用 181

9.2.1 引用作为函数的形参 181

9.2.2 指针与引用 182

9.2.3 右值引用传递参数 184

9.3 综合应用 185

9.4 本章常见错误 186

9.4.1 指针和引用分别应该什么时候用 186

9.4.2 在哪里创建,就在哪里释放指针 186

9.4.3 指针和引用混合使用 186

9.4.4 指针的特殊写法 187

9.5 本章小结 187

9.6 跟我上机 187



第10章 使用数组获取连续空间 188

(视频讲解:56分钟)

10.1 一维数组 189

10.1.1 声明一维数组 189

10.1.2 一维数组的元素 189

10.1.3 初始化一维数组 190

10.2 二维数组 191

10.2.1 声明二维数组 191

10.2.2 引用二维数组元素 192

10.2.3 初始化二维数组 193

10.3 字符数组 195

10.3.1 声明一个字符串数组 195

10.3.2 字符串数组赋值 195

10.3.3 字符数组的一些说明 195

10.3.4 越界引用 196

10.3.5 字符串处理函数 198

10.4 指针与数组 203

10.4.1 存储数组元素 203

10.4.2 保存一维数组首地址 203

10.4.3 保存二维数组首地址 205

10.4.4 指针与字符数组 210

10.4.5 数组作函数参数 212

10.4.6 动态分配数组 214

10.5 字符串类型 215

10.5.1 使用本地字符串类型string 215

10.5.2 连接string字符串 216

10.5.3 比较string字符串 217

10.5.4 定义string类型数组 218

10.6 综合应用 219

10.6.1 名字排序 219

10.6.2 查找数字 220

10.6.3 求平均身高 221

10.7 本章常见错误 222

10.7.1 不能对数组名直接赋值 222

10.7.2 sizeofa和sizeofa+1 223

10.7.3 注意区分数组指针和指针数组 223

10.8 本章小结 223

10.9 跟我上机 224



第2篇 提 高 篇



第11章 面向对象编程 226

(视频讲解:1小时20分钟)

11.1 面向对象的编程思想 227

11.1.1 面向过程 228

11.1.2 面向对象 228

11.1.3 面向对象编程的特点 229

11.2 类与对象 229

11.2.1 声明与定义类 230

11.2.2 在源文件中包含头文件 231

11.2.3 实现一个类 231

11.2.4 实例化一个对象 236

11.2.5 访问类成员 236

11.3 类的构造与析构 239

11.3.1 构造函数概述 239

11.3.2 利用构造函数初始化成员变量 239

11.3.3 析构一个类 242

11.4 定义静态成员 244

11.5 通过指针操作对象 247

11.6 隐含的this指针 248

11.7 复制对象 250

11.8 声明const对象 252

11.9 申请对象数组 254

11.10 C++中的友元 257

11.10.1 友元机制 257

11.10.2 定义友元类 259

11.11 重载运算符 260

11.11.1 重载算术运算符 260

11.11.2 重载比较运算符 262

11.12 综合应用 263

11.12.1 用户与留言 263

11.12.2 挑选硬盘 265

11.13 本章常见错误 266

11.13.1 声明类时提示编译错误 266

11.13.2 对比const与#define 267

11.13.3 new和delete要配对使用 267

11.14 本章小结 267

11.15 跟我上机 267



第12章 从基类到派生类 269

(视频讲解:46分钟)

12.1 类的继承 270

12.1.1 定义派生类 270

12.1.2 访问类成员 272

12.1.3 类的派生方式 273

12.1.4 父类和子类的构造顺序 276

12.1.5 子类显示调用父类构造函数 277

12.1.6 子类隐藏父类的成员函数 279

12.1.7 嵌套定义多个类 282

12.2 多重继承 284

12.2.1 声明多重继承的派生类 284

12.2.2 注意避免二义性 285

12.2.3 多重继承的构造顺序 286

12.3 C++的多态性 288

12.3.1 虚函数概述 288

12.3.2 动态绑定 288

12.3.3 虚继承机制 290

12.4 抽象类介绍 292

12.4.1 创建纯虚函数 292

12.4.2 实现抽象类中的成员函数 293

12.5 综合应用 295

12.5.1 学生类的设计 295

12.5.2 等边多边形 296

12.5.3 教师职位信息 298

12.6 本章常见错误 299

12.6.1 静态成员函数不能访问普通成员变量 299

12.6.2 类初始化时不能直接给数组名赋值 299

12.6.3 派生后的访问权限总结 300

12.7 本章小结 300

12.8 跟我上机 300



第13章
C++模板的使用 303

(视频讲解:50分钟)

13.1 函数模板 304

13.1.1 定义函数模板 304

13.1.2 使用函数模板 305

13.1.3 重载函数模板 307

13.2 类模板 308

13.2.1 定义类模板 308

13.2.2 执行时指定参数 310

13.2.3 设置默认模板参数 311

13.2.4 为具体类型的参数提供默认值 312

13.2.5 越界检测 313

13.3 模板的使用方法 315

13.3.1 定制类模板 315

13.3.2 定制类模板成员函数 317

13.3.3 部分定制模板 318

13.4 链表类模板 319

13.4.1 建立单向链表 320

13.4.2 链表类模板的使用 322

13.4.3 类模板的静态数据成员 324

13.5 综合应用 326

13.5.1 除法函数模板 326

13.5.2 取得数据间最大值 327

13.5.3 不同类型数组管理 328

13.6 本章常见错误 330

13.6.1 函数模板与类模板的区别 330

13.6.2 成员函数在类外实现时不要带默认值 330

13.6.3 函数默认顺序从右向左 330

13.7 本章小结 330

13.8 跟我上机 331



第14章 代码整理 332

(视频讲解:52分钟)

14.1 结构体概述 333

14.2 重命名数据类型 333

14.3 枚举类型的应用 335

14.4 类型推导 340

14.5 异常处理 341

14.5.1 抛出异常 342

14.5.2 捕获异常 344

14.5.3 异常匹配 347

14.5.4 标准异常 349

14.6 使用宏定义替换复杂的数据 349

14.7 综合应用 353

14.7.1 扑克牌的牌面 353

14.7.2 使用带参数的宏求圆面积 354

14.7.3 综合成绩 355

14.8 本章常见错误 356

14.8.1 注意带参数的宏 356

14.8.2 结构体成员的引用 356

14.8.3 结构体字节对齐问题 356

14.8.4 用指针动态申请结构体内存时失败 357

14.9 本章小结 357

14.10 跟我上机 358



第15章 掌握C++标准模板库 359

(视频讲解:29分钟)

15.1 几种常见数据结构 360

15.1.1 简述STL 360

15.1.2 顺序线性结构 360

15.1.3 基本操作 360

15.1.4 栈结构 361

15.1.5 队列结构 361

15.1.6 链表结构 361

15.1.7 图结构 362

15.2 使用容器管理数据 362

15.2.1 对比容器适配器与容器 362

15.2.2 对比迭代器与容器 363

15.2.3 vector容器 364

15.2.4 list容器 367

15.2.5 关联容器 370

15.3 常用算法 372

15.3.1 for_each函数 372

15.3.2 fill函数 373

15.3.3 sort函数 374

15.3.4 transform函数 375

15.4 lambda表达式 376

15.5 综合应用 379

15.5.1 迭代输出信息 379

15.5.2 计算平均值 380

15.6 本章常见错误 380

15.6.1 不要直接使用头指针操作链表 380

15.6.2 区分内存中的栈和数据结构中的栈 381

15.6.3 数组和容器的区别 381

15.7 本章小结 381

15.8 跟我上机 381



第16章 利用文件处理数据 383

(视频讲解:58分钟)

16.1 文件流概述 384

16.1.1 C++中的流类库 384

16.1.2 使用类库 384

16.1.3 ios类中的枚举常量 385

16.1.4 使用流进行输出 385

16.2 打开文件 386

16.2.1 文件打开方式 386

16.2.2 默认打开模式 387

16.2.3 创建并打开文件 388

16.3 读写文件 389

16.3.1 文件流分类 389

16.3.2 写文本文件 391

16.3.3 读取文本文件 392

16.3.4 二进制文件的读写 393

16.3.5 实现文件复制 394

16.4 移动文件指针 395

16.4.1 文件错误与状态 395

16.4.2 向文件追加写入 396

16.4.3 文件结尾的判断 397

16.4.4 在指定位置读写文件 399

16.5 文件和流的关联和分离 401

16.6 删除文件 402

16.7 综合应用 403

16.7.1 记录类的信息 403

16.7.2 读取文件信息 404

16.8 本章常见错误 405

16.8.1 文件打开要记得关闭 405

16.8.2 peek不能用于ofstream 405

16.8.3 忘记调回指针,读不到内容 405

16.9 本章小结 405

16.10 跟我上机 406



第3篇 实 战 篇



第17章
C++语言游戏开发 410

(视频讲解:2小时48分钟)

17.1 模拟ATM机界面程序 411

17.1.1 概述 411

17.1.2 需求分析 411

17.1.3 设计思路 411

17.1.4 详细设计 411

17.1.5 程序代码 415

17.1.6 小结 418

17.2 猜数字游戏 418

17.2.1 概述 418

17.2.2 需求分析 418

17.2.3 系统设计 419

17.2.4 程序预览 419

17.2.5 设计思路 421

17.2.6 文件引用 421

17.2.7 主要功能实现 422

17.2.8 小结 426

17.3 吃豆子游戏 426

17.3.1 PacMan程序框架初步分析 426

17.3.2 碰撞检测的实现 429

17.3.3 地图类的设计 432

17.3.4 数据更新 435

17.3.5 绘图 443

17.3.6 窗口设计 448

17.3.7 小结 455



第18章 人事考勤管理系统(Visual Studio 2010和SQL
Server 2008实现) 456

(视频讲解:1小时30分钟)

18.1 开发背景 457

18.2 需求分析 457

18.3 系统设计 457

18.3.1 系统目标 457

18.3.2 系统功能结构 458

18.3.3 系统预览 458

18.3.4 业务流程图 458

18.3.5 数据库设计 459

18.4 公共模块设计 461

18.5 主窗体设计 466

18.6 用户登录模块设计 469

18.6.1 用户登录模块概述 469

18.6.2 用户登录技术分析 469

18.6.3 用户登录实现过程 470

18.7 用户管理模块设计 471

18.7.1 用户管理模块概述 471

18.7.2 用户管理技术分析 471

18.7.3 用户管理实现过程 472

18.7.4 单元测试 474

18.8 部门管理模块设计 475

18.8.1 部门管理模块概述 475

18.8.2 部门管理技术分析 475

18.8.3 部门管理实现过程 476

18.9 人员信息管理模块设计 478

18.9.1 人员信息管理模块概述 478

18.9.2 人员信息管理技术分析 479

18.9.3 人员信息管理实现过程 479

18.10 考勤管理模块设计 485

18.10.1 考勤管理模块概述 485

18.10.2 考勤管理技术分析 486

18.10.3 考勤管理实现过程 487

18.11 考勤汇总查询模块设计 492

18.11.1 考勤汇总查询模块概述 492

18.11.2 考勤汇总查询技术分析 492

18.11.3 考勤汇总查询实现过程 493

18.12 开发技巧与难点分析 496

18.12.1 调用动态链接库设计界面 496

18.12.2 主窗口的界面显示 497

18.13 本章小结 498

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.