Programming : principles and practice using C++
معرفی کتاب «Programming : principles and practice using C++» نوشتهٔ Amandha Dawn Vollmer و Bjarne Stroustrup, Bjarne Stroustrup، منتشرشده توسط نشر Addison-Wesley Professional در سال 2013. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.
;Programming: Principles and Practice Using C++ КНИГИ ; ОС и БД Название: Programming: Principles and Practice Using C++ Автор: Bjarne Stroustrup Издательство: Addison-Wesley ISBN: 978-0321543721 Год: 2008 Формат: PDF Размер: 129.56 MB Страниц: 1272 Качество: Отличное Язык: АнглийскийОписание книги:No, this is not the 4th Edition of The C++ Programming Language (that book cannot be written until we have C++0x ready). It is an introduction to programming for people who has never programmed before. It will also be useful for people who have programmed a bit and want to improve their style and technique - or simply learn modern C++. It is designed for classroom use, but written with an eye on self study. Drafts have been used as the basis for first programming classes for electrical engineer, computer engineer, and computer science students at Texas A&M University for three years now.Скачать c .com 0 Preface......Page 25 0 Notes to the Reader......Page 31 0.1 The structure of this book......Page 32 0.1.1 General approach......Page 33 0.1.2 Drills, exercises, etc.......Page 34 0.1.3 What comes after this book?......Page 35 0.2 A philosophy of teaching and learning......Page 36 0.2.1 The order of topics......Page 39 0.2.2 Programming and programming language......Page 40 0.2.3 Portability......Page 41 0.5 Request for feedback......Page 42 0.6 References......Page 43 0.7 Biographies......Page 44 1 Computers, People, and Programming......Page 47 1.1 Introduction......Page 48 1.2 Software......Page 49 1.3 People......Page 51 1.4 Computer science......Page 54 1.5 Computers are everywhere......Page 55 1.5.2 Shipping......Page 56 1.5.3 Telecommunications......Page 58 1.5.4 Medicine......Page 60 1.5.5 Information......Page 61 1.5.6 A vertical view......Page 62 1.6 Ideals for programmers......Page 64 I The Basics......Page 71 2 Hello, World!......Page 73 2.1 Programs......Page 74 2.2 The classic first program......Page 75 2.3 Compilation......Page 77 2.4 Linking......Page 81 2.5 Programming environments......Page 82 3 Objects, Types, and Values......Page 89 3.1 Input......Page 90 3.2 Variables......Page 92 3.3 Input and type......Page 94 3.4 Operations and operators......Page 96 3.5 Assignment and initialization......Page 99 3.5.1 An example: delete repeated words......Page 101 3.6.1 An example: count repeated words......Page 103 3.7 Names......Page 104 3.8 Types and objects......Page 107 3.9 Type safety......Page 108 3.9.1 Safe conversions......Page 109 3.9.2 Unsafe conversions......Page 110 4 Computation......Page 119 4.1 Computation......Page 120 4.2 Objectives and tools......Page 122 4.3 Expressions......Page 124 4.3.1 Constant expressions......Page 125 4.3.2 Operators......Page 126 4.3.3 Conversions......Page 128 4.4 Statements......Page 129 4.4.1 Selection......Page 131 4.4.2 Iteration......Page 138 4.5 Functions......Page 142 4.5.1 Why bother with functions?......Page 144 4.5.2 Function declarations......Page 145 4.6 Vector......Page 146 4.6.1 Growing a vector......Page 148 4.6.2 A numeric example......Page 149 4.6.3 Atextexample......Page 151 4.7 Language features......Page 153 5 Errors......Page 161 5.1 Introduction......Page 162 5.3 Compile-time errors......Page 164 5.3.1 Syntax errors......Page 165 5.3.2 Type errors......Page 166 5.4 Link-time errors......Page 167 5.5 Runtime errors......Page 168 5.5.1 The caller deals with errors......Page 170 5.5.2 The callee deals with errors......Page 171 5.5.3 Error reporting......Page 173 5.6 Exceptions......Page 174 5.6.1 Bad arguments......Page 175 5.6.2 Range errors......Page 176 5.6.3 Bad input......Page 178 5.6.4 Narrowing errors......Page 181 5.7 Logicerrors......Page 182 5.8 Estimation......Page 185 5.9 Debugging......Page 186 5.9.1 Practical debug advice......Page 187 5.10 Pre- and post-conditions......Page 191 5.10.1 Post-conditions......Page 193 5.11 Testing......Page 194 6 Writing a Program......Page 201 6.1 A problem......Page 202 6.2 Thinking about the problem......Page 203 6.2.2 Strategy......Page 204 6.3 Back to the calculator!......Page 206 6.3.1 First attempt......Page 207 6.3.2 Tokens......Page 209 6.3.3 Implementing tokens......Page 211 6.3.4 Using tokens......Page 213 6.3.5 Back to the drawing board......Page 215 6.4 Grammars......Page 216 6.4.1 A detour: English grammar......Page 221 6.4.2 Writing a grammar......Page 222 6.5 Turning a grammar into code......Page 223 6.5.1 Implementing grammar rules......Page 224 6.5.2 Expressions......Page 225 6.5.3 Terms......Page 228 6.5.4 Primary expressions......Page 230 6.6 Trying the first version......Page 231 6.7 Trying the second version......Page 236 6.8 Token streams......Page 237 6.8.1 Implementing Token_stream......Page 239 6.8.2 Reading tokens......Page 241 6.8.3 Reading numbers......Page 242 6.9 Program structure......Page 243 7 Completing a Program......Page 249 7.2 Input and output......Page 250 7.3 Error handling......Page 252 7.4 Negative numbers......Page 257 7.5 Remainder: %......Page 258 7.6.1 Symbolic constants......Page 261 7.6.2 Use of functions......Page 263 7.6.3 Code layout......Page 264 7.6.4 Commenting......Page 266 7.7 Recovering from errors......Page 268 7.8.1 Variables and definitions......Page 271 7.8.2 Introducing names......Page 276 7.8.4 Are we there yet?......Page 279 8 Technicalities: Functions, etc.......Page 283 8.1 Technicalities......Page 284 8.2 Declarations and definitions......Page 285 8.2.1 Kinds of declarations......Page 289 8.2.2 Variable and constant declarations......Page 290 8.3 Header files......Page 291 8.4 Scope......Page 294 8.5 Function call and return......Page 299 8.5.1 Declaring arguments and return type......Page 300 8.5.2 Returning a value......Page 301 8.5.4 Pass-by-const-reference......Page 303 8.5.5 Pass-by-reference......Page 306 8.5.6 Pass-by-value vs. pass-by-reference......Page 309 8.5.7 Argument checking and conversion......Page 311 8.5.8 Function call implementation......Page 312 8.6 Order of evaluation......Page 317 8.6.2 Global initialization......Page 318 8.7 Namespaces......Page 320 8.7.1 using declarations and using directives......Page 321 9 Technicalities: Classes, etc.......Page 329 9.1 User-defined types......Page 330 9.2 Classes and members......Page 331 9.3 Interface and implementation......Page 332 9.4.1 struct and functions......Page 334 9.4.2 Member functions and constructors......Page 336 9.4.3 Keep details private......Page 338 9.4.4 Defining member functions......Page 339 9.4.5 Referring to the current object......Page 342 9.4.6 Reporting errors......Page 343 9.5 Enumerations......Page 344 9.6 Operator overloading......Page 346 9.7 Class interfaces......Page 348 9.7.1 Argument types......Page 349 9.7.2 Copying......Page 351 9.7.3 Default constructors......Page 352 9.7.4 const member functions......Page 355 9.7.5 Members and “helper functions”......Page 356 9.8 The Date class......Page 358 II Input and Output......Page 367 10 Input and Output Streams......Page 369 10.1 Input and output......Page 370 10.2. The I/O stream model......Page 371 10.3. Files......Page 373 10.4 Openinga file......Page 374 10.5 Reading and writing a file......Page 376 10.6 I/Oerror handling......Page 378 10.7 Reading a single value......Page 382 10.7.1 Breaking the problem into manageable parts......Page 383 10.7.2 Separating dialog from function......Page 386 10.8 User-defined output operators......Page 387 10.10 A standard input loop......Page 389 10.11 Reading a structured file......Page 391 10.11.1 In-memory representation......Page 392 10.11.2 Reading structured values......Page 394 10.11.3 Changing representations......Page 398 11 Customizing Input and Output......Page 405 11.2 Output formatting......Page 406 11.2.1 Integer output......Page 407 11.2.2 Integer input......Page 409 11.2.3 Floating-point output......Page 410 11.2.4 Precision......Page 412 11.2.5 Fields......Page 413 11.3 File opening and positioning......Page 414 11.3.1 File open modes......Page 415 11.3.2 Binary files......Page 416 11.3.3 Positioning in files......Page 419 11.4 String streams......Page 420 11.5 Line-oriented input......Page 421 11.6 Character classification......Page 422 11.7 Using nonstandard separators......Page 424 11.8 And there is so much more......Page 431 12 A Display Model......Page 437 12.1 Why graphics?......Page 438 12.2 Adisplay model......Page 439 12.3 A first example......Page 440 12.4 UsingaGUl library......Page 444 12.5 Coordinates......Page 445 12.6 Shapes......Page 446 12.7.1 Graphics headers and main......Page 447 12.7.2 Analmost blank window......Page 448 12.7.3 Axis......Page 450 12.7.4 Graphing a function......Page 452 12.7.5 Polygons......Page 453 12.7.6 Rectangles......Page 454 12.7.8 Text......Page 457 12.7.9 Images......Page 459 12.7.10 And much more......Page 460 12.8 Getting this to run......Page 461 12.8.1 Source files......Page 462 13 Graphics Classes......Page 467 13.1 Overview of graphics classes......Page 468 13.2 Pointand Line......Page 470 13.3 Lines......Page 473 13.4 Color......Page 475 13.5 Line_style......Page 478 13.6 Open_polyline......Page 480 13.7 Closed_polyline......Page 481 13.8 Polygon......Page 483 13.9 Rectangle......Page 485 13.10 Managing unnamed objects......Page 489 13.11 Text......Page 492 13.12 Circle......Page 494 13.13 Ellipse......Page 496 13.14 Marked_polyline......Page 498 13.15 Marks......Page 499 13.16 Mark......Page 500 13.17 Images......Page 502 14 Graphics Class Design......Page 509 14.1.1 Types......Page 510 14.1.2 Operations......Page 512 14.1.3 Naming......Page 513 14.1.4 Mutability......Page 514 14.2 Shape......Page 515 14.2.1 An abstract class......Page 517 14.2.2 Access control......Page 518 14.2.3 Drawing shapes......Page 521 14.2.4 Copying and mutability......Page 524 14.3 Base and derived classes......Page 526 14.3.1 Object layout......Page 527 14.3.2 Deriving classes and defining virtual functions......Page 529 14.3.3 Overriding......Page 530 14.3.4 Access......Page 531 14.3.5 Pure virtual functions......Page 532 14.4 Benefits of object-oriented programming......Page 534 15 Graphing Functions and Data......Page 539 15.2 Graphing simple functions......Page 540 15.3 Function......Page 544 15.3.1 Default arguments......Page 545 15.3.2 More examples......Page 547 15.4 Axis......Page 548 15.5 Approximation......Page 551 15.6 Graphing data......Page 556 15.6.1 Reading a file......Page 558 15.6.2 General layout......Page 560 15.6.3 Scaling data......Page 561 15.6.4 Building the graph......Page 562 16 Graphical User Interfaces......Page 569 16.1 User interface alternatives......Page 570 16.2 The “Next” button......Page 571 16.3 Asimple window......Page 572 16.3.1 A callback function......Page 574 16.3.2 Await loop......Page 577 16.4.1 Widgets......Page 578 16.4.2 Buttons......Page 579 16.4.3 In_box and Out_box......Page 580 16.4.4 Menus......Page 581 16.5 Anexample......Page 582 16.6 Control inversion......Page 586 16.7 Adding a menu......Page 587 16.8 Debugging GUI code......Page 592 III Data and Algorithms......Page 597 17 Vector and Free Store......Page 599 17.1 Introduction......Page 600 17.2 vector basics......Page 602 17.3 Memory, addresses, and pointers......Page 604 17.3.1 The sizeof operator......Page 606 17.4 Free store and pointers......Page 607 17.4.1 Free-store allocation......Page 608 17.4.2 Access through pointers......Page 609 17.4.3 Ranges......Page 610 17.4.4 Initialization......Page 612 17.4.5 The null pointer......Page 613 17.4.6 Free-store deallocation......Page 614 17.5 Destructors......Page 616 17.5.1 Generated destructors......Page 618 17.5.2 Destructors and free store......Page 619 17.6 Access to elements......Page 620 17.7 Pointers to class objects......Page 621 17.8 Messing with types: void* and casts......Page 623 17.9 Pointers and references......Page 625 17.9.1 Pointer and reference parameters......Page 626 17.9.3 An example: lists......Page 628 17.9.4 List operations......Page 630 17.9.5 Listuse......Page 632 17.10 The this pointer......Page 633 17.10.1 More link use......Page 636 18 Vectors and Arrays......Page 641 18.1 Introduction......Page 642 18.2 Copying......Page 643 18.2.1 Copy constructors......Page 644 18.2.2 Copy assignments......Page 646 18.2.3 Copy terminology......Page 648 18.3 Essential operations......Page 650 18.3.1 Explicit constructors......Page 651 18.3.2 Debugging constructors and destructors......Page 652 18.4 Access to vector elements......Page 655 18.4.1 Overloading on const......Page 656 18.5 Arrays......Page 657 18.5.1 Pointers to array elements......Page 658 18.5.2 Pointers and arrays......Page 661 18.5.3 Array initialization......Page 663 18.5.4 Pointer problems......Page 664 18.6.1 Palindromes using string......Page 667 18.6.2 Palindromes using arrays......Page 668 18.6.3 Palindromes using pointers......Page 670 19 Vector, Templates, and Exceptions......Page 675 19.1 The problems......Page 676 19.2.1 Representation......Page 679 19.2.2 reserve and capacity......Page 681 19.2.4 push_back......Page 682 19.2.5 Assignment......Page 683 19.2.6 Our vector so far......Page 685 19.3.1 Types as template parameters......Page 686 19.3.2 Generic programming......Page 689 19.3.3 Containers and inheritance......Page 691 19.3.4 Integers as template parameters......Page 692 19.3.5 Template argument deduction......Page 694 19.3.6 Generalizing vector......Page 695 19.4 Range checking and exceptions......Page 698 19.4.1 An aside: design considerations......Page 700 19.4.2 A confession: macros......Page 701 19.5 Resources and exceptions......Page 702 19.5.1 Potential resource management problems......Page 703 19.5.2 Resource acquisition is initialization......Page 705 19.5.3 Guarantees......Page 706 19.5.5 RAII for vector......Page 708 20 Containers and Iterators......Page 715 20.1 Storing and processing data......Page 716 20.1.1 Working with data......Page 717 20.1.2 Generalizing code......Page 718 20.2 STL ideals......Page 720 20.3 Sequences and iterators......Page 724 20.3.1 Back to the example......Page 726 20.4 Linked lists......Page 728 20.4.1 List operations......Page 729 20.4.2 Iteration......Page 731 20.5 Generalizing vector yet again......Page 733 20.6 An example: a simple text editor......Page 734 20.6.1 Lines......Page 737 20.6.2 Iteration......Page 738 20.7 vector, list, and string......Page 741 20.7.1 insert and erase......Page 743 20.8 Adapting our vector to the STL......Page 745 20.9 Adapting built-in arrays to the STL......Page 748 20.10 Container overview......Page 749 20.10.1 Iterator categories......Page 752 21 Algorithms and Maps......Page 757 21.1 Standard library algorithms......Page 758 21.2 The simplest algorithm: find()......Page 759 21.2.1 Some generic uses......Page 761 21.3 The general search: find_if()......Page 762 21.4 Function objects......Page 764 21.4.1 An abstract view of function objects......Page 766 21.4.2 Predicates on class members......Page 767 21.5 Numerical algorithms......Page 768 21.5.1 Accumulate......Page 769 21.5.2 Generalizing accumulate()......Page 770 21.5.3 Inner product......Page 772 21.5.4 Generalizing inner_product()......Page 773 21.6 Associative containers......Page 774 21.6.1 Maps......Page 775 21.6.2 map overview......Page 777 21.6.3 Another map example......Page 780 21.6.4 unordered_map......Page 783 21.6.5 Sets......Page 785 21.7.1 Copy......Page 787 21.7.2 Stream iterators......Page 788 21.7.4 copy_if......Page 791 21.8 Sorting and searching......Page 792 IV Broadening the View......Page 799 22 Ideals and History......Page 801 22.1.1 Programming language aims and philosophies......Page 802 22.1.2 Programming ideals......Page 804 22.1.3 Styles/paradigms......Page 811 22.2 Programming language history overview......Page 813 22.2.1 The earliest languages......Page 814 22.2.2 The roots of modern languages......Page 816 22.2.3 The Algol family......Page 821 22.2.4 Simula......Page 828 22.2.5 C......Page 830 22.2.6 C++......Page 834 22.2.7 Today......Page 837 22.2.8 Information sources......Page 838 23 Text Manipulation......Page 843 23.2 Strings......Page 844 23.3 I/O streams......Page 849 23.4 Maps......Page 850 23.4.1 Implementation details......Page 856 23.5 A problem......Page 858 23.6 The idea of regular expressions......Page 860 23.7 Searching with regular expressions......Page 863 23.8.1 Characters and special characters......Page 866 23.8.2 Character classes......Page 867 23.8.3 Repeats......Page 868 23.8.5 Alternation......Page 870 23.8.6 Character sets and ranges......Page 871 23.8.7 Regular expression errors......Page 872 23.9 Matching with regular expressions......Page 874 23.10 References......Page 879 24 Numerics......Page 883 24.2 Size, precision, and overflow......Page 884 24.2.1 Numeric limits......Page 888 24.4 C:style multidimensional arrays......Page 889 24.5 The Matrix library......Page 891 24.5.1 Dimensions and access......Page 892 24.5.2 1D Matrix......Page 895 24.5.3 2D Matrix......Page 898 24.5.4 Matrix /O......Page 900 24.5.5 3D Matrix......Page 901 24.6 An example: solving linear equations......Page 902 24.6.1 Classical Gaussian elimination......Page 904 24.6.2 Pivoting......Page 905 24.6.3 Testing......Page 906 24.7 Random numbers......Page 907 24.8 The standard mathematical functions......Page 909 24.9 Complex numbers......Page 910 24.10 References......Page 912 25 Embedded Systems Programming......Page 917 25.1 Embedded systems......Page 918 25.2 Basic concepts......Page 921 25.2.2 Ideals......Page 924 25.2.3 Living with failure......Page 925 25.3 Memory management......Page 927 25.3.1 Free-store problems......Page 928 25.3.2 Alternatives to general free store......Page 931 25.3.3 Poolexample......Page 932 25.3.4 Stack example......Page 933 25.4.2 A problem: dysfunctional interfaces......Page 935 25.4.3 A solution: an interface class......Page 939 25.4.4 Inheritance and containers......Page 942 25.5.1 Bits and bit operations......Page 946 25.5.2 bitset......Page 950 25.5.3 Signed and unsigned......Page 952 25.5.4 Bit manipulation......Page 956 25.5.5 Bitfields......Page 958 25.5.6 An example: simple encryption......Page 960 25.6 Coding standards......Page 965 25.6.1 What should a coding standard be?......Page 966 25.6.2 Sample rules......Page 967 25.6.3 Real coding standards......Page 973 26 Testing......Page 979 26.1 What we want......Page 980 26.1.1 Caveat......Page 981 26.3 Testing......Page 982 26.3.1 Regression tests......Page 983 26.3.2 Unit tests......Page 984 26.3.3 Algorithms and non-algorithms......Page 991 26.3.4 System tests......Page 999 26.3.5 Testing classes......Page 1003 26.3.6 Finding assumptions that do not hold......Page 1006 26.4 Design for testing......Page 1008 26.6 Performance......Page 1009 26.6.1 Timing......Page 1011 26.7 References......Page 1013 27 The C Programming Language......Page 1017 27.1 Cand C++: siblings......Page 1018 27.1.1 C/C++ compatibility......Page 1020 27.1.2 C++ features missing from C......Page 1021 27.1.3 The C standard library......Page 1023 27.2.1 No function name overloading......Page 1024 27.2.2 Function argument type checking......Page 1025 27.2.3 Function definitions......Page 1027 27.2.4 Calling C from C++ and C++ from C......Page 1028 27.2.5 Pointers to functions......Page 1030 27.3.1 struct tag namespace......Page 1032 27.3.2 Keywords......Page 1033 27.3.3 Definitions......Page 1034 27.3.4 C-style casts......Page 1036 27.3.5 Conversion of void*......Page 1037 27.3.7 Namespaces......Page 1038 27.4 Free store......Page 1039 27.5 C-style strings......Page 1041 27.5.1 C-style strings and const......Page 1043 27.5.2 Byte operations......Page 1044 27.5.4 Astyle issue......Page 1045 27.6.1 Output......Page 1046 27.6.2 Input......Page 1047 27.6.3 Files......Page 1049 27.7 Constants and macros......Page 1050 27.8 Macros......Page 1051 27.8.1 Function-tike macros......Page 1052 27.8.2 Syntax macros......Page 1053 27.8.3 Conditional compilation......Page 1054 27.9 An example: intrusive containers......Page 1055 V Appendices......Page 1065 A Language Summary......Page 1067 A.1 General......Page 1068 A.1.2 Program start and termination......Page 1069 A.1.3 Comments......Page 1070 A.2.1 Integer literals......Page 1071 A.2.2 Floating-pointliterals......Page 1072 A.2.4 Character literals......Page 1073 A.2.6 The pointer literal......Page 1074 A.3.1 Keywords......Page 1075 A.4.1 Scope......Page 1076 A.4.2 Storage class......Page 1077 A.4.3 Lifetime......Page 1078 A.5 Expressions......Page 1079 A.5.2 Implicit type conversion......Page 1084 A.5.3 Constant expressions......Page 1086 A.5.6 new and delete......Page 1087 A.5.7 Casts......Page 1088 A.6 Statements......Page 1089 A.7.1 Definitions......Page 1091 A.8 Built-in types......Page 1092 A.8.1 Pointers......Page 1093 A.8.2 Arrays......Page 1094 A.8.3 References......Page 1095 A.9 Functions......Page 1096 A.9.1 Overload resolution......Page 1097 A.9.3 Unspecified arguments......Page 1098 A.10.1 Operator overloading......Page 1099 A.11 Enumerations......Page 1100 A.12.1 Member access......Page 1101 A.12.2 Class member definitions......Page 1104 A.12.3 Construction, destruction, and copy......Page 1105 A.12.4 Derived classes......Page 1108 A.12.6 Unions......Page 1112 A.13 Templates......Page 1113 A.13.2 Template instantiation......Page 1114 A.14 Exceptions......Page 1116 A.15 Namespaces......Page 1118 A.16 Aliases......Page 1119 A.17.2 #define......Page 1120 B Standard Library Summary......Page 1123 B.1 Overview......Page 1124 B.1.1 Header files......Page 1125 B.2 Error handling......Page 1128 B.2.1 Exceptions......Page 1129 B.3 Iterators......Page 1130 B.3.1 Iterator model......Page 1131 B.3.2 Iterator categories......Page 1133 B.4 Containers......Page 1135 B.4.1 Overview......Page 1137 B.4.3 Constructors, destructors, and assignments......Page 1138 B.4.5 Element access......Page 1139 B.4.8 Size and capacity......Page 1140 B.4.10 Associative container operations......Page 1141 B.5 Algorithms......Page 1142 B.5.1 Nonmodifying sequence algorithms......Page 1143 B.5.2 Modifying sequence algorithms......Page 1144 B.5.3 Utility algorithms......Page 1146 B.5.4 Sorting and searching......Page 1147 B.5.5 Set algorithms......Page 1148 B.5.6 Heaps......Page 1149 B.5.8 min and max......Page 1150 B.6.1 Inserters......Page 1151 B.6.2 Function objects......Page 1152 B.6.3 pair......Page 1153 B.7 1/O streams......Page 1154 B.7.1 I/O streams hierarchy......Page 1156 B.7.2 Error handling......Page 1157 B.7.4 Output operations......Page 1158 B.7.6 Standard manipulators......Page 1159 B.8.1 Character classification......Page 1161 B.8.2 String......Page 1162 B.8.3 Regular expression matching......Page 1163 B.9.1 Numerical limits......Page 1165 B.9.2 Standard mathematical functions......Page 1167 B.9.3 Complex......Page 1168 B.9.5 Generalized numerical algorithms......Page 1169 B.10.1 Files......Page 1170 B.10.2 The printf() family......Page 1171 B.10.3 C-style strings......Page 1175 B.10.4 Memory......Page 1176 B.10.5 Date and time......Page 1177 B.10.6 Etc.......Page 1179 B.11 Other libraries......Page 1180 C Getting Started with Visual Studio......Page 1181 C.2 Installing Visual Studio......Page 1182 C.3.2 Use the std_lib_facilities.h header file......Page 1183 C.3.5 Build an executable program......Page 1184 C.4 Later......Page 1185 D Installing FLTK......Page 1187 D.2 Downloading FLTK......Page 1188 D.4 Using FLTK in Visual Studio......Page 1189 D.5 Testing if it all worked......Page 1190 E GUI Implementation......Page 1191 E.1 Callback implementation......Page 1192 E.2 Widget implementation......Page 1193 E.3 Window implementation......Page 1194 E.4 Vector_ref......Page 1196 E.5 An example: manipulating Widgets......Page 1197 Glossary......Page 1201 Bibliography......Page 1207 Index......Page 1211 The Book Is An Introduction To Programming In General, Including Object-oriented Programming And Generic Programming. It Is Also A Solid Introduction To The C++ Programming Language, One Of The Most Widely Used Languages For Real-world Software. The Book Presents Modern C++ Programming Techniques From The Start, Introducing The C++ Standard Library To Simplify Programming Tasks. The Book Is Primarily Designed For People Who Have Never Programmed Before, And It Has Been Tested With More Than 1,000 First-year University Students. However, Practitioners And Advanced Students Will Gain New Insight And Guidance By Seeing How A Recognized Master Approaches The Elements Of His Art.--jacket. Preface Chapter 0: Notes To The Reader Part I: The Basics Chapter 1: Computers, People, And Programming Chapter 2: Hello, World! Chapter 3: Objects, Types, And Values Chapter 4: Computation Chapter 5: Errors Chapter 6: Writing A Program Chapter 7: Completing A Program Chapter 8: Technicalities: Functions, Etc. Chapter 9: Technicalities: Classes, Etc. Part Ii: Input And Output Chapter 10: Input And Output Streams Chapter 11: File Streams And String Streams Chapter 12: Graphs Chapter 13: Graph Classes Chapter 14: Graph Class Design Chapter 15: Graphing Functions Chapter 16: Graphical User Interfaces Part Iii: Data And Algorithms Chapter 17: Vectors: Memory Management Chapter 18: Vectors: Arrays Chapter 19: Vectors: Exceptions And Templates Chapter 20: Stl: Containers, Iterators, And Algorithms Chapter 21: Stl: Maps And Algorithms Part Iv: Broadening The View Chapter 22: Ideals And History Chapter 23: Text Manipulation Chapter 24: Numerics Chapter 25: Embedded Systems Programming Chapter 26: Testing Chapter 27: The C Programming Language Appendices Appendix A: Language Summary Appendix B: Standard-library Summary Appendix C: Getting Started With Visual Studio Appendix D: Installing Fltk Appendix E: Gui Implementation Glossary Bibliography Index. Bjarne Stroustrup. Includes Bibliographical References (p. 1177-1179) And Index. An Introduction to Programming by the Inventor of C++ Preparation for Programming in the Real World The book assumes that you aim eventually to write non-trivial programs, whether for work in software development or in some other technical field. Available here: (http://blubbu.com/download?i=0321992784) blubbu.com/download?i=0321992784 Programming: Principles and Practice Using C++ (2nd Edition) PDF by Bjarne Stroustrup
دانلود کتاب Programming : principles and practice using C++