Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct MonthlyBudget {
- double housing;
- double utilities;
- double expenses;
- double transportation;
- double food;
- double medical;
- double insurance;
- double entertainment;
- double clothing;
- double misc;
- };
- MonthlyBudget getAmount(MonthlyBudget, double[], string[]);
- double validate(double, string);
- void budgetLimit(double, double);
- void showBudget(MonthlyBudget, double[], string[]);
- int main() {
- string monthly_budget_type[10] = {
- "housing",
- "utilities",
- "household expenses",
- "transportation",
- "food",
- "medical",
- "insurance",
- "entertainment",
- "clothing",
- "misc"
- };
- double budgetLimit[10] = {
- 500.00, 150.00, 65.00, 50.00, 250.00,
- 30.00, 100.00, 150.00, 75.00, 50.00
- };
- MonthlyBudget user;
- user = getAmount(user, budgetLimit, monthly_budget_type);
- showBudget(user, budgetLimit, monthly_budget_type);
- return 0;
- }
- MonthlyBudget getAmount(MonthlyBudget data, double limit[], string type[]) {
- for(int i = 0; i < 10; i++) {
- switch (i) {
- case 0: data.housing = validate(data.housing, type[i]);
- break;
- case 1: data.utilities = validate(data.utilities, type[i]);
- break;
- case 2: data.expenses = validate(data.expenses, type[i]);
- break;
- case 3: data.transportation = validate(data.transportation, type[i]);
- break;
- case 4: data.food = validate(data.food, type[i]);
- break;
- case 5: data.medical = validate(data.medical, type[i]);
- break;
- case 6: data.insurance = validate(data.insurance, type[i]);
- break;
- case 7: data.entertainment = validate(data.entertainment, type[i]);
- break;
- case 8: data.clothing = validate(data.clothing, type[i]);
- break;
- case 9: data.misc = validate(data.misc, type[i]);
- break;
- }
- }
- return data;
- }
- void budgetLimit(double amount, double limit) {
- if(amount >= limit) {
- amount -= limit;
- cout << ". The limit is $" << limit << ", you are $" << amount << " over the limit." << endl;
- }
- else {
- amount = limit - amount;
- cout << ". The limit is $" << limit << ", you are $" << amount << " under the limit." << endl;
- }
- }
- void showBudget(MonthlyBudget data, double limit[], string type[]) {
- cout << endl;
- for(int i = 0; i < 10; i++) {
- switch (i) {
- case 0: cout << "Amount spent in " << type[i] << ": $" << data.housing;
- budgetLimit(data.housing, limit[i]);
- break;
- case 1: cout << "Amount spent in " << type[i] << ": $" << data.utilities;
- budgetLimit(data.utilities, limit[i]);
- break;
- case 2: cout << "Amount spent in " << type[i] << ": $" << data.expenses;
- budgetLimit(data.expenses, limit[i]);
- break;
- case 3: cout << "Amount spent in " << type[i] << ": $" << data.transportation;
- budgetLimit(data.transportation, limit[i]);
- break;
- case 4: cout << "Amount spent in " << type[i] << ": $" << data.food;
- budgetLimit(data.food, limit[i]);
- break;
- case 5: cout << "Amount spent in " << type[i] << ": $" << data.medical;
- budgetLimit(data.medical, limit[i]);
- break;
- case 6: cout << "Amount spent in " << type[i] << ": $" << data.insurance;
- budgetLimit(data.insurance, limit[i]);
- break;
- case 7: cout << "Amount spent in " << type[i] << ": $" << data.entertainment;
- budgetLimit(data.entertainment, limit[i]);
- break;
- case 8: cout << "Amount spent in " << type[i] << ": $" << data.clothing;
- budgetLimit(data.clothing, limit[i]);
- break;
- case 9: cout << "Amount spent in " << type[i] << ": $" << data.misc;
- budgetLimit(data.misc, limit[i]);
- break;
- }
- }
- }
- double validate(double amount, string budgetType) {
- cout << "Enter the amount spent for " << budgetType << ": $";
- cin >> amount;
- while(cin.fail()) {
- cin.clear();
- cin.ignore(256, '\n');
- cout << "Enter the amount spent for " << budgetType << "(digits only): $";
- cin >> amount;
- }
- return amount;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement