Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - rubrica da trasformare in allocazione di memoria
Forum - C/C++ - rubrica da trasformare in allocazione di memoria

Avatar
matteog (Normal User)
Pro


Messaggi: 149
Iscritto: 10/04/2009

Segnala al moderatore
Postato alle 18:23
Giovedì, 16/04/2009
qualcuno sà spiegarmi come posso fare l'allocazione di memoria di questo programma??
sono ben accetti i consigli grazie.


// rubricad.cpp : definisce il punto di ingresso dell'applicazione console.
//
#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <stdio.h>
#define DIM 20//INDICA LA DIMENSIONE DELLA STRUTTURA
using namespace std;
typedef struct //STRUTTURA DI NOME PERSONA CHE CONTIENE 4 VETTORI DI TIPO STRINGA
{
char nome[40];
char cognome[40];
char numero[13];
char email[100];
}
persona;
int main()
{
    bool flag=false;
    char nom[40];
    char man[40];
    char num2[20];
    char ema[40];
    persona rubrica[DIM];
       char scelta='s' ;
    int I = 0;
    int J = 0;
    char*nomeric=new char[40];
    char risp3=0;
    int num = 0;    
  do
  {
     cout<<"         "<<".....il programma svolge le funzioni di una rubrica telefonica....."<<endl<<endl<<endl<<endl;
     cout<<"premere 1 per inserire ,2 per cercare e 3 per modificare,4 per uscire!!"<<endl;
     cin>>risp3;
     if(risp3=='1')
     {
    
         scelta='S';
      while((scelta == 'S' || scelta == 's')&&I < DIM)
      {
        cout<<"Inserisci il nome: "<<'\n';
        cin>>rubrica[I].nome;
        cout<<"Inserisci il cognome:  "<<'\n';
        cin>>rubrica[I].cognome;
      cout<<"Inserisci il numero di telefono: "<<'\n';
      cin>>rubrica[I].numero;
      cout<<"Inserici l'e-mail: "<<'\n';
      cin>> rubrica[I].email;
      cout<<""<<'\n';
      I=I+1;
      // Chiedo se continuare o meno.
      cout<<" Spazio disponibile:"<<(DIM-I)<<endl;
      cout<<"Inserire un altro contatto? [S/N]: "<<endl;
      cin>>&scelta;
      }
    if(I == DIM)
    {
     printf("Rubrica piena\n");
    }    
     }
   else if(risp3=='2')
   {
          scelta='S';
          // Effettuiamo la ricerca:
          num = 0;
          J = 0;
             printf("Inserici il nome da ricercare: ");//ESEGUE LA RICERCA
             cin>>nomeric;
             while(J < DIM)
             {
                 if(!strcmp(nomeric, rubrica[J].nome))//permette mediante la strcmp
                 //di confrontare carattere per carattere la stringa cercata con quella salvata
                 {
                     printf("%s\n",rubrica[J].nome);//l'uso dell printf permette la scrittura all'interno
                     //della struttura e la messa a video in modo più chiaro
                      printf("%s\n", rubrica[J].cognome);
                     printf("Tel: %s\n", rubrica[J].numero);
                     printf("Email: %s\n", rubrica[J].email);
                     printf("\n");
                     num++;
                 }
                 J=J+1;
              }
   }  
   else if(risp3=='3')
   {
       cout<<"inserisci il nome della pesona che vuoi sostituire!"<<endl;
       cin>>nom;
    scelta='S';
   // Effettuiamo la ricerca:
          num = 0;
          J = 0;
             printf("Inserici il nome da ricercare: ");//ESEGUE LA RICERCA
             cin>>nomeric;
             while(J < DIM)
             {
                 if(!strcmp(nomeric, rubrica[J].nome))//permette mediante la strcmp
                 //di confrontare carattere per carattere la stringa cercata con quella salvata
                 {
                     strcpy(rubrica[J].nome,nom);//l'uso dell printf permette la scrittura all'interno
                     //della struttura e la messa a video in modo più chiaro
                     cout<<"inserisci il cognonme da inserire:   ";
                     cin>>man;
                     strcpy(rubrica[J].cognome,man);
                     cout<<"inserisci il numero da inserire:   ";
                     cin>>num2;
                     strcpy(rubrica[J].numero,num2);
                     cout<<"inserisci l'email:    ";
                     cin>>ema;
                     strcpy(rubrica[J].email,ema);
                     printf("\n");
                     num++;
                 }
                 J=J+1;
             }
   }
   else if(risp3=='4')
   {
       cout<<"ciao e grazie"<<endl;
       flag=true;
   }
  }
  while(flag==true||risp3!=4);
  system ("pause");
  return 0;
  }




matteog
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 18:25
Giovedì, 16/04/2009
Testo quotato

Postato originariamente da matteog:

qualcuno sà spiegarmi come posso fare l'allocazione di memoria di questo programma??
sono ben accetti i consigli grazie.



Cioe'?


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
matteog (Normal User)
Pro


Messaggi: 149
Iscritto: 10/04/2009

Segnala al moderatore
Postato alle 18:27
Giovedì, 16/04/2009
cioè mi sapete spiegare come fare per allocare la memoria della struttura ,dei vettori e delle variabili??


matteog
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 19:45
Giovedì, 16/04/2009
Scusa ... ma non l'hai allocato qui

persona rubrica[DIM];

la tua rubrica?


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote