#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <fstream> #include
ID: 3767709 • Letter: #
Question
#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
#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;
}
My teacher said that this is wrong can you please show this in different ways like a simple C++
Explanation / Answer
Your program is correct but you can't compile because there are no file or directries of taskList.h name so complilation is terminating..
Well, the basic cause is that the compiler cannot find a file called taskList.h in the directories it searches when processing the #include directive. This could be so for a number of reasons.
The simplest reason is that you want the compiler to look for taskList.h in the same directory as the source file, but it can’t find it. this may be because you simply haven’t created the header file yet, but the more common reason is that you either misspelled the header file name in the #include directive, or that you made a mistake in naming the header file when you created it with your editor. Look very closely at the names in both the C++ source and in your source code directory listing.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.