Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-12-2008, 17:18   #1
-hide-
Senior Member
 
L'Avatar di -hide-
 
Iscritto dal: Sep 2008
Città: Messina
Messaggi: 991
[C] Rubrica

Ciao ragazzi.
Sto, come di consueto, iniziando ad uscire pazzo.
A tratti la funzione visualizza funziona ed altre volte no. Mi sapete dare una mano?
Vi è anche un altro bug. Alla visualizzazione del menu in uscita da una funzione non prende l'input. Che succede?!

Altre cose sono ancora in lavorazione

Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define ELEM 100
#define NCHAR 20

// Definizione della struttura
typedef struct {
        char nome[NCHAR];
        char cognome[NCHAR];
        char telefono[NCHAR];
        char citta[NCHAR];
        } account;
        
// Variabili globali
account rubrica[ELEM];
int num_account = 0;

// Dichiarazione delle funzioni
void InsContatto (char nom[], char cogn[], char tel[], char cit[]);
void ModContatto (char nom[], char cogn[], char tel[], char cit[]);
void Cancella (char nom[], char cogn[]);
void Visualizza (char nom[], char cogn[]);

main() 
{ //OPEN main
     char scelta; /* per inserire la scelta del menù */
     char n[NCHAR]; /* per inserire il nome */ 
     char m[NCHAR]; /* per inserire il cognome */
     char c[NCHAR]; /* per inserire la città */
     char t[15]; /* per inserire il numero di telefono */
     int i;
     for (;scelta!= '0';)
     { //OPEN for
          printf ("\t  INDEX\n");
          printf ("***************************\n");
          printf ("* 1 - Inserisci Contatto  *\n");
          printf ("* 2 - Modifica Contatto   *\n");
          printf ("* 3 - Cancella Contatto   *\n");
          printf ("* 4 - Visualizza Contatto *\n");
          printf ("*                         *\n");
          printf ("* 0 - Esci dal programma  *\n");
          printf ("***************************\n\n");
          printf ("Digita: ");
          scanf ("%c", &scelta);
          while (getchar() != '\n'); // Evita che scanf ripete due volte il menù
          switch (scelta) 
          { //OPEN switch
                 case '0': // Exit
                           printf ("\n\t\tIl programmatore ti saluta\n");
                           printf ("\t\tGrazie per la scelta\n\n");
                           break;
                 case '1': // Inserisci contatto
                           printf ("\nNome: ");
                           scanf ("%s", n);
                           printf ("Cognome: ");
                           scanf ("%s", m);
                           printf ("Telefono: ");
                           scanf ("%s", t);
                           printf ("Citta': ");
                           scanf ("%s", c);
                           printf ("\n");
                           InsContatto(n,m,t,c);
                           break;
                 case '2': // Modifica Contatto -->WORK IN PROGRESS
                           printf ("\nChi vuoi modificare?\n");
                           printf ("Nome: ");
                           scanf ("%s",n);
                           printf ("Cognome: ");
                           break;
                 case '3': // Cancella
                           printf ("\nNome: ");
                           scanf ("%s",n);
                           printf ("Cognome: ");
                           scanf ("%s", m);
                           Cancella (n,m);
                           break;
                 case '4': // Visualizza
                           printf ("\nNome: ");
                           scanf ("%s",n);
                           printf ("Cognome: ");
                           scanf ("%s", m);
                           Visualizza (n,m);
                           break;           
          } //CLOSED switch
    } //CLOSED for
    system ("pause");
} //CLOSED main

// Definizione delle funzioni
void InsContatto (char nom[], char cogn[], char tel[], char cit[])
{ //OPEN InsContatto
     int i;
     if (num_account == ELEM)
         printf ("Hai raggiunto il limite di contatti offerto\n\n");
         return;
     for (i=0; i<=num_account; i++)
         if (strcmp (nom,rubrica[i].nome)==0)
         if (strcmp (cogn,rubrica[i].cognome)==0)
            printf ("Nome e Cognome utente esistono in memoria\n\n");
            return;
     strcpy (rubrica[num_account].nome,nom);
     strcpy (rubrica[num_account].cognome,cogn);
     strcpy (rubrica[num_account].telefono,tel);  
     strcpy (rubrica[num_account].citta,cit);
     num_account++;
} //CLOSED InsContatto

void ModContatto (char nom[], char cogn[], char tel[], char cit[])
//WORK IN PROGRESS
{ //OPEN ModContatto 
     Cancella (nom,cogn);
     InsContatto (nom,cogn,tel,cit);
     return;
} //CLOSED ModContatto

void Cancella (char nom[], char cogn[])
{ //OPEN cancella
     int i;
     Visualizza (nom,cogn);
     rubrica[i].nome[0] ='\0';
     rubrica[i].cognome[0] ='\0';
     rubrica[i].telefono[0] ='\0';
     rubrica[i].citta[0] ='\0';
     return;
} //CLOSED Cancella
 
void Visualizza (char nom[], char cogn[])
{ //OPEN Visualizza
     int i;
     for (i=0; i<=num_account; i++)
         if (strcmp (nom,rubrica[i].nome)==0)
         if (strcmp (cogn,rubrica[i].cognome)==0)
         {
            printf ("Il contatto scelto è: \n");
            printf ("\n%s %s\n", rubrica[i].nome, rubrica[i].cognome);
            printf ("%s\n%s", rubrica[i].telefono, rubrica[i].citta);
            printf ("\n\n");
            }
         else
         {
            printf ("Il contatto non esiste");
            printf ("\n\n");  
         }
         return;
} //CLOSED Visualizza
__________________

PC/HTPC: Mac Mini 3,1 late 2009 | My Book Studio 2TB | LG M237WD monitor/tv | Logitech Z4 | Apple Magic Mouse | Apple Wireless Keyboard | Apple Remote
Mobile: Samsung Galaxy Wonder i8150 cm9
LinkedIn
-hide- è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2008, 18:52   #2
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Ci sono diversi errori anche abbastanza gravi direi.
Ad esempio:
Codice:
void InsContatto (char nom[], char cogn[], char tel[], char cit[])
{ //OPEN InsContatto
     int i;
     if (num_account == ELEM)
         printf ("Hai raggiunto il limite di contatti offerto\n\n");
         return;
     for (i=0; i<=num_account; i++)
         if (strcmp (nom,rubrica[i].nome)==0)
         if (strcmp (cogn,rubrica[i].cognome)==0)
            printf ("Nome e Cognome utente esistono in memoria\n\n");
            return;
     strcpy (rubrica[num_account].nome,nom);
     strcpy (rubrica[num_account].cognome,cogn);
     strcpy (rubrica[num_account].telefono,tel);  
     strcpy (rubrica[num_account].citta,cit);
     num_account++;
} //CLOSED InsContatto
Questa funzione terminerà sempre alla quarta riga, senza inserire niente; abituati ad usare parentesi graffe di apertura e chiusura per ogni blocco di codice che scrivi.

In più gli if annidati li potevi sostituire con un singolo if, testando più condizioni alla volta con l'operatore AND (&&).

Comincia a correggerti queste (sono ripetute in un po' tutto il programma, cerca e distruggi ), poi vediamo il resto.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2008, 20:57   #3
-hide-
Senior Member
 
L'Avatar di -hide-
 
Iscritto dal: Sep 2008
Città: Messina
Messaggi: 991
Ho risolto tutti i miei problemi.

Questo è il codice ora da migliorare.

Codice:
                        /***************************\
                         ***************************
                         *****Lorenzo Carnevale*****
                         *****     RUBRICA     *****
                         ***************************
                         ***************************

  Programma per al gestione di una rubrica contatti.                         
  Memorizzare NOME (20caratteri) , COGNOME (20caratteri), NR. di TEL.,       
  CITTA'(10caratteri).                                                        
  Utenti massimi [100]                                                       
  Implementare le seguenti funzioni:  - Inserisci contatto                    
                                      - Modifica Contatto                    
                                      - Cancella contatto                     
                                      - Visualizza contatti                   
*******************************************************************************/

                                                             /* RUBRICA V 1.0 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define ELEM 100
#define NCHAR 20

// Definizione della struttura
typedef struct {
        char nome[NCHAR];
        char cognome[NCHAR];
        char telefono[NCHAR];
        char citta[NCHAR];
        } account;
        
// Variabili globali
account rubrica[ELEM];
int num_account = 0;

// Dichiarazione delle funzioni
void InsContatto (char nom[], char cogn[], char tel[], char cit[]);
void ModContatto (char nom[], char cogn[]);
void Cancella (char nom[], char cogn[]);
void Visualizza (char nom[], char cogn[]);

main() 
{ //OPEN main
     int scelta; /* per inserire la scelta del menù */
     char n[NCHAR]; /* per inserire il nome */ 
     char m[NCHAR]; /* per inserire il cognome */
     char c[NCHAR]; /* per inserire la città */
     char t[15]; /* per inserire il numero di telefono */
     int i;
     for (;scelta!= 0;)
     { //OPEN for
          printf ("\t  INDEX\n");
          printf ("***************************\n");
          printf ("* 1 - Inserisci Contatto  *\n");
          printf ("* 2 - Modifica Contatto   *\n");
          printf ("* 3 - Cancella Contatto   *\n");
          printf ("* 4 - Visualizza Contatto *\n");
          printf ("*                         *\n");
          printf ("* 0 - Esci dal programma  *\n");
          printf ("***************************\n\n");
          printf ("Digita: ");
          scanf ("%d", &scelta);
          switch (scelta) 
          { //OPEN switch
                 case 0: // Exit
                           printf ("\n\t\tGrazie per la scelta\n\n");
                           break;
                 case 1: // Inserisci contatto
                           printf ("\nNome: ");
                           scanf ("%s", n);
                           printf ("Cognome: ");
                           scanf ("%s", m);
                           printf ("Telefono: ");
                           scanf ("%s", t);
                           printf ("Citta': ");
                           scanf ("%s", c);
                           printf ("\n");
                           InsContatto(n,m,t,c);
                           break;
                 case 2: // Modifica Contatto
                           printf ("\nNome: ");
                           scanf ("%s",n);
                           printf ("Cognome: ");
                           scanf ("%s", m);
                           ModContatto (n,m);
                           break;
                 case 3: // Cancella
                           printf ("\nNome: ");
                           scanf ("%s",n);
                           printf ("Cognome: ");
                           scanf ("%s", m);
                           Cancella (n,m);
                           break;
                 case 4: // Visualizza
                           printf ("\nNome: ");
                           scanf ("%s",n);
                           printf ("Cognome: ");
                           scanf ("%s", m);
                           Visualizza (n,m);
                           break;           
          } //CLOSED switch
    } //CLOSED for
} //CLOSED main

// Definizione delle funzioni
void InsContatto (char nom[], char cogn[], char tel[], char cit[])
{ //OPEN InsContatto
     int i;
     if (num_account == ELEM)
     { //OPEN if
         printf ("Hai raggiunto il limite di contatti offerto\n\n");
         return;
     } //CLOSED if
     for (i=0; i<=num_account; i++)
     { //OPEN for
         if ((strcmp (nom,rubrica[i].nome)==0) && (strcmp (cogn,rubrica[i].cognome)==0))
         { //OPEN if
            printf ("Nome e Cognome utente esistono in memoria\n\n");
            return;
         } //CLOSED if
     } //CLOSED for
     strcpy (rubrica[num_account].nome,nom);
     strcpy (rubrica[num_account].cognome,cogn);
     strcpy (rubrica[num_account].telefono,tel);  
     strcpy (rubrica[num_account].citta,cit);
     num_account++;
     return;
} //CLOSED InsContatto

void ModContatto (char nom[], char cogn[])
{ //OPEN ModContatto 
     int i;
     for (i=0; i<=num_account; i++)
     { //OPEN for
         if ((strcmp (nom,rubrica[i].nome)!=0) && (strcmp (cogn,rubrica[i].cognome)!=0))
         { //OPEN if 
            printf ("Il contatto non esiste");
            printf ("\n\n");  
            return;
         } //CLOSED if
         else
         { //OPEN else
             printf("Nuovo Nome: ");
             scanf("%s", &rubrica[i].nome);
             printf("Nuovo Cognome: ");
             scanf("%s", &rubrica[i].cognome);
             printf("Nuovo Telefono: ");
             scanf("%s", &rubrica[i].telefono);
             printf("Nuova Citta': ");
             scanf("%s", &rubrica[i].citta);
             return;
         } //CLOSED else
     } //CLOSED for
} //CLOSED ModContatto

void Cancella (char nom[], char cogn[])
{ //OPEN cancella
     int i;
     for (i=0; i<=num_account; i++)
     { //OPEN for
         if ((strcmp (nom,rubrica[i].nome)!=0) && (strcmp (cogn,rubrica[i].cognome)!=0))
         { //OPEN if 
            printf ("Il contatto non esiste");
            printf ("\n\n");  
            return;
         } //CLOSED if
         else
         { //OPEN else
            rubrica[i].nome[0] ='\0';
            rubrica[i].cognome[0] ='\0';
            rubrica[i].telefono[0] ='\0';
            rubrica[i].citta[0] ='\0';
            return;
         } //CLOSED else
     } //CLOSED for
} //CLOSED Cancella
 
void Visualizza (char nom[], char cogn[])
{ //OPEN Visualizza
     int i;
     for (i=0; i<=num_account; i++)
     { //OPEN for
         if ((strcmp (nom,rubrica[i].nome)==0) && (strcmp (cogn,rubrica[i].cognome)==0))
         { //OPEN if
            printf ("Il contatto scelto e': \n");
            printf ("\n%s %s\n", rubrica[i].nome, rubrica[i].cognome);
            printf ("%s\n%s", rubrica[i].telefono, rubrica[i].citta);
            printf ("\n\n");
            return;
         } //CLOSED if
         else
         { //OPEN else
            printf ("Il contatto non esiste");
            printf ("\n\n");  
            return;
         } //CLOSED else
     } //CLOSED for
} //CLOSED Visualizza
__________________

PC/HTPC: Mac Mini 3,1 late 2009 | My Book Studio 2TB | LG M237WD monitor/tv | Logitech Z4 | Apple Magic Mouse | Apple Wireless Keyboard | Apple Remote
Mobile: Samsung Galaxy Wonder i8150 cm9
LinkedIn

Ultima modifica di -hide- : 13-12-2008 alle 15:41.
-hide- è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Missione Artemis II diretta verso la Lun...
Toy Story 5 arriva al cinema: è l...
Intel cambia rotta su Linux? Nuove assun...
Samsung aggiorna Bixby con One UI 8.5: p...
L'Etiopia vieta le auto a combustione: a...
Pirateria audiovisiva: la Guardia di Fin...
Ubisoft conferma due nuovi Far Cry in sv...
Chi vincerà il Festival di Sanrem...
G42 e Cerebras portano in India un super...
Offerte aggiornate del weekend Amazon: 7...
4 MacBook Air in offerta e scende a 939€...
Chrome cambia il tuo modo di lavorare: o...
Minimo storico iPhone 17 su Amazon: 909€...
USA, incriminati tre ingegneri della Sil...
Xbox: Phil Spencer lascia dopo 38 anni, ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v