// header files #include "StandardConstants.h" #include "Console_IO_Utility.h" #include "File_Input_Utility.h" #include "File_Output_Utility.h" #include "Arizona_Tax_Utility.h" // constants // none // function prototypes /* Name: createOutputString Process: creates string to be displayed and output to file; only one string can be assembled in the function Function input/parameters: the output string pointer, tax year and tax Function output/parameters: the generated output string (char *) Function output/returned: none Function input/keyboard: none Device output/file: none Dependencies: sprintf */ void createOutputString(char *outputString, int taxYear, double totalTax); /* Name: outputResultsToFile Process: opens file for output, writes string to file with endline, closes file Function input/parameters: file name (const char *), output string (const char *) Function output/parameters: none Function output/returned: none Function input/keyboard: none Device output/file: none Dependencies: File Output Utility tools */ void outputResultsToFile(const char *outputFileName, const char *outputString); // main program int main() { // show title // Functions: printf printf("\nDUMMY TAX CALCULATOR V0.4\n=========================\n\n"); // initialize variables char taxInformationFile[STD_STR_LEN]; char outputString[STD_STR_LEN], outputFileName[STD_STR_LEN]; double taxArizona, currentIncome; int yearCount, currentYear; yearCount = 0; // get user input // Functions: promptForString promptForString("Enter file name containing tax information: ", taxInformationFile); // conduct calculations // Functions: calculateArizonaTax, outputResultsToFile // open input file openInputFile(taxInformationFile); // use a while loop to iterate over the numbers of years, prime with // first year. currentYear = readIntegerFromFile(); currentIncome = readDoubleFromFile(); yearCount = yearCount + 1; while (!checkForEndOfInputFile()) { sprintf(outputFileName, "Tax_Report_%d.txt", currentYear); taxArizona = calculateArizonaTax(currentIncome); createOutputString(outputString, currentYear, taxArizona); outputResultsToFile(outputFileName, outputString); yearCount = yearCount + 1; currentYear = readIntegerFromFile(); currentIncome = readDoubleFromFile(); } // display results // Functions: sprintf, printf printf("\nArizona tax for %d years has been calculated.\n", yearCount - 1); printf("\nThe results can be viewed in the report files.\n"); // end program, return success printf("\nEnd Program\n"); return 0; } // supporting functions /* Name: createOutputString Process: creates string to be displayed and output to file; only one string can be assembled in the function Function input/parameters: the output string pointer, tax year and tax Function output/parameters: the generated output string (char *) Function output/returned: none Function input/keyboard: none Device output/file: none Dependencies: sprintf */ void createOutputString(char *outputString, int taxYear, double totalTax) { // initialize variables // none // get user input // input is passed into function by parameters. // conduct calculations // none // display results sprintf(outputString, "For the tax year %d total" " AZ tax to be paid is $%.2f.", taxYear, totalTax); } /* Name: outputResultsToFile Process: opens file for output, writes string to file with endline, closes file Function input/parameters: file name (const char *), output string (const char *) Function output/parameters: none Function output/returned: none Function input/keyboard: none Device output/file: none Dependencies: File Output Utility tools */ void outputResultsToFile(const char *outputFileName, const char *outputString) { // initialize variables // none // get user input // input is passed into function by parameters. // conduct calculations // none // display results // outputs a file openOutputFile(outputFileName); writeStringToFile(outputString); closeOutputFile(); }