Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <malloc.h>
- //definiamo elenco numeri:
- typedef struct t{
- char numero[15];
- struct t *next;
- }nodoListaNumeri, *elencoNumeri;
- //definiamo "persona":
- typedef struct s{
- char nome[20];
- char cognome[20];
- elencoNumeri numeri;
- }persona;
- //definiamo la struttura:
- typedef struct per{
- persona info;
- struct per *next;
- }nodoListaPersone, *Rubrica;
- void InserisciInTestaRubrica(Rubrica *pl, persona p){
- Rubrica aux;
- aux = (Rubrica)malloc(sizeof(nodoListaPersone));
- if (aux != NULL){
- aux->info = p;
- aux->next = *pl;
- *pl = aux;
- }
- }
- void InserisciInTestaNumeri(elencoNumeri *pl, char *numero){
- elencoNumeri paux;
- paux = (elencoNumeri)malloc(sizeof(nodoListaNumeri));
- if (paux != NULL){
- strcpy(paux->numero,numero);
- paux->next = *pl;
- *pl = paux;
- }
- }
- void stampaPersona(Rubrica R){
- if (R != NULL) {
- printf("%d->", R->info);
- R = R->next;
- }
- }
- void stampaNumero(Rubrica N){
- if (N != NULL){
- printf("%d->", N->info);
- N = N->next;
- }
- }
- void CancellaInTestaNumeri(elencoNumeri *pl, char *numero){
- elencoNumeri aux;
- if (*pl != NULL){
- aux = *pl;
- *pl = (*pl)->next;
- free(aux);
- }
- }
- void InserisciNuovaPersona(Rubrica *pl){
- persona p;
- printf("\ninserisci il cognome: ");
- scanf("%s", p.cognome);
- printf("\ninserisci il nome: ");
- scanf("%s", p.nome);
- p.numeri = NULL;
- InserisciInTestaRubrica(pl, p);
- }
- Rubrica Ricerca(Rubrica R,persona p){
- while (R != NULL){
- if (R->info.nome == p.nome) return R;
- R = R -> next;
- }
- }
- void InserisciNuovoNumero(Rubrica R){
- persona p;
- char numero[15];
- Rubrica aux;
- printf("\ninserisci il cognome: ");
- scanf("%s", p.cognome);
- printf("\ninserisci il nome: ");
- scanf("%s", p.nome);
- aux = Ricerca(R, p);
- if (aux != NULL){
- printf("\ninserisci numero: "),
- scanf("%s", numero);
- InserisciInTestaNumeri(R, numero);
- }
- }
- int main(){
- //variabili:
- persona p;
- Rubrica R;
- R = NULL;
- int scelta = 0;
- int n;
- char numero[15];
- //copro main
- printf("\n 1) Inserisci persona in testa: ");
- printf("\n 2)Inserisci numero in testa: ");
- printf("\n 3) stampa persona: ");
- printf("\n 4) stampa numero: ");
- printf("\n 5) cancella numero: ");
- while (scelta >= 0 && scelta <= 5){
- printf("digita un numero:\n ");
- scanf("%d", &n);
- switch (scelta){
- case 1:
- printf("\ninserisci il cognome: ");
- scanf("%s", p.cognome);
- printf("\ninserisci il nome: ");
- scanf("%s", p.nome);
- InserisciInTestaRubrica(&R, p);
- break;
- case 2:
- printf("\ninserisci il numero: ");
- scanf("%s", numero);
- InserisciInTestaNumeri(&R, numero);
- break;
- case 3: stampaPersona(R);
- case 4: stampaNumero(R);
- case 5: CancellaInTestaNumeri(&R, numero);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement