Advertisement
dmaisano

Project 11

Nov 17th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.13 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct MonthlyBudget {
  5.   double housing;
  6.   double utilities;
  7.   double expenses;
  8.   double transportation;
  9.   double food;
  10.   double medical;
  11.   double insurance;
  12.   double entertainment;
  13.   double clothing;
  14.   double misc;
  15. };
  16.  
  17. MonthlyBudget getAmount(MonthlyBudget, double[], string[]);
  18.  
  19. double validate(double, string);
  20. void budgetLimit(double, double);
  21. void showBudget(MonthlyBudget, double[], string[]);
  22.  
  23. int main() {
  24.   string monthly_budget_type[10] = {
  25.     "housing",
  26.     "utilities",
  27.     "household expenses",
  28.     "transportation",
  29.     "food",
  30.     "medical",
  31.     "insurance",
  32.     "entertainment",
  33.     "clothing",
  34.     "misc"
  35.   };
  36.  
  37.   double budgetLimit[10] = {
  38.     500.00, 150.00, 65.00, 50.00, 250.00,
  39.     30.00, 100.00, 150.00, 75.00, 50.00
  40.   };
  41.  
  42.   MonthlyBudget user;
  43.  
  44.   user = getAmount(user, budgetLimit, monthly_budget_type);
  45.   showBudget(user, budgetLimit, monthly_budget_type);
  46.  
  47.     return 0;
  48. }
  49.  
  50. MonthlyBudget getAmount(MonthlyBudget data, double limit[], string type[]) {
  51.   for(int i = 0; i < 10; i++) {
  52.     switch (i) {
  53.       case 0: data.housing = validate(data.housing, type[i]);
  54.         break;
  55.       case 1: data.utilities = validate(data.utilities, type[i]);
  56.         break;
  57.       case 2: data.expenses = validate(data.expenses, type[i]);
  58.         break;
  59.       case 3: data.transportation = validate(data.transportation, type[i]);
  60.         break;
  61.       case 4: data.food = validate(data.food, type[i]);
  62.         break;
  63.       case 5: data.medical = validate(data.medical, type[i]);
  64.         break;
  65.       case 6: data.insurance = validate(data.insurance, type[i]);
  66.         break;
  67.       case 7: data.entertainment = validate(data.entertainment, type[i]);
  68.         break;
  69.       case 8: data.clothing = validate(data.clothing, type[i]);
  70.         break;
  71.       case 9: data.misc = validate(data.misc, type[i]);
  72.         break;
  73.     }
  74.   }
  75.  
  76.   return data;
  77. }
  78.  
  79. void budgetLimit(double amount, double limit) {
  80.   if(amount >= limit) {
  81.     amount -= limit;
  82.     cout << ". The limit is $" << limit << ", you are $" << amount << " over the limit." << endl;
  83.   }
  84.   else {
  85.     amount = limit - amount;
  86.     cout << ". The limit is $" << limit << ", you are $" << amount << " under the limit." << endl;
  87.   }
  88. }
  89.  
  90. void showBudget(MonthlyBudget data, double limit[], string type[]) {
  91.   cout << endl;
  92.   for(int i = 0; i < 10; i++) {
  93.     switch (i) {
  94.       case 0: cout << "Amount spent in " << type[i] << ": $" << data.housing;
  95.         budgetLimit(data.housing, limit[i]);
  96.         break;
  97.       case 1: cout << "Amount spent in " << type[i] << ": $" << data.utilities;
  98.         budgetLimit(data.utilities, limit[i]);
  99.         break;
  100.       case 2: cout << "Amount spent in " << type[i] << ": $" << data.expenses;
  101.         budgetLimit(data.expenses, limit[i]);
  102.         break;
  103.       case 3: cout << "Amount spent in " << type[i] << ": $" << data.transportation;
  104.         budgetLimit(data.transportation, limit[i]);
  105.         break;
  106.       case 4: cout << "Amount spent in " << type[i] << ": $" << data.food;
  107.         budgetLimit(data.food, limit[i]);
  108.         break;
  109.       case 5: cout << "Amount spent in " << type[i] << ": $" << data.medical;
  110.         budgetLimit(data.medical, limit[i]);
  111.         break;
  112.       case 6: cout << "Amount spent in " << type[i] << ": $" << data.insurance;
  113.         budgetLimit(data.insurance, limit[i]);
  114.         break;
  115.       case 7: cout << "Amount spent in " << type[i] << ": $" << data.entertainment;
  116.         budgetLimit(data.entertainment, limit[i]);
  117.         break;
  118.       case 8: cout << "Amount spent in " << type[i] << ": $" << data.clothing;
  119.         budgetLimit(data.clothing, limit[i]);
  120.         break;
  121.       case 9: cout << "Amount spent in " << type[i] << ": $" << data.misc;
  122.         budgetLimit(data.misc, limit[i]);
  123.         break;
  124.     }
  125.   }
  126. }
  127.  
  128. double validate(double amount, string budgetType) {
  129.   cout << "Enter the amount spent for " << budgetType << ": $";
  130.     cin >> amount;
  131.  
  132.     while(cin.fail()) {
  133.         cin.clear();
  134.         cin.ignore(256, '\n');
  135.         cout << "Enter the amount spent for " << budgetType << "(digits only): $";
  136.         cin >> amount;
  137.     }
  138.  
  139.   return amount;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement