以下是我的程序所基于的场景。
场景
一家信誉良好的银行已要求您创建一个个人财务管理程序。该程序将需要能够收取用户的每月工资,他们的每月账单以及可能发生的任何每周账单。然后将其分解,以找出剩下的多少工资。
用户应该能够输入任意数量的月度账单和周度账单。用户还应该可以选择从家庭中添加其他用户,以在计算中进行处理。
一旦包含了所有相关信息,就应按周,月和年成本输出帐单概览。
输入
用户名(必须大于1)
每月工资(必须大于1)
用户必须支付的不同账单(每人)
输出
用户名
每周,每月,每年的工资总额
每周,每月,每年的账单总计
在票据上花费的总额
剩下的全部要保存
可以保存的总数的10%以上
每月可以节省多少
每月可节省的总金额的10%以上
我满足了所有条件,除了可以将用户动态添加到数组的那一部分。我试图提出一个解决方案,但无济于事,我的工作不起作用。有谁知道为什么,或者有人知道我可以采用其他方法来获得可行的解决方案吗?
// Personal Finance Management.cpp : This file contains the 'main' function. Program execution begins and ends there. //
#include <iostream>
#include <string>
#include <vector>
#include <cctype>
using namespace std;
void Addusers(string *sUserName, int iArraySize)
{
for (int iCount = 0; iCount != iArraySize; iCount++)
{
cout << "\nEnter household member " << iCount + 1 << ": ";
getline(cin, sUserName[iCount]);
}
}
void AddMonthlyWage(string *sUserName, double *dMonthlyWage, const int &iArraySize)
{
for (int iCount = 0; iCount != iArraySize; iCount++)
{
cout << "\n" << "Enter monthly income for " << sUserName[iCount] << ": ";
cin >> dMonthlyWage[iCount];
}
}
void YearlyAmount(double *dYearlySalary,double *dMonthlyWage, string *sUserName, const int iArraySize)
{
for (int iCount = 0; iCount != iArraySize; iCount++)
{
dYearlySalary[iCount] = dMonthlyWage[iCount] * 12;
}
}
void WeeklyAmount(double *dYearlySalary, double *dWeeklySalary, string *sUserName, const int &iArraySize)
{
for (int iCount = 0; iCount < iArraySize; iCount++)
{
dWeeklySalary[iCount] = (dYearlySalary[iCount] /12) /4;
}
}
void BillAmounts(double *dYearlySalary, string *sUserName, double *dTotalBill, const int &iArraySize, double *dWaterBill, double *dElectricityBill)
{
const double dIncomeTax = 0.1;
for (int iCount = 0; iCount != iArraySize; iCount++)
{
cout << "\nPlease enter " << sUserName[iCount] << "'s water bill: ";
cin >> dWaterBill[iCount];
cout << "\nPlease enter " << sUserName[iCount] << "'s electricity bill: ";
cin >> dElectricityBill[iCount];
dTotalBill[iCount] = (dYearlySalary[iCount] * dIncomeTax) + dWaterBill[iCount] + dElectricityBill[iCount];
}
}
double CalculateMonthly(double dAmount)
{
double dCalculateMonthlyProcess = dAmount / 12;
return dCalculateMonthlyProcess;
}
double CalculateWeekly(double dAmount)
{
double dCalculateWeeklyProcess = dAmount / 54;
return dCalculateWeeklyProcess;
}
double MonthOver(double dAmount, double dPercentage)
{
double dPercentageUnder = dAmount + (dAmount * dPercentage);
return dPercentageUnder;
}
double TotalOverAndUnder(double dAmount, double dPercentage)
{
double dPercentageOver = dAmount + (dAmount * dPercentage);
return dPercentageOver;
}
void DisplayResults(string *sUserName, double *dMonthlyWage, double *dTotalBill, double *dYearlySalary,double *dWeeklySalary, const int &iArraySize, double *dTotalSavings, double *dPercentOver, double *dPercentUnder)
{
const double dPercentage = 0.1;
for (int iCount = 0; iCount < iArraySize; iCount++)
{
cout << "\nResults for: " << sUserName[iCount] << ".";
cout << "\nMonthly salary: £" << dMonthlyWage[iCount] << ".";
cout << "\nYearly salary is: £" << dYearlySalary[iCount] << ".";
cout << "\nWeekly salary is: £" << dWeeklySalary[iCount] << ".";
cout << "\nTotal spent on bills: £" << dTotalBill[iCount] << ".";
cout << "\nMonthly bill cost: £" << CalculateMonthly(dTotalBill[iCount]) << ".";
cout << "\nWeekly bill cost: £" << CalculateWeekly(dTotalBill[iCount]) << ".";
dTotalSavings[iCount] = dYearlySalary[iCount] - dTotalBill[iCount];
cout << "\nTotal savings: " << dTotalSavings[iCount];
dPercentOver[iCount] = dTotalSavings[iCount] + dTotalSavings[iCount] * 0.1;
cout << "\n" << dPercentage * 100 << "% over their total savings: £" << dPercentOver[iCount];
dPercentUnder[iCount] = dTotalSavings[iCount] - dTotalSavings[iCount] * 0.1;
cout << "\n" << dPercentage * 100 << "% under their total savings: £" << dPercentUnder[iCount];
cout << "\n";
}
}
//I'm trying to make a program that is dynamic and where the user will be able to enter how many family members they have and where subsequently the following arrays will have the size of what the user specified in "iArraySize".
//Does anyone know why this isn't working?
int main()
{
int iArraySize = 0;
string *sUserName = new string[iArraySize];
double *dMonthlyWage = new double[iArraySize];
double *dYearlySalary = new double[iArraySize];
double *dWeeklySalary = new double[iArraySize];
double *dTotalBills = new double[iArraySize];
//BILLS AMOUNT VARIABLES
double *dWaterBill = new double[iArraySize];
double *dElectricityBill = new double[iArraySize];
//DISPLAY RESULTS VARIABLES
double *dTotalSavings = new double[iArraySize];
double *dPercentOver = new double[iArraySize];
double *dPercentUnder = new double[iArraySize];
cout << "\nHow many members in your family?: ";
cin >> iArraySize;
//Procedure 1
Addusers(sUserName,iArraySize);
//Procedure 2
AddMonthlyWage(sUserName,dMonthlyWage,iArraySize);
//Procedure 3
YearlyAmount(dYearlySalary,dMonthlyWage, sUserName, iArraySize);
//Procedure 4
WeeklyAmount(dYearlySalary,dWeeklySalary, sUserName,iArraySize);
//Procedure 5
BillAmounts(dYearlySalary,sUserName,dTotalBills,iArraySize, dWaterBill, dElectricityBill);
//Procedure 6
DisplayResults(sUserName, dMonthlyWage,dTotalBills,dYearlySalary,dWeeklySalary, iArraySize, dTotalSavings,dPercentOver,dPercentUnder);
delete [] sUserName;
delete [] dMonthlyWage;
delete [] dYearlySalary;
delete [] dWeeklySalary;
delete [] dTotalBills;
delete [] dElectricityBill;
delete [] dTotalSavings;
delete [] dPercentOver;
delete [] dPercentUnder;
}