Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010327987 | QA76.76.A65 F69 2013 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Software Application Development: A Visual C++, MFC, and STL Tutorial provides a detailed account of the software development process using Visual C++, MFC, and STL. It covers everything from the design to the implementation of all software modules, resulting in a demonstration application prototype which may be used to efficiently represent mathematical equations, perform interactive and intuitive model-building, and conduct control engineering experiments.
All computer code is included, allowing developers to extend and reuse the software modules for their own project work. The book's tutorial-like approach empowers students and practitioners with the knowledge and skills required to perform disciplined, quality, real-world software engineering.
Table of Contents
Part I User Interaction |
Object-Oriented Analysis and Design |
Background Research |
Software Requirements |
General Use Case Narratives |
Use Case Scenarios and Conversations |
Noun and Verb Analysis |
Object Analysis |
Preliminary Class Diagram |
Basic Program Implementing the Class Structure |
Initial Graphical User Interface |
Application Wizard |
Menus |
Application Icon |
Toolbars |
Block Library Dialog Window |
Add Functionality to the Common Blocks Toolbar Buttons |
Constructing Blocks |
Merging the WIN32 Console Application with the Visual C++ Application |
Modifying Program Structure for Block Construction |
Drawing of Primitive Block Shapes |
Completing Block Construction |
Drawing Block Graphical Detail |
Constructing Block Ports |
Block-Based Port Position |
Changing the CPort Class |
Augmenting the CBlock Class |
Augmenting the CBlockShape Class |
Derived-Block Constructors |
Drawing Ports |
Constructing Connections |
Adding Connections to the DiagramEng Project |
Context Menu |
Moving Blocks and Connections |
Moving Blocks |
Moving Connection End Points |
Inserting and Moving Connection-Based Bend Points |
Deletion of Connections and Bend Points |
Automatic Block Placement |
Hypothetical Interactive Block Positioning |
Actual Improved Automatic Block Positioning |
Connection-Based Bend Points |
Attaching a Connection Tail Point to a Bend Point |
Deletion of a Bend Point to Which a Connection is Attached |
Deletion of a Connection with a Bend Point to Which a Connection is Attached |
Problem Concerning the Insertion of Bend Points |
Automatic Attachment of Connection End Points upon Initial Construction |
Deletion of Blocks with Attached Connections |
Block Dialog Windows |
Processing a Left-Button-Double-Click Event |
Adding Dialog Windows to Accept User Input |
Conversion of String Input to Double Data |
Conversion of CString Input Strings to Double Member Data |
Augmenting the CBlock-Derived Classes |
Moving Multiple Items |
Edit the TrackItem() Function to Call TrackMultipleItems() |
Add a TrackMultipleItems() Function to CDiagramEngDoc |
Add a Function for a Key-Down Event to CDiagramEngView |
Add Key-Flag-Based Members to CDiagramEngDoc |
Flow of Control in the TrackMultipleItems() Function |
Add a Toolbar Button to Activate Multiple Item Tracking |
Addition of a Tree View Control |
Add a Tree View Control Dialog Window |
Docking of the Tree Dialog Window as a Tree Dialog Bar |
Resetting the Appropriate Dialog |
Controlling the Toolbar Visibility |
Review of Menu and Toolbar-Based Functionality: Part I |
Menus |
Toolbars |
Functionality to be Added |
Context Menu Extension |
Numerical Solver Dialog Window |
Deleting Multiple Grouped Items |
Setting of Item Properties |
Setting Port Properties |
Setting Divide Block Ports |
Setting Sum Block Ports |
Drawing Ports Depending on Connection Status |
Drawing Port Signs |
Preparation for Adjustment of Port Properties |
Dialog-Based Port Property Setting |
Deleting Ports |
Key-Based Item Movement |
Add a Fine Move Item Entry to the Context Menu |
Add Members to the CDiagramEngDoc Class |
Edit the CDiagramEngView::OnKeyDown() Function |
Add a FineMoveItem() Function |
Add a FineMoveBlock() Function |
Add a FineMoveConnectionBendPoint() Function |
Fine Movement Process Control Flow |
Reversing Block Direction |
Add a Reverse Block Entry to the Context Menu |
Add a ReverseBlockDirection() Function to the CBlock Class |
Add Accessor Methods to the CBlockShape Class |
Add Accessor Methods to the CPort Class |
Test the Application |
Part II Model Computation and Data |
Model Validation |
Validating a Model |
Changes to be Made to Draw in the Correct Color |
Unique Port and Bend Point Connection |
Non-Feedback-Based Signal Propagation |
Signals and Systems |
Models with Algebraic and Feedback Loops |
Signal Propagation |
Determination of Feedback Loops |
Signal-Based Class Structure |
Additions Required for Direct Signal Propagation |
Propagating a Simple Direct Signal |
Graph Drawing |
Addition of Structure to Display an Empty View Window |
Supplementing Existing Classes to Access Output Block Data |
Plotting Data as a Text String |
Plotting Numerical Data as a Graph |
Deleting an Output Block and Its View |
Adding Functionality to the Output Block Dialog Window |
Block Operations |
Linear Function Block Data Operation |
Signal Generator Block Data Operation |
Gain Block Data Operation |
Sum Block Data Operation |
Derivative Block Data Operation |
Integrator Block Data Operation |
Divide Block Data Operation |
Remaining Block Operation Functions |
Preparation for Feedback-Based Signal Propagation |
Linear Systems |
Nonlinear Systems |
Model Assumptions |
Determining Initial Output Signals |
Adding Functionality to Set the Initial Output Signal |
Building the System of Equations Representing the Block Diagram |
Stopping a Simulation |
Feedback-Based Signal Propagation |
Newton-Method-Based Solver |
Object-Oriented Transformation of the Newton-Method-Based Solver |
Adding the Newton-Method-Based Solver to the DiagramEng Project |
Convergence of the Newton Method Used to Compute Models with Feedback Loops |
Testing the Newton-Method-Based Code for Models with Feedback Loops |
Placing an Edit Box on a Toolbar |
Edit the Resource File |
Create the Toolbar Edit Box |
Update the Toolbar Edit Box |
A Memory Leak |
Serialization |
System Model Data Structure |
Event Handler Functions for File Input/Output |
Writing Data Members to a File |
Reading Data Members from a File |
Saving the Initial Output Signal for the Divide Block |
Adding Data-Writing Functionality to the Output Block |
Part III Refinement |
Review of Menu and Toolbar-Based Functionality: Part II |
Functionality to be Added |
Printing and Print Preview |
Additions to the DiagramEng Project |
Mapping Modes |
Augmenting the CDiagramEngView OnBeginPrinting() Function |
Augmenting the CDiagramEngView OnPrepareDC() Function |
Augmenting the CDiagramEngView OnDraw() Function |
Implementing a Scroll View |
Coordinate Systems |
Conversion from CView to CScrollView |
Device Point to Logical Point Coordinate Conversions |
Tracking of Multiple Items |
Limiting Diagram Entity Placement |
Fitting the Logical View to the Physical View |
Zooming In and Out of the View |
Edit Menu |
Selection of All Content |
Cut, Copy, and Paste |
Undoing and Redoing Editing Actions |
Annotations |
Add a CAnnotation Class to the Project |
Add an Annotation Dialog Window to the Project |
Add an Annotation to a System Model |
Deleting Annotations |
Moving Annotations |
View Menu-Based Actions |
Format Menu-Based Actions |
Edit Menu-Based Actions |
Serialization of the CAnnotation Class |
Tools Menu |
Tools Menu Implementation: Diagnostic Information |
Help Menu |
Using DiagramEng |
Creating the Using DiagramEng Document |
Finalizing the Project |
Preventing Usage of Nonfunctional Blocks |
Preventing the Building of Subsystems |
Disabling Nonfunctional Items |
Preparing the Source and Executable Files |
Conclusion |
Project Review |
Improvements |
Appendix A ControlEng: Win32 Console Application |
Appendix B Constructing Connections: An Exploration |
Appendix C NodeArcConnectivity: Win32 Console Application |
Appendix D Debugging: An |
Appendix E MatrixInversion: Win32 Console Application |
Appendix F Using DiagramEng |
Index |