//////////////////////////////////////////////////////////////////// // CLASS PROVIDED: sequence (a container class for a list of items, //                 where each list may have a designated item called //                 the current item) // // TYPEDEFS and MEMBER functions for the sequence class: //   typedef ____ value_type //     sequence::value_type is the data type of the items in the sequence. //     It may be any of the C++ built-in types (int, char, etc.), or a //     class with a default constructor, an assignment operator, and a //     copy constructor. //   typedef ____ size_type //     sequence::size_type is the data type of any variable that keeps //     track of how many items are in a sequence. //   static const size_type CAPACITY = _____ //     sequence::CAPACITY is the maximum number of items that a //     sequence can hold. // // CONSTRUCTOR for the sequence class: //   sequence() //     Pre:  (none) //     Post: The sequence has been initialized as an empty sequence. // // MODIFICATION MEMBER FUNCTIONS for the sequence class: //   void start() //     Pre:  (none) //     Post: The first item on the sequence becomes the current item //           (but if the sequence is empty, then there is no current item). //   void end() //     Pre:  (none) //     Post: The last item on the sequence becomes the current item //           (but if the sequence is empty, then there is no current item). //   void advance() //     Pre:  is_item() returns true. //     Post: If the current item was the last item in the sequence, then //           there is no longer any current item. Otherwise, the new current //           item is the item immediately after the original current item. //   void move_back() //     Pre:  is_item() returns true. //     Post: If the current item was the first item in the sequence, then //           there is no longer any current item. Otherwise, the new current //           item is the item immediately before the original current item. //   void add(const value_type& entry) //     Pre:  size() < CAPACITY. //     Post: A new copy of entry has been inserted in the sequence after //           the current item. If there was no current item, then the new //           entry has been inserted as new first item of the sequence. In //           either case, the newly added item is now the current item of //           the sequence. //   void remove_current() //     Pre:  is_item() returns true. //     Post: The current item has been removed from the sequence, and //           the item after this (if there is one) is now the new current //           item. If the current item was already the last item in the //           sequence, then there is no longer any current item. // // CONSTANT MEMBER FUNCTIONS for the sequence class: //   size_type size() const //     Pre:  (none) //     Post: The return value is the number of items in the sequence. //   bool is_item() const //     Pre:  (none) //     Post: A true return value indicates that there is a valid //           "current" item that may be retrieved by activating the current //           member function (listed below). A false return value indicates //           that there is no valid current item. //   value_type current() const //     Pre:  is_item() returns true. //     Post: The item returned is the current item in the sequence. // VALUE SEMANTICS for the sequence class: //    Assignments and the copy constructor may be used with sequence //    objects. #ifndef SEQUENCE_H #define SEQUENCE_H #include  // provides size_t namespace CS3358_SP2023_A04_sequence {      template    class sequence    {    public:       // TYPEDEFS and MEMBER SP2020       typedef double value_type;       typedef size_t size_type;       static const size_type CAPACITY = 10;       // CONSTRUCTOR       sequence();       // MODIFICATION MEMBER FUNCTIONS       void start();       void end();       void advance();       void move_back();       void add(const value_type& entry);       void remove_current();       // CONSTANT MEMBER FUNCTIONS       size_type size() const;       bool is_item() const;       value_type current() const;    private:       value_type data[CAPACITY];       size_type used;       size_type current_index;    }; }

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

/////////////////////////////////////////////////////////////////////
// CLASS PROVIDED: sequence (a container class for a list of items,
//                 where each list may have a designated item called
//                 the current item)
//
// TYPEDEFS and MEMBER functions for the sequence class:
//   typedef ____ value_type
//     sequence::value_type is the data type of the items in the sequence.
//     It may be any of the C++ built-in types (int, char, etc.), or a
//     class with a default constructor, an assignment operator, and a
//     copy constructor.
//   typedef ____ size_type
//     sequence::size_type is the data type of any variable that keeps
//     track of how many items are in a sequence.
//   static const size_type CAPACITY = _____
//     sequence::CAPACITY is the maximum number of items that a
//     sequence can hold.
//
// CONSTRUCTOR for the sequence class:
//   sequence()
//     Pre:  (none)
//     Post: The sequence has been initialized as an empty sequence.
//
// MODIFICATION MEMBER FUNCTIONS for the sequence class:
//   void start()
//     Pre:  (none)
//     Post: The first item on the sequence becomes the current item
//           (but if the sequence is empty, then there is no current item).
//   void end()
//     Pre:  (none)
//     Post: The last item on the sequence becomes the current item
//           (but if the sequence is empty, then there is no current item).
//   void advance()
//     Pre:  is_item() returns true.
//     Post: If the current item was the last item in the sequence, then
//           there is no longer any current item. Otherwise, the new current
//           item is the item immediately after the original current item.
//   void move_back()
//     Pre:  is_item() returns true.
//     Post: If the current item was the first item in the sequence, then
//           there is no longer any current item. Otherwise, the new current
//           item is the item immediately before the original current item.
//   void add(const value_type& entry)
//     Pre:  size() < CAPACITY.
//     Post: A new copy of entry has been inserted in the sequence after
//           the current item. If there was no current item, then the new
//           entry has been inserted as new first item of the sequence. In
//           either case, the newly added item is now the current item of
//           the sequence.
//   void remove_current()
//     Pre:  is_item() returns true.
//     Post: The current item has been removed from the sequence, and
//           the item after this (if there is one) is now the new current
//           item. If the current item was already the last item in the
//           sequence, then there is no longer any current item.
//
// CONSTANT MEMBER FUNCTIONS for the sequence class:
//   size_type size() const
//     Pre:  (none)
//     Post: The return value is the number of items in the sequence.
//   bool is_item() const
//     Pre:  (none)
//     Post: A true return value indicates that there is a valid
//           "current" item that may be retrieved by activating the current
//           member function (listed below). A false return value indicates
//           that there is no valid current item.
//   value_type current() const
//     Pre:  is_item() returns true.
//     Post: The item returned is the current item in the sequence.
// VALUE SEMANTICS for the sequence class:
//    Assignments and the copy constructor may be used with sequence
//    objects.

#ifndef SEQUENCE_H
#define SEQUENCE_H

#include <cstdlib>  // provides size_t

namespace CS3358_SP2023_A04_sequence
{
     template <class Type>
   class sequence
   {
   public:
      // TYPEDEFS and MEMBER SP2020
      typedef double value_type;
      typedef size_t size_type;
      static const size_type CAPACITY = 10;
      // CONSTRUCTOR
      sequence();
      // MODIFICATION MEMBER FUNCTIONS
      void start();
      void end();
      void advance();
      void move_back();
      void add(const value_type& entry);
      void remove_current();
      // CONSTANT MEMBER FUNCTIONS
      size_type size() const;
      bool is_item() const;
      value_type current() const;

   private:
      value_type data[CAPACITY];
      size_type used;
      size_type current_index;
   };
}

43 #include "sequence.h"
44 namespace CS3358_SP2023_A04_sequence
45 {
46
47
48
49
50
51
52
53
54
55
56
57 ✓
58
59
60
61
62
63
64
65
66
67
68
69
70
71
V
74 75 76 7 78 79 80
72 ✓
73
77
V
78 ✔
template <class Type>
sequence<Type>::sequence(): used (0), current_index(0) { }
template<class Type>
void sequence<Type>::start() { current_index = 0; }
template<class Type>
void sequence<Type>::end() { current_index = (used > 0) ? used
template<class Type>
void sequence<Type>::advance()
{
}
assert( is_item() );
}
++current_index;
template<class Type>
void sequence<Type>: :move_back()
{
assert( is_item() );
if (current_index
current_index = used;
else
== (0)
--current_index;
template<class Type>
void sequence<Type>::add(const value_type& entry)
{
assert( size() < CAPACITY );
size_type i;
if (!is_item() )
{
if (used > 0)
for (i = used; i >= 1; --i)
I
1: 0; }
Transcribed Image Text:43 #include "sequence.h" 44 namespace CS3358_SP2023_A04_sequence 45 { 46 47 48 49 50 51 52 53 54 55 56 57 ✓ 58 59 60 61 62 63 64 65 66 67 68 69 70 71 V 74 75 76 7 78 79 80 72 ✓ 73 77 V 78 ✔ template <class Type> sequence<Type>::sequence(): used (0), current_index(0) { } template<class Type> void sequence<Type>::start() { current_index = 0; } template<class Type> void sequence<Type>::end() { current_index = (used > 0) ? used template<class Type> void sequence<Type>::advance() { } assert( is_item() ); } ++current_index; template<class Type> void sequence<Type>: :move_back() { assert( is_item() ); if (current_index current_index = used; else == (0) --current_index; template<class Type> void sequence<Type>::add(const value_type& entry) { assert( size() < CAPACITY ); size_type i; if (!is_item() ) { if (used > 0) for (i = used; i >= 1; --i) I 1: 0; }
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld:
/tmp/sequenceTes
46f.0: in function 'main':
/home/runner/ASSIGN4/./sequenceTest.cpp:50: undefined reference to `CS3358_SP2023_A04_s
equence::sequence<double>::sequence()
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:51: undefined reference to `CS3358_SP2023_A04_sequence::sequence<cha
r>::sequence()'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:72: undefined reference to `CS3358_SP2023_A04_sequence::sequence<dou
ble>::start()'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:204: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::size() const'
مان
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:144: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::is_item() const'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:213: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::add(double const&)'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:121: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::is_item() const'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:125: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::move_back()'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:98: undefined reference to `CS3358_SP2023_A04_sequence::sequence<dou
ble>::is_item() const'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:102: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::advance()'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:85: undefined reference to `CS3358_SP2023_A04_sequence::sequence<dou
ble>::end()'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:161: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::is_item() const'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:163: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::current() const'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:180: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::size() const'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /tmp/sequenceTest-888
46f.0: in function 'void show_list<double>(CS3358_SP2023_A04_sequence::sequence<double>
)':
/home/runner/ASSIGN4/./sequenceTest.cpp:294: undefined reference to `CS3358_SP2023_A04_
sequence::sequence<double>::start()'
/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/
./sequenceTest.cpp:294: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do
uble>::is_item() const'
Transcribed Image Text:/nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /tmp/sequenceTes 46f.0: in function 'main': /home/runner/ASSIGN4/./sequenceTest.cpp:50: undefined reference to `CS3358_SP2023_A04_s equence::sequence<double>::sequence() /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:51: undefined reference to `CS3358_SP2023_A04_sequence::sequence<cha r>::sequence()' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:72: undefined reference to `CS3358_SP2023_A04_sequence::sequence<dou ble>::start()' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:204: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do uble>::size() const' مان /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:144: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do uble>::is_item() const' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:213: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do uble>::add(double const&)' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:121: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do uble>::is_item() const' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:125: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do uble>::move_back()' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:98: undefined reference to `CS3358_SP2023_A04_sequence::sequence<dou ble>::is_item() const' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:102: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do uble>::advance()' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:85: undefined reference to `CS3358_SP2023_A04_sequence::sequence<dou ble>::end()' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:161: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do uble>::is_item() const' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:163: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do uble>::current() const' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:180: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do uble>::size() const' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /tmp/sequenceTest-888 46f.0: in function 'void show_list<double>(CS3358_SP2023_A04_sequence::sequence<double> )': /home/runner/ASSIGN4/./sequenceTest.cpp:294: undefined reference to `CS3358_SP2023_A04_ sequence::sequence<double>::start()' /nix/store/039g378vc3pc3dvi9dzdlrd@i4q93qwf-binutils-2.39/bin/ld: /home/runner/ASSIGN4/ ./sequenceTest.cpp:294: undefined reference to `CS3358_SP2023_A04_sequence::sequence<do uble>::is_item() const'
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps

Blurred answer
Knowledge Booster
Introduction to Template
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education