Dco10105 object oriented programming and design
Download
1 / 21

DCO10105 Object-Oriented Programming and Design - PowerPoint PPT Presentation


  • 337 Views
  • Updated On :

DCO10105 Object-Oriented Programming and Design Lecture 1: Introduction What this course is about: C++ programming Object-Oriented programming concepts Good Programming practice Program design -- By Rossella Lau About C++ Created by Bjarne Stroustrup at Bell Lab about 1985

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'DCO10105 Object-Oriented Programming and Design' - Pat_Xavi


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Dco10105 object oriented programming and design l.jpg
DCO10105 Object-Oriented Programming and Design

  • Lecture 1: Introduction

    What this course is about:

    • C++ programming

    • Object-Oriented programming concepts

    • Good Programming practice

    • Program design

      -- By Rossella Lau


About c l.jpg
About C++

  • Created by Bjarne Stroustrup at Bell Lab about 1985

  • Maintains C (early 1980) with simpler usages

  • O-O language

  • Powerful, flexible

  • With a Standard Library and a Standard Template Library

  • Reference: An introduction to C++ for newbies: http://www.cprogramming.com/begin.html


Ansi iso standard c l.jpg
ANSI/ISO Standard C++

  • C++ programs are not always portable

  • September 1998, IS14882 has been approved as an ANS

    • most of today’s compilers comply with this standard

      GNU C++ compilers

      Visual C++

      DevC++  The tool we will use in this course


O o programming concepts l.jpg
O-O programming concepts

Usually three basic parts:

  • Class construction  data encapsulation

  • Inheritance

    • parent-child relationship – base class and sub-class

    • sub-class inherits everything from the parent class

       software reuse, encapsulation

  • Polymorphism

    • A sub-class can pretend its base classes

    • A class allows for applying different data types through template

    • An expression denotes different operations through dynamic binding

       Shorter/Less programming


Good programming practice l.jpg
Good programming practice

  • Documentation

    • Comments

    • Naming identifiers

    • White space: indentation, blank lines, spaces

  • Coding convention

    • Usually there are rules, in addition to a programming language’s syntax, to be followed in order to make people in the same organization understand each other better

      • Coding style

      • Statement usages

        Reference: Guide lines for programming styles in this course


Good practice i naming convention l.jpg
Good practice I: Naming Convention

  • Naming in a programming language is always

    • Program id, method id, variables, constants

  • To name an identifier, one should observe the rules in C++; or the id cannot get past the compiler, otherwise

  • To follow a convention means even if an id’s name can pass the compiler, it should conform to some additional rules

  • In this course, the Java naming convention should be followed


Program design l.jpg
Program Design

  • Class design with UML (Unified Modeling Language) Diagram

  • Object-Oriented Design (OOD)

    • Encapsulation: combine data and operations in a unit

    • Inheritance: create new objects from existing objects

    • Polymorphism: same expression denotes different operations

  • Program design using structured programming approach

    • Top-down approach with step-wise refinement

  • Design methods with C++ features: const, &(reference)


A simple c program cirarea cpp l.jpg

Header file specification

End of function body

C++ entrance, function prototype

Data Declaration

Location of header files

Beginning of function body

Keyword to define constant

Input operators

string

I/O objects

Assignment with expression

Output operators

system-defined id

Function body, C++ statements

Statement terminator

A simple C++ program: cirArea.cpp

#include <iostream>

using namespace std;

int main() {

float area;

int r;

float const PI = 3.14;

cerr << "Please enter radius in whole number:\n";

cin >> r;

area = PI * r * r;

cout << "The radius you provided was " << r

<< " feet and the area is about " << area

<< " sq feet" << endl;

return EXIT_SUCCESS;

}


C program style l.jpg
C++ program style

For non-class programs:

  • Header file specification

    • Coming with the standard library (SL) or the standard template library (STL)

    • Whenever a function from the SL or the STL is used, its respective header files should be specified through this “Preprocessor directives”#include <headerName>

  • Location of header files

    • E.g., using namespace std;

    • std is ANSI/ISO standard where objects of iostream are located

  • A collection of functions (or methods)

  • main() is a necessary entrance point in a C++ program


Preprocessor directives l.jpg
Preprocessor directives

  • Whenever a function from the SL or the STL is used, its respective header files should be specified through “Preprocessor directives”#include <headerName>

  • It is not a C++ statement

  • It is processed through the “preprocessor” before the compiler has taken place



Usual style of a function l.jpg
Usual style of a function

For each function:

  • Function prototype (header)typeOfFunctionfunctionID (parameterList)

  • Function body: { C++ statements }

    • Data declaration statements

    • Executable statements

    • Syntax of basic statements are the same as in Java; Reference: Malik’s slide 2:5-30, 36-38, 43-47


Quick revision and sample statements l.jpg
Quick revision and sample statements

  • Malik 2, Exercises: 7-9, 10.a-f


Basic c data types l.jpg
Basic C++ data types

  • Integral

    • char, short, int, long, bool

    • unsigned char, unsigned short, unsigned int, unsigned long

  • Floating Point

    • float, double, long couble

  • Enumeration

    • user-defined data types

  • Note that string is not a basic data type in C++ but a class in the C++ STL


Basic c input statements l.jpg
Basic C++ Input statements

  • E.g., cin >> r;

    • cin is a predefined (in iostream) object which refers to input from keyboard

    • >> the input operator or extraction operator

    • r is the variable to store the values input from cin

      • If r is a basic C++ data type variable, data conversion is not necessary as in Java

  • Multiple extraction operators on a line

    • E.g., cin >> length >> width;


Basic c output statement l.jpg
Basic C++ Output statement

  • E.g., cout << r;

    • cout is a predefined object which refers to output to screen

    • There is another predefined output object cerr which also direct output to screen; it is a good practice to direct user prompt and error messages to cerr and normal output to cout

    • << is the output operator or insertion opertor

    • Variable or literal value can be easily printed

  • Multiple insertion operators on a line

    • E.g., cout << “The length is “ << length << endl;


Output with new line l.jpg
Output with new line

  • endl is a predeined id and its value is ‘\n’

  • Usually,

    • endl is used when the last insertion operand is an identifier;

    • ‘\n’ is placed at the end of a literal string if the string is the last insertion operand, e.g.,cout << length << “is input from the user\n”;


Sample coding on exercises l.jpg
Sample coding on exercises

  • Malik: 2 Exercise 18a, , Programming Exercises: 8,11


Some major differences from java l.jpg
Some major differences from Java

  • An independent executable module

  • Not necessary to be a class inside a program

  • Using template much more than inheritance and dynamic binding

  • An object can be referenced in three forms: a real object, a pointer, and a reference.

  • Does not have a “standard web site” for on-line documentation

    • Some on-line sites can be found through the Helpful links under the course page


Summary l.jpg
Summary

  • This course focus on C++ programming with advanced concepts in O-O design

  • C++ basic syntax is the same as Java except for program style and, of course, usage of functions in its own libraries

  • Before a C++ compiler is taken place, pre-process must be performed first

  • C++ input statement is easier than Java as it does not need numeric data conversion


Reference l.jpg
Reference

  • Malik: 1.9, 2, 13.3

  • An introduction to C++ for newbies: http://www.cprogramming.com/begin.html

    -- END --


ad