100% found this document useful (4 votes)
62 views

C++ Programming From Problem Analysis to Program Design 6th Edition Malik Solutions Manual - Full Version Is Ready For Free Download

The document provides links to various test banks and solutions manuals for C++ programming and other subjects, including the 6th, 7th, and 8th editions of 'C++ Programming: From Problem Analysis to Program Design' by Malik. It also outlines the content of Chapter 9, which focuses on records (structs) in C++, detailing their creation, manipulation, and usage in functions and arrays. Additional resources and teaching tips for instructors are included to enhance the learning experience.

Uploaded by

teghorovy
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (4 votes)
62 views

C++ Programming From Problem Analysis to Program Design 6th Edition Malik Solutions Manual - Full Version Is Ready For Free Download

The document provides links to various test banks and solutions manuals for C++ programming and other subjects, including the 6th, 7th, and 8th editions of 'C++ Programming: From Problem Analysis to Program Design' by Malik. It also outlines the content of Chapter 9, which focuses on records (structs) in C++, detailing their creation, manipulation, and usage in functions and arrays. Additional resources and teaching tips for instructors are included to enhance the learning experience.

Uploaded by

teghorovy
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

Visit https://testbankdeal.

com to download the full version and


explore more testbank or solutions manual

C++ Programming From Problem Analysis to Program


Design 6th Edition Malik Solutions Manual

_____ Click the link below to download _____


https://testbankdeal.com/product/c-programming-from-problem-
analysis-to-program-design-6th-edition-malik-solutions-
manual/

Explore and download more testbank or solutions manual at testbankdeal.com


Here are some recommended products that we believe you will be
interested in. You can click the link to download.

C++ Programming From Problem Analysis to Program Design


6th Edition Malik Test Bank

https://testbankdeal.com/product/c-programming-from-problem-analysis-
to-program-design-6th-edition-malik-test-bank/

C++ Programming From Problem Analysis to Program Design


7th Edition Malik Solutions Manual

https://testbankdeal.com/product/c-programming-from-problem-analysis-
to-program-design-7th-edition-malik-solutions-manual/

C++ Programming From Problem Analysis to Program Design


8th Edition Malik Solutions Manual

https://testbankdeal.com/product/c-programming-from-problem-analysis-
to-program-design-8th-edition-malik-solutions-manual/

Sampling Design and Analysis Advanced Series 2nd Edition


Lohr Solutions Manual

https://testbankdeal.com/product/sampling-design-and-analysis-
advanced-series-2nd-edition-lohr-solutions-manual/
Management Accounting Strategic Decision Making
Performance and Risk 2nd Edition Hunt Solutions Manual

https://testbankdeal.com/product/management-accounting-strategic-
decision-making-performance-and-risk-2nd-edition-hunt-solutions-
manual/

Derivatives 2nd Edition Sundaram Solutions Manual

https://testbankdeal.com/product/derivatives-2nd-edition-sundaram-
solutions-manual/

Project Management Achieving Competitive Advantage 3rd


Edition Pinto Test Bank

https://testbankdeal.com/product/project-management-achieving-
competitive-advantage-3rd-edition-pinto-test-bank/

Fundamentals of Multinational Finance 6th Edition Moffett


Solutions Manual

https://testbankdeal.com/product/fundamentals-of-multinational-
finance-6th-edition-moffett-solutions-manual/

Introduction to Operations and Supply Chain Management 5th


Edition Bozarth Test Bank

https://testbankdeal.com/product/introduction-to-operations-and-
supply-chain-management-5th-edition-bozarth-test-bank/
Transformative Social Work Practice 1st Edition Schott
Test Bank

https://testbankdeal.com/product/transformative-social-work-
practice-1st-edition-schott-test-bank/
C++ Programming: From Problem Analysis to Program Design, Sixth Edition 9-1

Chapter 9
Records (structs)

At a Glance

Instructor’s Manual Table of Contents


• Overview

• Objectives

• Teaching Tips

• Quick Quizzes

• Class Discussion Topics

• Additional Projects

• Additional Resources

• Key Terms
C++ Programming: From Problem Analysis to Program Design, Sixth Edition 9-2

Lecture Notes

Overview
In Chapter 9, students will be introduced to a data type that can be heterogeneous. They
will learn how to group together related values that are of differing types using records,
which are also known as structs in C++. First, they will explore how to create
structs, perform operations on structs, and manipulate data using a struct.
Next, they will examine the relationship between structs and functions and learn
how to use structs as arguments to functions. Finally, students will explore ways to
create and use an array of structs in an application.

Objectives
In this chapter, the student will:
• Learn about records (structs)
• Examine various operations on a struct
• Explore ways to manipulate data using a struct
• Learn about the relationship between a struct and functions
• Discover how arrays are used in a struct
• Learn how to create an array of struct items

Teaching Tips
Records (structs)

1. Define the C++ struct data type and describe why it is useful in programming.

Discuss how previous programming examples and projects that used parallel
Teaching
arrays or vectors might be simplified by using a struct to hold related
Tip
information.

2. Examine the syntax of a C++ struct.

3. Using the examples in this section, explain how to define a struct type and then
declare variables of that type.

Accessing struct Members

1. Explain how to access the members of a struct using the C++ member access
operator.
C++ Programming: From Problem Analysis to Program Design, Sixth Edition 9-3

2. Use the code snippets in this section to illustrate how to assign values to struct
members.

Mention that the struct and class data types both use the member access
operator. Spend a few minutes discussing the history of the struct data type
and how it relates to C++ classes and object-oriented programming. Note that the
struct is a precursor to the class data type. Explain that the struct was
introduced in C to provide the ability to group heterogeneous data members
together and, for the purposes of this chapter, is used in that manner as well.
Teaching However, in C++, a struct has the same ability as a class to group data and
Tip
operations into one data type. In fact, a struct in C++ is interchangeable with
a class, with a couple of exceptions. By default, access to a struct from
outside the struct is public, whereas access to a class from outside the
class is private by default. The importance of this will be discussed later in the
text. Memory management is also handled differently for structs and
classes.

Quick Quiz 1
1. True or False: A struct is typically a homogenous data structure.
Answer: False

2. The components of a struct are called the ____________________ of the struct.


Answer: members

3. A struct statement ends with a(n) ____________________.


Answer: semicolon

4. True or False: A struct is typically defined before the definitions of all the functions
in a program.
Answer: True

Assignment

1. Explain that the values of one struct variable are copied into another struct
variable of the same type using one assignment statement. Note that this is equivalent to
assigning each member variable individually.

Note how memory is handled in assignment operations involving struct


Teaching
variables of the same type; namely, that the values of the members of one
Tip
struct are copied into the member variables of the other struct.
C++ Programming: From Problem Analysis to Program Design, Sixth Edition 9-4

Comparison (Relational Operators)

1. Emphasize that no relational aggregate operations are allowed on structs. Instead,


comparisons must be made member-wise, similar to an array.

Ask your students why they think assignment operations are permitted on
Teaching
struct types, but not relational operations. Discuss the issue of determining
Tip
how to compare a data type that consists of other varying data types.

Input/Output

1. Note that unlike an array, aggregate input and output operations are not allowed on
structs.

Mention that the stream and the relational operators can be overloaded to provide
Teaching
the proper functionality for a struct type and, in fact, that this is a standard
Tip
technique used by C++ programmers.

struct Variables and Functions

1. Emphasize that a C++ struct may be passed as a parameter by value or by reference,


and it can also be returned from a function.

2. Illustrate parameter passing with structs using the code snippets in this section.

Arrays versus structs

1. Using Table 9-1, discuss the similarities and differences between structs and arrays.

Spend a few minutes comparing the aggregate operations that are allowed on
Teaching structs and arrays. What might account for the differences? Use your previous
Tip exposition on the history of structs and memory management to facilitate this
discussion.

Arrays in structs

1. Explain how to include an array as a member of a struct.

2. Using Figure 9-5, discuss situations in which creating a struct type with an array as a
member might be useful. In particular, discuss its usefulness in applications such as the
sequential search algorithm.
C++ Programming: From Problem Analysis to Program Design, Sixth Edition 9-5

Ask your students to think of other applications in which using an array as a


member of a struct might be useful. For example, are there applications in
Teaching
which parameter passing might be reduced by using struct members in
Tip
conjunction with arrays? Also, are there other data members that would be useful
to include in the listType struct presented in this section?

3. Discuss situations in which a struct should be passed by reference rather than by


value. Use the sequential search function presented in this section as an example.

structs in Arrays

1. Discuss how structs can be used as array elements to organize and process data
efficiently.

2. Examine the employee record in this section as an example of using an array of


structs. Discuss the code for the struct as well as the array processing code. Use
Figure 9-7 to clarify the code.

Emphasize that using a structured data type, such as a struct or class, as the
Teaching element type of an array is a common technique. Using the vector class as an
Tip example, reiterate that object-oriented languages typically have containers such
as list or array types that in turn store objects of any type.

structs within a struct

1. Discuss how structs can be nested within other structs as a means of organizing
related data.

2. Using the employee record in Figure 9-8, illustrate how to reorganize a large amount of
related information with nested structs.

3. Encourage your students to step through the “Sales Data Analysis” Programming
Example at the end of the chapter to consolidate the concepts discussed in this chapter.
C++ Programming: From Problem Analysis to Program Design, Sixth Edition 9-6

Quick Quiz 2
1. What types of aggregate operations are allowed on structs?
Answer: assignment

2. Can struct variables be passed as parameters to functions? If so, how?


Answer: struct variables can be passed as parameters either by value or by reference.

3. True or False: A variable of type struct may not contain another struct.
Answer: False

4. True or False: A variable of type struct may contain an array.


Answer: True

Class Discussion Topics


1. With the advent of object-oriented programming, is it ever necessary to use C-type
structs rather than classes? If so, when? What are the advantages or disadvantages of
each approach?

2. Discuss how the object-oriented concept of reusability relates to structs, structs


within arrays, arrays within structs, and structs within structs. Ask students to
think of some applications in which defining these data types for later use would be
beneficial.

Additional Projects
1. In Chapter 8, you were asked to write a program that keeps track of important birthdays.
Modify this program to store one person’s birthday information in a struct data type.
The struct should consist of two other structs: one struct to hold the person’s
first name and last name, and another to hold the date (day, month, and year). Consider
including other information as well, such as a vector of strings with a list of possible
gift ideas.

2. In Chapter 8, you were asked to write a program that listed all the capitals for countries
in a specific region of the world. Modify this program to use an array of structs to
store this information. The struct should include the capital, the country, and the
continent. You might include additional information as well, such as the languages
spoken in each capital.
C++ Programming: From Problem Analysis to Program Design, Sixth Edition 9-7

Additional Resources
1. Data Structures:
www.cplusplus.com/doc/tutorial/structures.html

2. struct (C++):
http://msdn2.microsoft.com/en-us/library/64973255.aspx

3. Classes, Structures, and Unions:


http://msdn2.microsoft.com/en-us/library/4a1hcx0y.aspx

Key Terms
 Member access operator: the dot (.) placed between the struct and the name of one
of its members; used to access members of a struct
 struct: a collection of heterogeneous components in which the components are
accessed by the variable name of the struct, the member access operator, and the
variable name of the component
Another Random Scribd Document
with Unrelated Content
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”

• You provide a full refund of any money paid by a user who


notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.

• You provide, in accordance with paragraph 1.F.3, a full refund of


any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.

• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.

1.E.9. If you wish to charge a fee or distribute a Project


Gutenberg™ electronic work or group of works on different
terms than are set forth in this agreement, you must obtain
permission in writing from the Project Gutenberg Literary
Archive Foundation, the manager of the Project Gutenberg™
trademark. Contact the Foundation as set forth in Section 3
below.

1.F.
1.F.1. Project Gutenberg volunteers and employees expend
considerable effort to identify, do copyright research on,
transcribe and proofread works not protected by U.S. copyright
law in creating the Project Gutenberg™ collection. Despite these
efforts, Project Gutenberg™ electronic works, and the medium
on which they may be stored, may contain “Defects,” such as,
but not limited to, incomplete, inaccurate or corrupt data,
transcription errors, a copyright or other intellectual property
infringement, a defective or damaged disk or other medium, a
computer virus, or computer codes that damage or cannot be
read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except


for the “Right of Replacement or Refund” described in
paragraph 1.F.3, the Project Gutenberg Literary Archive
Foundation, the owner of the Project Gutenberg™ trademark,
and any other party distributing a Project Gutenberg™ electronic
work under this agreement, disclaim all liability to you for
damages, costs and expenses, including legal fees. YOU AGREE
THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT
EXCEPT THOSE PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE
THAT THE FOUNDATION, THE TRADEMARK OWNER, AND ANY
DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE LIABLE
TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL,
PUNITIVE OR INCIDENTAL DAMAGES EVEN IF YOU GIVE
NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you


discover a defect in this electronic work within 90 days of
receiving it, you can receive a refund of the money (if any) you
paid for it by sending a written explanation to the person you
received the work from. If you received the work on a physical
medium, you must return the medium with your written
explanation. The person or entity that provided you with the
defective work may elect to provide a replacement copy in lieu
of a refund. If you received the work electronically, the person
or entity providing it to you may choose to give you a second
opportunity to receive the work electronically in lieu of a refund.
If the second copy is also defective, you may demand a refund
in writing without further opportunities to fix the problem.

1.F.4. Except for the limited right of replacement or refund set


forth in paragraph 1.F.3, this work is provided to you ‘AS-IS’,
WITH NO OTHER WARRANTIES OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of
damages. If any disclaimer or limitation set forth in this
agreement violates the law of the state applicable to this
agreement, the agreement shall be interpreted to make the
maximum disclaimer or limitation permitted by the applicable
state law. The invalidity or unenforceability of any provision of
this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the


Foundation, the trademark owner, any agent or employee of the
Foundation, anyone providing copies of Project Gutenberg™
electronic works in accordance with this agreement, and any
volunteers associated with the production, promotion and
distribution of Project Gutenberg™ electronic works, harmless
from all liability, costs and expenses, including legal fees, that
arise directly or indirectly from any of the following which you
do or cause to occur: (a) distribution of this or any Project
Gutenberg™ work, (b) alteration, modification, or additions or
deletions to any Project Gutenberg™ work, and (c) any Defect
you cause.
Section 2. Information about the Mission
of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new
computers. It exists because of the efforts of hundreds of
volunteers and donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the


assistance they need are critical to reaching Project
Gutenberg™’s goals and ensuring that the Project Gutenberg™
collection will remain freely available for generations to come. In
2001, the Project Gutenberg Literary Archive Foundation was
created to provide a secure and permanent future for Project
Gutenberg™ and future generations. To learn more about the
Project Gutenberg Literary Archive Foundation and how your
efforts and donations can help, see Sections 3 and 4 and the
Foundation information page at www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-
profit 501(c)(3) educational corporation organized under the
laws of the state of Mississippi and granted tax exempt status
by the Internal Revenue Service. The Foundation’s EIN or
federal tax identification number is 64-6221541. Contributions
to the Project Gutenberg Literary Archive Foundation are tax
deductible to the full extent permitted by U.S. federal laws and
your state’s laws.

The Foundation’s business office is located at 809 North 1500


West, Salt Lake City, UT 84116, (801) 596-1887. Email contact
links and up to date contact information can be found at the
Foundation’s website and official page at
www.gutenberg.org/contact

Section 4. Information about Donations to


the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission
of increasing the number of public domain and licensed works
that can be freely distributed in machine-readable form
accessible by the widest array of equipment including outdated
equipment. Many small donations ($1 to $5,000) are particularly
important to maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws


regulating charities and charitable donations in all 50 states of
the United States. Compliance requirements are not uniform
and it takes a considerable effort, much paperwork and many
fees to meet and keep up with these requirements. We do not
solicit donations in locations where we have not received written
confirmation of compliance. To SEND DONATIONS or determine
the status of compliance for any particular state visit
www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states


where we have not met the solicitation requirements, we know
of no prohibition against accepting unsolicited donations from
donors in such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot


make any statements concerning tax treatment of donations
received from outside the United States. U.S. laws alone swamp
our small staff.
Please check the Project Gutenberg web pages for current
donation methods and addresses. Donations are accepted in a
number of other ways including checks, online payments and
credit card donations. To donate, please visit:
www.gutenberg.org/donate.

Section 5. General Information About


Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could
be freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose
network of volunteer support.

Project Gutenberg™ eBooks are often created from several


printed editions, all of which are confirmed as not protected by
copyright in the U.S. unless a copyright notice is included. Thus,
we do not necessarily keep eBooks in compliance with any
particular paper edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg
Literary Archive Foundation, how to help produce our new
eBooks, and how to subscribe to our email newsletter to hear
about new eBooks.
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
back
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

testbankdeal.com

You might also like