Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

in C++ and please include all files myString.h // FILE: mystring.h // CLASS PROVIDED: my_string // This is a simple version of the Standard Library

in C++ and please include all files

image text in transcribed

myString.h

// FILE: mystring.h // CLASS PROVIDED: my_string // This is a simple version of the Standard Library string. // It is part of the namespace main_savitch_4, from the textbook // "Data Structures and Other Objects Using C++" // by Michal Main and Walter Savitch // // CONSTRUCTOR for the my_string class: // string(const char str[ ] = "") -- default argument is the empty string. // Precondition: str is an ordinary null-terminated string. // Postcondition: The string contains the sequence of chars from str. // // CONSTANT MEMBER FUNCTIONS for the my_string class: // size_t length( ) const // Postcondition: The return value is the number of characters in the // string. // // char operator [ ](size_t position) const // Precondition: position >(istream& ins, string& target) // Postcondition: A string has been read from the istream ins, and the // istream ins is then returned by the function. The reading operation // skips white space (i.e., blanks, newlines, tabs) at the start of ins. // Then the string is read up to the next white space or the end of the // file. The white space character that terminates the string has not // been read. // // ostream& operator =, , and  // Provides size_t namespace hw4 { class my_string { public: // CONSTRUCTORS and DESTRUCTOR my_string(const char str[ ] = ""); my_string(const my_string& source); ~my_string( ); // MODIFICATION MEMBER FUNCTIONS void operator +=(const my_string& addend); void operator +=(const char addend[ ]); void operator +=(char addend); void reserve(size_t n); void operator =(const my_string& source); void insert(size_t n); // CONSTANT MEMBER FUNCTIONS size_t length( ) const { return current_length; } char operator [ ](size_t position) const; // FRIEND FUNCTIONS friend std::ostream& operator =(const my_string& s1, const my_string& s2); friend bool operator  (const my_string& s1, const my_string& s2); friend bool operator >(std::istream& ins, my_string& target); void getline(std::istream& ins, my_string& target); void eat_white(std::istream& ins, my_string& target); } #endif 

myString.cpp

// CLASS IMPLEMENTED: my_string (see mystring.h for documentation) // INVARIANT for the my_string class: // 1. The string is stored as a null-terminated string in the dynamic array // that characters points to. // 2. The total length of the dynamic array is stored in the member variable // allocated. // 3. The total number of characters prior to the null character is stored in // current_length, which is always less than allocated. #include  // Provides stream tools #include  // Provides assert() #include  // Provides strcpy(), strcat(), strlen(), strcmp() #include  // Provides size_t, NULL #include  // Provides stream types #include "mystring.h" using namespace std; namespace hw4 { // CONSTRUCTORS and DESTRUCTOR my_string::my_string(const char str[ ]) // Library facilities used: string.h { current_length = strlen(str); allocated = current_length + 1; sequence = new char[allocated]; strcpy(sequence, str); } my_string::my_string(const my_string& source) // Library facilities used: string.h { sequence = new char[source.allocated]; current_length = source.current_length; allocated = source.allocated; strcpy(sequence, source.sequence); } my_string::~my_string( ) { delete [ ] sequence; } // MODIFICATION MEMBER FUNCTIONS // CONSTANT MEMBER FUNCTIONS // In-lined: size_t length( ) const; char my_string::operator [ ](size_t position) const // Library facilities used: assert.h { assert(position n+1; --i) sequence[i] = sequence[i-1]; sequence[n+1] = '-'; } else // Insert hyphen at column position { for (int i=current_length; i>n; --i) sequence[i] = sequence[i-1]; sequence[n] = '-'; } } // = Operator overloading. void my_string::operator =(const my_string& source) { size_t i; char *new_string; if (allocated != source.allocated) { new_string = new char[source.allocated]; delete [ ] sequence; sequence = new_string; allocated = source.allocated; } current_length = source.current_length; for (i=0; i = Operator overloading. bool operator >=(const my_string& s1, const my_string& s2) // Library facilities used: string.h { int comp = strcmp(s1.sequence, s2.sequence); return ((comp>0)||(comp==0)); } //  Operator overloading. bool operator > (const my_string& s1, const my_string& s2) // Library facilities used: string.h { int comp = strcmp(s1.sequence, s2.sequence); return (comp>0); } // > Operator overloading. istream& operator >>(istream& ins, my_string& target) { char c; while (ins && isspace(ins.peek())) ins.ignore(); target=""; // Set the target to the empty string. while (ins && !isspace(ins.peek())) { ins >> c; target += c; // Call the operator += with a char argument. } return ins; } void getline(istream& ins, my_string& target) { char c; eat_white(ins, target); // Removes initial whitespace target=""; ins.get(c); while (ins && (c!=' ')) { target += c; if (ins && isspace(ins.peek()) && ins.peek()!=' ') { eat_white(ins, target); // Removes additional // whitespace between words target += ' '; } ins.get(c); } } void eat_white(istream& ins, my_string& target) { while (ins && isspace(ins.peek())) ins.ignore(); } } 

Recursion.h

#ifndef RECURSION_ #define RECURSION_ #include  #include  using namespace std; class Recursion { private: public: Recursion(); int ways(int amount); void waysRecur(int amout, int denom, int& count, vector& combo); int coins(int num); void printVect(vector vec, int count); }; #endif
 
Recursion vs Iterative functions. For this assignment you will make a Vehicle class with two recursive member functions. a) Implement overloaded member functions called binSearchRec,the recursive binSearchRec algorithm is presented in this chapter, starting on page 68 for an array of vehicles. Use a vector instead of an array. Sort by make then call a recursive function to do a binary search which lists out the make, model and year for the first year found (or report accordingly) that matches the for a user input then start a new sort Sort by model then call a recursive function to do a binary search which lists out the make, model and year for the first year found (or report accordingly) that matches the for a user input. Read in the vehicles from a vehicle file (vehiclein.txt)that has a year, make, and model. You have a choice of reading in an integer and two strings OR reading in 3 strings and converting the year to an int. Remember that between a stream operator (

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Probabilistic Databases

Authors: Dan Suciu, Dan Olteanu, Christopher Re, Christoph Koch

1st Edition

3031007514, 978-3031007514

More Books

Students also viewed these Databases questions