Skip to content
Snippets Groups Projects
Commit b871e4da authored by Džidić, Edvin's avatar Džidić, Edvin
Browse files

Implement style guide changes

parent bc44c3c4
No related branches found
No related tags found
No related merge requests found
//-----------------------------------------------------------------------------
// <filename>.c
//
// < Net income calculator loosely based on Austrian rules >
//
// Group: <04>
//
// Author: <11935369>
//-----------------------------------------------------------------------------
//
#include <stdio.h>
#include <stdbool.h>
//-----------------------------------------------------------------------------
///
/// This function asks for a number between 0 5000001, if it isn't one of those
/// it lets you know and asks for a number again.
///
/// @return int The number we asked for, which is the users Gross Income.
///
//-----------------------------------------------------------------------------
int askForIncome ()
{
int grossIncome;
int gross_income;
while (true)
{
printf("Ihr monatliches Bruttoeinkommen: ");
scanf(" %d", &grossIncome);
if(grossIncome <= 0 || grossIncome > 5000000)
scanf(" %d", &gross_income);
if (gross_income <= 0 || gross_income > 5000000)
{
printf("Invalide Eingabe!\n");
}else{
return grossIncome;
}
else
{
return gross_income;
}
}
}
//-----------------------------------------------------------------------------
///
/// This function calculates users social security contribution based on their
/// Gross Income.
///
/// @param gross_income Users Gross Income
///
/// @return double Users Social Security Contribution
///
//-----------------------------------------------------------------------------
double calculateSocialSecurityContribution (int grossIncome)
double calculateSocialSecurityContribution (int gross_income)
{
double contributionPercentage =
(grossIncome > 0 && grossIncome <= 460) ? 0 :
(grossIncome >= 461 && grossIncome <= 1733) ? 0.15 :
(grossIncome >= 1734 && grossIncome <= 1891) ? 0.16 :
(grossIncome >= 1892 && grossIncome <= 2049) ? 0.17 :
(grossIncome >= 2050) ? 0.18 : 0;
double contribution_percentage =
(gross_income > 0 && gross_income <= 460) ? 0 :
(gross_income >= 461 && gross_income <= 1733) ? 0.15 :
(gross_income >= 1734 && gross_income <= 1891) ? 0.16 :
(gross_income >= 1892 && gross_income <= 2049) ? 0.17 :
(gross_income >= 2050) ? 0.18 : 0;
return grossIncome >= 5370 ? 5370 * contributionPercentage : grossIncome * contributionPercentage;
return gross_income >= 5370 ? 5370 * contribution_percentage : gross_income * contribution_percentage;
}
double calculateIncomeTax (double calculationBasis)
//-----------------------------------------------------------------------------
///
/// This function calculates the users income tax.
///
/// @param calculationBasis Gross Income - Social Security contribution.
///
/// @return double Users Income Tax
///
//-----------------------------------------------------------------------------
double calculateIncomeTax (double calculation_basis)
{
double incomeTax = 0, localCalculationBasis = calculationBasis;
double income_tax = 0;
double local_calculation_basis = calculation_basis;
if(localCalculationBasis >= 1000){
incomeTax += 1000 * 0;
}else if(localCalculationBasis > 0){
incomeTax += localCalculationBasis * 0;
if(local_calculation_basis >= 1000)
{
income_tax += 1000 * 0;
}
else if (local_calculation_basis > 0)
{
income_tax += local_calculation_basis * 0;
}
localCalculationBasis -= 1000;
local_calculation_basis -= 1000;
if(localCalculationBasis >= 500){
incomeTax += 500 * 0.2;
}else if(localCalculationBasis > 0){
incomeTax += localCalculationBasis * 0.2;
if (local_calculation_basis >= 500)
{
income_tax += 500 * 0.2;
}
else if (local_calculation_basis > 0)
{
income_tax += local_calculation_basis * 0.2;
}
localCalculationBasis -= 500;
local_calculation_basis -= 500;
if(localCalculationBasis >= 1000){
incomeTax += 1000 * 0.3;
}else if(localCalculationBasis > 0){
incomeTax += localCalculationBasis * 0.3;
if (local_calculation_basis >= 1000)
{
income_tax += 1000 * 0.3;
}
else if (local_calculation_basis > 0)
{
income_tax += local_calculation_basis * 0.3;
}
localCalculationBasis -= 1000;
local_calculation_basis -= 1000;
if(localCalculationBasis >= 2500){
incomeTax += 2500*0.4;
}else if(localCalculationBasis > 0){
incomeTax += localCalculationBasis * 0.4;
if (local_calculation_basis >= 2500)
{
income_tax += 2500*0.4;
}
localCalculationBasis -= 2500;
else if (local_calculation_basis > 0)
{
income_tax += local_calculation_basis * 0.4;
}
local_calculation_basis -= 2500;
if(localCalculationBasis > 0){
incomeTax += localCalculationBasis * 0.5;
if (local_calculation_basis > 0)
{
income_tax += local_calculation_basis * 0.5;
}
return incomeTax;
return income_tax;
}
//-----------------------------------------------------------------------------
///
/// Asks user if they have children. If user gives unwanted answer, prompts again.
///
/// @return bool true or false depending on if user has children or not.
///
//-----------------------------------------------------------------------------
bool promptForChildren ()
{
char answer;
......@@ -93,21 +158,24 @@ bool promptForChildren ()
int main()
{
int grossIncome = askForIncome();
double socialSecurityContribution = calculateSocialSecurityContribution(grossIncome);
double incomeTax = calculateIncomeTax(grossIncome - socialSecurityContribution);
bool hasChildren = promptForChildren();
if(incomeTax >= 100 && hasChildren){
incomeTax -= 100;
}else if(incomeTax <= 100 && hasChildren){
incomeTax = 0;
}
double netIncome = grossIncome - socialSecurityContribution - incomeTax;
printf("Brutto:\t\t%12.2f\n", (double)grossIncome);
printf("SV:\t\t%12.2f\n", -socialSecurityContribution);
printf("LSt:\t\t%12.2f\n", -incomeTax);
printf("Netto:\t\t%12.2f\n", netIncome);
int gross_income = askForIncome();
double social_security_contribution = calculateSocialSecurityContribution(gross_income);
double income_tax = calculateIncomeTax(gross_income - social_security_contribution);
bool has_children = promptForChildren();
if (income_tax >= 100 && has_children)
{
income_tax -= 100;
}
else if(income_tax <= 100 && has_children)
{
income_tax = 0;
}
double net_income = gross_income - social_security_contribution - income_tax;
printf("Brutto:\t\t%12.2f\n", (double)gross_income);
printf("SV:\t\t%12.2f\n", -social_security_contribution);
printf("LSt:\t\t%12.2f\n", -income_tax);
printf("Netto:\t\t%12.2f\n", net_income);
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment