Classes/Fall 2024/csci218/Labs/Lab12/lab12.c

120 lines
2.2 KiB
C

/* Name: Garrett Haldrup
# lab12.c
# Purpose: Solves problems assigned in Lab 12
*/
#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
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;
}