內容簡介
《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 電子書 格式