Benvenuto su Inforge
Rimuovi la pubblicità e partecipa alla più grande comunità italiana sul mondo digitale presente sul web sin dal 2007.
Iscriviti

Discussione Ufficiale Programmiamo con Inforge | Esercitazione 02 in C | Livello base

Una Discussione Ufficiale punta a raccogliere tutte le informazioni su un argomento o un fatto di attualità, con costanti aggiornamenti da parte del creatore e dei partecipanti.
Supporta Inforge con una donazione

Sax3r28

Utente Gold
8 Aprile 2016
570
278
218
Ultima modifica:
Pronto a sfornare ignoranza.
Dico subito che non ho la minima idea di come mettere qualcosa di lunghezza variabile in uno struct, quindi da buona capra metto array a lunghezza definita e pace.
Ovviamente continuo a scrivere in c++ essendo, come scritto prima, capra.
 
  • Mi piace
  • Love
Reactions: Valley e Kode

Sax3r28

Utente Gold
8 Aprile 2016
570
278
218
Ultima modifica:
Posto subito una bozza sbarbina che devo uscire per una mezz'oretta, quando torno spero ci sia già qualcuno che ha distrutto e pestato a sangue questo codice.
p.s. non ricordo come "cancellare" per bene quindi ho semplicemente cambiato in campo vuoto.

C++:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <string>

class elenco
{
        char nome[20]; //ho provato ad usare string per nome e cognome ma mi dà errore, come si può fare? in un main pulito crea e stampa senza problemi
        char cognome[20];
        short eta;
        public:
        void inserisci();
        void visualizza();
        void cancella();
};
void elenco::inserisci()
{
        printf("Inserisci nome: ");
        scanf("%s",&nome);
        printf("Inserisci cognome: ");
        scanf("%s",&cognome);
        printf("Inserisci eta': ");
        scanf("%d",&eta);
     

}
void elenco::visualizza()
{

        printf("\nNome: %s", nome);
        printf("\nCognome: %s", cognome);
        printf("\nEta'': %d", eta);
       
}

void elenco::cancella()
{
    nome"";
    cognome="";
    eta="";
}




main()
{
    elenco r[10];
    int x=-1,c=1;
    while(x!=3)
    {
    printf("1)Inserisci utente\n2)Ricerca utente\n3)Cancella\n4)Inserisci e ordina\n");
    scanf("%d",&x);
        switch(x)
        {
           case 1:
           {       
                r[c].inserisci();
                c++;
                break;
           }
           case 2:
           {
                       int cerca=0;
                       printf("\nInserisci 0>posizione>9 del contatto da cercare:");
                       scanf("%d",&cerca);               
                    r[cerca-1].visualizza();               
                    break;       
           }
           case 3:
           {
                   int num=0;              
                   printf("\nInserisci 0>posizione>9 del contatto da eliminare:");
                   scanf("%d",&num);
                   r[num-1].cancella();
                   break;
           }
           case 4:
           {
            \\questo non ho idea di come farlo, o almeno per il momento non ricordo come far interagire i parametri della funzione e lo struct (sempre se si può)
            break;
           }
        }
    }
}
 

Dazorn

Utente Gold
23 Dicembre 2014
878
246
269
Ultima modifica:
Posto subito una bozza sbarbina che devo uscire per una mezz'oretta, quando torno spero ci sia già qualcuno che ha distrutto e pestato a sangue questo codice.
p.s. non ricordo come "cancellare" per bene quindi ho semplicemente cambiato il contatto in un campo vuoto.

C++:
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
class elenco
{
        char nome[20];
        char cognome[20];
        short eta;
        public:
        void inserisci();
        void visualizza();
        void cancella();
};
void elenco::inserisci()
{
        printf("Inserisci nome: ");
        scanf("%s",&nome);
        printf("Inserisci cognome: ");
        scanf("%s",&cognome);
        printf("Inserisci eta': ");
        scanf("%d",&eta);
      

}
void elenco::visualizza()
{

        printf("\nNome: %s", nome);
        printf("\nCognome: %s", cognome);
        printf("\nEta'': %d", eta);
        
}

void elenco::cancella()
{
    nome"";
    cognome="";
    eta="";
}




main()
{
    elenco r[10];
    int x=-1,c=1;
    while(x!=3)
    {
    printf("1)Inserisci utente\n2)Ricerca utente\n3)Cancella\n4)Esci\n");
    scanf("%d",&x);
        switch(x)
        {
           case 1:
           {        
                r[c].inserisci();
                c++;
                break;
           }
           case 2:
           {
                       int cerca=0;
                       printf("\nInserisci posizione>0 del contatto da cercare:");
                       scanf("%d",&cerca);                
                    r[cerca-1].visualizza();                
                    break;        
           }
           case 3:
           {
                   int num=0;               
                   printf("\nInserisci posizione>0 del contatto da eliminare:");
                   scanf("%d",&num);
                   r[num-1].cancella();
                   break;
           }
           case 4:
           {           
            break;
           }
        }
    }
}
Il case 4 secondo me potrebbe anche non servire in questo caso (certamente non influenza le prestazioni dell'algoritmo). Normalmente si inserisce un controllo di questo tipo quando hai un while che circonda il tuo menù a console, in maniera tale da uscire dal while stesso solamente quando l'utente finisce di utilizzare l'applicazione.
Comunque la consegna chiedeva una sequenza di dimensione variabile e nel tuo caso mi sembra fissa a 10.

Devi implementare un struttura dati LISTA
 
  • Mi piace
Reactions: Valley
Supporta Inforge con una donazione

Sax3r28

Utente Gold
8 Aprile 2016
570
278
218
Ultima modifica:
Comunque la consegna chiedeva una sequenza di dimensione variabile e nel tuo caso mi sembra fissa a 10.
Dico subito che non ho la minima idea di come mettere qualcosa di lunghezza variabile in uno struct, quindi da buona capra metto array a lunghezza definita e pace.
Riguardo la seconda parte, praticamente deve ordinare dopo ogni inserimento? *dopo una mezz'ora passata a pensarci, ancora non mi viene in mente niente :V
 
Supporta Inforge con una donazione