Ciao a tutti sono un neofita del C, e mi sto cimentando in un programma di gestione di una rubrica. Questa è la consegna:
Definire una struttura che consente di gestire un elemento di una rubrica telefonica; i campi da utilizzare sono a vostra discrezione, l’unico vincolo è la presenza del nome e del numero di telefono, ambedue memorizzati come stringhe. Gestire quindi un array di elementi, prevedendo la possibilità di inserire, modificare, visualizzare, ricercare e cancellare elementi dalla rubrica stessa.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define DIM 20
#define DIM2 3
typedef struct{
char nome[DIM+1];
char n_tel[DIM+1];
char indirizzo[DIM+1];
char mail[DIM+1];
}Rubrica;
void acquisizione_rubrica(Rubrica [],int);
void stampa_rubrica(Rubrica [],int);
int Menu (Rubrica [],int);
void inserimento(Rubrica[],int,int);
int main()
{
Rubrica array[DIM2];
int scelta;
acquisizione_rubrica(array,DIM2);
scelta=Menu(array,DIM);
switch(scelta){
case 1:inserimento(array,DIM,DIM2);
break;
case 2: //funzione per modifiare
break;
case 3: //funzione per cercare
break;
case 4: //funzione per cancellare
break;
default:printf("ERRORE!!!");
}
stampa_rubrica(array,DIM2);
return 0;
}
void acquisizione_rubrica(Rubrica a[],int dim){
int i;
for(i=0;i<dim;i++){
printf("Inserisci il nome del contatto:\n");
scanf("%[^\n]s",a[i].nome);
getchar();
printf("Inserisci il numero del contatto:\n");
scanf("%s",a[i].n_tel);
getchar();
printf("\n");
}
}
void stampa_rubrica(Rubrica a[],int dim){
int i;
printf("RUBRICA TELEFONICA\n");
for(i=0;i<dim;i++){
printf("\n");
printf("Nome:%s\nNumero:%s\nIndirizzo:%s\nMail%s\n",a[i].nome,a[i].n_tel,a[i].indirizzo,a[i].mail);
}
}
int Menu (Rubrica a[],int dim){
int scelta;
printf("!!!IMPOSTAZIONI RUBRICA!!!\n");
printf("1=Inserire un nuovo campo nel contatto\n");
printf("2=Modificare un campo del contatto\n");
printf("3=Ricerca di un contatto\n");
printf("4=Cancellare un contatto\n");
scanf("%d",&scelta);
getchar();
return scelta;
}
void inserimento(Rubrica a[],int dim,int dim2){
char ricerca[dim];
int i,choose;
printf("Quale contatto vuoi modificare?");
scanf("%s",ricerca);
for(i=0;i<dim2;i++){
if(strcmp(a[i].nome,ricerca)==0){
do{
printf("Cosa vuoi aggiungere? 1=MAIL --- 2=Indirizzo");
scanf("%d",&choose);
getchar();
switch(choose){
case 1:
printf("Inserisci la mail:");
scanf("%[^\n]s",a[i].mail);
break;
case 2:
printf("Inserisci l' indirizzo:");
scanf("%[^\n]s",a[i].indirizzo);
break;
}
}while(choose==1 || choose==2);
}
}
}
Questo è il mio codice, volevo sapere se può andare e se si possono fare dei miglioramenti.