Lecture1 classes1

39
+ Lecture 1 – Introduction to C++ Classes (Part 1) TTTK1924 – Program Design and Problem Solving

description

 

Transcript of Lecture1 classes1

Page 1: Lecture1 classes1

+

Lecture 1 – Introduction to C++ Classes (Part 1)TTTK1924 – Program Design and Problem Solving

Page 2: Lecture1 classes1

+Subtopics

Functions Revisited Void Functions Void Function with Reference Parameters Value-returning Functions

Structured Data Types Arrays Revisited

Array and Function Structs Revisited

Page 3: Lecture1 classes1

+Subtopics (cont’d)

Classes Class Definition Using Classes Class Definition Variations Accessor, Mutator and Constant Functions Reference Parameters Constructors Destructors Array of Class Objects

Page 4: Lecture1 classes1

+Part 1 Functions Revisited

Page 5: Lecture1 classes1

+Void Functions – Example 1

:void printStars(int blanks, int starsInLine) { int count; for (count=1; count <= blanks; count++) cout << ' '; for (count=1; count <=starsInLine; count++) cout << "* "; cout << endl;}

#include <iostream>using namespace std;

void printStars(int blanks, int starsInline);

int main (int argc, const char * argv[]){ int noOfLines; int counter; int noOfBlanks; cout << "Enter the number of star lines to be printed: "; cin >> noOfLines; cout << endl; noOfBlanks = noOfLines; for (counter=1; counter <=noOfLines; counter++) { printStars(noOfBlanks, counter); noOfBlanks--; } return 0;}:

function prototype

function call

function definition

Page 6: Lecture1 classes1

+Void Functions

:void printStars(int blanks, int starsInLine) { int count; for (count=1; count <= blanks; count++) cout << ' '; for (count=1; count <=starsInLine; count++) cout << "* "; cout << endl;}

#include <iostream>using namespace std;

void printStars(int blanks, int starsInline);

int main (int argc, const char * argv[]){ int noOfLines; int counter; int noOfBlanks; cout << "Enter the number of star lines to be printed: "; cin >> noOfLines; cout << endl; noOfBlanks = noOfLines; for (counter=1; counter <=noOfLines; counter++) { printStars(noOfBlanks, counter); noOfBlanks--; } return 0;}:

formal parameters (value)

actual parameters

Page 7: Lecture1 classes1

+Void Functions– Example 1#include <iostream>using namespace std;

void printStars(int blanks, int starsInline);

int main (int argc, const char * argv[]){ int noOfLines; int counter; int noOfBlanks; cout << "Enter the number of star lines to be printed: "; cin >> noOfLines; cout << endl; noOfBlanks = noOfLines; for (counter=1; counter <=noOfLines; counter++) { printStars(noOfBlanks, counter); noOfBlanks--; } return 0;}:

noOfLines noOfBlanks

counter

Page 8: Lecture1 classes1

+Void Functions– Example 1#include <iostream>using namespace std;

void printStars(int blanks, int starsInline);

int main (int argc, const char * argv[]){ int noOfLines; int counter; int noOfBlanks; cout << "Enter the number of star lines to be printed: "; cin >> noOfLines; cout << endl; noOfBlanks = noOfLines; for (counter=1; counter <=noOfLines; counter++) { printStars(noOfBlanks, counter); noOfBlanks--; } return 0;}:

10

noOfLines noOfBlanks

counter

Page 9: Lecture1 classes1

+Void Functions – Example 1#include <iostream>using namespace std;

void printStars(int blanks, int starsInline);

int main (int argc, const char * argv[]){ int noOfLines; int counter; int noOfBlanks; cout << "Enter the number of star lines to be printed: "; cin >> noOfLines; cout << endl; noOfBlanks = noOfLines; for (counter=1; counter <=noOfLines; counter++) { printStars(noOfBlanks, counter); noOfBlanks--; } return 0;}:

10

noOfLines noOfBlanks

10

counter

Page 10: Lecture1 classes1

+Void Functions – Example 1#include <iostream>using namespace std;

void printStars(int blanks, int starsInline);

int main (int argc, const char * argv[]){ int noOfLines; int counter; int noOfBlanks; cout << "Enter the number of star lines to be printed: "; cin >> noOfLines; cout << endl; noOfBlanks = noOfLines; for (counter=1; counter <=noOfLines; counter++) { printStars(noOfBlanks, counter); noOfBlanks--; } return 0;}:

10

noOfLines noOfBlanks

10

1

counter

Page 11: Lecture1 classes1

+Void Functions – Example 1

:void printStars(int blanks, int starsInLine) { int count; for (count=1; count <= blanks; count++) cout << ' '; for (count=1; count <=starsInLine; count++) cout << "* "; cout << endl;}

10

blanks starsInLine

1

count

Page 12: Lecture1 classes1

+Void Functions – Example 1

:void printStars(int blanks, int starsInLine) { int count; for (count=1; count <= blanks; count++) cout << ' '; for (count=1; count <=starsInLine; count++) cout << "* "; cout << endl;}

10

blanks starsInLine

1

11

count

Output:

Page 13: Lecture1 classes1

+Void Functions – Example 1

:void printStars(int blanks, int starsInLine) { int count; for (count=1; count <= blanks; count++) cout << ' '; for (count=1; count <=starsInLine; count++) cout << "* "; cout << endl;}

10

blanks starsInLine

1

2

count

Output: *

Page 14: Lecture1 classes1

+Void Functions – Example 1#include <iostream>using namespace std;

void printStars(int blanks, int starsInline);

int main (int argc, const char * argv[]){ int noOfLines; int counter; int noOfBlanks; cout << "Enter the number of star lines to be printed: "; cin >> noOfLines; cout << endl; noOfBlanks = noOfLines; for (counter=1; counter <=noOfLines; counter++) { printStars(noOfBlanks, counter); noOfBlanks--; } return 0;}:

10

noOfLines noOfBlanks

9

1

counter

Page 15: Lecture1 classes1

+Void Functions – Example 1#include <iostream>using namespace std;

void printStars(int blanks, int starsInline);

int main (int argc, const char * argv[]){ int noOfLines; int counter; int noOfBlanks; cout << "Enter the number of star lines to be printed: "; cin >> noOfLines; cout << endl; noOfBlanks = noOfLines; for (counter=1; counter <=noOfLines; counter++) { printStars(noOfBlanks, counter); noOfBlanks--; } return 0;}:

10

noOfLines noOfBlanks

9

2

counter

Page 16: Lecture1 classes1

+Void Functions – Example 1

:void printStars(int blanks, int starsInLine) { int count; for (count=1; count <= blanks; count++) cout << ' '; for (count=1; count <=starsInLine; count++) cout << "* "; cout << endl;}

9

blanks starsInLine

2

count

Page 17: Lecture1 classes1

+Void Functions – Example 1

:void printStars(int blanks, int starsInLine) { int count; for (count=1; count <= blanks; count++) cout << ' '; for (count=1; count <=starsInLine; count++) cout << "* "; cout << endl;}

9

blanks starsInLine

2

10

count

Output: *

Page 18: Lecture1 classes1

+Void Functions – Example 1

:void printStars(int blanks, int starsInLine) { int count; for (count=1; count <= blanks; count++) cout << ' '; for (count=1; count <=starsInLine; count++) cout << "* "; cout << endl;}

10

blanks starsInLine

1

3

count

Output: * * *

Page 19: Lecture1 classes1

+

… and so on until….

Void Functions – Example 1

Page 20: Lecture1 classes1

+Void Functions – Example 1

:void printStars(int blanks, int starsInLine) { int count; for (count=1; count <= blanks; count++) cout << ' '; for (count=1; count <=starsInLine; count++) cout << "* "; cout << endl;}

0

blanks starsInLine

10

11

count

printStars(0, 10);

Page 21: Lecture1 classes1

+Void Functions – Example 1

Final Output:

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Page 22: Lecture1 classes1

+Void Functions – Reference Parameters(Example 2)

:void printGrade(int cScore) { cout << "Your grade for the course is "; if (cScore >= 85) cout << "A." << endl; else if (cScore >= 65) cout << "B." << endl; else if (cScore >= 55) cout << "C." << endl; else if (cScore >= 45) cout << "D." << endl; else cout << "F." << endl;}

#include <iostream>using namespace std;

void getScore(int& score);void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; getScore(courseScore); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

void getScore(int& score) { cout << "Enter score: "; cin >> score;}:

reference parameter

value parameter

Page 23: Lecture1 classes1

+Void Functions – Reference Parameters(Example 2)

#include <iostream>using namespace std;

void getScore(int& score);void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; getScore(courseScore); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

void getScore(int& score) { cout << "Enter score: "; cin >> score;}:

courseScore

This program determines the grade for a given score

Page 24: Lecture1 classes1

+Void Functions – Reference Parameters(Example 2)

#include <iostream>using namespace std;

void getScore(int& score);void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; getScore(courseScore); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

void getScore(int& score) { cout << "Enter score: "; cin >> score;}:

score

This program determines the grade for a given score

courseScore

Page 25: Lecture1 classes1

+Void Functions – Reference Parameters(Example 2)

#include <iostream>using namespace std;

void getScore(int& score);void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; getScore(courseScore); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

void getScore(int& score) { cout << "Enter score: "; cin >> score;}:

score

This program determines the grade for a given scoreEnter score:

courseScore

Page 26: Lecture1 classes1

+Void Functions – Reference Parameters(Example 2)

#include <iostream>using namespace std;

void getScore(int& score);void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; getScore(courseScore); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

void getScore(int& score) { cout << "Enter score: "; cin >> score;}:

score

This program determines the grade for a given scoreEnter score: 70

70

courseScore

Page 27: Lecture1 classes1

+Void Functions – Reference Parameters(Example 2)

#include <iostream>using namespace std;

void getScore(int& score);void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; getScore(courseScore); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

void getScore(int& score) { cout << "Enter score: "; cin >> score;}:

This program determines the grade for a given scoreEnter score: 70Score is 70

70

courseScore

Page 28: Lecture1 classes1

+Void Functions – Reference Parameters(Example 2)

#include <iostream>using namespace std;

void getScore(int& score);void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; getScore(courseScore); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

void getScore(int& score) { cout << "Enter score: "; cin >> score;}:

This program determines the grade for a given scoreEnter score: 70Score is 70

70

courseScore

Page 29: Lecture1 classes1

+Void Functions – Reference Parameters(Example 2)

This program determines the grade for a given scoreEnter score: 70Score is 70

70

cScore

:void printGrade(int cScore) { cout << "Your grade for the course is "; if (cScore >= 85) cout << "A." << endl; else if (cScore >= 65) cout << "B." << endl; else if (cScore >= 55) cout << "C." << endl; else if (cScore >= 45) cout << "D." << endl; else cout << "F." << endl;}

Page 30: Lecture1 classes1

+Void Functions – Reference Parameters(Example 2)

This program determines the grade for a given scoreEnter score: 70Score is 70Your grade for the course is

70

cScore

:void printGrade(int cScore) { cout << "Your grade for the course is "; if (cScore >= 85) cout << "A." << endl; else if (cScore >= 65) cout << "B." << endl; else if (cScore >= 55) cout << "C." << endl; else if (cScore >= 45) cout << "D." << endl; else cout << "F." << endl;}

Page 31: Lecture1 classes1

+Void Functions – Reference Parameters(Example 2)

This program determines the grade for a given scoreEnter score: 70Score is 70Your grade for the course is B.

70

cScore

:void printGrade(int cScore) { cout << "Your grade for the course is "; if (cScore >= 85) cout << "A." << endl; else if (cScore >= 65) cout << "B." << endl; else if (cScore >= 55) cout << "C." << endl; else if (cScore >= 45) cout << "D." << endl; else cout << "F." << endl;}

Page 32: Lecture1 classes1

+Value-Returning Functions – Example 3

#include <iostream>using namespace std;

int getScore();void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; courseScore = getScore(); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

int getScore() { int score; cout << "Enter score: "; cin >> score; return score;}:

:void printGrade(int cScore) { cout << "Your grade for the course is "; if (cScore >= 85) cout << "A." << endl; else if (cScore >= 65) cout << "B." << endl; else if (cScore >= 55) cout << "C." << endl; else if (cScore >= 45) cout << "D." << endl; else cout << "F." << endl;}

function returns an int

statement to return value

captures the value returned

Page 33: Lecture1 classes1

+Value-Returning Functions – Example 3

#include <iostream>using namespace std;

int getScore();void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; courseScore = getScore(); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

int getScore() { int score; cout << "Enter score: "; cin >> score; return score;}:

courseScore

This program determines the grade for a given score

Page 34: Lecture1 classes1

+Value-Returning Functions – Example 3

#include <iostream>using namespace std;

int getScore();void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; courseScore = getScore(); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

int getScore() { int score; cout << "Enter score: "; cin >> score; return score;}:

courseScore

This program determines the grade for a given score

score

Page 35: Lecture1 classes1

+Value-Returning Functions – Example 3

#include <iostream>using namespace std;

int getScore();void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; courseScore = getScore(); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

int getScore() { int score; cout << "Enter score: "; cin >> score; return score;}:

courseScore

67

score

This program determines the grade for a given scoreEnter score: 67

Page 36: Lecture1 classes1

+Value-Returning Functions – Example 3

#include <iostream>using namespace std;

int getScore();void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; courseScore = getScore(); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

int getScore() { int score; cout << "Enter score: "; cin >> score; return score;}:

67

courseScore

67

score

This program determines the grade for a given scoreEnter score: 67

Page 37: Lecture1 classes1

+Value-Returning Functions – Example 3

#include <iostream>using namespace std;

int getScore();void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; courseScore = getScore(); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

int getScore() { int score; cout << "Enter score: "; cin >> score; return score;}:

67

courseScore

This program determines the grade for a given scoreEnter score: 67Score is 67

Page 38: Lecture1 classes1

+Value-Returning Functions – Example 3

#include <iostream>using namespace std;

int getScore();void printGrade(int cScore);

int main (int argc, const char * argv[]){ int courseScore; cout << "This program determines the grade for a given score." << endl; courseScore = getScore(); cout << "Score is " << courseScore << endl; printGrade(courseScore); return 0;}

int getScore() { int score; cout << "Enter score: "; cin >> score; return score;}:

67

courseScore

This program determines the grade for a given scoreEnter score: 67Score is 67Your grade for the course is B.

Page 39: Lecture1 classes1

+References:

D.S. Malik (2012). C++ Programming: Program Design Including Data Structures (5th ed), Thomson Course Technology. Chapter 6 – User-Defined Functions I Chapter 7 – User-Defined Functions II