内容简介
《C++程序设计(第8版 影印版)》是最优秀的C++入门教材,深受师生欢迎。作者结合自己多年的教学经验,根据教学大纲精心设计并编写了书中内容。与此同时,本书还采用了很多便于读者巩固所学知识的教学特征,比如各章开始处的小节总览,书中随处可见的总结框、编程提示和编程陷阱,各章结尾处的小结、习题和编程项目等。这些非常适合初学者掌握重要的编程概念。 《C++程序设计(第8版 影印版)》共18章,8个附录。在讲解C++基础知识之后,直接引导学生深入函数、I/O流、类、控制流程、命名空间、数组、字符串、指针和动态数组、递归、模板、指针和链表、派生类、异常以及标准模板库。 Original edition, entitled PROBLEM SOLVING WITH C++, 8E, 9780132162739 by SAVITCH, WALTER, published by Pearson Education, Inc, publishing as Addison-Wesley, Copyright ? 2012 Pearson Education, Inc.. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. China edition published by PEARSON EDUCATION ASIA LTD., and TSINGHUA UNIVERSITY PRESS LIMITED Copyright ? 2014. This edition is manufactured in the People’s Republic of China, and is authorized for sale and distribution in the People’s Republic of China exclusively (except Taiwan, Hong Kong SAR and Macau SAR). 《C++程序设计(第8版 影印版)》影印版由Pearson Education授权给清华大学出版社在中国境内(不包括中国台湾、香港特别行政区和澳门特别行政区)出版发行。
作者简介
Walter Savitch,美国加州大学圣地亚哥分校荣誉退休教授,拥有加州大学伯克利分校博士学位,曾担任加州大学圣地亚哥分校计算机科学系教授和认知科学跨学科博士项目主任。他在复杂性理论和并行计算模型方面具有卓越的贡献,其研究领域包括形式语言理论计算语言学等。Savitch教授还是C++和Java经典教材的缔造者,他的作品通俗易懂,生动有趣,贴近生活,应用性和实用性很强,深受全球数十万读者(包括教师和学生)的欢迎。
内页插图
精彩书评
★“我的学生和我非常喜欢这本教材,Savitch教授功力深厚,关于将这些枯燥的知识变得浅显易懂,而且他的行文诙谐有趣,我们师生都喜欢这样的方式,学生们告诉我,他们终于买到了一个真正的有所值的大学教材。”
——Jennifer Perkins, 阿肯色州立大学小石城分校 ★“Savitch的这本我校已经使用多年,它赢得了我们师生的一致认同。Walter Savich用清晰、简练的风格解释了难懂的编程概念,讨论了C++语言的所有重要特色。”
——Carol Roberts, 缅因州立大学 目录
Brief Contents
Table of Location of VideoNotes
Inside front cover and inside back cover
Chapter 1 1Introduction to Computers and C++ Programming 1
Chapter 2 2C++ Basics 39
Chapter 3 3More Flow of Control 109
Chapter 4 4Procedural Abstraction and Functions That Return a Value 177
Chapter 5 5Functions for All Subtasks 247
Chapter 6 6I/O Streams as an Introduction to Objects and Classes 301
Chapter 7 7Arrays 373
Chapter 8 8Strings and Vectors 441
Chapter 9 9Pointers and Dynamic Arrays 493
Chapter 10 0Defining Classes 525
Chapter 11 Friends, Overloaded Operators, and Arrays in Classes 601
Chapter 12 Separate Compilation and Namespaces 685
Chapter 13 Pointers and Linked Lists 721
Chapter 14 Recursion 769
Chapter 15 Inheritance 811
Chapter 16 Exception Handling 867
Chapter 17 Templates 899
Chapter 18 Standard Template Library 931
Appendices
1 C++ Keywords 987
2 Precedence of Operators 988
3 The ASCII Character Set 990
4 Some Library Functions 991
5 Inline Functions 998
6 Overloading the Array Index Square Brackets 999
7 The this Pointer 1001
8 Overloading Operators as Member Operators 1004
Table of Location of VideoNotes
Inside front cover and inside back cover
Chapter 1 1Introduction to Computers and C++ Programming 1
1.1 COMPuTER SYSTEMS 2
Hardware 2
Software 7
High-Level Languages 8
Compilers 9
History Note 12
1.2 PROgRAMMINg AND PROBLEM-SOLVINg 12
Algorithms 12
Program Design 15
Object-Oriented Programming 16
The Software Life Cycle 17
1.3 INTRODuCTION TO C++ 18
Origins of the C++ Language 18
A Sample C++ Program 19
Pitfall: Using the Wrong Slash in
23
Programming Tip: Input and Output Syntax 23
Layout of a Simple C++ Program 24
Pitfall: Putting a Space Before the include File Name 26
Compiling and Running a C++ Program 26
Programming Tip: Getting Your Program to Run 27
1.4 TESTINg AND DEBuggINg 29
Kinds of Program Errors 30
Pitfall: Assuming Your Program Is Correct 31
Chapter Summary 31
1Answers to Self-Test Exercises 32
2Programming Projects 35
Chapter 2 C++ Basics 39
2.1 VARIABLES AND ASSIgNMENTS 40
Variables 40
0Names: Identifiers 42
2Variable Declarations 44
4Assignment Statements 45
5Pitfall: Uninitialized Variables 47
7Programming Tip: Use Meaningful Names 49
2.2 INPuT AND OuTPuT 50
Output Using cout 50
Include Directives and Namespaces 52
Escape Sequences 53
Programming Tip: End Each Program with a
or endl 54
Formatting for Numbers with a Decimal Point 55 Input Using cin 56
Designing Input and Output 58
Programming Tip: Line Breaks in I/O 58
2.3 DATA TYPES AND ExPRESSIONS 60
The Types int and double 60
0Other Number Types 62
2The Type char 63
3The Type bool 64
4Introduction to the Class string 65
5Type Compatibilities 66
6Arithmetic Operators and Expressions 68
8Pitfall: Whole Numbers in Division 71
1More Assignment Statements 73
2.4 SIMPLE FLOw OF CONTROL 73
A Simple Branching Mechanism 74
4Pitfall: Strings of Inequalities 79
9Pitfall: Using = in place of == 80
0Compound Statements 81
1Simple Loop Mechanisms 83
Increment and Decrement Operators 86
Programming Example: Charge Card Balance 88
Pitfall: Infinite Loops 89
2.5 PROgRAM STYLE 92
Indenting 92 Comments 92 Naming Constants 94
Chapter Summary 97 Answers to Self-Test Exercises 97
Programming Projects 102
Chapter 3 More Flow of Control 109
3.1 uSINg BOOLEAN ExPRESSIONS 110
Evaluating Boolean Expressions 110
Pitfall: Boolean Expressions Convert to int Values 114
Enumeration Types (Optional) 117
3.2 MuLTIwAY BRANCHES 118
Nested Statements 118
Programming Tip: Use Braces in Nested Statements 119
Multiway if-else Statements 121
Programming Example: State Income Tax 123
The switch Statement 126
Pitfall: Forgetting a break in a switch Statement 130
Using switch Statements for Menus 131
Blocks 133
Pitfall: Inadvertent Local Variables 136
3.3 MORE ABOuT C++ LOOP STATEMENTS 137
The while Statements Reviewed 137
Increment and Decrement Operators Revisited 139
The for Statement 142
Pitfall: Extra Semicolon in a for Statement 147
What Kind of Loop to Use 148
Pitfall: Uninitialized Variables and Infinite Loops 150
The break Statement 151 Pitfall: The break Statement in Nested Loops 152
7387_Savitch_FM_ppi-xxx.indd 18 2/2/11 5:45 PM
contents xix
3.4 DESIgNINg LOOPS 153
Loops for Sums and Products 153 Ending a Loop 155 Nested Loops 158 Debugging Loops 160
Chapter Summary 163 Answers to Self-Test Exercises 164 Programming Projects 170
Chapter 4 4Procedural Abstraction and Functions That Return a Value 177
4.1 TOP-DOwN DESIgN 178
4.2 PREDEFINED FuNCTIONS 179
Using Predefined Functions 179 Random Number Generation 184 Type Casting 186 Older Form of Type Casting 188 Pitfall: Integer Division Drops the Fractional Part 188
4.3 PROgRAMMER-DEFINED FuNCTIONS 189
Function Definitions 189 Functions That Return a Boolean Value 195 Alternate Form for Function Declarations 195 Pitfall: Arguments in the Wrong Order 196 Function Definition–Syntax Summary 197 More About Placement of Function Definitions 198 Programming Tip: Use Function Calls in Branching Statements 199
4.4 PROCEDuRAL ABSTRACTION 200
The Black-Box Analogy 200 Programming Tip: Choosing Formal Parameter Names 203 Programming Tip: Nested Loops 204 Case Study: Buying Pizza 207 Programming Tip: Use Pseudocode 213
4.5 SCOPE AND LOCAL VARIABLES 214
The Small Program Analogy 214 Programming Example: Experimental Pea Patch 217
Global Constants and Global Variables 217 Call-by-Value Formal Parameters Are Local Variables 220 Block Scope 222 Namespaces Revisited 223 Programming Example: The Factorial Function 226
4.6 OVERLOADINg FuNCTION NAMES 228
Introduction to Overloading 228 Programming Example: Revised Pizza-Buying Program 231 Automatic Type Conversion 234 Chapter Summary 236 Answers to Self-Test Exercises 236 Programming Projects 241
Chapter 5 Functions for All Subtasks 247
5.1 void FuNCTIONS 248
Definitions of void Functions 248 Programming Example: Converting Temperatures 251 return Statements in void Functions 251
5.2 CALL-BY-REFERENCE PARAMETERS 255
A First View of Call-by-Reference 255 Call-by-Reference in Detail 258 Programming Example: The swap_values Function 263 Mixed Parameter Lists 264 Programming Tip: What Kind of Parameter to Use 265 Pitfall: Inadvertent Local Variables 266
5.3 uSINg PROCEDuRAL ABSTRACTION 269
Functions Calling Functions 269 Preconditions and Postconditions 271 Case Study: Supermarket Pricing 272
5.4 TESTINg AND DEBuggINg FuNCTIONS 277
Stubs and Drivers 278
5.5 gENERAL DEBuggINg TECHNIquES 283
Keep an Open Mind 283 Check Common Errors 283 Localize the Error 284 The assert Macr
C++程序设计(第8版 影印版) 电子书 下载 mobi epub pdf txt