From d3689fd9e12070126d2c3f0141a1f14e4521e055 Mon Sep 17 00:00:00 2001 From: Elijah Opoku-Nyarko Date: Sun, 17 Apr 2022 22:34:01 -0400 Subject: [PATCH] Completed printAll function - Still needs more testing. Also modified the main function in project5.cc --- project5 | Bin 155840 -> 157416 bytes project5.cc | 62 ++++++++++++++++++++++++++++------------- province.cc | 31 ++++++++++++++++++++- test-data/project4.out | 43 ++++++++++++++++++++-------- 4 files changed, 105 insertions(+), 31 deletions(-) diff --git a/project5 b/project5 index cf35b8d0242a24ce53a0223f3a9d36c717ce7753..e7437f62a3c266a8988c35a9b6c88586e0a8d6a0 100755 GIT binary patch delta 33307 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 Fe*ynBFD3v0 delta 29968 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 diff --git a/project5.cc b/project5.cc index 4b8cacb..b29a904 100644 --- a/project5.cc +++ b/project5.cc @@ -1,27 +1,51 @@ -/** - * @file project5.cc - * @author Elijah Opoku-Nyarko and Jake Colbert - * @brief - * @version 0.1 - * @date 2022-04-14 - * - * @copyright Copyright (c) 2022 - * - * Project 5 main file - */ +/* +* @file: project5.cc +* +*@brief: +* Main program for CPS222 project 5 - test driver to read in a graph +* from standard input and test the read graph +* +* @Authors: Elijah Opoku-Nyarko & Jake Colbert +*/ #include #include -#include - -#include "province.h" +#include "./province.h" using namespace std; -int main() { - while(!cin.eof()) { - Province theProvince(cin); - theProvince.printAll(0, cout); - } +/* +* check if we are at the end of the file +*/ +bool eof() { + char c; + std::cin >> c; + // if the fie is ended, return true + if (std::cin.eof()) { + return true; + } else { + // if the file contains more data, return the previously gotten + // data to cin + std::cin.unget(); + return false; + } } +int main(int argc, char *argv[]) { + // Repeatedly read input from standard input + while (!eof()) { + // create a new graph for each loop, which will read all of the + // corresponding data per graph + Province theProvince(cin); + + std::cout << std::endl; + std::cout << "------------------------------------------------" << std::endl; + std::cout << "---------------- New DataSet: ------------------" << std::endl; + std::cout << "------------------------------------------------" << std::endl; + std::cout << std::endl; + + theProvince.printAll(0, cout); + + + } +} diff --git a/province.cc b/province.cc index 55f0948..44ab552 100644 --- a/province.cc +++ b/province.cc @@ -33,7 +33,7 @@ Province::Province(std::istream & source) { // Read town names for (int i = 0; i < _numberOfTowns; i++) { source >> _towns[i]._name; // This needs to be converted to vector, im not sure how exactly - cout << "This is the name: " << &_towns[i]._name << endl; + //cout << "This is the name: " << &_towns[i]._name << endl; townMap[_towns[i]._name] = i; } @@ -88,6 +88,35 @@ void Province::printAll(int start, std::ostream & output) { output << " "; output << _towns[current]._name << endl; + + // Enqueue current vertex's unscheduled neighbors + for (Town::RoadList::iterator neighbor = _towns[current]._roads.begin(); + neighbor != _towns[current]._roads.end(); neighbor++) { + std::string neighborName = _towns[neighbor->_head]._name; + + output << " "; + output << neighborName << " " << neighbor->_length << " mi"; + + // if the type is bridge, then add to output + if (neighbor ->_isBridge) { + output << " via bridge"; + } + + output << endl; + + int head = neighbor ->_head; + + // If neighbour is not scheduled, add neighbor to the queue + if (!scheduled[head]) { + toVisit.push(head); + scheduled[head] = true; + } + } } + output << endl << endl; + } + + + diff --git a/test-data/project4.out b/test-data/project4.out index 1673102..54ed61d 100644 --- a/test-data/project4.out +++ b/test-data/project4.out @@ -1,18 +1,39 @@ -This is the name: 0x600000610008 -This is the name: 0x600000610038 -This is the name: 0x600000610068 -This is the name: 0x600000610098 -This is the name: 0x6000006100c8 + +------------------------------------------------ +---------------- New DataSet: ------------------ +------------------------------------------------ + The input data is: Salem -This is the name: 0x600001110008 -This is the name: 0x600001110038 + Beverly 2.4 mi via bridge + Danvers 3.7 mi via bridge + Lynn 4.9 mi + Beverly + Danvers 2.9 mi + Salem 2.4 mi via bridge + Wenham 5.2 mi + Danvers + Beverly 2.9 mi + Wenham 4.2 mi + Salem 3.7 mi via bridge + Lynn + Salem 4.9 mi + Wenham + Beverly 5.2 mi + Danvers 4.2 mi + + + +------------------------------------------------ +---------------- New DataSet: ------------------ +------------------------------------------------ + The input data is: Wenham -This is the name: 0x600001110078 -This is the name: 0x6000011100a8 -The input data is: + Hamilton 1 mi + Hamilton + Wenham 1 mi + -