#include <stdio.h>
#include "integer.h"


int menu();
void addIntegers();
void subIntegers();
void run();

int main() 
{
	printf("Welcome to the integer arithmetic tool\n");
	run();
}

/* 
This function dispays the menu of all options 
avaliable to the user and reads the user selection.
input: None
output: returns the user selection	
*/
int menu()
{
	char choice;
	fflush(stdin);
	
	printf("\n************************************\n");
	printf("*    INTEGER OPERATIONS MENU       *\n"); 
	printf("************************************\n");
	printf("*  OPTIONS               CHOICE    *\n");
	printf("*   ADD                     1      *\n");
	printf("*   SUB                     2      *\n");
	printf("*   QUIT                    3      *\n");
	printf("************************************\n");
	printf("\nPlease enter your Choice [1-3]: ");
	scanf("%c",&choice);
	fflush(stdin);
	return (choice -'0');
}

void run()
{
	int quit = 0;
	
	while (!quit)
	{
		int choice = menu();

		switch (choice)
		{
			case 1: {
				addIntegers();
				break;
			}

			case 2: {
				subIntegers();
				break;
			}

			case 3: {
				quit = 1;
				printf("quitting the application....Good bye....\n");
				break;
			}

			default: {
				printf("Please enter between 1 and 3\n");
				break;
			}

		} /* end of switch */

	}/* end of while loop */
}

/* Adds two integers and outputs its result */
void addIntegers()
{
	integer num1 = NULL; 
	integer num2 = NULL;
	integer result = NULL;
	
	num1 = ReadInteger(); 
	num2 = ReadInteger();
	result = AddTwoIntegers(num1,num2);
	printf("\n");
	printf("The sum of the numbers is: ");
	
	PrintInteger(result);
	printf("\n");
	num1 = CleanInteger(num1);
	num2 = CleanInteger(num2);
	result = CleanInteger(result);
}

void subIntegers()
{
	integer num1 = NULL; 
	integer num2 = NULL;
	integer result = NULL;
	
	num1 = ReadInteger(); 
	num2 = ReadInteger();
	result = SubstractIntegers(num1,num2);
	printf("\n");
	printf("The difference of the numbers is: ");
	PrintInteger(result);
	printf("\n");
	num1 = CleanInteger(num1);
	num2 = CleanInteger(num2);
	result = CleanInteger(result);
}
