The Assignment:
You will implement and test the sequence class using an array tostore the sequence's items.
Purposes:
Ensure that you can write a small class that uses an array as aprivate member variable.
Familiarize yourself with the sequence container class (whichmay also be part of future assignments).
Give us a chance to evaluate your programming skills on a smallclass.
Files that are needed
sequence.h
#ifndef MAIN_SAVITCH_SEQUENCE_H#define MAIN_SAVITCH_SEQUENCE_H#include <cstdlib> // Provides size_t
namespace main_savitch_3{
class sequence { public: // TYPEDEFS and MEMBER CONSTANTS typedef double value_type; typedef size_t size_type; //typedefstd::size_t size_type; static const size_type CAPACITY = 30;// enum {CAPACITY = 30}; // // CONSTRUCTOR sequence( ); // MODIFICATION MEMBER FUNCTIONS void start( ); void advance( ); void insert(const value_type&entry); void attach(const value_type&entry); void remove_current( ); // CONSTANT MEMBER FUNCTIONS size_type size( ) const; bool is_item( ) const; value_type current( ) const; private: // Fill in your private member variableshere. };}
#endif
============================================================================================
sequence_test.cpp
#include <cctype> // Providestoupper#include <iostream> // Provides cout andcin#include <cstdlib> // ProvidesEXIT_SUCCESS#include "sequence1.h" // With value_type defined asdoubleusing namespace std;using namespace main_savitch_3;
// PROTOTYPES for functions used by this test program:void print_menu();// Postcondition: A menu of choices for this program has beenwritten to cout.
char get_user_command();// Postcondition: The user has been prompted to enter a onecharacter command.// The next character has been read (skipping blanks and newlinecharacters), // and this character has been returned.
void show_sequence(sequence display);// Postcondition: The items on display have been printed to cout(one per line).
double get_number();// Postcondition: The user has been prompted to enter a realnumber. The// number has been read, echoed to the screen, and returned by thefunction.
int main(){ sequence test; // A sequence that we’ll performtests on char choice; // A command character entered bythe user
cout << "I have initialized an emptysequence of real numbers." << endl;
do { print_menu(); choice =toupper(get_user_command()); switch (choice) { case '!': test.start(); break; case '+': test.advance(); break; case '?': if (test.is_item()) cout << "There isan item." << endl; else cout << "There isno current item." << endl; break; case 'C': if (test.is_item()) cout << "Currentitem is: " << test.current() << endl; else cout << "There isno current item." << endl; break; case 'P': show_sequence(test); break; case 'S': cout << "Size is "<< test.size() << '.' << endl; break; case 'I':test.insert(get_number()); break; case 'A':test.attach(get_number()); break; case 'R': test.remove_current(); cout << "Thecurrent item has been removed." << endl; break; case 'Q': cout << "Ridicule isthe best test of truth." << endl; break; default: cout << choice<< " is invalid." << endl; } } while ((choice != 'Q'));
return EXIT_SUCCESS;}
void print_menu()// Library facilities used: iostream.h{ cout << endl; // Print blank line before themenu cout << "The following choices are available: "<< endl; cout << " ! Activate the start( )function" << endl; cout << " + Activate the advance( )function" << endl; cout << " ? Print the result from theis_item( ) function" << endl; cout << " C Print the result from thecurrent( ) function" << endl; cout << " P Print a copy of the entiresequence" << endl; cout << " S Print the result from thesize( ) function" << endl; cout << " I Insert a new number with theinsert(...) function" << endl; cout << " A Attach a new number with theattach(...) function" << endl; cout << " R Activate the remove_current() function" << endl; cout << " Q Quit this test program"<< endl;}
char get_user_command()// Library facilities used: iostream{ char command;
cout << "Enter choice: "; cin >> command; // Input of characters skipsblanks and newline character
return command;}
void show_sequence(sequence display)// Library facilities used: iostream{ for (display.start(); display.is_item();display.advance()) cout << display.current()<< endl;}
double get_number()// Library facilities used: iostream{ double result;
cout << "Please enter a real number for thesequence: "; cin >> result; cout << result << " has been read."<< endl; return result;}
The Assignment: You will implement and test the sequence class using an array to store the sequence's items. Purposes: E
-
- Site Admin
- Posts: 899603
- Joined: Mon Aug 02, 2021 8:13 am