Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Notes: The solution should be general to processing any file with the same schema, not only applicable to the given file example. The program will

image text in transcribed

image text in transcribed

Notes: The solution should be general to processing any file with the same schema, not only applicable to the given file example. The program will be tested with data files with the same schema.

Assignment Marking Scheme

: Program correctness (75%)

Program indentation and readability (5%)

Choice of significant names for identifiers (5%)

Comments - description of variables and constants (5%)

/// MY IMPLEMENTATION OF THE CODE BUT I DONT KNOW WHAT I AM DOING WRONG NOTING IS OUTPUTTING :( !!!! THE CODE IS IN C ++ CAN SOMEONE PLEASE HELP ME BY DOING THE CORRECT IMPLEMENTATION OF THE CODE BY THE GIVEN GUIDELINE CAUSE DONT KNOW WHAT IM DOING WRONG

//// DataStorage.h//

class DataStorage{

private: //Pointers' data members

int *iPtr; //Private data member: pointer of type integer

float *fPtr; //Private data member: pointer of type float

char *cPtr; //Private data member: pointer of type character

// Date *dPtr;

int dSize;

public: //Member functions

DataStorage(); //Constructor

void setIntPtr(int*); //Member function that sets pointer as an integer type

void setFloatPtr(float*); //Member function that sets pointer as a float type

void setCharPtr(char*); //Member function that sets pointer as a character type

int* getIntPtr(); //Accessing function that returns a pointer of type integer

float* getFloatPtr(); //Accessing function that returns a pointer of type float

char* getCharPtr(); //Accessing function that returns a pointer of type character

};

///DataStorage.cpp/////////

#include

#include

#include "DataStorage.h"

#include

#include

#include

using namespace std;

//Constructor of the class DataStorage

DataStorage::DataStorage()

{

}

//end of constructor

//Member function that sets pointer as an integer type

void DataStorage::setIntPtr(int* intPtr)

{

iPtr = intPtr;

fPtr = 0;

cPtr = 0;

}

//end of setIntPtr function

//Member function that sets pointer as a float type

void DataStorage::setFloatPtr(float* floatPtr)

{

iPtr = 0;

fPtr = floatPtr;

cPtr = 0;

}

//end of setFloatPtr function

//Member function that sets pointer as a character type

void DataStorage::setCharPtr(char* charPtr)

{

iPtr = 0;

fPtr = 0;

cPtr = charPtr;

}

//end of setCharPtr function

//Accessing function that returns a pointer of type integer

int* DataStorage::getIntPtr()

{

return iPtr;

}

//end of getIntPtr function

//Accessing function that returns a pointer of type float

float* DataStorage::getFloatPtr()

{

return fPtr;

}

//end of getFloatPtr function

//Accessing function that returns a pointer of type character

char* DataStorage::getCharPtr()

{

return cPtr;

}

void readFile(DataStorage*& dsPtr, int* size) {

ifstream inFile;

inFile.open("config.dat");

// exit program if ifstream could not open file

if (!inFile) {

cout

exit(1);

}

char line[200];

int numLines=0;

inFile.unsetf(std::ios_base::skipws);

// find out how many lines the file has

unsigned line_count = count(std::istream_iterator(inFile),std::istream_iterator(),' ');

cout

dsPtr = new DataStorage[line_count + 1];

inFile.clear();

inFile.setf(std::ios_base::skipws);

inFile.seekg(0);

int totalLine = 0;

//Wrting the exception code

try{

while (!inFile.eof())

{

char dataType[10];

int dSize;

inFile >> dataType;

inFile >> dSize;

// cout

if (strcmp(dataType, "int") == 0)

{

int *iPtr = new int[dSize+1];

iPtr[0] = dSize;

for (int i = 1; i

inFile >> iPtr[i];

dsPtr[totalLine++].setIntPtr(iPtr);

}

else if (strcmp(dataType, "float") == 0)

{

float *fPtr = new float[dSize+1];

fPtr[0] = dSize;

for (int i = 1; i

inFile >> fPtr[i];

dsPtr[totalLine++].setFloatPtr(fPtr);

}

else if (strcmp(dataType, "char") == 0)

{

char *cPtr = new char[dSize+1];

cPtr[0] = dSize;

for (int i = 1; i

inFile >> cPtr[i];

dsPtr[totalLine++].setCharPtr(cPtr);

}

if(totalLine == 3){

break;

}

}

*size = totalLine;

}

//Trying to catch the exception

catch (exception e)

{

cout

}

inFile.close();

}

////driver.cpp/////////////////////////////

#include

#include

#include "DataStorage.h"

#include

#include

#include

using namespace std;

int main()

{

DataStorage* dsPtr;

int numLines=0;

//readFile("reverse.dat");

ofstream file("reverse.dat");

for (int i = 0; i

{

if (dsPtr[i].getCharPtr())

{

char* ptr = dsPtr[i].getCharPtr();

for (int j = (int)ptr[0]; j >= 0 ; j--){

file

cout

}

}

else if (dsPtr[i].getFloatPtr())

{

float* ptr = dsPtr[i].getFloatPtr();

for (int j = (int)ptr[0]; j >= 0 ; j--){

file

cout

}

}

else

{

cout

int* ptr = dsPtr[i].getIntPtr();

for (int j = 1 ; j

cout

}

cout

for (int j = (int)ptr[0]; j >= 0 ; j--){

file

cout

}

}

cout

file.close();

}

system("pause");

return 0;

}

//////config.dat/////////////

int 12 1 9 1 8 6 3 4 3 9 7 0 float 2 5.30 56.31 chat 6 h a y K o z float 3 5.55 22.41 10.11

//reverse.dat////

0 7 9 3 4 3 6 8 1 9 1 12 int 56.31 5.30 2 float z o K y a h 6 chat 10.11 22.41 5.55 3 float

COEN 244 (Winter 2017) Assignment 4: lo Deadline: Monday April 10 23:59pm, individual assignment Note: The assignment must be submitted on Moodle. Submission format: Create only ONE zip file (.gz, tar, .zip are acceptable. rar file is NOT acceptable) that contains all the header files, cpp files and test files. The name of the file must follow the template below: student id A4.zip; student id A4.tar or student id A4.gz. Submissions do not follow about format should be responsible for the consequences. Problem: Write a function that reads from a sequential file and writes to another sequential file. The file path and name are passed through arguments of the main function. int main int argc, char *argv0) For example, the file name is config dat, and the path is the current directory The schema of the file is shown below Field I Field II Field III int 12 1 1 81 6 3 4 3 9 70 Record I float 2 Record II 5.30 56.31 Record char (6 h a y K o z Record IV float 3 5.55 22.41 10.11

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

More Books

Students also viewed these Databases questions