Setup output to file and sort methods (not implemented)
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
+12
-3
@@ -4,15 +4,24 @@
|
||||
#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);
|
||||
|
||||
Binary file not shown.
+2
-3
@@ -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;
|
||||
}
|
||||
|
||||
+64
-3
@@ -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)
|
||||
{
|
||||
;
|
||||
|
||||
+15000
File diff suppressed because it is too large
Load Diff
+15000
File diff suppressed because it is too large
Load Diff
+15000
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user