Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

help me solve this it goes to this question #define _CRT_SECURE_NO_WARNINGS #inc

ID: 3766017 • Letter: H

Question

help me solve this it goes to this question #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include using namespace std; const int MAX_FILE = 1000; int main ( int argc , char *argv [ ] ) { ifstream fin; ofstream fout; char openfile [ MAX_FILE ]; char fontLine [ 500 ] = { 0 }; if ( argc != 2 ) { cout << "Incorrect input, program4 data.in" << endl; } strcpy ( openfile , argv [ argc - 1 ] ); fin.open ( openfile ); if ( !fin ) { cout << "Unable to open the file: data.in" << endl; fin.close ( ); return -1; } } int extractPointSize ( ) { ifstream fin; { unsigned long Size = 0; string Temp; for ( size_t i = 0; i < str.length ( ); ++i ) { if ( isdigit ( str [ i ] ) ) { if ( isspace ( str [ i - 1 ] ) ) { Temp = str.substr ( i , string::npos ); Size = strtoul ( Temp.c_str ( ) , NULL , 0 ); return Size; } } } { return 0; //NOT FOUND } } }; void sortByCost ( ); void readFontData ( ); int getTonerUsed ( ); void printUsage ( );

Explanation / Answer

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <fstream>

#include <string>

#include <cctype>

#include <cstdlib>

#include <algorithm>

using namespace std;

const int MAX_FILE = 1000;

int main(int argc, char *argv[])

{

        ifstream fin;

        ofstream fout;

        char openfile[MAX_FILE];

        char fontLine[500] = { 0 };

        if (argc != 2)

        {

               cout << "Incorrect input, program4 data.in" << endl;

        }

        strcpy(openfile, argv[argc - 1]);

        fin.open(openfile);

        if (!fin)

        {

               cout << "Unable to open the file: data.in" << endl;

               fin.close();

               return -1;

        }

       

}

int extractPointSize()

{

        ifstream fin;

        {

               unsigned long Size = 0;

               string Temp;

               for (size_t i = 0; i < str.length(); ++i)

               {

                       if (isdigit(str[i]))

                       {

                               if (isspace(str[i - 1]))

                               {

                                      Temp = str.substr(i, string::npos);

                                      Size = strtoul(Temp.c_str(), NULL, 0);

                                      return Size;

                               }

                       }

               }

               {

                       return 0; //NOT FOUND

               }

        }

};

void sortByCost();

void readFontData();

int getTonerUsed();

void printUsage();

list = new Task[capacity];

#include "taskList.h"

#include "mytools.h"

TaskList::TaskList()

{

capacity = CAP;

list = new Task[capacity];

size = 0;

}

TaskList::TaskList(char filename[])

{

capacity = CAP;

list = new Task[capacity];

size = 0;

//load from file.

ifstream inData;

Task aTask;

char tempName[MAXCHAR];

char tempDescription[MAXCHAR];

char tempDate[MAXCHAR];

inData.open("task.txt");

if (!inData){

    cout << "cannot open file";

    exit(0);

}

inData.getline(tempName, MAXCHAR, ';');

while (!inData.eof())

{

    inData.getline(tempDescription, MAXCHAR, ' ');

    inData.getline(tempDate, MAXCHAR, ' ');

    aTask.setName(tempName);

    aTask.setDescription(tempDescription);

    aTask.setDate(tempDate);

    addTask(aTask);

    inData.getline(tempName, MAXCHAR, ';');

}

inData.close();

;

TaskList::~TaskList()

{

if (list)

{

    delete [] list;

    list = NULL;

}

}

//Adds a video item to the list

void TaskList::addTask(Task aTask)

{

list[size++] = aTask;

}

//displays the list of videos

void TaskList::showList()

{

int i = 0;

for (i = 0; i < size; i++)

{

    list[i].printTask();

}

}

void TaskList::searchList()

{

char searchName[MAXCHAR];

char tempName[MAXCHAR];

int i;

bool found = false;

cout << "Enter the name of the course to search for: ";

cin.getline(searchName, MAXCHAR);

for (i = 0; i < size; i++)

{

    list[i].getName(tempName);

    if (strstr(searchName, tempName) != NULL)

    {

        list[i].printTask();

        found = true;

    }

}

if (found == false)

    cout << "No search results." << endl;

}

void TaskList::writeData()

{

ofstream outData;

outData.open("task.txt");

if (!outData)

{

    cout << "cannot open file";

    exit(0);

}

for (int i = 0; i < size; i++)

    list[i].printToFile(outData);

outData.close();

}

//expand array function

void TaskList::expand()

{

char tempName[MAXCHAR];

char tempDescription[MAXCHAR];

char tempDate[MAXCHAR];

capacity += GROWTH;

Task *temp = new Task[capacity];

//copy from old array to new array

for (int i = 0; i < size; i++)

{

    list[i].getName(tempName);

    list[i].getDescription(tempDescription);

    list[i].getDate(tempDate);

    temp[i].setName(tempName);

    temp[i].setDescription(tempDescription);

    temp[i].setDate(tempDate);

}

//delete old array

delete [] list;

list = NULL;

//point ptr to temp

list = temp;

//set temp to NULL

temp = NULL;

}

The header file (taskList.h)

#include <iostream>

#include <fstream>

using namespace std;

const int CAP = 2;

const int GROWTH = 2;

//define class VideoList for array of Videos and its size.

class TaskList

{

private:

Task *list;

int size;

int capacity;

void expand();

public:

//constructors

TaskList();

TaskList(char filename[]);

//destructor

~TaskList();

//database functions

void addTask(Task aTask);

void showList();

void searchList();

void writeData();

};

ere is task.h:

#ifndef TASK_H

#define TASK_H

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <fstream>

#include <iomanip>

#include <string.h>

using namespace std;

const int MAXCHAR = 101;

class Task

{

private:

char *name;

char *description;

char *date;

public:

//defult constructor

Task();

//constructor with parameters

Task(char newName[], char newDescription[], char newDate[]);

//copy constructor

Task(const Task &otherTask);

//Accessor funct

void getName(char returnName[]);

void getDescription(char returnDescription[]);

void getDate(char returnDate[]);

//mutator function

void setName(char newName[]);

void setDescription(char newDescription[]);

void setDate(char newDate[]);

//print function to print a video

void printTask();

void printToFile(ofstream &outFile);

const Task& operator= (const Task& anItem);

};

#endif

Here is the task.cpp file, not sure if this is necessary but I am adding it for clarity:

#include "task.h"

#include <iostream>

using namespace std;

//defult constructor

Task::Task()

{

strcpy(name, "no course name");

strcpy(description, "no task description");

strcpy(date, "no due date");

}

//constructor with parameters

Task::Task(char newName[], char newDescription[], char newDate[])

{

name = new char[strlen(newName) + 1];

description = new char[strlen(newDescription) + 1];

date = new char[strlen(newDate) + 1];

strcpy(name, newName);

strcpy(description, newDescription);

strcpy(date, newDate);

}

//copy constructor

Task::Task(const Task &otherTask)

{

//allocate memory and then copy name

this->name = new char[strlen(otherTask.name) + 1];

strcpy(name, otherTask.name);

//allocate memory and then copy description

this->description = new char[strlen(otherTask.description) + 1];

strcpy(description, otherTask.description);

//allocate memory and then copy date

this->date = new char[strlen(otherTask.date) + 1];

strcpy(date, otherTask.date);

}

//Accessor functions

void Task::getName(char returnName[])

{

strcpy(returnName, name);

}

void Task::getDescription(char returnDescription[])

{

strcpy(returnDescription, description);

}

void Task::getDate(char returnDate[])

{

strcpy(returnDate, date);

}

//mutator functions

void Task::setName(char newName[])

{

strcpy(name, newName);

}

void Task::setDescription(char newDescription[])

{

strcpy(description, newDescription);

}

void Task::setDate(char newDate[])

{

strcpy(date, newDate);

}

//prints a video item

void Task::printTask()

{

cout << name << ';' << description << ';' << date << endl;

}

void Task::printToFile(ofstream &outFile)

{

outFile << name << ';' << description << ';' << date << endl;

}

//assignment operator overloaded

const Task& Task::operator= (const Task& aTask)

{

strcpy(this->name, aTask.name);

this->description = aTask.description;

strcpy(this->description, aTask.description);

this->date = aTask.date;

strcpy(this->date, aTask.date);

return *this;

}