school/cs142/lab08/main.cpp

107 lines
3.5 KiB
C++
Raw Normal View History

2016-04-06 20:45:34 -07:00
#include <iostream>
#include <vector>
using namespace std;
#include "person.h"
void display_list_of_friends(vector<person> & p) {
for(unsigned int i = 0; i < p.size(); i++) {
cout << p[i].name << endl;
cout << "\t" << p[i].fav_food << endl;
cout << "\tlist of friends: " << endl;
for(unsigned int j = 0; j < p[i].friends.size(); j++) {
cout << "\t\t" << p[i].friends[j] << endl;;
}
}
}
int get_person(vector<person> & p, string name) {
int position = -1;
for(unsigned int i = 0; i < p.size(); i++) {
if(p[i].name == name) {
position = i;
break;
}
}
return position;
}
int main() {
vector<person> people;
string selection;
while(1) {
cout << "1)add person\n2)display all people\n3)add friend\n4)remove friend" << endl;
cout << "5)modify food\n6)display friends/food" << endl;
cin >> selection;
if(selection[0] == '1') { //optimized
string name, food;
cout << "what is the persons name followed by favorite food on a new line " << endl;
cin.ignore();
getline(cin, name);
getline(cin, food);
person p = person(name, food);
int p1 = get_person(people, p.name);
if(p1 == -1) {
people.push_back(p);
}
}
else if(selection[0] == '2') { //optimized
display_list_of_friends(people);
}
else if(selection[0] == '3') { //optimized
cout << "which relationship do you want to start (enter two names, seperated by newlines)?" << endl;
string first, second;
cin.ignore();
getline(cin, first);
getline(cin, second);
int p1 = get_person(people, first);
int p2 = get_person(people, second);
if(p1 != -1 and p2 != -1 and first!= second) {
people[p1].add_friend(second);
people[p2].add_friend(first);
}
}
else if(selection[0] == '4') { //optimized
cout << "which relationship do you want to end (enter two names, seperated by newlines)?" << endl;
string first, second;
cin.ignore();
getline(cin, first);
getline(cin, second);
int p1 = get_person(people, first);
int p2 = get_person(people, second);
if (p1 != -1 and p2 != -1) {
people[p1].delete_friend(people[p2].name);
people[p2].delete_friend(people[p1].name);
}
}
else if(selection[0] == '5') { //optimized
string name;
cout << "what is the name of the person to whom you would like to modify fav food?" << endl;
cin.ignore();
getline(cin, name);
int p1 = get_person(people, name);
if(p1 != -1) {
string new_food;
cout << "what food do you want to add?" << endl;
getline(cin, new_food);
people[p1].modify_food(new_food);
}
}
else if(selection[0] == '6') {
cout << "What is the name of the person to whom you would like to view friends with same food?" << endl;
string name;
cin.ignore();
getline(cin, name);
int p1 = get_person(people, name);
if(p1 != -1) {
people[p1].display_person(people);
}
}
else if(selection[0] == 'q') {
break;
}
}
}