Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C] Aiuto rubrica in C

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    2

    [C] Aiuto rubrica in C

    Salve ragazzi sono nuovo e stavo cercando una mano.
    Sto creando una rubrica in c di cui posto il sorgente
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    struct data{
       int giorno;
       int mese;
       int anno;
    };
    struct indirizzo{
       char via[25];
       char citta[25];
       char provincia[25];
       char nazione[25];
       char cap[6];
    };
    struct persona{
       char nome[25];
       char cognome[25];
       struct data data_nascita;
       struct indirizzo ind;
       char sesso;
    };
    int mesi[]={31,28,31,30,31,30,31,31,30,31,30,31};
    struct persona pers[50];
    int controllo_nom();
    int controllo_data(int, int, int);
    char controllo_sesso();
    void inserimento(int);
    int main(int argc, char *argv[])
    {
      
        
      int nom;  
      
      nom=controllo_nom();
      inserimento(nom);
        
      system("PAUSE");	
      return 0;
    }
    int controllo_nom(){
       int a,nom;
       do{
           printf("Quanti nominativi inserire? ");
           scanf("%d",&nom);
           if (nom>0 && nom<=50){
              a=1;
              }
           else{
              system("CLS");
              printf("Inserire un numero compreso tra 0 e 50\n");      
              a=0;
              } 
       }while(a!=1);
       return nom;
    }
    int controllo_data(int g, int m, int a){
       float resto;
       resto=a%4;
       if(resto==0)
          mesi[1]=29;
       if(m>0 && m<=12){
          if(m==4 || m==6 || m==9 || m==11)
             if(g>0 && g<=30 && a<=2009){
                return 1;
                }
             else{
                printf("Inserire una data valida\n");
                return 0;
             }
          if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)
             if(g>0 && g<=31 && a<=2009){
                return 1;
             }
             else{
                printf("Inserire una data valida\n");
                return 0;
             }
          if(m==2)
             if(g>0 && g<=mesi[1] && a<=2009){
                return 1;
             }
             else{
                printf("Inserire una data valida\n");
                return 0;
             }
       }
       else{
          printf("Inserire una data valida\n");
          return 0;
       }
    }                           
       
    void inserimento(int n){
       int i,tmp,tem;             
       for(i=0;i<n;i++){
         printf("Inserisci %d nome: ",i+1);
         scanf("%s",&pers[i].nome);
         printf("\n");
         printf("Inserisci %d cognome: ",i+1);
         scanf("%s",&pers[i].cognome);
         printf("\n");
         //printf("Inserisci %d sesso m o f: ",i+1);
         //scanf("%c",&pers[i].sesso);
         pers[i].sesso=controllo_sesso();
      
         do{
            printf("Inserisci %d giorno nascita gg: ",i+1);
            scanf("%d",&pers[i].data_nascita.giorno);
            printf("\n");
            printf("Inserisci %d mese nascita mm: ",i+1);
            scanf("%d",&pers[i].data_nascita.mese);
            printf("\n");
            printf("Inserisci %d anno nascita aaaa: ",i+1);
            scanf("%d",&pers[i].data_nascita.anno);
            printf("\n");
            tmp=controllo_data(pers[i].data_nascita.giorno,pers[i].data_nascita.mese,pers[i].data_nascita.anno);
         }while(tmp!=1);   
         
         printf("Inserisci %d indirizzo di residenza: ",i+1);
         fflush(stdin);
         gets(pers[i].ind.via);
         printf("\n");
         printf("Inserisci %d citta' di residenza: ",i+1);
         gets(pers[i].ind.citta);
         printf("\n");
         printf("Inserisci %d provincia di residenza: ",i+1);
         gets(pers[i].ind.provincia);
         printf("\n");
         printf("Inserisci %d nazione di residenza: ",i+1);
         scanf("%s",&pers[i].ind.nazione);
         printf("\n");
         //pers[i].ind.cap=controllo_cap(i);
         //do{
            printf("Inserisci %d C.A.P. di residenza: ",i+1);
            scanf("%s",&pers[i].ind.cap);
            printf("\n");
         //}while(pers[i].ind.cap[4]=='\0');
       }
       printf("%s",pers[i].ind.cap);
    }
    char controllo_sesso(){
       char s;
       printf("Digitare il sesso: ");
       scanf("\n%c",&s);
       while (s!='m' && s!='f'){
          printf("Digitare il sesso: ");
          scanf("\n%c",&s);
       }  
       return s; 
    }
    Sto cercando di implementare un controllo sul C.A.P e magari implementare anche una rubrica.
    C'è qualcuno che possa darmi una mano?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,471
    Devi fare una domanda precisa ... chiedere "una mano" è troppo generico.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    2
    Vorrei implementare un controllo sulla lunghezza del CAP, se il cap inserito è di soltanto 4 numeri allora mi deve dare l'errore la stessa cosa se è di 6. in pratica se lo prende per buono solo se è di 5.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.