Visual C Programming Concepts and Projects Chapter 10









































- Slides: 41
Visual C++ Programming: Concepts and Projects Chapter 10 B: Recursion (Tutorial)
Tutorial: Generating a Fractal Image • Problem Analysis – This project uses the recursive Draw. Branch() method – The result will be an interface upon which one branch, with its recursive subbranches, is drawn – On Your Own tasks will allow more options – The program can easily be developed to have four central branches Programming with Visual C++ 2
Problem Analysis Programming with Visual C++ 3
Design • Interface – Menus are created using the Menu. Strip control – Menu items are named after the text they contain – If the text is numeric, the menu item names default to numbered order – Menus control stopping the program and setting the maximum levels of recursion Programming with Visual C++ 4
Design (continued) Programming with Visual C++ 5
Design (continued) Programming with Visual C++ 6
Design (continued) Programming with Visual C++ 7
Design (continued) • Each menu. Item requires a Click() event Programming with Visual C++ 8
Design (continued) • Instance variables Programming with Visual C++ 9
Design (continued) • Required Graphics and Drawing objects Programming with Visual C++ 10
Design (continued) • Data table for Draw. Branch() Programming with Visual C++ 11
Design (continued) • Algorithms – For menu items that set max. Levels Programming with Visual C++ 12
Design (continued) • Algorithm for Draw. Fractal() Programming with Visual C++ 13
Design (continued) • Algorithm for method Draw. Branch() Programming with Visual C++ 14
Design (continued) Programming with Visual C++ 15
Design (continued) Programming with Visual C++ 16
Design (continued) Programming with Visual C++ 17
Design (continued) Programming with Visual C++ 18
Design (continued) Programming with Visual C++ 19
Design (continued) Programming with Visual C++ 20
Design (continued) Programming with Visual C++ 21
Development • Create the interface – Menus • The menu. Strip control is used to add menu. Strip features to the program • The “Type here” labels indicate where menu headings and items can be created Programming with Visual C++ 22
Development (continued) Programming with Visual C++ 23
Development (continued) • Menus – Menu headings are placed at the top level of each menu – Menu items are listed below Programming with Visual C++ 24
Development (continued) Programming with Visual C++ 25
Development (continued) Programming with Visual C++ 26
Development (continued) • Declare instance variables and objects Programming with Visual C++ 27
Development (continued) • Initialization in Form 1_Load() Programming with Visual C++ 28
Development (continued) • Coding the Exit menu Programming with Visual C++ 29
Development (continued) • Coding the level menu items Programming with Visual C++ 30
Development (continued) Programming with Visual C++ 31
Development (continued) • Coding Draw. Fractal() Programming with Visual C++ 32
Development (continued) • Calling Draw. Branch() Programming with Visual C++ 33
Development (continued) Programming with Visual C++ 34
Testing • Demonstrate that each level works correctly • Demonstrate that the Exit menu works Programming with Visual C++ 35
Testing (continued) Programming with Visual C++ 36
Analysis • The number of recursive calls is factorial • The number of executions of Draw. Branch() is O(3 n) – n is max. Levels-1 • This program would demand considerable resources to complete a drawing involving a high number of levels Programming with Visual C++ 37
Analysis (continued) Programming with Visual C++ 38
On Your Own • More central branches – Add three more central branches • Add an angle menu – Varying the angle produces different fractal images Programming with Visual C++ 39
On Your Own (continued) Programming with Visual C++ 40
On Your Own (continued) Programming with Visual C++ 41