Course Code: SE1-205

Back to Courses

C++ Application Programming

Description


This course teaches the student the fundamentals of the standard ANSI C++ object oriented programming as well as application related topics such as threads, sockets and imbedded SQL programming techniques. It specifically deals with the C++ language constructs that implement objects using the class concept, data encapsulation, inheritance including polymorphism and methods. The following topics are covered:

Streams

An overview of the stream class hierarchy with specific reference to the following:

  • Console I/O (cin & cout) with output formatting using manipulators.
  • File I/O inclusive of serial, random and index sequential techniques.
Classes


This topic introduces the class concept and object instantiation. Concepts covered are:

  • Class definitions
  • Data encapsulation
  • Constructors (default, initialising, copy) and destructors
  • Methods (accessors and mutators) and method overloading
  • The this pointer
  • Operator overloading
  • Friend functions
Templates


This section describes C++ templates with specific emphasis on a subset of the Standard Template Library (STL) container classes and generic algorithms are described.

Inheritance

An overview of object orientation with special emphasis on inheritance, composition (aggregation) and polymorphism is given. An example is developed to address base and derived classes and redefined methods. Polymorphism includes object assignment, pointer assignment and virtual methods.

Concurrent Programming

A description of the POSIX® implementation of user threads, data coherence (semaphores) with shared resources and thread communication.

Network Programming

This topic describes the BSD® socket implementation.

Database Programming

An overview of imbedded SQL in C++ programs is given.

METHODOLOGY

More that two thirds of the course is dedicated to hand-on practical work. The latter revolves around the development of a set of banking applications that simulate a typical ATM operation as well as so-called internet banking facilities. The system represents a typical client-server application and the learner will only need to develop the server side. The client side has been developed and is supplied to the learner. The learner will have access to a set of user developed classes which implements a

  • date class;
  • keyboard class;
  • thread class and
  • a generic print class.
OUTCOMES


At the completion of the course the learner will be able to:

  • Design and develop server applications in C++ that communicate via sockets with a client application.
  • Design several C++ classes that implements specific functionality as required by the project.
  • Use C++ code to access a relational database using SQL statements.
  • Build scripts to compile and build the application.

    • ASSESSMENT


      Assessment processes are built into the course for learners as part of our commitment to life-long learning. Formative assessment is carried out during the training via Course Activities. Summative assessment commences after the training in the form of a written knowledge questionnaire and if applicable, the practical assignment that the learners are required to complete as part of their course content.

      Learners will receive a certificate of competence on successful completion of the course

      PLATFORM

      The computer platform used is Linux. The academy uses the SuSE distribution. The database management system used is MySQL.

      MATERIAL

      The following material is supplied:

      • A full set of notes covering the course outline.
      • A CD containing (i) an HTML version of a popular C++ book and
      • a solution to the project.

      PREREQUISITES


      C++ Programming Primer

      Request More Information

      Fields marked with an * are required