1 / 21

DCO10105 Object-Oriented Programming and Design

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

Pat_Xavi
Télécharger la présentation

DCO10105 Object-Oriented Programming and Design

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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)

  8. 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; }

  9. 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

  10. 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

  11. The general process cycle of a C++ program Malik’s slide: 2:42

  12. 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

  13. Quick revision and sample statements • Malik 2, Exercises: 7-9, 10.a-f

  14. 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

  15. 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;

  16. 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;

  17. 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”;

  18. Sample coding on exercises • Malik: 2 Exercise 18a, , Programming Exercises: 8,11

  19. 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

  20. 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

  21. Reference • Malik: 1.9, 2, 13.3 • An introduction to C++ for newbies: http://www.cprogramming.com/begin.html -- END --

More Related