Visual C Programming Concepts and Projects Chapter 10

  • Slides: 41
Download presentation
Visual C++ Programming: Concepts and Projects Chapter 10 B: Recursion (Tutorial)

Visual C++ Programming: Concepts and Projects Chapter 10 B: Recursion (Tutorial)

Tutorial: Generating a Fractal Image • Problem Analysis – This project uses the recursive

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

Problem Analysis Programming with Visual C++ 3

Design • Interface – Menus are created using the Menu. Strip control – Menu

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++ 5

Design (continued) Programming with Visual C++ 6

Design (continued) Programming with Visual C++ 6

Design (continued) Programming with Visual C++ 7

Design (continued) Programming with Visual C++ 7

Design (continued) • Each menu. Item requires a Click() event Programming with Visual C++

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) • Instance variables Programming with Visual C++ 9

Design (continued) • Required Graphics and Drawing objects Programming with Visual C++ 10

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) • Data table for Draw. Branch() Programming with Visual C++ 11

Design (continued) • Algorithms – For menu items that set max. Levels Programming with

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 Draw. Fractal() Programming with Visual C++ 13

Design (continued) • Algorithm for method Draw. Branch() Programming with Visual C++ 14

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++ 15

Design (continued) Programming with Visual C++ 16

Design (continued) Programming with Visual C++ 16

Design (continued) Programming with Visual C++ 17

Design (continued) Programming with Visual C++ 17

Design (continued) Programming with Visual C++ 18

Design (continued) Programming with Visual C++ 18

Design (continued) Programming with Visual C++ 19

Design (continued) Programming with Visual C++ 19

Design (continued) Programming with Visual C++ 20

Design (continued) Programming with Visual C++ 20

Design (continued) Programming with Visual C++ 21

Design (continued) Programming with Visual C++ 21

Development • Create the interface – Menus • The menu. Strip control is used

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) Programming with Visual C++ 23

Development (continued) • Menus – Menu headings are placed at the top level of

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++ 25

Development (continued) Programming with Visual C++ 26

Development (continued) Programming with Visual C++ 26

Development (continued) • Declare instance variables and objects Programming with Visual C++ 27

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) • 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 Exit menu Programming with Visual C++ 29

Development (continued) • Coding the level menu items Programming with Visual C++ 30

Development (continued) • Coding the level menu items Programming with Visual C++ 30

Development (continued) Programming with Visual C++ 31

Development (continued) Programming with Visual C++ 31

Development (continued) • Coding Draw. Fractal() Programming with Visual C++ 32

Development (continued) • Coding Draw. Fractal() Programming with Visual C++ 32

Development (continued) • Calling Draw. Branch() Programming with Visual C++ 33

Development (continued) • Calling Draw. Branch() Programming with Visual C++ 33

Development (continued) Programming with Visual C++ 34

Development (continued) Programming with Visual C++ 34

Testing • Demonstrate that each level works correctly • Demonstrate that the Exit menu

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

Testing (continued) Programming with Visual C++ 36

Analysis • The number of recursive calls is factorial • The number of executions

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

Analysis (continued) Programming with Visual C++ 38

On Your Own • More central branches – Add three more central branches •

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++ 40

On Your Own (continued) Programming with Visual C++ 41

On Your Own (continued) Programming with Visual C++ 41