codice:
#include <stdio.h>
#include <iostream>
#include <malloc.h>
#include <string.h>
typedef struct {
char Nome[15]; //nome del contatto
char Cognome[15]; //cognome del contatto
char Numeroditelefono [20]; //numero di telefono
char Indirizzopaginaweb [50]; //indirizzo di pagina web
char Indirizzoemail [50]; //indirizzo email
} contatto; //struttura dell'agenda
struct record;//struttura con la variabile record
typedef record * L;//la variabile punta a L
typedef struct record{//struttura della variabile record
contatto a[];
L next;
} record;
void push (L c,contatto elem){
L b;
L k;
int n=0;
b=(L) malloc(sizeof(record));
b->next=c;
strcpy(b->a.Cognome,k);
}
void insert(L c,contatto elem[]){
int s=50;
int d=0;
int n=0;
while ((c!=NULL)&&(!d==0)){
if(elem>c->a) c=c->next;
if(elem<=c->a) d=1;
}
if(d==1)push(c,elem[n]);
for(n=0;n<s;n++){
printf("\nnome \n");
scanf("%s",&a[n].Nome);
strcpy(a[n].Nome,elem[n].Nome);
printf("\n._._._._._._._._._._._._.\n");
printf("\ncognome \n");
scanf("%s",&a[n].Cognome);
strcpy(a[n].Cognome,elem[n].Cognome);
printf("\n._._._._._._._._._._._._.\n");
printf("\nnumero di telefono \n");
scanf("%s",&a[n]Numeroditelefono); strcpy(a[n]Numeroditelefono,elem[n].Numeroditelefono); printf("\n._._._._._._._._._._._._.\n");
printf("\nindirizzo pagina web \n");
scanf("%s",&a[n].Indirizzopaginaweb); strcpy(a[n].Indirizzopaginaweb,elem[n].Indirizzopaginaweb); printf("\n._._._._._._._._._._._._.\n");
printf("\nindirizzo email \n");
scanf("%s",&a[n].Indirizzoemail); strcpy(a[n].Indirizzoemail,elem[n].Indirizzoemail); printf("\n._._._._._._._._._._._._.\n");
printf("\n^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^\n");
}}
void ordina(L c,contatto elem[]){
int n=0;
char f[50];
int s=50;
while(n<s){
if(strcmp(elem[n].Cognome,elem[n+1].Cognome)>0){
//scambia Cognomi
strcpy(f,elem[n].Cognome);
strcpy(elem[n].Cognome, elem[n+1].Cognome);
strcpy(elem[n+1].Cognome, f);
//Scambia Nomi
strcpy(f, elem[n].Nome);
strcpy(elem[n].Nome, elem[n+1].Nome);
strcpy(elem[n+1].Nome, f);
//Scambia numeri di telefono
strcpy(f, elem[n].Numeroditelefono);
strcpy(elem[n].Numeroditelefono, elem[n+1].Numeroditelefono);
strcpy(elem[n+1].Numeroditelefono,f);
//Scambia indirizzo di pagina web
strcpy(f, elem[n].Indirizzopaginaweb);
strcpy(elem[n].Indirizzopaginaweb, elem[n+1].Indirizzopaginaweb);
strcpy(elem[n+1].Indirizzopaginaweb,f);
//Scambia indirizzo email
strcpy(f, elem[n].Indirizzoemail);
strcpy(elem[n].Indirizzoemail, elem[n+1].Indirizzoemail);
strcpy(elem[n+1].Indirizzoemail, f);
}}}
void stampa(L c,contatto elem[]){
int n=0;
int s=50;
for(n=0;s<50;n++){
printf("%s\n%s\n%s\n%s\n%s\n",elem[n].Nome,elem[n].Cognome,elem[n].Numeroditelefono,elem[n].Indirizzopaginaweb,elem[n].Indirizzoemail);
} }
void leggi(L c,contatto elem[]){
int n=0;
int s=50;
char p[100];
printf("dammi il cognome che stai cercando");
scanf("%s",&p);
for(n=0;n<s;n++){
if(p==elem[n].Cognome){
stampa(c,elem);
}else{
printf("ERRORE: nessun elemento corrisponde a quello che stai cercando"); }}}
void Cancella(L c,contatto elem){
L b=c,tmpPunt2;
while(b!=NULL) {
tmpPunt2=b->next;
free(b);
b=tmpPunt2;
}
free(tmpPunt2);
}
int main (){
L a;
int n=0;
int s=50;
int q=0,Scelta;
//scelta del menu
int z=0,scelta;
////////////Menu///////////
do {
printf("1. Inserisci nuovo contatto \n");
printf("2. Visualizza lista contatti \n");
printf("3. immetti il numero del contatto che stai cercando \n");
printf("4. elimina contatto \n");
printf("5. elimina tutta la rubrica \n");
printf("6. Esci \n");
scanf("%d",&Scelta);
system("CLS");
switch(Scelta) {
case 1:
insert(c,elem);
ordina(c,elem);
break;
case 2:
stampa(c,elem);
break;
case 3:
printf("Inserisci il nome del contenuto da cui vuoi leggere:
\n");
scanf("%s",elem[n].Cognome);
leggi(c,elem);
break;
case 4:
do {
printf("1. elimina il primo contatto \n");
printf("2. elimina un contatto qualunque della lista
\n");
printf("3. elimina un contatto in coda \n");
printf("4. Esci \n");
scanf("%d",&scelta);
system("CLS");
switch(scelta){
case 1:
printf("1. elimina il primo contatto \n");
break;
case 2:
printf("1. elimina il primo contatto \n");
break;
case 3:
printf("1. elimina il primo contatto\n");
break;
}
system("PAUSE");
system("CLS");
}while(Scelta!=4);
break;
case 5:
printf("1. elimina il primo contatto \n");
Cancella(c,elem);
break;
}
system("PAUSE");
system("CLS");
}while(Scelta!=6);
return 0;
}