You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
4.3 KiB
162 lines
4.3 KiB
#include "interestCalculator.h"
|
|
|
|
|
|
void troubleshoot(int errorCode){
|
|
printf("Error! The requested operation was terminated because of an issue. Here are some details about the error:\n---------------\n");
|
|
|
|
switch(errorCode){
|
|
case 0:
|
|
printf("Principal amount not valid. Make sure it is a valid number over the value of zero.");
|
|
break;
|
|
case 1:
|
|
printf("Interest rate not valid. Make sure it is a valid number over the value of zero.");
|
|
break;
|
|
case 2:
|
|
printf("Duration not valid. Make sure it is a valid number over the value of zero.");
|
|
break;
|
|
case 3:
|
|
printf("Invalid option. Aborting.");
|
|
break;
|
|
case 4:
|
|
printf("Your goal cannot be smaller than your principal funds. Aborting.");
|
|
break;
|
|
}
|
|
}
|
|
|
|
void askForSavingGoal(float principalAmount, float accInterestPerYear) {
|
|
char c;
|
|
float goal;
|
|
float timeForGoal;
|
|
|
|
printf("\nWould you like to set a saving goal? [y/n]: ");
|
|
scanf(" %c", &c);
|
|
|
|
if (c != 'y' && c != 'Y') {
|
|
return;
|
|
}
|
|
|
|
printf("\nPlease enter your goal amount in €: ");
|
|
scanf("%f", &goal);
|
|
|
|
if (goal < principalAmount) {
|
|
troubleshoot(4);
|
|
return;
|
|
}
|
|
|
|
timeForGoal = (goal - principalAmount) / accInterestPerYear;
|
|
printf("\nIn %.1f years you will reach your goal of %.2f.\n", timeForGoal, goal);
|
|
}
|
|
|
|
|
|
float initiateInterest(float principalAmount, float interest, float time){
|
|
return principalAmount*(1+(interest*time));
|
|
}
|
|
|
|
void calculateYearlyInterest(){
|
|
float principalAmount;
|
|
float interestPerYear;
|
|
float timeInYears;
|
|
int choice;
|
|
|
|
printf("Please enter the principal amount:");
|
|
if (scanf("%f", &principalAmount) != 1 || principalAmount <= 0) {
|
|
troubleshoot(0);
|
|
return;
|
|
}
|
|
|
|
printf("\nPlease enter interest per year (percentage):");
|
|
if (scanf("%f", &interestPerYear) != 1 || interestPerYear <= 0) {
|
|
troubleshoot(0);
|
|
return;
|
|
}
|
|
printf("\nWould you like to enter the time in [1]months or in [2]years?\n");
|
|
scanf("%d",&choice);
|
|
if(choice==1){
|
|
printf("\nPlease enter interest time in months:");
|
|
if (scanf("%f", &timeInYears) != 1 || timeInYears <= 0) {
|
|
troubleshoot(2);
|
|
return;
|
|
}
|
|
timeInYears=timeInYears/12;
|
|
|
|
}else if(choice==2){
|
|
printf("\nPlease enter interest time in years:");
|
|
if (scanf("%f", &timeInYears) != 1 || timeInYears <= 0) {
|
|
troubleshoot(2);
|
|
return;
|
|
}
|
|
}else{
|
|
troubleshoot(2);
|
|
}
|
|
|
|
|
|
|
|
float interestDecimal=interestPerYear/100;
|
|
|
|
float result= initiateInterest(principalAmount,interestDecimal,timeInYears);
|
|
printf("\nAmount with the interest is %.2f€.",result);
|
|
askForSavingGoal(principalAmount,principalAmount*interestDecimal);
|
|
}
|
|
void calculateMonthlyInterest(){
|
|
float principalAmount;
|
|
float interestPerMonth;
|
|
float timeInMonths;
|
|
|
|
printf("Please enter the principal amount:");
|
|
if (scanf("%f", &principalAmount) != 1 || principalAmount <= 0) {
|
|
troubleshoot(0);
|
|
return;
|
|
}
|
|
|
|
printf("\nPlease enter interest per month (percentage):");
|
|
if (scanf("%f", &interestPerMonth) != 1 || interestPerMonth <= 0) {
|
|
troubleshoot(0);
|
|
return;
|
|
}
|
|
|
|
printf("\nPlease enter interest time in months:");
|
|
if (scanf("%f", &timeInMonths) != 1 || timeInMonths <= 0) {
|
|
troubleshoot(2);
|
|
return;
|
|
}
|
|
|
|
float interestDecimal=interestPerMonth/100;
|
|
|
|
float result= initiateInterest(principalAmount,interestDecimal,timeInMonths);
|
|
printf("\nAmount with the interest is %.2f€.",result);
|
|
}
|
|
|
|
void initiateCalculator() {
|
|
int input;
|
|
char c;
|
|
|
|
printf("Welcome to the interest calculator. Please select an option:\n"
|
|
"[1] Calculate yearly interest\n"
|
|
"[2] Calculate monthly interest\n");
|
|
scanf("%d", &input);
|
|
|
|
switch (input) {
|
|
case 1:
|
|
calculateYearlyInterest();
|
|
break;
|
|
case 2:
|
|
calculateMonthlyInterest();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
printf("\nThank you for using our services. Would you like to do another calculation? [y/n]: ");
|
|
scanf(" %c", &c);
|
|
|
|
if (c == 'y' || c == 'Y') {
|
|
initiateCalculator();
|
|
}
|
|
}
|
|
|
|
|
|
// int main(){
|
|
|
|
// initiateCalculator();
|
|
|
|
// }
|