Search
| C++ Tax Calculator |
|
| Written by Chris Gountanis |
|
This program demonstrates a tax calculator using C++.
/* Name: Tax Calculator Copyright: Copyright 2007 by Chris Gountanis student of University of Phoenix. Author: Chris Gountanis Date: 09/19/07 Description: Tax calculator based on service request SR-KF-008. */
//INCLUDES #include <iostream> #include <iomanip>
//NAMESPACE DEFINITION using namespace std;
//DEFINE TAX RATES FOR EASY UPDATES IF NEEDED AS RATES CHANGE #define Del_Mar_TaxRate 1.0725; #define Encinitas_TaxRate 1.075; #define La_Jolla_TaxRate 1.0775;
//CUSTOM FUNCTION FOR CHECKING VALID CURRENCY AMOUNT int isCurrency(char sAmount[]) { int x = 0; int iPointControl = 0; int iReturn = 0;
//LOOP ENTIRE STRING TILL EOF CHECKING FOR NUMERIC AND ONLY ONE DECIMAL while (sAmount[x] != '\0') { if (isdigit(sAmount[x])) { iReturn = 1; } else { //IF MORE THAN 1 DECIMAL PLACE RETURN FALSE if ((sAmount[x] == '.') && (iPointControl < 1)) { iPointControl++; } else { iReturn = 0; break; } } x++ ; } return iReturn; }
void taxcalc() { //SETUP VARIABLES int storeid = 0; int myswitch = 0; const int input_max = 11; char inputbuffer[input_max] = {0}; double cashamount = 0; double totalamount = 0; system("CLS"); //CLEAR SCREEN cout << "Welcome to the Tax Calculator\n";
//GET STORE LOOP UNTIL VALID myswitch = 0; while (myswitch == 0) { //PRINT NUMBERED STORE MENU cout << "\n[1].\tDel Mar\n[2].\tEncinitas\n[3].\tLa Jolla\nPLEASE CHOOSE A STORE ID (1-3):\n>"; //REQUEST STORE NUMBER BASED ON MENU cin.getline(inputbuffer, input_max); if(cin.fail()) { // IF LIMIT WAS EXCEEDED RESET CIN AND REMOVE LINE RETURN cin.clear(); cin.ignore(INT_MAX, '\n');; } //CHECK FOR NUMERIC if (isdigit(inputbuffer[0])) { //CHECK FOR NUMERIC storeid = atoi(inputbuffer); //CONVERT CHAR TO INTEGER WITH ATOI //CHECK FOR 1,2 or 3 ONLY if ((storeid >= 1) && (storeid <= 3)) { myswitch = 1; } else { system("CLS"); //CLEAR SCREEN cout << "Please enter a valid store number!\n"; } } else { system("CLS"); //CLEAR SCREEN cout << "Please enter a numeric value only!\n"; //cin.clear(); } }
//GET AMOUNT LOOP UNTIL VALID system("CLS"); //CLEAR SCREEN myswitch = 0; while (myswitch == 0) { cout << "PLEASE ENTER CASH AMOUNT: \n>$";
//REQUEST STORE NUMBER BASED ON MENU cin.getline(inputbuffer, input_max);
// IF LIMIT WAS EXCEEDED RESET CIN AND REMOVE LINE RETURN if(cin.fail()) { cin.clear(); cin.ignore(INT_MAX, '\n');; }
//CHECK FOR VALID NUMERIC/CURRENCY FORMAT BY CALLING CUSTOM FUNCTION if (isCurrency(inputbuffer)) { cashamount = atof(inputbuffer); //CONVERT CHAR TO FLOAT/DOUBLE WITH ATOF myswitch = 1; } else { system("CLS"); //CLEAR SCREEN cout << "Please enter a valid numeric value!\n"; }
}
//DEPENDING ON STOREID RUN THE MATH FOR TOTAL CALCULATION switch (storeid) { case 1: //DEL MAR totalamount = cashamount * Del_Mar_TaxRate; break; case 2: //ENCINITAS totalamount = cashamount * Encinitas_TaxRate; break; case 3: //LA JOLLA totalamount = cashamount * La_Jolla_TaxRate; break; } system("CLS"); //CLEAR SCREEN //PRINT TOTAL WITH CURRENCY BASED DECIMAL PLACE cout << "Total: $" << setiosflags(ios::fixed) << setprecision(2) << totalamount << endl; }
void main() {
//RUN MAIN CODE taxcalc();
//WAIT FOR USER TO PRESS ENTER cout << "\nPress ENTER to continue.\n"; cin.get(); } |
| Last Updated on Saturday, 09 February 2008 21:02 |
