Chapter 11:
Menu-Driven Programs
Starting Out with Programming Logic & Design
Second Edition
by Tony Gaddis
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Chapter Topics
11.1
11.2
11.3
11.4
Introduction to Menu-Driven Programs
Modularizing a Menu-Driven Program
Using a Loop to Repeat the Menu
Multiple-Level Menus
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-2
11.1 Introduction to Menu-Driven Programs
A menu is a list of operations that are displayed
by a program, in which a user can select which
operations to perform
Figure 11-1 A menu
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-3
11.1 Introduction to Menu-Driven Programs
A decision structure can be used to perform
menu selections
This can be accomplished through a case structure,
series of nested if-then-else statements
A case structure is easier to follow the flow
A case structure will provide a case for each option
in the menu, in addition to a default case
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-4
11.1 Introduction to Menu-Driven Programs
Figure 11-2 Flowchart for Program 111
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-5
11.1 Introduction to Menu-Driven Programs
Validating the menu selection can be done before
the case is processed, allowing for no need for
a default
Display Enter your selection
Input menuSelection
//validation
While menuSelection < 1 OR menuSelection >3
Display That is an invalid selection. Enter 1, 2 or 3
Input menuSelection
End While
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-6
11.2 Modularizing a Menu-Driven Program
Since a menu-driven program is capable of
performing many tasks, it should be put into
modules
A module should be written for each case that
could be processed
The options would simply call modules
Allows for a clear flow of the program
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-7
11.2 Modularizing a Menu-Driven Program
Figure 11-5 Flowchart for the main
module in Program 11-3
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-8
11.3 Using a Loop to Repeat the Menu
Most menu-driven programs use a loop to
repeatedly display the menu after a task is
performed
This allows the user of the program to run another
option without restarting the program
The menu can also contain on option for ending
the program
Display 1.
Display 2.
Display 3.
Display 4.
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Convert inches to centimeters.
Convert feet to meters.
Convert miles to kilometers.
End the program.
11-9
11.3 Using a Loop to Repeat the Menu
Figure 11-7 Flowchart for the
mainmodule in Program 11-5
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-10
11.4 Multiple-Level Menus
A multiple-level menu has a main menu and one
or more submenus
Some complex programs require more than one
menu
A programmer should consider breaking up long
menus into multiple menus
This is essentially nested case structures
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-11
11.4 Multiple-Level Menus
Instead of this type of long menu
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Process a sale
Process a return
Add a record to the inventory file
Search for a record in the inventory file
Modify a record in the inventory file
Delete a record in the inventory file
Print an inventory list report
Print a list of inventory items by cost
Print a list of inventory items by age
Print a list of inventory items by retail value
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-12
11.4 Multiple-Level Menus
Convert to multiple menus such as
1.
2.
3.
4.
Main Menu
Process a Sale or a Return
Update the Inventory File
Print an Inventory Report
Exit the Program
Sales and Returns Menu
5. Process a Sale
6. Process a Return
7. Go Back to the Main Menu
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-13
11.4 Multiple-Level Menus
More menus
1.
2.
3.
4.
5.
Update Inventory File Menu
Add a Record
Search for a Record
Modify a Record
Delete a Record
Go Back to the Main Menu
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-14
11.4 Multiple-Level Menus
More menus
1.
2.
3.
4.
5.
Inventory Report Menu
Print an inventory list report
Print a list of inventory items by cost
Print a list of inventory items by age
Print a list of inventory items by retail value
Go Back to the Main Menu
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
11-15