Presentation is loading. Please wait.

Presentation is loading. Please wait.

Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 DCO10105 Object-Oriented Programming and Design  Lecture 1: Introduction What this course is about:

Similar presentations


Presentation on theme: "Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 DCO10105 Object-Oriented Programming and Design  Lecture 1: Introduction What this course is about:"— Presentation transcript:

1

2 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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

3 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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 http://www.cprogramming.com/begin.html

4 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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

5 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 O-O programming concepts Usually three basic parts:  Class construction  data encapsulation  Inheritance  software reuse, encapsulation  Polymorphism  shorter/less programming

6 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 Class Construction  To create a template for object instantiation  Inside the class, it defines the data and operations (method or function)  Outside the class, it does not need to know the details of the data and operations  Data Encapsulation

7 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 Inheritance  Parent-child relationship – base class and sub-class  Sub-class inherits everything from the parent class  Software reuse, encapsulation

8 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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

9 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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

10 Rossella Lau Lecture 1, DCO10105, Semester B,2005-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

11 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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)

12 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 #include 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; } A simple C++ program: cirArea.cpp Header file specification Location of header files C++ entrance, function header Beginning of function body Function body, C++ statements End of function body Data Declaration I/O objects Output operators Input operator Keyword to define constant Assignment with expression string Statement terminator system-defined id

13 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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  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

14 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 Preprocessor directives  #include  It is not a C++ statement  It is processed through the “preprocessor” before the compiler has taken place Reference: Malik’s slides: 2:42-44

15 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 The general process cycle of a C++ program Malik’s slide: 2:45

16 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 Usual style of a function For each function:  Function prototype (header) typeOfFunction functionID(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:6-36, 39, 41

17 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 Quick revision and sample statements  Malik’s Exercises: 2:7 Do a walk-through to find the value assigned to e. Assume that all variables are properly declared. a = 3; b = 4; c = (a % b) * 6; d = c / b; e = (a + b + c + d) / 4;

18 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 Quick revision and sample statements  Malik’s Exercises: 2:8 Which of the following variable declarations are correct? If a variable declaration is not correct, give the reason(s) and o provide the correct variable declarations. n = 12; // Line 1 char letter = ; // Line 2 int one = 5, two; // Line 3 double x, y, z;d = c / b; // Line 4

19 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 Quick revision and sample statements  Malik’s Exercises: 2:9 Which of the following are valid C++ assignment statements? Assume that i, x, and percent are double variables. a. n = 12; b. x + 2 = x; c. x = 2.5 * x; d. percent = 10%;

20 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 Quick revision and sample statements  Malik’s Exercises: 2:10a-f Write C++ statements that accomplish the following. a. Declares int variables x and y. b. Initializes and int variable x to 10 and a char variable ch to ‘ B ’. c. Updates the value of an int variable x by adding 5 to it. d. Sets the value of a double variable z to 25.3. e. Copies the content of an int variable y into an int variable z. f. Swaps the contents of the int variables x and y.

21 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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

22 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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;

23 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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 operator  Variable or literal value can be easily printed  Multiple insertion operators on a line; e.g.,  cout << “The length is “ << length << endl;

24 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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”;

25 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 Sample error removal on exercise  Malik’s Exercise 2:18a #include const int prime =11,213; const rate = 15.6 int main() { int i, x, y, w; x = 7; y = 3; x = x + w; prime = x + prime; cout << prime << endl; wages = rate * 36.75; cout << “Wages = “ << wages << endl; return 0; }

26 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 Sample coding on exercises  Malik’s Programming Exercises: 2: 8  Write a program that prompts the user to input five decimal numbers. The program should then add the five decimal numbers, convert the sum to the nearest integer, and print the result.  Malik’s Programming Exercises: 2: 11  Write a C++ program that prompts the user to input the elapsed time fr an event in seconds. The program then outputs the elapsed time in hours, minutes, and seconds. (For example, if the elapsed time is 9630 seconds, then the output is 2:40:30.)

27 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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

28 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 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

29 Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 Reference  Malik: 1.9, 2, 13.3  An introduction to C++ for newbies: http://www.cprogramming.com/begin.html -- END --


Download ppt "Rossella Lau Lecture 1, DCO10105, Semester B,2005-6 DCO10105 Object-Oriented Programming and Design  Lecture 1: Introduction What this course is about:"

Similar presentations


Ads by Google