View difference between Paste ID: z1GgLPs6 and 99E7r6Yh
SHOW: | | - or go back to the newest paste.
1
#include "City.h"
2
#include <iostream>
3
#include <string>
4
#include <vector>
5
6
using namespace std;
7
8-
//Helper function for print(), allows for coordinates to be lined up.
8+
9-
string even_spacing(string name) {
9+
10-
   int amount = NAME_LIMIT - name.length();
10+
11-
   return string(amount, ' ');
11+
12
      cout << "[" << (count + 1) << "]" ;
13
      cout << city_list[count].get_name() << " | "
14
           << "(" << city_list[count].get_location().get_x()
15
           << ", " << city_list[count].get_location().get_y() << ")\n";
16
   }
17-
   cout << "    Name:               | Location:\n";
17+
18
19-
      cout << "[" << (count + 1);
19+
20-
      cout << city_list[count].get_name()
20+
21-
           << even_spacing(city_list[count].get_name()) << "| "
21+
22
   string input;
23
   Point location = Point();
24
   bool okay = false;
25
   cout << "\nPlease enter the name of the city you're adding:\n";
26
   cin.ignore(INT_MAX,'\n');
27
   while(!okay) {
28
      cin.clear();
29
      getline(cin, input);
30
      if(cin.fail()) {
31
         cerr << "\n\aERROR: Entry not Valid!\n"
32
              << "Please try again:\n";
33
      }
34
      else {
35
         name = input;
36
         okay = true;
37
      }
38
   }
39
   cin.clear();
40
41
   cout << "\nPlease enter the coordinates of the city "
42
        << "you're adding in (x,y) format:\n";
43
   location.Input();
44
   city_list.push_back(City(location, name));
45
   return city_list;
46
}
47
48
//Allows the user to find the distance between two chosen cities
49
void print_distance(vector<City> city_list) {
50
   int i,j;
51
   if(city_list.size() != 2) {
52
      cout << "\nPlease select a city from the list to be your first point:\n";
53
      print(city_list);
54
      bool okay = false;
55
      while(!okay) {
56
         cin >> i;
57
         if(i < city_list.size() && i >= 0) {
58
            okay = true;
59
         }
60
         else {
61
            cerr << "\n\aERROR: Entry not Valid!\n";
62
         }
63
      }
64
      cout << "\nPlease select a city from the list to be your second point:\n";
65
      okay = false;
66
      while(!okay) {
67
         cin >> j;
68
         if(j <= city_list.size()) {
69
            okay = true;
70
         }
71
         else if(i == j){
72
            cerr << "\n\aERROR: Choose a city other than "
73
                 << city_list[i-1].get_name() << ".\n";
74
         }
75
         else {
76
            cerr << "\n\aERROR: Entry not Valid!\n";
77
         }
78
      }
79
   }
80
   else {
81
      i = 1;
82
      j = 2;
83
   }
84
   cout << "\nThe distance between " << city_list[i-1].get_name() << " and "
85
        << city_list[j-1].get_name() << " is:\n"
86
        << city_list[i-1].distance(city_list[j-1]);
87
}
88
89
int main() {
90
   vector<City> city_list;
91
   bool quit = false;
92
   cout << "\n\n\t\t\tWelcome to City Select";
93
   while(!quit){
94
      cout << "\n\nPlease select one of the following options:"
95
           << "\n1) Enter city Information"
96
           << "\n2) calculate Distance between two cities"
97
           << "\n3) Print all cities"
98
           << "\n4) Quit\n\n";
99
      char i;
100
      bool notValid = false;
101
      do {
102
         cin >> i;
103
         if(i == '1' || i == 'E' || i == 'e'){
104
            city_list = enter_info(city_list);
105
         }
106
         else if(i == '2' || i == 'D' || i == 'd'){
107
            if(city_list.size() >= 2) {
108
               print_distance(city_list);
109
            }
110
            else {
111
               cerr << "\n\aERROR: Entry not Valid!\n"
112
                    << "Please have 2+ cities stored before" 
113
                    << "calculating a distance.\n";
114
            }
115
         }
116
         else if(i == '3' || i == 'P' || i == 'p'){
117
            print(city_list);
118
         }
119
         else if(i == '4' || i == 'Q' || i == 'q'){
120
            quit = true;
121
         }
122
         else {
123
            notValid = true;
124
         }
125
      }while(notValid);
126
   }
127
   return 0;
128
}