#include "DataBase.h" /////////////////////////////////////////////////////////////////////////////// // // Member Object Definition: // DataBase::DataBase() // // Preconditions: None // // Postconditions: DataBase has been intialized and the array of student and items have been inputed // with the appropriate informtion // // Parameters: // None // DataBase::DataBase() { ifstream inItems; ifstream inStudents; inItems.open("items.data"); inStudents.open("students.data"); assert(!inItems.fail()); assert(!inStudents.fail()); int Counter=0; string Input; // Inputs the information required for the Item array while(inItems) { getline(inItems, Input, '\n'); if(Input == "@Item:") { getline(inItems, Input, '\n'); ItemList[Counter].SetName(Input); } else if(Input == "@Media Type:") { getline(inItems, Input, '\n'); ItemList[Counter].SetType(Input); } else if(Input == "@by:") { getline(inItems, Input, '\n'); ItemList[Counter].SetAuthor(Input); } else if(Input == "@Owner:") { getline(inItems, Input, '\n'); ItemList[Counter].SetOwner(Input); } else if(Input == "@Price:") { getline(inItems, Input, '\n'); ItemList[Counter].SetPrice(Input); } else if(Input == "@Availability:") { getline(inItems, Input, '\n'); ItemList[Counter].SetAvailability(Input); } else if(Input == "@@" && ItemList[Counter].GetOwner() != "none") Counter++; else if(Input == "@@" && ItemList[Counter].GetOwner() == "none") { ItemList[Counter].SetAuthor("none"); ItemList[Counter].SetAvailability("none"); ItemList[Counter].SetName("none"); ItemList[Counter].SetOwner("none"); ItemList[Counter].SetPrice("none"); ItemList[Counter].SetType("none"); } else inItems >> ws; } // Inputs the information required for the student array Counter=0; while(inStudents) { getline(inStudents, Input, '\n'); if(Input == "@Name:") { getline(inStudents, Input, '\n'); StudentList[Counter].SetName(Input); } else if(Input == "@Phone Number:") { getline(inStudents, Input, '\n'); StudentList[Counter].SetPhone(Input); } else if(Input == "@E-mail:") { getline(inStudents, Input, '\n'); StudentList[Counter].SetEmail(Input); } else if(Input == "@Address Line 1:") { getline(inStudents, Input, '\n'); StudentList[Counter].SetStreetAddress(Input); } else if(Input == "@Address Line 2:") { getline(inStudents, Input, '\n'); StudentList[Counter].SetAptNumber(Input); } else if(Input == "@City:") { getline(inStudents, Input, '\n'); StudentList[Counter].SetCity(Input); } else if(Input == "@State:") { getline(inStudents, Input, '\n'); StudentList[Counter].SetState(Input); } else if(Input == "@Zipcode:") { getline(inStudents, Input, '\n'); StudentList[Counter].SetZipCode(Input); } else if(Input == "@Other:") { getline(inStudents, Input, '\n'); StudentList[Counter].SetOther(Input); } else if(Input == "@@" && StudentList[Counter].GetEmail() != "none") Counter++; else if(Input == "@@" && StudentList[Counter].GetEmail() == "none") { StudentList[Counter].SetAptNumber("none"); StudentList[Counter].SetCity("none"); StudentList[Counter].SetEmail("none"); StudentList[Counter].SetName("none"); StudentList[Counter].SetOther("none"); StudentList[Counter].SetPhone("none"); StudentList[Counter].SetState("none"); StudentList[Counter].SetStreetAddress("none"); StudentList[Counter].SetZipCode("none"); } else inItems >> ws; } inStudents.close(); inItems.close(); } void DataBase::PrintAllStudents(ostream & outFile) const { for(int i=0; i<100; i++) { if(StudentList[i].isEmpty() != true) StudentList[i].PrintStudent(outFile); } } void DataBase::PrintAllItems(ostream & outFile) const { for(int i=0; i<100; i++) { if(ItemList[i].isEmpty() != true) ItemList[i].PrintItem(outFile,true); } } void DataBase::PrintEmail(ostream & outFile, string emailin) const { bool find = false; for(int i=0; i<100; i++) { if(StudentList[i].GetEmail() == emailin) { StudentList[i].PrintStudent(outFile); find = true; break; } } if(find != true) { outFile << emailin << " not found." << endl; return; } for(int j=0; j<100; j++) { if(ItemList[j].GetOwner() == emailin) ItemList[j].PrintItem(outFile, false); } } void DataBase::AddItem(ostream & outFile, string namein, string typein, string authorin, string ownerin, string pricein, string availabilityin) { for(int j=0;j<100;j++) { if(StudentList[j].GetEmail() == ownerin) { for(int i=0;i<100;i++) { if(ItemList[i].GetOwner() == "none") { ItemList[i].SetAuthor(authorin); ItemList[i].SetAvailability(availabilityin); ItemList[i].SetName(namein); ItemList[i].SetOwner(ownerin); ItemList[i].SetPrice(pricein); ItemList[i].SetType(typein); outFile << "Success" << endl; return; } } } } outFile << "Failure" << endl; } void DataBase::AddStudent(ostream & outFile, string namein, string phonein, string emailin, string streetaddyin, string aptnumberin, string cityin, string statein, string zipcodein, string otherin) { for(int i=0;i<100;i++) { if(StudentList[i].GetEmail() == "none") { StudentList[i].SetAptNumber(aptnumberin); StudentList[i].SetCity(cityin); StudentList[i].SetEmail(emailin); StudentList[i].SetName(namein); StudentList[i].SetOther(otherin); StudentList[i].SetPhone(phonein); StudentList[i].SetState(statein); StudentList[i].SetStreetAddress(streetaddyin); StudentList[i].SetZipCode(zipcodein); outFile << "Success" << endl; return; } } outFile << "Failure" << endl; } /////////////////////////////////////////////////////////////////////////////// // // Member Object Definition: // DataBase::DeleteEmail(ostream & outFile, string emailin) // // Preconditions: DataBase must be intialized and student must have the matching email // // Postconditions: Removes the content of the student and every item assciocated with that email // and replaces it with the default values // // Parameters: // outFile Used to output the results/errors to the user. // emailin Used to the determine the email // void DataBase::DeleteEmail(ostream & outFile, string emailin) { bool erasecheck = false; for(int i=0;i<100;i++) { if(StudentList[i].GetEmail() == emailin) { StudentList[i].SetAptNumber("none"); StudentList[i].SetCity("none"); StudentList[i].SetEmail("none"); StudentList[i].SetName("none"); StudentList[i].SetOther("none"); StudentList[i].SetPhone("none"); StudentList[i].SetState("none"); StudentList[i].SetStreetAddress("none"); StudentList[i].SetZipCode("none"); erasecheck = true; } } for(int j=0;j<100;j++) { if(ItemList[j].GetOwner() == emailin) { ItemList[j].SetAuthor("none"); ItemList[j].SetAvailability("none"); ItemList[j].SetName("none"); ItemList[j].SetOwner("none"); ItemList[j].SetPrice("none"); ItemList[j].SetType("none"); erasecheck = true; } } if(erasecheck == true) outFile << "Success" << endl; else outFile << "Failure" << endl; return; }