i/o and data formatting introduction to class concepts infsy 307 spring 2003 lecture 3

19
I/O and Data I/O and Data Formatting Formatting Introduction to Class Introduction to Class Concepts Concepts INFSY 307 INFSY 307 Spring 2003 Spring 2003 Lecture 3 Lecture 3

Upload: jacob-barrett

Post on 05-Jan-2016

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

I/O and Data FormattingI/O and Data FormattingIntroduction to Class Introduction to Class

ConceptsConceptsINFSY 307 INFSY 307

Spring 2003Spring 2003

Lecture 3Lecture 3

Page 2: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

I/O and Data FormattingI/O and Data Formatting

A stream is a flow of characters either “in” A stream is a flow of characters either “in” or “out” of your program.or “out” of your program.

C++ relies on libraries for input/output C++ relies on libraries for input/output related to the console, file, or other related to the console, file, or other devices.devices.

Page 3: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

Input StreamInput Stream

Input streamInput stream is the input being fed into the is the input being fed into the programprogram– uses uses cincin

>>>> is the extraction operator is the extraction operator

– Program waits for input and a <Program waits for input and a <returnreturn> (after > (after all input) to designate that the input is completeall input) to designate that the input is complete

– Spaces or <Spaces or <returnreturn> on input will separate the > on input will separate the datadata

cin >> identifier1 >> identifier2;cin >> identifier1 >> identifier2;

Page 4: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

Output StreamOutput Stream

Output streamOutput stream is the stream of output is the stream of output generated by the programgenerated by the program– uses uses coutcout

<<<< is the insertion operatoris the insertion operator

– Can include:Can include:arithmetic expressionsarithmetic expressions

““\n” or \n” or endlendl to indicate a new line to indicate a new line

quoted stringsquoted strings

cout << num1 << “number 1 \n”;cout << num1 << “number 1 \n”;

Page 5: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

SampleSample cout cout statementsstatements

cout << num1;cout << num1; cout << num1 << “ number of pencils \n”;cout << num1 << “ number of pencils \n”; cout << num1 * pr << “ price of pencils \n”;cout << num1 * pr << “ price of pencils \n”; cout << num1 << “ pencils “ << pr << “ price “cout << num1 << “ pencils “ << pr << “ price “ << num1 * pr << “ price of pencils \n”;<< num1 * pr << “ price of pencils \n”; cout << “\n”;cout << “\n”; cout << endl;cout << endl;

Page 6: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

FormattingFormatting

The same data can be displayed in many The same data can be displayed in many different ways:different ways:

320320

320.0320.0

320.00000320.00000

320320

3.2e+23.2e+2

+320.0+320.0

Page 7: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

FormattingFormatting

Format FlagsFormat Flags setf(ios::<flagname>)setf(ios::<flagname>)

common flagnames:common flagnames: fixedfixed leftleft showpointshowpoint rightright

(Note: ios is a class from the stream library)(Note: ios is a class from the stream library)

Page 8: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

Formatting FlagsFormatting Flags

fixed - ensures fixed format, i.e. no fixed - ensures fixed format, i.e. no scientific notationscientific notation

showpoint - ensures that decimal points showpoint - ensures that decimal points and trailing zeros are displayedand trailing zeros are displayed

left adjusts outputleft adjusts output

right adjusts outputright adjusts output

Page 9: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

Examples:Examples:

cout.setf(ios::fixed);cout.setf(ios::fixed);

cout.setf(ios::showpoint);cout.setf(ios::showpoint);

cout.setf(ios::fixed | ios::showpoint);cout.setf(ios::fixed | ios::showpoint);

Page 10: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

Formatting ManipulatorFormatting Manipulator

Manipulators are placed after the insertion Manipulators are placed after the insertion operator; the arrow notation operator; the arrow notation <<<< is called the is called the insertion operatorinsertion operator..

setprecision (2); - two decimal digits are outputsetprecision (2); - two decimal digits are output

setw (4); - describes width of next fieldsetw (4); - describes width of next field

cout.width (4); - describes width of next fieldcout.width (4); - describes width of next field

Note:Note: #include <iomanip> is required #include <iomanip> is required

Page 11: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

ExamplesExamples

cout << setprecision (2) << “Value is: ” << 10.5;cout << setprecision (2) << “Value is: ” << 10.5;

cout << setw(7) << value1 << setw(5) << value2 << endl;cout << setw(7) << value1 << setw(5) << value2 << endl;

cout << setw(4) << “abc”; cout << setw(4) << “abc”; // Note: only for next variable// Note: only for next variable

cout.precision(4);cout.precision(4);

cout.width(10); cout.width(10); // Note: only for next variable// Note: only for next variable

Page 12: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

Formatting RulesFormatting Rules

1 Flags and most manipulators remain set until reset or Flags and most manipulators remain set until reset or overridden with a new flag or manipulatoroverridden with a new flag or manipulator

2 When a field is too small, C++ will adjust it and print the When a field is too small, C++ will adjust it and print the true value of a numbertrue value of a number

3 When a string variable is output, the field width will be When a string variable is output, the field width will be filled with whatever is in memory unless a ‘\0’ is found.filled with whatever is in memory unless a ‘\0’ is found. ‘‘\0’ is referred to as the NULL character and is a special\0’ is referred to as the NULL character and is a special character similar to ‘\n’character similar to ‘\n’

4 Extra bytes are padded with spacesExtra bytes are padded with spaces

Page 13: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

ObjectsObjects

Objects are all around us.Objects are all around us.

Computer programs attempt to mimic the Computer programs attempt to mimic the objects in the world.objects in the world.

An object is an An object is an instanceinstance of a class. of a class.

Example: person classExample: person class

Page 14: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

ObjectsObjects

An object has structure:An object has structure:– Attributes (properties)Attributes (properties)– Behaviors or operations it can carry outBehaviors or operations it can carry out

Page 15: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

ClassClass

A Class is a template for making objects A Class is a template for making objects (cookie cutter)(cookie cutter)– it becomes a data type definition like it becomes a data type definition like intint or or

charchar – a type whose variables are a type whose variables are objectsobjects

member functions (behaviors)member functions (behaviors)

holds data values (attributes)holds data values (attributes)

Page 16: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

Class DefinitionClass Definition

class Student{

};

public:void display( );

private:string lastName;int age;

Keyword"class"

Class name

Bracesdelimitclass

Semicolonterminatesspecifier

Member functionprototype

Member variables

Page 17: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

Abstract Data TypesAbstract Data TypesGuidelinesGuidelines

Make all member variables private Make all member variables private members of the class.members of the class.

Page 18: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

Abstract Data TypesAbstract Data TypesGuidelinesGuidelines

Make each of the basic operations that Make each of the basic operations that the programmer needs a public member the programmer needs a public member function of the class, and fully specify function of the class, and fully specify how to use each public member function.how to use each public member function.– Interface:Interface:

Class definitionClass definition

Function prototypesFunction prototypes

CommentsComments

Page 19: I/O and Data Formatting Introduction to Class Concepts INFSY 307 Spring 2003 Lecture 3

Abstract Data TypesAbstract Data TypesGuidelinesGuidelines

Implementation consists of function Implementation consists of function definitionsdefinitions