/* Name: Garrett Haldrup # lab12.c # Purpose: Solves problems assigned in Lab 12 */ #include #include #include #include #include int goodLogin(); int createExpression(char expr[]); /* add your function declaration here... */ int main() { srand((int)time(0)); char expr[15] = ""; int try = 0; printf("\nTest goodInput().....\n"); //int try = goodLogin(); if (try == 1) { printf("\nTest Good\n"); } else { printf("\nTest Failed\n"); } /* put your test cases here...*/ printf("\nTest createExpression().....\n"); /* put your test cases here...*/ int key = createExpression(expr); printf("%s = %d\n", expr, key); return 0; } /* add your function definition here... */ int goodLogin() { int tries = 5; char user[] = "csci218"; char userEnter[50]; char pass[] = "grace2023F"; char passEnter[50]; printf("Please enter username then password, only 5 attempts\n\n"); while(1) { if (tries < 5) { printf("Incorrect username or password\n"); printf("%d attempts left\n", tries); } printf("Please enter username: "); scanf("%s", userEnter); printf("Please enter password: "); scanf("%s", passEnter); if (!strcmp(user, userEnter) && !strcmp(pass, passEnter)) { return 1; } tries--; if (!tries) { printf("Login failed, used all atempts\n"); return -1; } } } int createExpression(char expr[]) { char operators[][3] = {"+", "-", "/", "%", ">", "<", "=="}; int num1 = (rand() % 31) + 20; int num2 = (rand() % 31) + 20; int indexer = rand() % 7; sprintf(expr, "%d %s %d", num1, operators[indexer], num2); int sol; switch (indexer) { case 0: sol = num1 + num2; break; case 1: sol = num1 - num2; break; case 2: if (!num2) { sol = 999999; } else { sol = num1 / num2; } break; case 3: if (!num2) { sol = 999999; } else { sol = num1 % num2; } break; case 4: sol = num1 > num2; break; case 5: sol = num1 < num2; break; case 6: sol = num1 == num2; break; } return sol; }