Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

i dont know how to solve exercise 1 stepb 1 and 2 my teacher gave us the source code and told us to solve exercise

i dont know how to solve exercise 1 stepb 1 and 2

my teacher gave us the source code and told us to solve exercise 1

i attached 2 pictrure of the my hw

and the source code

config.h:

/** * Text class (Lab 1) configuration file. * Activate test 'N' by defining the corresponding LAB1_TESTN to have the value 1. */

#define LAB1_TEST1 0 // Programming exercise 2: toUpper and toLower #define LAB1_TEST2 0 // Programming exercise 3: ==,

Text.h:

//-------------------------------------------------------------------- // // Laboratory 1 Text.h // **Instructor's Solution** // Class declaration for the array implementation of the Text ADT // //--------------------------------------------------------------------

#ifndef TEXT_H #define TEXT_H

#include #include

using namespace std;

class Text { public:

// Constructors and operator= Text ( const char *charSeq = "" ); // Initialize using char* Text ( const Text &other ); // Copy constructor void operator = ( const Text &other ); // Assignment

// Destructor ~Text ();

// Text operations int getLength () const; // # characters char operator [] ( int n ) const; // Subscript void clear (); // Clear string

// Output the string structure -- used in testing/debugging void showStructure () const;

//-------------------------------------------------------------------- // In-lab operations // toUpper/toLower operations (Programming Exercise 2) Text toUpper( ) const; // Create upper-case copy Text toLower( ) const; // Create lower-case copy

// Relational operations (Programming Exercise 3) bool operator == ( const Text& other ) const; bool operator ( const Text& other ) const;

private:

// Data members int bufferSize; // Size of the string buffer char *buffer; // Text buffer containing a null-terminated sequence of characters

// Friends

// Text input/output operations (In-lab Exercise 1) friend istream & operator >> ( istream& input, Text& inputText ); friend ostream & operator

};

#endif

test1.cpp:

//-------------------------------------------------------------------- // // Laboratory 1 test1.cpp // // Test program for the operations in the Text ADT // //--------------------------------------------------------------------

#include #include "Text.h" #include "config.h"

//-------------------------------------------------------------------- // // Function prototype

void copyTester ( Text copyText ); // copyText is passed by value void print_help ( );

//--------------------------------------------------------------------

int main() { Text a("a"), // Predefined test text objects alp("alp"), alpha("alpha"), epsilon("epsilon"), empty, assignText, // Destination for assignment inputText; // Input text object int n; // Input subscript char ch, // Character specified by subscript selection; // Input test selection

// Get user test selection. print_help();

// Execute the selected test. cin >> selection;

cout

case '3' : // Test 3 : Tests the subscript operation. cout > n; ch = alpha[n]; cout

case '4' : // Test 4 : Tests the assignment and clear operations. cout

case '5' : // Test 5 : Tests the copy constructor and operator= operations. cout

cout

case '6' : // In-lab Exercise 2 // Test 6 : Tests toUpper and toLower cout > inputText; cout

case '7' : // In-lab Exercise 3 // Test 7 : Tests the relational operations. cout " epsilon) alpha) alpha)alpha) alp) alpha) a) alpha)empty)empty)

default : cout

system("pause"); return 0; }

//--------------------------------------------------------------------

void copyTester ( Text copyText )

// Dummy routine that is passed a text object using call by value. Outputs // copyText and clears it.

{ cout

//--------------------------------------------------------------------

void print_help() { cout

cout

cout

Text.cpp:

#include #include #include #include #include "Text.h"

Text::Text ( const char *charSeq ) { bufferSize = strlen(charSeq) + 1; buffer = new char[bufferSize]; strcpy(buffer, charSeq); }

Text::Text ( const Text &other ) { bufferSize = other.bufferSize; buffer = new char[bufferSize]; strcpy(buffer, other.buffer); }

void Text::operator = ( const Text &other ) { int len = other.bufferSize; if (len > bufferSize) { delete[] buffer; bufferSize = other.bufferSize; buffer = new char[bufferSize]; } strcpy(buffer, other.buffer); }

Text::~Text () { delete[] buffer; }

int Text::getLength () const { return bufferSize - 1; }

char Text::operator [] ( int n ) const { // check if n is out of range first return 0; }

void Text::clear () { buffer[0] = '\0'; }

void Text::showStructure() const

// Outputs the characters in a string. This operation is intended for // testing/debugging purposes only.

{ int j; // Loop counter

for (j = 0; j

Text Text::toUpper( ) const { Text temp; for (int i = 0; i 96 && (buffer[i]

Text Text::toLower( ) const { Text temp; for (int i = 0; i 64 && (buffer[i]

bool Text::operator == ( const Text& other ) const { { if (bufferSize == other.getLength()) { if (bufferSize == 0) { return true; } else { for (int i = 0; i

bool Text::operator

bool Text::operator > ( const Text& other ) const { if (bufferSize > other.getLength()) { return true; } else { return false; } }

textio.cpp:

//-------------------------------------------------------------------- // // Laboratory 1, In-lab Exercise 1 textio.cpp // // String input/output operations // //--------------------------------------------------------------------

#include #include

#include "Text.h"

//--------------------------------------------------------------------

istream & operator >> ( istream &input, Text& inputText )

// Text input function. Extracts a string from istream input and // returns it in inputText. Returns the state of the input stream.

{ const int textBufferSize = 256; // Large (but finite) char textBuffer [textBufferSize]; // text buffer

// Read a string into textBuffer, setw is used to prevent buffer // overflow.

input >> setw(textBufferSize) >> textBuffer;

// Apply the Text(char*) constructor to convert textBuffer to // a string. Assign the resulting string to inputText using the // assignment operator.

inputText = textBuffer;

// Return the simage text in transcribedimage text in transcribed

Text ADT1 This format requires that your program maintain a running count of the number of tokens that have been read from the text file. Assume that the tokens in the text file are delimited by whitespace-an assumption that is not true for C++ programs in general. Step 3: Test your lexical analysis program using the C++ program in the file progsamp.dat as input. The contents of this file are shown here. void main ) int j total O for (j-1;j

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered 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

Students also viewed these Databases questions

Question

When should you avoid using exhaust brake select all that apply

Answered: 1 week ago