Pogramma già scritto in C da far girare su Visual Studio

di il
11 risposte

Pogramma già scritto in C da far girare su Visual Studio

Salve,
ho scritto un programmino in C che calcola il codice fiscale e vorrei vederlo funzionare in una windows form.
Ho pensato (dato che è fatto tutto con cicli for con if e switch) che bastasse preparare 3 textbox per il cognome nome e data di nascita ( il luogo di nascita per ora non l'ho messo è calcolato come fossero nati tutti a Roma) e cambiare qualche dato per esempio la lunghezza del cognome e del nome con un "textbox->text->length" e mettere tutto il codice già scritto nell'eventi click di un button.
E' fattibile? Consigli per fare sta cosa senza stravolgere il codice?

11 Risposte

  • Re: Pogramma già scritto in C da far girare su Visual Studio

    Ma in quale ambiente e con quali strumenti per la gestione della parte form/controlli ?
  • Re: Pogramma già scritto in C da far girare su Visual Studio

    Ho visual studio c++ 2008 e volevo fare un semplice form con tre textbox 4 label e un button
    non so se ho risposto alla domanda
  • Re: Pogramma già scritto in C da far girare su Visual Studio

    Ma come vorresti creare il form e i controlli? Usi una libreria o vuoi usare le API?
  • Re: Pogramma già scritto in C da far girare su Visual Studio

    Sicuramente c'è qualcosa che mi sfugge perchè visual studio non l'ho mai usato, usavo visual basic 6 tanto tempo fa, però di una cosa so sicuro: c'è già tutto bello e pronto!
    Quindi si uso le API... Io voglio fare una cosa tranquillissima per dare l'interfaccia grafica al mio programmino che ha input e output stile console application.
    Quindi il mio sogno è: apro visual studio ho la mia windows form ci metto due tre cosine dentro mettro il codice nell'evento click del button e ho fatto, voglio capire se ho un sogno realizzabile o meno.
  • Re: Pogramma già scritto in C da far girare su Visual Studio

    SorMediu ha scritto:


    sicuramente c'è qualcosa che mi sfugge perchè visual studio non l'ho mai usato, usavo visual basic 6 tanto tempo fa, però di una cosa so sicuro: c'è già tutto bello e pronto!
    Sicuramente qualcosa ti sfugge ma se non sei chiaro non è possibile darti una risposta sensata.

    Se parliamo di una applicazione C Win32 allora non c'è alcun supporto per le finestre e i controlli.
    Dovrai fare tutto con le API (sconsigliato) o con una tra le librerie disponibili per la gestione di una GUI.

    Se invece ti riferisci a C++.NET allora è tutta un'altra storia. Hai a disposizione finestre e controlli ma ti devi appoggiare al framework .NET con relativo adattamento del codice.
  • Re: Pogramma già scritto in C da far girare su Visual Studio

    Esatto allora sicuramente è la seconda... che faccio posto il codice e vediamo cosa si può fare?
  • Re: Pogramma già scritto in C da far girare su Visual Studio

    Certo ... se postavi prima il codice era meglio ...
  • Re: Pogramma già scritto in C da far girare su Visual Studio

    Ad un certo punto ho smesso di commentarlo ma comunque sono delle switch per i giorni i mesi e il carattere di controllo che è l'ultimo...comunque eccolo

    int main(int argc, char *argv[])
    {
        int c,n,i,p,k,j,nc;
        char cognome[max],nome[max],provincia[max],codice[max];
        char sesso;
        
        
      printf(" ------ CODICE FISCALE ------\n");
      printf("scrivere tutto in minuscolo\n\n\n");
      
      do{ //COGNOME
          printf("Cognome: ");
          for(i=0; ((cognome[i]=getchar())!='\n') && i<max;i++);
          cognome[i]='\0';
          c=i;
              }while(i<1);
      
       do{   //NOME
          printf("Nome: ");
         for(i=0; ((nome[i]=getchar())!='\n') && i<max;i++);
         nome[i]='\0';
         n=i;
               }while(i<1);
          
          //FICHI FICHI
          printf("Sesso(m/f): ");
          scanf("%c",&sesso);
          
          //DATA DI NASCITA
          int gg,mm,aa;
          printf("Data di nascita(gg/mm/aaaa): ");
          scanf("%d/%d/%d",&gg,&mm,&aa);
          
          
      
          //3 CONSONANTI COGNOME DENTRO CODICE
            i=0;
    	for(k=0;k<3;k++){
    	    for(;i<c;i++)
    	    if(!(cognome[i]=='a' || cognome[i]=='e' || cognome[i]=='i' || cognome[i]=='o' || cognome[i]=='u')){
    		codice[k]=cognome[i];
    		break;
    		
    	    }
    	    i++;
    	}
    	//CONTO LE CONSONANTI DENTRO AL NOME
    	for(i=0;i<n;i++){
    	if(nome[i]!='a'||nome[i]!='e'||nome [i]!='i'||nome[i]!='o'||nome[i]!='u')
    	nc++;
    }
    	//3 CONSONANTI NOME DENTRO CODICE
    	if(nc==3){
    	    i=0;
    	for(k=3;k<6;k++){
    	    for(;i<c;i++)
    	    if(!(nome[i]=='a' || nome[i]=='e' || nome[i]=='i' || nome[i]=='o' || nome[i]=='u')){
    		codice[k]=nome[i];
    		break;
    		
    	    }
    	    i++;
    	}
    }
        
        if(nc>3){
                 int contatore=0;
                  i=0;
    	for(k=3;k<6;k++){
    	    for(;i<n;i++)
    	    if(!(nome[i]=='a' || nome[i]=='e' || nome[i]=='i' || nome[i]=='o' || nome[i]=='u')){
            contatore++;
            if(contatore!=2){
            codice[k]=nome[i];
    		break;
    		
    	    }
         }
    	    i++;
    	    
    	}
    }
                 
    	//PER LA POSIZIONE 6 E 7 SI AVRA'
        k=6;
        switch(aa){
    	case 0:codice[k]='0'; codice[k+1]='0';	break;
    	case 1:codice[k]='0'; codice[k+1]='1';	break;
    	case 2:codice[k]='0'; codice[k+1]='2';	break;
    	case 3:codice[k]='0'; codice[k+1]='3';	break;
    	case 4:codice[k]='0'; codice[k+1]='4';	break;
    	case 5:codice[k]='0'; codice[k+1]='5';	break;
    	case 6:codice[k]='0'; codice[k+1]='6';	break;
    	case 7:codice[k]='0'; codice[k+1]='7';	break;
    	case 8:codice[k]='0'; codice[k+1]='8';	break;
    	case 9:codice[k]='0'; codice[k+1]='9';	break;
    	case 10:codice[k]='1'; codice[k+1]='0';	break;
    	case 11:codice[k]='1'; codice[k+1]='1';	break;
    	case 12:codice[k]='1'; codice[k+1]='2';	break;
    	case 13:codice[k]='1'; codice[k+1]='3';	break;
    	case 14:codice[k]='1'; codice[k+1]='4';	break;
    	case 15:codice[k]='1'; codice[k+1]='5';	break;
    	case 16:codice[k]='1'; codice[k+1]='6';	break;
    	case 17:codice[k]='1'; codice[k+1]='7';	break;
    	case 18:codice[k]='1'; codice[k+1]='8';	break;
    	case 19:codice[k]='1'; codice[k+1]='9';	break;
    	case 20:codice[k]='2'; codice[k+1]='0';	break;
    	case 21:codice[k]='2'; codice[k+1]='1';	break;
    	case 22:codice[k]='2'; codice[k+1]='2';	break;
    	case 23:codice[k]='2'; codice[k+1]='3';	break;
    	case 24:codice[k]='2'; codice[k+1]='4';	break;
    	case 25:codice[k]='2'; codice[k+1]='5';	break;
    	case 26:codice[k]='2'; codice[k+1]='6';	break;
    	case 27:codice[k]='2'; codice[k+1]='7';	break;
    	case 28:codice[k]='2'; codice[k+1]='8';	break;
    	case 29:codice[k]='2'; codice[k+1]='9';	break;
    	case 30:codice[k]='3'; codice[k+1]='0';	break;
    	case 31:codice[k]='3'; codice[k+1]='1';	break;
    	case 32:codice[k]='3'; codice[k+1]='2';	break;
    	case 33:codice[k]='3'; codice[k+1]='3';	break;
    	case 34:codice[k]='3'; codice[k+1]='4';	break;
    	case 35:codice[k]='3'; codice[k+1]='5';	break;
    	case 36:codice[k]='3'; codice[k+1]='6';	break;
    	case 37:codice[k]='3'; codice[k+1]='7';	break;
    	case 38:codice[k]='3'; codice[k+1]='8';	break;
    	case 39:codice[k]='3'; codice[k+1]='9';	break;
    	case 40:codice[k]='4'; codice[k+1]='0';	break;
    	case 41:codice[k]='4'; codice[k+1]='1';	break;
    	case 42:codice[k]='4'; codice[k+1]='2';	break;
    	case 43:codice[k]='4'; codice[k+1]='3';	break;
    	case 44:codice[k]='4'; codice[k+1]='4';	break;
    	case 45:codice[k]='4'; codice[k+1]='5';	break;
    	case 46:codice[k]='4'; codice[k+1]='6';	break;
    	case 47:codice[k]='4'; codice[k+1]='7';	break;
    	case 48:codice[k]='4'; codice[k+1]='8';	break;
    	case 49:codice[k]='4'; codice[k+1]='9';	break;
    	case 50:codice[k]='5'; codice[k+1]='0';	break;
    	case 51:codice[k]='5'; codice[k+1]='1';	break;
    	case 52:codice[k]='5'; codice[k+1]='2';	break;
    	case 53:codice[k]='5'; codice[k+1]='3';	break;
    	case 54:codice[k]='5'; codice[k+1]='4';	break;
    	case 55:codice[k]='5'; codice[k+1]='5';	break;
    	case 56:codice[k]='5'; codice[k+1]='6';	break;
    	case 57:codice[k]='5'; codice[k+1]='7';	break;
    	case 58:codice[k]='5'; codice[k+1]='8';	break;
    	case 59:codice[k]='5'; codice[k+1]='9';	break;
    	case 60:codice[k]='6'; codice[k+1]='0';	break;
    	case 61:codice[k]='6'; codice[k+1]='1';	break;
    	case 62:codice[k]='6'; codice[k+1]='2';	break;
    	case 63:codice[k]='6'; codice[k+1]='3';	break;
    	case 64:codice[k]='6'; codice[k+1]='4';	break;
    	case 65:codice[k]='6'; codice[k+1]='5';	break;
    	case 66:codice[k]='6'; codice[k+1]='6';	break;
    	case 67:codice[k]='6'; codice[k+1]='7';	break;
    	case 68:codice[k]='6'; codice[k+1]='8';	break;
    	case 69:codice[k]='6'; codice[k+1]='9';	break;
    	case 70:codice[k]='7'; codice[k+1]='0';	break;
    	case 71:codice[k]='7'; codice[k+1]='1';	break;
    	case 72:codice[k]='7'; codice[k+1]='2';	break;
    	case 73:codice[k]='7'; codice[k+1]='3';	break;
    	case 74:codice[k]='7'; codice[k+1]='4';	break;
    	case 75:codice[k]='7'; codice[k+1]='5';	break;
    	case 76:codice[k]='7'; codice[k+1]='6';	break;
    	case 77:codice[k]='7'; codice[k+1]='7';	break;
    	case 78:codice[k]='7'; codice[k+1]='8';	break;
    	case 79:codice[k]='7'; codice[k+1]='9';	break;
    	case 80:codice[k]='8'; codice[k+1]='0';	break;
    	case 81:codice[k]='8'; codice[k+1]='1';	break;
    	case 82:codice[k]='8'; codice[k+1]='2';	break;
    	case 83:codice[k]='8'; codice[k+1]='3';	break;
    	case 84:codice[k]='8'; codice[k+1]='4';	break;
    	case 85:codice[k]='8'; codice[k+1]='5';	break;
    	case 86:codice[k]='8'; codice[k+1]='6';	break;
    	case 87:codice[k]='8'; codice[k+1]='7';	break;
    	case 88:codice[k]='8'; codice[k+1]='8';	break;
    	case 89:codice[k]='8'; codice[k+1]='9';	break;
    	case 90:codice[k]='9'; codice[k+1]='0';	break;
    	case 91:codice[k]='9'; codice[k+1]='1';	break;
    	case 92:codice[k]='9'; codice[k+1]='2';	break;
    	case 93:codice[k]='9'; codice[k+1]='3';	break;
    	case 94:codice[k]='9'; codice[k+1]='4';	break;
    	case 95:codice[k]='9'; codice[k+1]='5';	break;
    	case 96:codice[k]='9'; codice[k+1]='6';	break;
    	case 97:codice[k]='9'; codice[k+1]='7';	break;
    	case 98:codice[k]='9'; codice[k+1]='8';	break;
    	case 99:codice[k]='9'; codice[k+1]='9';	break;
       }
       
       k=8;
       switch(mm){
       case 1: codice[k]='a'; break;
       case 2: codice[k]='b'; break;
       case 3: codice[k]='c'; break;
       case 4: codice[k]='d'; break;
       case 5: codice[k]='e'; break;
       case 6: codice[k]='h'; break;
       case 7: codice[k]='l'; break;
       case 8: codice[k]='m'; break;
       case 9: codice[k]='p'; break;
       case 10: codice[k]='r'; break;
       case 11: codice[k]='s'; break;
       case 12: codice[k]='t'; break;
       }
        
        k=9;
        if(sesso=='f')
        gg=gg+40;
        
        switch(gg){
    	case 1:codice[k]='0'; codice[k+1]='1';	break;
    	case 2:codice[k]='0'; codice[k+1]='2';	break;
    	case 3:codice[k]='0'; codice[k+1]='3';	break;
    	case 4:codice[k]='0'; codice[k+1]='4';	break;
    	case 5:codice[k]='0'; codice[k+1]='5';	break;
    	case 6:codice[k]='0'; codice[k+1]='6';	break;
    	case 7:codice[k]='0'; codice[k+1]='7';	break;
    	case 8:codice[k]='0'; codice[k+1]='8';	break;
    	case 9:codice[k]='0'; codice[k+1]='9';	break;
    	case 10:codice[k]='1'; codice[k+1]='0';	break;
    	case 11:codice[k]='1'; codice[k+1]='1';	break;
    	case 12:codice[k]='1'; codice[k+1]='2';	break;
    	case 13:codice[k]='1'; codice[k+1]='3';	break;
    	case 14:codice[k]='1'; codice[k+1]='4';	break;
    	case 15:codice[k]='1'; codice[k+1]='5';	break;
    	case 16:codice[k]='1'; codice[k+1]='6';	break;
    	case 17:codice[k]='1'; codice[k+1]='7';	break;
    	case 18:codice[k]='1'; codice[k+1]='8';	break;
    	case 19:codice[k]='1'; codice[k+1]='9';	break;
    	case 20:codice[k]='2'; codice[k+1]='0';	break;
    	case 21:codice[k]='2'; codice[k+1]='1';	break;
    	case 22:codice[k]='2'; codice[k+1]='2';	break;
    	case 23:codice[k]='2'; codice[k+1]='3';	break;
    	case 24:codice[k]='2'; codice[k+1]='4';	break;
    	case 25:codice[k]='2'; codice[k+1]='5';	break;
    	case 26:codice[k]='2'; codice[k+1]='6';	break;
    	case 27:codice[k]='2'; codice[k+1]='7';	break;
    	case 28:codice[k]='2'; codice[k+1]='8';	break;
    	case 29:codice[k]='2'; codice[k+1]='9';	break;
    	case 30:codice[k]='3'; codice[k+1]='0';	break;
    	case 31:codice[k]='3'; codice[k+1]='1';	break;
    	case 32:codice[k]='3'; codice[k+1]='2';	break;
    	case 33:codice[k]='3'; codice[k+1]='3';	break;
    	case 34:codice[k]='3'; codice[k+1]='4';	break;
    	case 35:codice[k]='3'; codice[k+1]='5';	break;
    	case 36:codice[k]='3'; codice[k+1]='6';	break;
    	case 37:codice[k]='3'; codice[k+1]='7';	break;
    	case 38:codice[k]='3'; codice[k+1]='8';	break;
    	case 39:codice[k]='3'; codice[k+1]='9';	break;
    	case 40:codice[k]='4'; codice[k+1]='0';	break;
    	case 41:codice[k]='4'; codice[k+1]='1';	break;
    	case 42:codice[k]='4'; codice[k+1]='2';	break;
    	case 43:codice[k]='4'; codice[k+1]='3';	break;
    	case 44:codice[k]='4'; codice[k+1]='4';	break;
    	case 45:codice[k]='4'; codice[k+1]='5';	break;
    	case 46:codice[k]='4'; codice[k+1]='6';	break;
    	case 47:codice[k]='4'; codice[k+1]='7';	break;
    	case 48:codice[k]='4'; codice[k+1]='8';	break;
    	case 49:codice[k]='4'; codice[k+1]='9';	break;
    	case 50:codice[k]='5'; codice[k+1]='0';	break;
    	case 51:codice[k]='5'; codice[k+1]='1';	break;
    	case 52:codice[k]='5'; codice[k+1]='2';	break;
    	case 53:codice[k]='5'; codice[k+1]='3';	break;
    	case 54:codice[k]='5'; codice[k+1]='4';	break;
    	case 55:codice[k]='5'; codice[k+1]='5';	break;
    	case 56:codice[k]='5'; codice[k+1]='6';	break;
    	case 57:codice[k]='5'; codice[k+1]='7';	break;
    	case 58:codice[k]='5'; codice[k+1]='8';	break;
    	case 59:codice[k]='5'; codice[k+1]='9';	break;
    	case 60:codice[k]='6'; codice[k+1]='0';	break;
    	case 61:codice[k]='6'; codice[k+1]='1';	break;
    	case 62:codice[k]='6'; codice[k+1]='2';	break;
    	case 63:codice[k]='6'; codice[k+1]='3';	break;
    	case 64:codice[k]='6'; codice[k+1]='4';	break;
    	case 65:codice[k]='6'; codice[k+1]='5';	break;
    	case 66:codice[k]='6'; codice[k+1]='6';	break;
    	case 67:codice[k]='6'; codice[k+1]='7';	break;
    	case 68:codice[k]='6'; codice[k+1]='8';	break;
    	case 69:codice[k]='6'; codice[k+1]='9';	break;
    	case 70:codice[k]='7'; codice[k+1]='0';	break;
    	case 71:codice[k]='7'; codice[k+1]='1';	break;
    
    } 
        codice[11]='h';
        codice[12]='5';
        codice[13]='0';
        codice[14]='1';
        
        k=16;
        int r[15];
    	for(i=1;i<k;i++){
    	    if(i%2==0){
    		switch(codice[i-1]){
    		    case '0':r[i-1]=0; break;
    		    case '1':r[i-1]=1; break;
    		    case '2':r[i-1]=2; break;
    		    case '3':r[i-1]=3; break;		
    		    case '4':r[i-1]=4; break;
    		    case '5':r[i-1]=5; break;		
    		    case '6':r[i-1]=6; break;
    		    case '7':r[i-1]=7; break;		
    		    case '8':r[i-1]=8; break;
    		    case '9':r[i-1]=9; break;		
    		    case 'a':r[i-1]=0; break;
    		    case 'b':r[i-1]=1; break;		
    		    case 'c':r[i-1]=2; break;
    		    case 'd':r[i-1]=3; break;		
    		    case 'e':r[i-1]=4; break;
    		    case 'f':r[i-1]=5; break;		
    		    case 'g':r[i-1]=6; break;
    		    case 'h':r[i-1]=7; break;
    		    case 'i':r[i-1]=8; break;
    		    case 'j':r[i-1]=9; break;
    		    case 'k':r[i-1]=10; break;
    		    case 'l':r[i-1]=11; break;		
    		    case 'm':r[i-1]=12; break;
    		    case 'n':r[i-1]=13; break;		
    		    case 'o':r[i-1]=14; break;
    		    case 'p':r[i-1]=15; break;		
    		    case 'q':r[i-1]=16; break;
    		    case 'r':r[i-1]=17; break;		
    		    case 's':r[i-1]=18; break;
    		    case 't':r[i-1]=19; break;		
    		    case 'u':r[i-1]=20; break;
    		    case 'v':r[i-1]=21; break;		
    		    case 'w':r[i-1]=22; break;
    		    case 'x':r[i-1]=23; break;		
    		    case 'y':r[i-1]=24; break;
    		    case 'Z':r[i-1]=25; break;
    		}
    	    }else{
    		switch(codice[i-1]){
    		    case '0':r[i-1]=1; break;
    		    case '1':r[i-1]=0; break;
    		    case '2':r[i-1]=5; break;
    		    case '3':r[i-1]=7; break;		
    		    case '4':r[i-1]=9; break;
    		    case '5':r[i-1]=13; break;		
    		    case '6':r[i-1]=15; break;
    		    case '7':r[i-1]=17; break;		
    		    case '8':r[i-1]=19; break;
    		    case '9':r[i-1]=21; break;		
    		    case 'a':r[i-1]=1; break;
    		    case 'b':r[i-1]=0; break;		
    		    case 'c':r[i-1]=5; break;
    		    case 'd':r[i-1]=7; break;		
    		    case 'e':r[i-1]=9; break;
    		    case 'f':r[i-1]=13; break;		
    		    case 'g':r[i-1]=15; break;
    		    case 'h':r[i-1]=17; break;
    		    case 'i':r[i-1]=19; break;
    		    case 'j':r[i-1]=21; break;
    		    case 'k':r[i-1]=2; break;
    		    case 'l':r[i-1]=4; break;		
    		    case 'm':r[i-1]=18; break;
    		    case 'n':r[i-1]=20; break;		
    		    case 'o':r[i-1]=11; break;
    		    case 'p':r[i-1]=3; break;		
    		    case 'q':r[i-1]=6; break;
    		    case 'r':r[i-1]=8; break;		
    		    case 's':r[i-1]=12; break;
    		    case 't':r[i-1]=14; break;		
    		    case 'u':r[i-1]=16; break;
    		    case 'v':r[i-1]=10; break;		
    		    case 'w':r[i-1]=22; break;
    		    case 'x':r[i-1]=25; break;		
    		    case 'y':r[i-1]=24; break;
    		    case 'z':r[i-1]=23; break;
    		}
    	    }
    	}
          
        int MAX=0;
        for(i=0;i<15;i++){
        MAX=MAX+r[i];
        MAX=MAX%26;
    }
    
        switch (MAX){
        case 0: MAX='A' ; break;
        case 1: MAX='B' ; break;
        case 2: MAX='C' ; break;
        case 3: MAX='D'; break;
        case 4: MAX='E' ; break;
        case 5: MAX='F'; break;
        case 6: MAX='G' ; break;
        case 7: MAX='H' ; break;
        case 8: MAX='I' ; break;
        case 9: MAX='J' ; break;
        case 10: MAX='K' ; break;
        case 11: MAX='L' ; break;
        case 12: MAX='M' ; break;
        case 13: MAX='N' ; break;
        case 14:  MAX='O' ; break;
        case 15: MAX='P' ; break;
        case 16: MAX='Q' ; break;
        case 17: MAX='R' ; break;
        case 18: MAX='S' ; break;
        case 19: MAX='T' ; break;
        case 20: MAX='U' ; break;
        case 21: MAX='V' ; break;
        case 22: MAX='X' ; break;
        case 23: MAX='Y' ; break;
        case 24: MAX='W' ; break;
        case 25: MAX='Z' ; break;
    }
        
        codice[15]=MAX;
        
        
        
        printf("\n");
        printf("  CODICE FISCALE : ");
        for(i=0;i<16;i++)
        printf( "%c",codice[i]);
        printf("\n");
        
          
          
          
          
          
          
       
          
      system("PAUSE");	
      return 0;
    }
  • Re: Pogramma già scritto in C da far girare su Visual Studio

    Quello NON è C++.NET quindi NON puoi utilizzare le form e i controlli se non converti il codice.

    Il codice è per Win32 e quindi, come ti ho detto prima, devi usare delle apposite librerie o le API di Windows.
  • Re: Pogramma già scritto in C da far girare su Visual Studio

    Perfetto non credo di essere in grado di fare nessuna delle due cose... Io mi ero basato molto ottimisticamente su una frase letta da qualche parte che diceva "Visual studio supporta indirettamente anche il C" e quindi credevo bastasse cambiare qualcosa come ho detto all inizio.
    In teoria la strada di convertire il codice sarebbe la più semplice?
  • Re: Pogramma già scritto in C da far girare su Visual Studio

    Non è questione di semplicità. In quel caso devi usare C++.NET che ti dà la possibilità immediata di usare form e controlli (un a GUI) ma che non è il C++ che conosci ...
Devi accedere o registrarti per scrivere nel forum
11 risposte