Setup output to file and sort methods (not implemented)

This commit is contained in:
TriantaTV 2023-01-16 16:11:40 -06:00
parent 7e8873fd1a
commit d48e023234
11 changed files with 45080 additions and 11 deletions

Binary file not shown.

Binary file not shown.

BIN
include/.sorts.h.swp Normal file

Binary file not shown.

View File

@ -4,18 +4,27 @@
#include <string>
#include <vector>
enum SortType {INSERTION = 0, MERGE, HEAP};
class Sorter
{
private:
std::string filename;
std::vector<std::string> wordList;
int lineCount;
std::vector<std::string> originalWordList;
std::vector<std::string> newWordList;
SortType currentType;
public:
void SetFileName(std::string newName);
std::string GetFileName(void);
Sorter(std::string newFilename);
std::string GetFilename(void);
void SetFilename(std::string newName);
void SetWordList(void);
void RunSorts(void);
void OutputResult(void);
void PrintToFile(std::string outputFilename);
void InsertionSort(void);
void MergeSort(void);
void HeapSort(void);
};
#endif
#endif

BIN
src/.sorts.cpp.swp Normal file

Binary file not shown.

View File

@ -2,8 +2,7 @@
int main(int argc, char** argv)
{
Sorter newSort;
newSort.SetFileName(argv[1]);
newSort.SetWordList();
Sorter newSort(argv[1]);
newSort.RunSorts();
return 0;
}

View File

@ -4,12 +4,20 @@
#include <string>
#include <vector>
void Sorter::SetFileName(std::string newName)
Sorter::Sorter(std::string newFilename)
{
lineCount = 0;
currentType = INSERTION;
SetFilename(newFilename);
SetWordList();
}
void Sorter::SetFilename(std::string newName)
{
this->filename = newName;
}
std::string Sorter::GetFileName(void)
std::string Sorter::GetFilename(void)
{
return this->filename;
}
@ -24,10 +32,63 @@ void Sorter::SetWordList(void)
exit(1);
}
while (getline(file, bufferStr))
wordList.push_back(bufferStr);
{
originalWordList.push_back(bufferStr);
lineCount++;
}
return;
}
void Sorter::RunSorts(void)
{
newWordList = originalWordList;
InsertionSort();
OutputResult();
currentType = MERGE;
newWordList = originalWordList;
MergeSort();
OutputResult();
currentType = HEAP;
newWordList = originalWordList;
HeapSort();
OutputResult();
}
void Sorter::OutputResult(void)
{
switch(currentType)
{
case INSERTION:
PrintToFile("IS");
break;
case MERGE:
PrintToFile("MS");
break;
case HEAP:
PrintToFile("HS");
break;
default:
break;
}
}
void Sorter::PrintToFile(std::string outputFilename)
{
std::string outputPath = "test/OUTPUT/";
outputPath += outputFilename;
outputPath += std::to_string(lineCount % 1000);
outputPath += "K.txt";
std::ofstream file(outputPath);
if (!file.is_open())
{
std::cout << "Failed opening file\n";
exit(1);
}
for (unsigned int i = 0; i < lineCount; i++)
file << newWordList[i] << '\n';
file.close();
}
void Sorter::InsertionSort(void)
{
;
@ -41,4 +102,4 @@ void Sorter::MergeSort(void)
void Sorter::HeapSort(void)
{
;
}
}

0
test/OUTPUT/.keep Normal file
View File

15000
test/OUTPUT/HS0K.txt Normal file

File diff suppressed because it is too large Load Diff

15000
test/OUTPUT/IS0K.txt Normal file

File diff suppressed because it is too large Load Diff

15000
test/OUTPUT/MS0K.txt Normal file

File diff suppressed because it is too large Load Diff