tambo2199

Rubrica

Sep 24th, 2018 (edited)
110
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // esercizio_funzioni_puntatori.cpp : Questo file contiene la funzione 'main', in cui inizia e termina l'esecuzione del programma.
  2. //
  3.  
  4. #include "pch.h"
  5. #include <iostream>
  6. #include<malloc.h>
  7. using namespace std;
  8.  
  9. #define LEN 20
  10. #define DIM 10
  11.  
  12. typedef struct
  13. {
  14.     char nome[LEN + 1];
  15.     char cognome[LEN + 1];
  16.     char numero[DIM+1];
  17.     char citta[LEN+1];
  18. }CONTATTO;
  19.  
  20.  
  21. void menu();
  22. CONTATTO *carica(int cont);
  23. void inserimento(CONTATTO *c, int cont);
  24. void stampa(CONTATTO *c, int cont);
  25. void ricerca(CONTATTO *c, int cont);
  26. int main()
  27. {
  28.     menu();
  29.     system("pause");
  30.     return 0;
  31. }
  32.  
  33. void menu()
  34. {
  35.     CONTATTO *c;
  36.     int scelta;
  37.     int cont;
  38.  
  39.     printf("quanti contatti vuoi inserire?\n");
  40.     scanf_s("%d", &cont, sizeof(int));
  41.     c = carica(cont);
  42.  
  43.  
  44.     do
  45.     {
  46.         system("cls");
  47.         printf("1.inserisci nuovo contatto\n2.visualizza la rubrica\n3.ricerca contatto per cognome\n0.chiudi la rubrica\nfai una scelta ");
  48.         scanf_s("%d", &scelta, sizeof(int));
  49.  
  50.         switch(scelta)
  51.         {
  52.             case 1:
  53.                 inserimento(c, cont);
  54.                 break;
  55.             case 2:
  56.                 stampa(c, cont);
  57.                 system("pause");
  58.                 break;
  59.             case 3:
  60.                 ricerca(c, cont);
  61.                 system("pause");
  62.                 break;
  63.             case 0:
  64.                 free(c);
  65.                 printf("alla prossima\n");
  66.                 break;
  67.         }
  68.     } while (scelta != 0);
  69. }
  70.  
  71. CONTATTO *carica(int cont)
  72. {
  73.     CONTATTO *c;
  74.  
  75.     c = (CONTATTO*)malloc(cont * sizeof(CONTATTO));
  76.  
  77.     return c;
  78. }
  79.  
  80. void inserimento(CONTATTO *c, int cont)
  81. {
  82.     system("cls");
  83.     for (int i = 0; i < cont; i++)
  84.     {
  85.         printf("inserisci il nome del contatto\n");
  86.         scanf_s("%s", c[i].nome, LEN + 1);
  87.         printf("inserisci il cognome del contatto\n");
  88.         scanf_s("%s", c[i].cognome, LEN + 1);
  89.         printf("inserisci il numero del contatto\n");
  90.         scanf_s("%s", c[i].numero, DIM + 1);
  91.         printf("inserisci la citta' del contatto\n");
  92.         scanf_s("%s", c[i].citta, LEN + 1);
  93.     }
  94. }
  95.  
  96. void stampa(CONTATTO *c, int cont)
  97. {
  98.     for (int i = 0; i < cont; i++)
  99.     {
  100.         printf("nome: %s cognome: %s numero: %s citta: %s\n", c[i].nome, c[i].cognome, c[i].numero, c[i].citta);
  101.     }
  102. }
  103.  
  104. void ricerca(CONTATTO *c, int cont)
  105. {
  106.     int cont1 = 0;
  107.     char str[LEN + 1];
  108.  
  109.     printf("inserisci il cognome che vuoi ricercare\n");
  110.     scanf_s("%s", str, LEN+1);
  111.  
  112.     for (int i = 0; i < cont; i++)
  113.     {
  114.         if (strcmp(str, c[i].cognome) == 0)
  115.         {
  116.             system("cls");
  117.             printf("nome: %s cognome: %s numero: %s citta: %s\n", c[i].nome, c[i].cognome, c[i].numero, c[i].citta);
  118.             cont1++;
  119.         }
  120.     }
  121.  
  122.     if (cont1 == 0)
  123.         printf("non sono stati trovati contatti con quel cognome\n");
  124. }
RAW Paste Data