[SOLVED] 02393 C++ Programming Assignment 4

30.00 $

Category:

Description

Rate this product

Fun with bags

This assignment is about processing a sequence of commands

related to a bag of numbers. Your program has to read a sequence of commands

from cin and provide some reply to cout. The commands are:

add x: number x must be added to the bag. No output to be provided;

del x: if there is an element x in the bag, remove it, otherwise do nothing. No

output to be provided;

qry x: if x belongs to the bag then output T, otherwise output F;

quit: stop your program.

The goal of the three exercises is always the same (reply to the input, as

suming an initially empty bag) but the nature of the bag (set or multiset) and

the members of the bag (integers or reals) vary. In particular,

Fun with bags 1: Here you have to consider that the bag is a set of int values.

Example:

input: add 1 add 2 add 1 del 1 qry 1 qry 2 quit

output: FT

Fun with bags 2: Here you have to consider that the bag is a multiset of int

values. The main difffference with respect to the previous exercise is that

now repetitions are allowed. This means, for example, that deleting x just

removes one occurrence of x from the multiset.

Example:

input: add 1 add 2 add 1 del 1 qry 1 qry 2 quit

output: TT

Fun with bags 3 Here you have to consider that the bag is a multiset of double

values. Example:

input: add 3.14 add 3.1415 del 3.14 qry 3.1415 qry 3.14 quit

output: TF

You can solve this exercise using several data structures:

Arrays: Use arrays if you feel that you need to test your ability to deal with

arrays. Exercises 1 and 2 should be easy, while Exercise 3 is an exam

ple showing some limitations/inconveniences of using arrays to implement

bags.Containers: We will properly introduce containers later in the course, but you

can already try to use them to get a fifirst feeling of how convenient they are

with respect to array-based structures. In particular, you could consider

these two classes of containers:

  • http://en.cppreference.com/w/cpp/container/set
  • http://en.cppreference.com/w/cpp/container/multiset

Hint: for every command of the exercise, there is a method/function that

does (almost) what you need.

2