EET 382  C++ Object Oriented Programming for Industrial Applications

Fall 1999

EET 382-01 and EET 382-02C



Course Instructor: Professor Paul I-Hai Lin


Lecture:           Tuesday and Thursday 4:30–5:45 p.m.   (LB B35)

Lab:                 Thursday 7:30-9:20 p.m.   (ET 244)

Office Hours:    Monday              2:00-4:30 p.m.

                        Tuesday             2:00-4:30 p.m.

                        Wednesday        2:00-4:30 p.m.

            Thursday           2:00-4:30 p.m.


Office: ET 221B                                    Phone: 219-481-6339                Email:


Course Web Page:


Course Description:

Class 3, lab 2, Cr 4   P: 264

This course provides a comprehensive introduction to C++ for students to apply object-oriented programming in industrial applications. A background in C or another high level language is a must, because all applications in this course involve C and C++. This course introduces the methodology of object identification and behavior, the syntax of C++, and industrial applications.


Text Books:

1.       C++ Windows Programming Using Windows API and MFC: A Work Book, Paul I-Hai Lin, 1999 (to be posted on the Web

2.       Object-Oriented Analysis and Design with Applications, newest edition, Grady Booch, The Benjamin/Cummings Publishing Company, Inc

3.       Programming Windows with MFC, 2nd edition, Jeff Prosise, Microsoft Press, 1999


Grading Policy:

** No late projects or home works will be accepted. Makeup exams will be given only if prior arrangements have been made**

Projects/Homework (including programs) 45%;     Two Exams 30%;   Final Project 25%


Important Days:

**Last day to withdraw Oct. 29**

Exam 1: Sept. 30 (Thursday)                  Exam 2: Nov. 4 (Thursday)

Final Project Proposal Due On Nov. 9

Final Project Report and Presentation Due on December 13, 1999


Tentative Course Outline


Part I.  Software Engineering with Object-Oriented C++

1-1 The Challenge of Software Development

1-2 Software Engineering Overview

1-2-1 Software Engineering Definition

1-2-2 Software Life Cycle

1-2-3Software Development Cost

1-2-4 Software Productivity Enhancement Practice

1-2-5 Software Design

1-3 Basic Concepts of Object Oriented Programming

1-3-1 Object-Oriented Programming Definition

1-3-2 Key Components of OOP

1-3-3 Properties Supported by Object Oriented Languages

1-3-4 Classes

1-3-5 Objects

1-3-6 Classes in C++

1-4 Object-Oriented Software Development

1-5 Issues on Software Reuse

      Reuse Documentation, Designs, Scenarios, Source Code, Binary Code

1-6 New Methodologies and Tools

     1-6-1 An Overview of Object-Oriented Methodology

     1-6-2 Tool Requirements and Support for C++ Development

     1-6-3 Concerns about the Object-Oriented Technology

1-7 Microsoft’s Object-Orientation


Applications and Programming Languages Issues


Development Environments for Windows-Based Applications and System Programming


Rational for the C++ Programming Environment


PART II. C++ Programming Language


Microsoft Visual C++ 6.0 IDE Environment


C++ Features

o        Keywords for Data Type Declarations (C/C++)

o        Keywords for Storage Class Specification (C/C++)

o        Keywords for Flow Control and Decision Making (C/C++)

o        Keywords for Language Interface (C/C++)

o        New Keywords in C++


C++ Classes


C++ Derived Classes


Other C++ Features


C++ Components, Data Structures and Algorithms

·         Elementary Data Structures Using C++: Arrays, Strings, Lists, Stacks, Queues

·         Basic statistics: series, moments of distribution, mean, median, variance, standard deviation, etc


Part III. Object Oriented Analysis and Design


The Object Model


·         Objects, States, Behavior, Identity          

·         Concrete Objects: a window of screen, a file in computer file system, car, airplane, controller, vending machine, ATM machine

·         Conceptual Objects: processes, scheduling policy

·         Relationship among objects: actor, server, agent, client

·         Classes

o        Classes represent fundamental concepts of reality being modeled

o        A class is a specific kind of object (general case). An object is an instance of a certain class

o        An object class: describes a group of objects with similar attributes, operations, relationships to other objects

·         Object Diagrams: a formal graphics notation for modeling objects, classes, and their relationships

·         Object models and relationships

·         Rapid software development


Examples of Object-Oriented Software Development



Part IV.  Microsoft Windows 32 Programming Model and Examples



Part V. Programming Windows with C++ and Microsoft Foundation Classes

            Wrap C++ Microsoft Windows API

            Use standard structure

            General-purpose classes (non-Windows specific)

                        Collection classes: arrays, lists, and maps

                        String class

                        Time class

                        Time span class

                        Date class

                        Full file access classes

                        Disk I/O classes

                        Print preview and printer support

                        Support for toolbars and status bars

                        Dialog box support

                        Dynamic Link Library (DLL) support

                        Open Database Connectivity (ODBC)

                        Common Controls

                        Winsock classes for TCP/IP data communications

                        Thread synchronization classes

                        WinInet Classes

                        ActiveX document server classes

                        HTML on-line help

                        The Active Template Library (ATL) for ActiveX control construction for

the Internet

                        Support for Component Object Model

                        Active Data Objects (ADO) support

            A common root object class hierarchy

            Multiple Document Interface (MDI) application support




Part VI. Projects