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;
}
|