Domanda cerco aiuto per la risoluzione di un problema

gioele0000

Utente Iron
24 Settembre 2022
1
1
0
3
Ultima modifica da un moderatore:

C++:
/******************************************************************************
--. .. --- . .-.. .  .--. .- ... - --- .-. . .-.. .-.. .. 
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, PHP, Ruby, 
C#, OCaml, VB, Perl, Swift, Prolog, Javascript, Pascal, HTML, CSS, JS
Code, Compile, Run and Debug online from anywhere in world.

*******************************************************************************/

#include <iostream>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <windows.h>
using namespace std;
   
   void setcolor(unsigned short color)
  {
      
      HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
      SetConsoleTextAttribute(hCon,color);
  
  }
  
int main_1 (void)
{
    
    int scelta;
    int Password;
    int scelta_1;
    
 do
 //menu
    {
      printf ("\nMENU'\n");
      printf ("1. SELEZIONE ANETENNA\n");
      printf ("2. DISATTIVAZIONE ANETENNE\n");
      printf ("3. SELEZIONE FREQUENZA\n");
      printf ("4. SELEZIONA CANALE\n");
      printf ("5. TRASMISSIONE DATI\n");
      printf ("0. Esci\n");
      printf ("Scelta: ");
      scanf ("%d", &scelta);
      getchar ();
      switch (scelta)
    {
case 0:
        printf ("\nFine sessione.\n");
exit (0);
        default: printf ("\nScelta non consentita.\n");
return main_1 ();
      
    case 1:
      //istruzioni scelta 1

      if ("\n1. SELEZIONE ANETENNA")
        {
          printf ("\nMENU'\n");
          printf ("1. ANTENNA 1 TXRXHF\n");
          printf ("2. ANTENNA 2 TXLF\n");
          printf ("3. ANTENNA 1 RXRF\n");
          printf ("4. ANTENNA 2 TXRX\n");
          printf ("0. Torna indietro\n");
          printf ("Scelta: ");
          scanf ("%d", &scelta);
          getchar ();
          switch (scelta)
        {
            
        case 0:
                    setcolor(2);
                printf ("\nIndietro.\n");
                    setcolor(7);
        return main_1 ();
        case 1: 
                    setcolor(2);
         printf("\nANTENNA 1 TXRXHF\n");
                     setcolor(7);
        return main_1 ();
        case 2: 
                    setcolor(2);
                printf ("\nANTENNA 2 TXLF\n");
                    setcolor(7);
        return main_1 ();
        case 3: 
                    setcolor(2);
                printf ("\nANTENNA 1 RXRF\n");
                    setcolor(7);
        return main_1 ();
        case 4: 
                    setcolor(2);
                printf ("\nANTENNA 2 TXRX\n");
                    setcolor(7);
        return main_1 ();
                default: printf ("\nScelta non consentita.\n");
        return main_1 ();
        }
            }
            
      return main_1 ();
      case 2:
      //istruzioni scelta 2

      if ("\n2. DISATTIVAZIONE ANETENNE")
        {
          printf ("\nMENU'\n");
          printf ("1. DISATTIVAZIONE ANETENNA 1\n");
          printf ("2. DISATTIVAZIONE ANETENNE 2\n");
          printf ("3. ATTIVAZIONE ANETENNE 1\n");
          printf ("4. ATTIVAZIONE ANETENNE 2\n");
          printf ("0. Torna indietro\n");
          printf ("Scelta: ");
          scanf ("%d", &scelta_1);
          getchar ();
          switch (scelta_1)
        {
            
      case 0:
                      setcolor(2);
            printf ("\nIndietro.\n");
                    setcolor(7);
      return main_1 ();
      case 1: 
                      setcolor(2);
            printf ("\nAntenna 1 disattivata.\n");
                    setcolor(7);
      return main_1 ();
      case 2: 
                      setcolor(2);
              printf ("\nAntenna 2 disattivata.\n");
                      setcolor(7);
      return main_1 ();
      case 3: 
                      setcolor(2);
              printf ("\nAntenna 1 attivata.\n");
                      setcolor(7);
      return main_1 ();
      case 4: 
                      setcolor(2);
              printf ("\nAntenna 2 attivata.\n");
                      setcolor(7);
      return main_1 ();
            default: printf ("\nScelta non consentita.\n");
      return main_1 ();
        }
            }
            
      return main_1();
      case 3:
      //istruzioni scelta 3

      if ("\n3. SELEZIONE FREQUENZA")
        {
          printf ("\nMENU'\n");
          printf ("1. VLF (3-30 Khz)\n");
          printf ("2. LF (30-300 Khz)\n");
          printf ("3. MF (300-3000 Khz)\n");
          printf ("4. HF (3-30 Mhz)\n");
          printf ("5. VHF (30-300 Mhz)\n");
          printf ("6. UHF (300-3000 Mhz)\n");
          printf ("7. SHF (3-30 Ghz)\n");
          printf ("0. Torna indietro\n");
          printf ("Scelta: ");
          scanf ("%d", &scelta);
          getchar ();
          switch (scelta)
        {
            
       case 0:
                       setcolor(2);
             printf ("\nIndietro.\n");
                     setcolor(7);
       return main_1 ();
       case 1: 
                       setcolor(2);
             printf ("\nVLF (3-30 Khz)\n");
                     setcolor(7);
       return main_1 ();
       case 2: 
                       setcolor(2);
             printf ("\nLF (30-300 Khz)\n");
                     setcolor(7);
       return main_1 ();
       case 3: 
                       setcolor(2);
             printf ("\nMF (300-3000 Khz)\n");
                     setcolor(7);
       return main_1 ();
       case 4: 
                       setcolor(2);
             printf ("\nHF (3-30 Mhz)\n");
                     setcolor(7);
       return main_1 ();
       case 5: 
                       setcolor(2);
             printf ("\nVHF (30-300 Mhz)\n");
                     setcolor(7);
       return main_1 ();
       case 6: 
                       setcolor(2);
             printf ("\nUHF (300-3000 Mhz)\n");
                     setcolor(7);
       return main_1 ();
       case 7: 
                       setcolor(2);
             printf ("\nSHF (3-30 Ghz)\n");
                     setcolor(7);
       return main_1 ();
            default: printf ("\nScelta non consentita.\n");
       return main_1 ();
        }
            }
            
      return main_1 ();
      case 4:
      //istruzioni scelta 4
      
      if ("\n4. SELEZIONA CANALE\n")
        {
          printf ("MENU'\n");
          printf ("1. C.R.A.M.\n");
          printf ("2. C.R.E.R.\n");
          printf ("3. CO.RE.FVG.\n");
          printf ("4. CO.RE.LA.\n");
          printf ("5. CO.RE.LI.\n");
          printf ("6. C.R.L.\n");
          printf ("7. C.R.M.\n");
          printf ("8. CO.R.P.\n");
          printf ("9. C.I.P.B.\n");
          printf ("10. CO.RE.SA.\n");
          printf ("11. CO.RE.SI.\n");
          printf ("12. CO.RE.TO.\n");
          printf ("13. C.R.U.\n");
          printf ("14. CO.RE.VET.\n");
          printf ("15. CO.RE.CA.\n");
          printf ("16. C.R.C\n");
          printf ("0. Torna indietro\n");
          printf ("Scelta: ");
          scanf ("%d", &scelta);
          getchar ();
          switch (scelta)
        {
            
       case 0:
                       setcolor(2);
           printf ("\nIndietro.\n");
                       setcolor(7);
       return main_1 ();
       case 1: 
                       setcolor(2);
            printf ("\nC.R.A.M.\n");
                    setcolor(7);
       return main_1 ();
       case 2:
                       setcolor(2);
            printf ("\nC.R.E.R.\n");
                    setcolor(7);
       return main_1 ();
       case 3:
                       setcolor(2);
            printf ("\nCO.RE.FVG.\n");
                    setcolor(7);
       return main_1 ();
       case 4:
                       setcolor(2);
            printf ("\nCO.RE.LA.\n");
                    setcolor(7);
       return main_1 ();
       case 5:
                       setcolor(2);
            printf ("\nCO.RE.LI.\n");
                    setcolor(7);
       return main_1 ();
       case 6:
                       setcolor(2);
            printf ("\nC.R.L.\n");
                    setcolor(7);
       return main_1 ();
       case 7:
                       setcolor(2);
            printf ("\nC.R.M.\n");
                    setcolor(7);
       return main_1 ();
       case 8:
                       setcolor(2);
            printf ("\nCO.R.P.\n");
                    setcolor(7);
       return main_1 ();
       case 9:
                       setcolor(2);
            printf ("\nC.I.P.B.\n");
                    setcolor(7);
       return main_1 ();
       case 10:
                       setcolor(2);
            printf ("\nCO.RE.SA.\n");
                    setcolor(7);
       return main_1 ();
       case 11:
                       setcolor(2);
            printf ("\nCO.RE.SI.\n");
                    setcolor(7);
       return main_1 ();
       case 12:
                       setcolor(2);
            printf ("\nCO.RE.TO.\n");
                    setcolor(7);
       return main_1 ();
       case 13:
                       setcolor(2);
            printf ("\nC.R.U.\n");
                    setcolor(7);
       return main_1 ();
       case 14:
                       setcolor(2);
            printf ("\nCO.RE.VET.\n");
                    setcolor(7);
       return main_1 ();
       case 15:
                       setcolor(2);
            printf ("\nCO.RE.CA.\n");
                    setcolor(7);
       return main_1 ();
       case 16:
                       setcolor(2);
            printf ("\nC.R.C\n");
                    setcolor(7);
       return main_1 ();
            default: printf ("\nScelta non consentita.\n");
       return main_1 ();
        }
            }
            
      return main_1 ();
      case 5:
      //istruzioni scelta 5
{
    string Password = "--. .-. . . -. .-- --- --- -.. .--. . -.-. -.- . .-. -.. --- .-- -.";
    string Userinput;
    
    printf ("INSERISCI LA PASSWORD: ");
    getline (cin, Password);
            
    if (Password == "--. .-. . . -. .-- --- --- -.. .--. . -.-. -.- . .-. -.. --- .-- -.") 
    { 
                            sleep(1);
                    setcolor(2);
        printf ("\n\nGREEN WOODPECKER DOWN\n\n ");
                    setcolor(7);
                            sleep (1);
                            return main_1 ();
    }         
    
        else 
    {
            (Userinput != Password);
            sleep (1);
            return main_1 ();
            
    }    
            }
    
}
} 

        
                    
    
    
    while (scelta != 0);
    
 
}

   
int main (void)
{
    
         sleep (1);
         
            int i=0;
            int scelta;
            
    if (i>1);
         {
              
              
        printf ("INIZIALIZZAZIONE");
                sleep (1);
              cout<< ".";
                sleep (1);
              cout<< ".";
                sleep (1);
              cout<< ".";
                sleep (1);
        printf ("\nSISTEMA ATTIVO\n");
        printf ("STATUS");
                sleep (1);
              cout<< ".";
                sleep (1);
              cout<< ".";
                sleep (1);
              cout<< ".";
                sleep (1);
        printf ("\nANTENNA 1 (HF): OFFLINE\n");
        printf ("ANTENNA 2 (JAMMER): ONLINE\n"); 
        printf ("CANALE OPERATIVO: C.R.M.\n");
        printf ("COMUNICAZIONE: DISABILITATA\n");
    
                return main_1 ();
        
     }
}


ho fatto questo programma “sono ancora scarso e inesperto” e mi chiedevo come potevo fare per fare in modo che dopo che uno immette la password il programma prima di tirare fuori la parola segreta guardi indietro e solo se uno fa delle determinate scelte gli venga mostrata. Ho provato a usare un if ma non sono stato in grado e non ho idea di come risolvere il problema… aiuto.
 
Non capisco bene perchè hai inserito tutte quelle chiamate ricorsive. Il loop che hai inserito è sufficiente a ripetere le operazioni. Anche il getchar che hai inserito non ho capito perchè è presente.

Ma la cosa corretta da fare è anche spezzare quella funzione e crearne altre per le varie funzionalità.

Quando avrò un pò di tempo e sarò su Windows, proverò a compilare per capire che succede di preciso.