120 lines
2.2 KiB
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;
|
|
|
|
}
|