School-Coding-Cpp/sfusi/menu1.c

170 lines
5.5 KiB
C

#include <stdio.h>
#include <windows.h>
#include <ctype.h>
#include <string.h>
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) {
// Set the new window title
SetWindowText(hwnd, "Ti stai divertendo??");
return TRUE; // Return TRUE to continue enumeration
}
int main(){
SetConsoleTitle("Programma Utilmente Inutile creato per non si sa quale motivo da Manuel Vichi");
int sc;
do{
// funzione che pulisce lo schermo --> system(...);
// menu' di scelta
system("cls");
// Dichiarazione variabili
int n, numeroSegreto, tentativo, tentativiRimasti;
char scelta;
float num1, num2, risultato;
char parola[100];
int lunghezza, i;
//Codice in se'
printf("Scegli una opzione:\n 0. Esci\n 1. Indovina il numero\n 2. Cacolatrice\n 3. Gioca con le parola\n 4. Divertiti con i titoli delle finestre!\n 5. Chiudi la sessione (di Windows)\n");
scanf("%d",&sc);
switch(sc){
case 0:
printf("Arrivederci!\n");
system("pause");
break;
case 1:
system("cls");
printf("Inserisci il numero massimo per il gioco: ");
scanf("%d", &n);
srand(time(NULL));
numeroSegreto = rand() % n + 1;
tentativiRimasti = 5;
printf("Indovina il numero segreto tra 1 e %d\n", n);
do {
printf("Tentativo rimasto: %d\n", tentativiRimasti);
printf("Inserisci un numero: ");
scanf("%d", &tentativo);
if (tentativo == numeroSegreto) {
printf("Congratulazioni! Hai indovinato il numero segreto %d.\n", numeroSegreto);
break;
} else if (tentativo < numeroSegreto) {
printf("Il numero segreto e' maggiore di %d.\n", tentativo);
} else {
printf("Il numero segreto e' minore di %d.\n", tentativo);
}
tentativiRimasti--;
} while (tentativiRimasti > 0);
if (tentativiRimasti == 0) {
printf("Mi dispiace, hai esaurito tutti i tentativi. Il numero segreto era %d.\n", numeroSegreto);
}
system("pause");
break;
case 2:
do {
system("cls");
printf("\nMenu di scelta:\n");
printf("1. Somma (+)\n");
printf("2. Sottrazione (-)\n");
printf("3. Moltiplicazione (*)\n");
printf("4. Divisione (/)\n");
printf("5. Radice quadrata (r)\n");
printf("6. Quadrato di un numero (q)\n");
printf("7. Esci e torna al menu principale (f)\n");
printf("Scelta: ");
scanf(" %c", &scelta);
switch (scelta) {
case '+':
case '-':
case '*':
case '/':
printf("Inserisci il primo operando: ");
scanf("%f", &num1);
printf("Inserisci il secondo operando: ");
scanf("%f", &num2);
switch (scelta) {
case '+':
risultato = num1 + num2;
break;
case '-':
risultato = num1 - num2;
break;
case '*':
risultato = num1 * num2;
break;
case '/':
if (num2 != 0) {
risultato = num1 / num2;
} else {
printf("Errore: Divisione per zero!\n");
continue; // Torna al menu
}
break;
}
printf("Risultato: %.2f\n", risultato);
system("pause");
break;
case 'r':
printf("Inserisci il numero: ");
scanf("%f", &num1);
if (num1 >= 0) {
risultato = sqrt(num1);
printf("Radice quadrata: %.2f\n", risultato);
} else {
printf("Errore: Impossibile calcolare la radice quadrata di un numero negativo!\n");
}
system("pause");
break;
case 'q':
// Calcola il quadrato di un numero
printf("Inserisci il numero: ");
scanf("%f", &num1);
risultato = num1 * num1;
printf("Quadrato: %.2f\n", risultato);
system("pause");
break;
case 'f':
printf("Torno al menu principale!\n");
system("pause");
break;
default:
printf("Errore: Scelta non valida!\n");
system("pause");
break;
}
} while (scelta != 'f');
break;
case 3:
// Input della parola
printf("Inserisci una parola: ");
scanf("%s", parola);
// Calcolo della lunghezza della parola
lunghezza = strlen(parola);
// Stampare la parola invertita
printf("Parola invertita: ");
for (i = lunghezza - 1; i >= 0; i--) {
printf("%c", parola[i]);
}
// Stampare tutti i caratteri in maiuscolo
printf("\nParola in maiuscolo: ");
for (i = 0; i < lunghezza; i++) {
printf("%c", toupper(parola[i]));
}
printf("\n");
system("pause");
break;
case 4:
EnumWindows(EnumWindowsProc, 0);
printf("Fatto!\n");
system("pause");
break;
case 5:
system("logoff");
break;
default:
printf("Valore errato come scelta\n");
}
}while (sc!=0);
return 0;
}