void displayAccounts(int *aPtr, float *irPtr, float *iaPtr, int accountNum) { int choice = 0; printf("Account#: %d\n",accountNum+1); printf("\tBalance:\t%d\n",*(aPtr+accountNum)); printf("\tInterest Rate:\t%.2f\n",*(irPtr+accountNum)); printf("\tInterest:\t%.2f\n",*(iaPtr+accountNum)); printf("Select one of the following options:\n"); printf("1 - Deposit\n"); printf("2 - Withdraw\n"); printf("3 - Done\n"); scanf("%d",&choice); while(choice<1 || choice >3) { printf("You have entered an invalid option. Please choose again.\n"); printf("Please select one of the following options:\n"); printf("1 - Deposit\n"); printf("2 - Withdraw\n"); printf("3 - Done\n"); scanf("%d",&choice); } if(choice==1) { deposit(aPtr, accountNum); calculateInterest(aPtr, irPtr, iaPtr, accountNum); printf("Account#: %d\n",accountNum+1); printf("\tBalance:\t%d\n",*(aPtr+accountNum)); printf("\tInterest Rate:\t%.2f\n",*(irPtr+accountNum)); printf("\tInterest:\t%.2f\n",*(iaPtr+accountNum)); } else if(choice==2) { withdraw(aPtr, accountNum); calculateInterest(aPtr, irPtr, iaPtr, accountNum); printf("Account#: %d\n",accountNum+1); printf("\tBalance:\t%d\n",*(aPtr+accountNum)); printf("\tInterest Rate:\t%.2f\n",*(irPtr+accountNum)); printf("\tInterest:\t%.2f\n",*(iaPtr+accountNum)); } else { printf("Account#: %d\n",accountNum+1); printf("\tBalance:\t%d\n",*(aPtr+accountNum)); printf("\tInterest Rate:\t%.2f\n",*(irPtr+accountNum)); printf("\tInterest:\t%.2f\n",*(iaPtr+accountNum)); } return; }
/* Takes all of the variables to create the output table */ void outputToTable(double rate, double borrowed, double payment) { printf("\nr = %.2lf\nB = %.2lf\nP = %.2lf \n\n", rate, borrowed, payment); // Prints original info. double balance = borrowed; double interest = 0, totalI = 0; int month = 1; while (balance > 0) { interest = calculateInterest(rate, borrowed, payment, balance); totalI += interest; printf("%d %.2lf %.2lf\n", month, interest, balance); balance = (balance - payment) + interest; month++; if (balance <= 0) { // Prints pay-off point interest = calculateInterest(rate, borrowed, payment, balance); printf("%d %.2lf %.2lf\n", month, interest, balance); } } printf("\ntotal interest paid: $%.2lf\n\n", totalI); }
uint64_t Currency::calculateTotalTransactionInterest(const Transaction& tx, uint32_t height) const { uint64_t interest = 0; for (const TransactionInput& input : tx.inputs) { if (input.type() == typeid(MultisignatureInput)) { const MultisignatureInput& multisignatureInput = boost::get<MultisignatureInput>(input); if (multisignatureInput.term != 0) { interest += calculateInterest(multisignatureInput.amount, multisignatureInput.term, height); } } } return interest; }
uint64_t Currency::getTransactionInputAmount(const TransactionInput& in, uint32_t height) const { if (in.type() == typeid(KeyInput)) { return boost::get<KeyInput>(in).amount; } else if (in.type() == typeid(MultisignatureInput)) { const MultisignatureInput& multisignatureInput = boost::get<MultisignatureInput>(in); if (multisignatureInput.term == 0) { return multisignatureInput.amount; } else { return multisignatureInput.amount + calculateInterest(multisignatureInput.amount, multisignatureInput.term, height); } } else if (in.type() == typeid(BaseInput)) { return 0; } else { assert(false); return 0; } }
//Show Menu void SavingAccount::showMenu() { char choice; do { system("cls"); cout<<"+========================================+"<<endl; cout<<"| Saving Account Management |"<<endl; cout<<"+========================================+"<<endl; cout<<"| 1. View Balance |"<<endl; cout<<"| 2. View Interest Amount |"<<endl; cout<<"| 3. Credit |"<<endl; cout<<"| 4. Debit |"<<endl; cout<<"| 0. Exit to main menu |"<<endl; cout<<"+----------------------------------------+"<<endl; cout<<"| Your selection(0->2): "; fflush(stdin); cin>>choice; if(choice=='0') break; switch(choice) { case '1': viewBalance(); break; case '2': calculateInterest(); break; case '3': credit(); break; case '4': debit(); break; default: cout<<"Wrong choice!"<<endl; system("pause"); break; } }while(1); }
int main() { int accounts[100]; float interestRate[100]; float interestAmmount[100]; int *aPtr = &accounts[0]; float *irPtr = &interestRate[0]; float *iaPtr = &interestAmmount[0]; srand(time(NULL)); int accountNum = 0; initializeAccounts(aPtr); generateInterest(irPtr); calculateInterest(aPtr, irPtr, iaPtr); for(int j = 0; j < 100; j++) { displayAccounts(aPtr, irPtr, iaPtr, accountNum); accountNum++; } return 0; }