Browse Source

refactoring: made code more readable and enhanced the menuInput() and chooseOption() functions.

remotes/origin/beta
fdai7207 2 years ago
parent
commit
4d0091a099
  1. 2
      src/CustomerData.txt
  2. 109
      src/mainMenu.c

2
src/CustomerData.txt

@ -4,5 +4,3 @@ forename=Max
Surname=Mustermann Surname=Mustermann
password=example password=example
balance=0 balance=0

109
src/mainMenu.c

@ -25,16 +25,7 @@ bool checkIfInteger(char* userInput)
bool chooseOption(int choiceInput) bool chooseOption(int choiceInput)
{ {
if(choiceInput<1 || choiceInput>4)
{
return false;
}
else
{
return true;
}
return !(choiceInput < 1 || choiceInput > 4);
} }
@ -55,21 +46,17 @@ void ageInput()
while (true) while (true)
{ {
/*the userInput string is changed to a number with the strtol function*/
age = strtol(userInput,&userInputPointer,10); age = strtol(userInput,&userInputPointer,10);
if((checkIfInteger(userInput))&& (agePermission(age))) if((checkIfInteger(userInput))&& (agePermission(age)))
{ {
printf("Access granted!\n\n\n\n"); printf("Access granted!\n\n\n\n");
showMenu(); showMenu();
menuInput();
menuInput(); menuInput();
break; break;
} }
else if((checkIfInteger(userInput)) && !(agePermission(age))) else if((checkIfInteger(userInput)) && !(agePermission(age)))
@ -85,118 +72,56 @@ void ageInput()
{ {
printf("input invalid! try again!\n"); printf("input invalid! try again!\n");
scanf("%s",userInput); scanf("%s",userInput);
int c;
/*this loop flushes the input buffer for the upcoming getchar*/
while ((c = getchar()) != '\n' && c != EOF) {};
} }
} }
}
void menuInput()
{
char choiceInput[20];
char* choiceInputPointer;
int selection;
scanf("%s",choiceInput);
while(true)
{
selection = strtol(choiceInput,&choiceInputPointer,10);
if(chooseOption(selection) == true && checkIfInteger(choiceInput) == true)
{
switch(selection)
{
case 1 : printf("\nLoginAsCostumer() function will be implemented here soon\n\n");
break;
case 2 : printf("\ncreateCostumerAccount() function will be implemented here soon\n\n");
break;
case 3 : printf("\nLoginAsEmployee() function will be implemented here soon\n\n");
break;
case 4 : printf("\e[1;1H\e[2J");
printf("\nsee you next time !\n\n");
break;
}
break;
}
else
{
printf("Input invalid! try again!\n");
scanf("%s",choiceInput);
}
}
} }
void menuInput() void menuInput()
{ {
char choiceInput[20]; char choiceInput[20];
char* choiceInputPointer; char* choiceInputPointer;
int selection; int selection;
scanf("%s", choiceInput);
int c; int c;
scanf("%s",choiceInput);
/*this loop flushes the input buffer for the upcoming getchar*/ /*this loop flushes the input buffer for the upcoming getchar*/
while ((c = getchar()) != '\n' && c != EOF) {}; while ((c = getchar()) != '\n' && c != EOF) {};
selection = strtol(choiceInput, &choiceInputPointer, 10);
while(true)
while (!checkIfInteger(choiceInput) || !chooseOption(selection))
{ {
selection = strtol(choiceInput,&choiceInputPointer,10);
printf("Input invalid! try again!\n");
scanf("%s", choiceInput);
while ((c = getchar()) != '\n' && c != EOF) {};
selection = strtol(choiceInput, &choiceInputPointer, 10);
}
if(chooseOption(selection) == true && checkIfInteger(choiceInput) == true)
{
switch(selection) switch(selection)
{ {
case 1 : printf("\nLoginAsCostumer() function will be implemented here soon\n\n"); case 1 : printf("\nLoginAsCostumer() function will be implemented here soon\n\n");
break; break;
case 2 : collectCustomerProperties(); case 2 : collectCustomerProperties();
break; break;
case 3 : printf("\nLoginAsEmployee() function will be implemented here soon\n\n"); case 3 : printf("\nLoginAsEmployee() function will be implemented here soon\n\n");
break; break;
case 4 : printf("\e[1;1H\e[2J"); case 4 : printf("\e[1;1H\e[2J");
printf("\nsee you next time !\n\n"); printf("\nsee you next time !\n\n");
break;
}
break; break;
} }
else
{
printf("Input invalid! try again!\n");
scanf("%s",choiceInput);
}
}
} }
void showMenu() void showMenu()
{ {

Loading…
Cancel
Save