Setup output to file and sort methods (not implemented)

This commit is contained in:
2023-01-16 16:11:40 -06:00
parent 7e8873fd1a
commit d48e023234
11 changed files with 45080 additions and 11 deletions
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
+12 -3
View File
@@ -4,15 +4,24 @@
#include <string> #include <string>
#include <vector> #include <vector>
enum SortType {INSERTION = 0, MERGE, HEAP};
class Sorter class Sorter
{ {
private: private:
std::string filename; std::string filename;
std::vector<std::string> wordList; int lineCount;
std::vector<std::string> originalWordList;
std::vector<std::string> newWordList;
SortType currentType;
public: public:
void SetFileName(std::string newName); Sorter(std::string newFilename);
std::string GetFileName(void); std::string GetFilename(void);
void SetFilename(std::string newName);
void SetWordList(void); void SetWordList(void);
void RunSorts(void);
void OutputResult(void);
void PrintToFile(std::string outputFilename);
void InsertionSort(void); void InsertionSort(void);
void MergeSort(void); void MergeSort(void);
void HeapSort(void); void HeapSort(void);
Binary file not shown.
+2 -3
View File
@@ -2,8 +2,7 @@
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
Sorter newSort; Sorter newSort(argv[1]);
newSort.SetFileName(argv[1]); newSort.RunSorts();
newSort.SetWordList();
return 0; return 0;
} }
+64 -3
View File
@@ -4,12 +4,20 @@
#include <string> #include <string>
#include <vector> #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; this->filename = newName;
} }
std::string Sorter::GetFileName(void) std::string Sorter::GetFilename(void)
{ {
return this->filename; return this->filename;
} }
@@ -24,10 +32,63 @@ void Sorter::SetWordList(void)
exit(1); exit(1);
} }
while (getline(file, bufferStr)) while (getline(file, bufferStr))
wordList.push_back(bufferStr); {
originalWordList.push_back(bufferStr);
lineCount++;
}
return; 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) void Sorter::InsertionSort(void)
{ {
; ;
View File
+15000
View File
File diff suppressed because it is too large Load Diff
+15000
View File
File diff suppressed because it is too large Load Diff
+15000
View File
File diff suppressed because it is too large Load Diff