2-1 computing fundamentals with c++ object-oriented programming and design, 2nd edition rick mercer...

36
2-1 Computing Fundamentals Computing Fundamentals with C++ with C++ Object-Oriented Programming and Design, Object-Oriented Programming and Design, 2nd Edition 2nd Edition Rick Mercer Rick Mercer Franklin, Beedle & Associates, 1999 Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8 ISBN 1-887902-36-8 Presentation Copyright 1999, Franklin, Beedle & Associates Presentation Copyright 1999, Franklin, Beedle & Associates Students who purchase and instructors who adopt Students who purchase and instructors who adopt Computing Computing Fundamentals with C++, Object-Oriented Programming and Design Fundamentals with C++, Object-Oriented Programming and Design by Rick Mercer by Rick Mercer are welcome to use this presentation as long as this copyright are welcome to use this presentation as long as this copyright notice remains intact. notice remains intact.

Upload: harvey-snow

Post on 13-Jan-2016

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-1

Computing Fundamentals with C++Computing Fundamentals with C++Object-Oriented Programming and Design, 2nd EditionObject-Oriented Programming and Design, 2nd Edition

Rick MercerRick Mercer

Franklin, Beedle & Associates, 1999Franklin, Beedle & Associates, 1999

ISBN 1-887902-36-8ISBN 1-887902-36-8

Presentation Copyright 1999, Franklin, Beedle & Associates Presentation Copyright 1999, Franklin, Beedle & Associates Students who purchase and instructors who adopt Students who purchase and instructors who adopt Computing Fundamentals with C++, Computing Fundamentals with C++, Object-Oriented Programming and Design Object-Oriented Programming and Design by Rick Mercer are welcome to use this by Rick Mercer are welcome to use this

presentation as long as this copyright notice remains intact.presentation as long as this copyright notice remains intact.

Page 2: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-2Chapter 2Chapter 2ImplementationImplementation

Chapter ObjectivesChapter Objectives Understand how to reuse existing code in your Understand how to reuse existing code in your

programs programs with #includewith #include

Obtain input data from the user and display Obtain input data from the user and display information to the user information to the user with cin and coutwith cin and cout

Evaluate and create arithmetic expressions Evaluate and create arithmetic expressions 3*x3*x

Understand operations common to many objects Understand operations common to many objects such as int, double, and string: such as int, double, and string: Construction, Output, Assignment, and InputConstruction, Output, Assignment, and Input

– Exercises and Programming Projects to reinforce implementing Exercises and Programming Projects to reinforce implementing simple programssimple programs

Page 3: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-32.1 The C++ Programming 2.1 The C++ Programming Language: A StartLanguage: A Start

A C++ program is a sequence of characters A C++ program is a sequence of characters created with a text editor and stored as a file.created with a text editor and stored as a file.

this is the source codethis is the source code

The file name have specific endings:The file name have specific endings: UNIX: UNIX: .cc.cc or or .C.C DOS or MS-Windows: DOS or MS-Windows: .cpp.cpp MacOS: MacOS: .cp .cp or or .cpp.cpp

Page 4: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-4 General FormsGeneral Forms

General forms provide information to create General forms provide information to create syntactically correct programs syntactically correct programs

Anything in yellow boldface must be written Anything in yellow boldface must be written exactly as shown (exactly as shown (cout <<cout << for example) for example)

Anything inAnything in italic italic represents something that must represents something that must be supplied by the user be supplied by the user

The italicized portions are defined elsewhereThe italicized portions are defined elsewhere

Page 5: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-5 General Form: A programGeneral Form: A program

// Comment #include-directive(s)using namespace std;int main(){ object-initializations statement(s) return 0;}

Page 6: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-6 Example C++ programExample C++ program

// This C++ program gets a number from the // user and displays that value squared #include <iostream> // for cout cin endlusing namespace std;

int main(){ double x = 0.0;

cout << "Enter a number: "; cin >> x; cout << "x squared: " << (x * x) << endl;

return 0; }

Page 7: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-7 The compilerThe compiler

The compiler The compiler reads source code in a character by character reads source code in a character by character

fashionfashion reports errors whenever possiblereports errors whenever possible reports warnings to help avoid errorsreports warnings to help avoid errors conceptually replaces #includes with the source conceptually replaces #includes with the source

code of the #included filecode of the #included file

Page 8: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-8 #include directives#include directives

General form: General form: #include-directive#include-directive#include #include <<include-fileinclude-file>>

-or--or-

#include "#include "include-fileinclude-file"" < >< > causes a search of the system folder(s)causes a search of the system folder(s)

these files should be found automatically.these files should be found automatically. The form with The form with " "" " first searches the working folder first searches the working folder

before searching the system folder(s)before searching the system folder(s) the " " indicates an author supplied file name that you the " " indicates an author supplied file name that you

may need in your working folder.may need in your working folder.

Page 9: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-92.1.1 The smallest pieces of a 2.1.1 The smallest pieces of a C++ ProgramC++ Program

A token is the smallest recognizable unit in a A token is the smallest recognizable unit in a programming languageprogramming language

There are four types of tokens:There are four types of tokens: special symbolsspecial symbols keywordskeywords identifiersidentifiers constantsconstants

Page 10: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-10 A "tokenized program"A "tokenized program"

Each color represents either a different token Each color represents either a different token special special

symbolsymbol reserved word reserved word identifieridentifier constantconstant commentcomment (gray), or (gray), or #include directive#include directive (cyan) (cyan)

// Comment: This is a complete C++ program// Comment: This is a complete C++ program #include <iostream> #include <iostream> using namespace using namespace stdstd;; int main main()() { { coutcout << << "Hello World!""Hello World!";; return 00; ; } }

Page 11: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-11 2.1.2 Special Symbols2.1.2 Special Symbols

One or two character sequences (no spaces)One or two character sequences (no spaces)

// < > ( ) { << ; } !=// < > ( ) { << ; } !=

Some special symbols mean different things in Some special symbols mean different things in different contextsdifferent contexts

Page 12: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-12 2.1.3 Keywords2.1.3 Keywords

Word like tokens with a pre-defined meaning Word like tokens with a pre-defined meaning that can't be changed (reserved)that can't be changed (reserved)

double int double int

Some of the keywords in the text :Some of the keywords in the text : bool class for operator typedef bool class for operator typedef case do if return voidcase do if return void char else long switch whilechar else long switch while

Page 13: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-13 2.1.4 Identifiers2.1.4 Identifiers

There are some standard (must be available There are some standard (must be available wth the C++ compiler) identifiers: wth the C++ compiler) identifiers:

endl sqrt string width stdendl sqrt string width std

The programmer can make up new identifiers The programmer can make up new identifiers (programmer-defined) (programmer-defined)

test1 x1 aNumber MAXIMUM A_1test1 x1 aNumber MAXIMUM A_1

Note: Note: mainmain is a is a programmer-defined programmer-defined identifier, identifier, coutcout is a is a standardstandard identifier identifier

Page 14: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-14 Active LearningActive Learning

Identifiers have from 1 to 32 characters: Identifiers have from 1 to 32 characters: 'a'..'z', 'A'..'Z', '0'..'9', '_''a'..'z', 'A'..'Z', '0'..'9', '_'

Identifiers should start with a letter: Identifiers should start with a letter: a1a1 is legal, is legal, 1a1a is is not (can also start with underscore not (can also start with underscore __

C++ is case sensitive. C++ is case sensitive. AA and and aa are different. are different.

Which of these are valid identifiers?Which of these are valid identifiers? a) abca) abc e) ABC e) ABC i) a_1 i) a_1 b) m/hb) m/h f) 25or6to4 f) 25or6to4 j) student Number j) student Number c) main g) 1_time k) stringc) main g) 1_time k) string d) double h) first name l) ______ d) double h) first name l) ______

Page 15: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-15 2.1.5 Constants2.1.5 Constants

floating-point constantsfloating-point constants1.234 -12.5 0.0 0. .0 1e10 0.1e-51.234 -12.5 0.0 0. .0 1e10 0.1e-5

string constantsstring constants"character between double quotes""character between double quotes"

integer constantsinteger constants -1 0 1 -32768 +32767-1 0 1 -32768 +32767

character constants (see Chapter 7)character constants (see Chapter 7) 'A' 'b' '\n' '1''A' 'b' '\n' '1'

Page 16: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-16 2.1.6 Comments2.1.6 Comments

Example commentsExample comments // on one line or // on one line or /* /* between slash star and star slashbetween slash star and star slash */*/

Provide internal documentationProvide internal documentation Helps us understand program that we must read--Helps us understand program that we must read--

including our own.including our own. Can be used as "pseudocode" within a program Can be used as "pseudocode" within a program

and later changed into C++ or left as is to provide and later changed into C++ or left as is to provide documentation documentation

Page 17: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-172.2 Common Operations on 2.2 Common Operations on ObjectsObjects

Common Operations for many classes of objects Common Operations for many classes of objects include these fourinclude these four

Declaration Declaration Construct an objectConstruct an objectInitializationInitialization or optionally initialize its state or optionally initialize its state

AssignmentAssignment Modify the state of an objectModify the state of an object InputInput Modify the state of an objectModify the state of an object OutputOutput Inspect the state of an objectInspect the state of an object

Page 18: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-18 2.2.1 Object Constructions2.2.1 Object Constructions

Use default initial state: Use default initial state: double is garbagedouble is garbage

class-name identifierclass-name identifier;-or--or-

class-name identifierclass-name identifier , identifier identifier , … , identifier identifier ;

Allow client to supply initial state:Allow client to supply initial state: class-name identifierclass-name identifier = initial-state initial-state ;

-or --or - class-name identifierclass-name identifier ( initial-state initial-state ) ; -or --or - class-name identifierclass-name identifier = initial-state initial-state , identifieridentifier ( initial-stateinitial-state ) , … … , identifier identifier = initial-stateinitial-state ;

Page 19: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-19Examples Object Examples Object ConstructionsConstructions

Construct seven objectsConstruct seven objects qualityPoints is undefinedqualityPoints is undefined

double credits = 15.5, qualityPoints;double credits = 15.5, qualityPoints; string firstName, lastName("Harrison");string firstName, lastName("Harrison"); double x = 0.0, y = 0.0;double x = 0.0, y = 0.0; double z; double z; // garbage state (unknown)// garbage state (unknown)

Note: strings have the default value of the null Note: strings have the default value of the null string string """", which has 0 characters., which has 0 characters.

A A doubledouble object has no default value--it's object has no default value--it's garbage unless an initial value is supplied.garbage unless an initial value is supplied.

Page 20: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-20 2.2.2 Output with 2.2.2 Output with coutcout

Programs must communicate with usersPrograms must communicate with users This can be done with keyboard input This can be done with keyboard input

statements and screen output statementsstatements and screen output statements A C++ statement is composed of several A C++ statement is composed of several

components properly grouped together to components properly grouped together to perform some operationperform some operation

Here is the first statement used to display Here is the first statement used to display constants and object state to the screen:constants and object state to the screen:

Page 21: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-21 The cout statementThe cout statement

The general form of a cout statement: The general form of a cout statement:

cout <<cout << expression-1expression-1 <<<< expression-2expression-2 <<<< expression-n expression-n ; ;

Example Example

cout << "Grade: " << courseGrade << endl;cout << "Grade: " << courseGrade << endl;

Page 22: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-22 What happens with cout?What happens with cout?

When a cout statement is encountered, the When a cout statement is encountered, the expressions are displayed on the screen in a manner expressions are displayed on the screen in a manner appropriate to the expressionappropriate to the expression

New Lines with endlNew Lines with endl When encountered in a cout statement, endl generates When encountered in a cout statement, endl generates

a new line on the monitora new line on the monitor To properly use cout and endl, your program must To properly use cout and endl, your program must

have this code at the top of the file:have this code at the top of the file: #include <iostream>#include <iostream> // for cout and endl// for cout and endl

using namespace std;using namespace std;

Page 23: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-23 Active Learning: Active Learning: Write the output generated by this programWrite the output generated by this program

#include <iostream> #include <iostream> // for cout// for coutusing namespace std; using namespace std; // so we don’t need std::// so we don’t need std::

int main()int main(){{ double aDouble = 0.0;double aDouble = 0.0; cout << "12345678" << endl;cout << "12345678" << endl; cout << (2.5 * 3) << (2*3) << endl;cout << (2.5 * 3) << (2*3) << endl; cout << aDouble;cout << aDouble; return 0;return 0;}}Output?:Output?:

Page 24: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-24 2.7.2 Assignment2.7.2 Assignment

Certain objects have undefined stateCertain objects have undefined state double dunno, do_you;double dunno, do_you; cout << dunno << endl; cout << dunno << endl; // Output? ______// Output? ______

The programmer can set the state of objects with The programmer can set the state of objects with assignment operations of this form:assignment operations of this form:

object-nameobject-name == expressionexpression ; ; Examples:Examples: dunno = 1.23;dunno = 1.23; do_you = dunno - 0.23;do_you = dunno - 0.23;

Page 25: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-25 Memory before and afterMemory before and after

Object Object Old Old Modified Modified NameName StateState StateState

dunnodunno ?? 1.231.23

do_youdo_you ?? 1.01.0

The expression must be a value that the object can The expression must be a value that the object can store (assignment compatible)store (assignment compatible)

dunno = "Ohhh no, you can't do that"; dunno = "Ohhh no, you can't do that"; // <-Error// <-Error string s; string s; s = 1.23; s = 1.23; // <-Error// <-Error

Page 26: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-26 Active Learning:Active Learning:

Write the values for bill and name:Write the values for bill and name: double bill;double bill; string name;string name; bill = 10.00;bill = 10.00; bill = bill + (0.06 * bill); bill = bill + (0.06 * bill); name = "Bee Bop"; name = "Bee Bop"; name = "Hip Hop";name = "Hip Hop";

// bill is ___________?// bill is ___________?

// name is now ________?// name is now ________?

Page 27: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-27 2.2.3 Input with 2.2.3 Input with cincin

General forms :General forms :

cin >>cin >> object-1object-1 ;; -or--or-

cin >> cin >> object-1 object-1 >> >> object-2 object-2 >> >> object-nobject-n ;; Example: Example: cin >> test1; cin >> test1;

When a cin statement is encounteredWhen a cin statement is encountered the program pauses for user input.the program pauses for user input. the characters typed by the user are processedthe characters typed by the user are processed the object's state is changed to the value of the inputthe object's state is changed to the value of the input

Page 28: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-28Input is separated with blanks, Input is separated with blanks, tabs, and newlinestabs, and newlines

#include <iostream> #include <iostream> // for cout, cin, endl// for cout, cin, endl #include <string>#include <string> // for class string// for class string using namespace std;using namespace std; int main()int main() {{ string name;string name; cout << "Enter your name: ";cout << "Enter your name: "; cin >> name;cin >> name; cout << "Hello " << name;cout << "Hello " << name; return 0;return 0; }}

Dialogue when the user enters Kim McPhee Dialogue when the user enters Kim McPhee McPhee is still waiting to be processed by a non-existent future cin statementMcPhee is still waiting to be processed by a non-existent future cin statement

Enter your name: Enter your name: Kim McPheeKim McPhee Hello KimHello Kim

Page 29: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-29 2.3 Arithmetic Expressions2.3 Arithmetic Expressions

Arithmetic expressions consist of Arithmetic expressions consist of operators such asoperators such as + - / * %+ - / * % and and operands such as operands such as 1.01.0,, payRatepayRate,, andand hoursWorkedhoursWorked

Example expression used in an Example expression used in an assignment:assignment:

grossPay = payRate * hoursWorked;grossPay = payRate * hoursWorked;

Another example expression:Another example expression: (40*payRate) + 1.5*payRate*(hoursWorked-40)(40*payRate) + 1.5*payRate*(hoursWorked-40)

The previous expression has how many The previous expression has how many operators ?___ ? operators ?___ ? operandsoperands ?___ ??___ ?

Page 30: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-30 Arithmetic ExpressionsArithmetic Expressions

a numeric object a numeric object x xor a numeric constantor a numeric constant 100 or 99.5 100 or 99.5or expression + expressionor expression + expression 1.0 + x 1.0 + xor expression - expressionor expression - expression 2.5 - x 2.5 - x

or expression * expressionor expression * expression 2 * x 2 * xor expression / expressionor expression / expression x / 2.0 x / 2.0or ( expression )or ( expression ) (1 + 2.0) (1 + 2.0)

An arithmetic expression can be written in these forms

Page 31: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-31Precedence of Arithmetic Precedence of Arithmetic OperatorsOperators

Expressions with more than one operator Expressions with more than one operator require some sort of precedence rules:require some sort of precedence rules:

* / * / // evaluated left to right order// evaluated left to right order - +- + // evaluated left to right order// evaluated left to right order

What isWhat is 2.0 + 4.0 - 6.0 * 8.0 / 6.02.0 + 4.0 - 6.0 * 8.0 / 6.0 ____? ____?

Use (parentheses ) for readability or to Use (parentheses ) for readability or to intentionally alter an expression:intentionally alter an expression:

double C;double C; double F = 212.0;double F = 212.0; C = 5.0 / 9.0 * (F - 32); C = 5.0 / 9.0 * (F - 32); // C = _____?// C = _____?

Page 32: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-32

#include <iostream> #include <iostream> // for cin, cout, and endl// for cin, cout, and endlusing namespace std;using namespace std;int main() int main() { { // Declare Objects// Declare Objects double x, y, z, average;double x, y, z, average; // Prompt for and get input from the user// Prompt for and get input from the user cout << "Enter three numbers: "; cout << "Enter three numbers: "; cin >> x >> y >> z; cin >> x >> y >> z; // Process:// Process: average = (x + y + z) / 3.0; average = (x + y + z) / 3.0; // Output:// Output: cout << "Average: " << average << endl; cout << "Average: " << average << endl; return 0;return 0;}}

Active Learning: Write the Active Learning: Write the complete dialogue with input complete dialogue with input 2.3 2.3 5.0 2.05.0 2.0

Page 33: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-33 2.42.4 const objectsconst objects

It is sometimes convenient to have objects that It is sometimes convenient to have objects that cannot have altered statecannot have altered state

const const class-name class-name identifieridentifier = = expressionexpression ; ; // use this form

-or- const const class-name class-name identifieridentifier ( ( expression expression )) ; ;

Examples:Examples: const double PI = 3.1415926;const double PI = 3.1415926; const string ERROR_MESSAGE = "Nooooooo";const string ERROR_MESSAGE = "Nooooooo";

Errors:Errors: PI = 9.8; PI = 9.8; cin >> ERROR_MESSAGE;cin >> ERROR_MESSAGE;

Page 34: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-34 2.5 Another Algorithm Pattern: 2.5 Another Algorithm Pattern: Prompt then InputPrompt then Input

The The Input/Process/OutputInput/Process/Output programming programming pattern can be used to help design many pattern can be used to help design many programs in the first several chaptersprograms in the first several chapters

The The Prompt then InputPrompt then Input pattern also occurs pattern also occurs frequentlyfrequently

The user is often asked to enter dataThe user is often asked to enter data The programmer must make sure the user is told The programmer must make sure the user is told

what to enterwhat to enter

Page 35: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-35 Prompt then Input PatternPrompt then Input Pattern

Pa tte rn Prompt then Input

Pro b le m The user must enter somethingO utline 1) Prompt the user for input

2) Obtain the input

C o d eExa m p le

cout << "Enter your first name: " ;cin >> firstName ;

Page 36: 2-1 Computing Fundamentals with C++ Object-Oriented Programming and Design, 2nd Edition Rick Mercer Franklin, Beedle & Associates, 1999 ISBN 1-887902-36-8

2-36 ExamplesExamples

Instances of the Instances of the Prompt then InputPrompt then Input pattern: pattern: cout << "Enter your first name: ";cout << "Enter your first name: "; cin >> firstName;cin >> firstName;

cout << "Enter accumulated credits: ";cout << "Enter accumulated credits: "; cin >> credits;cin >> credits;

Write code that gets the current temperature from the userWrite code that gets the current temperature from the user

? ________ ?? ________ ?

Optional Demo average3.cpp

to see prompt then input used three times