manniello 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. // contatti2.cpp : Defines the entry point for the console application.
  2. //
  3. /*
  4. scrivere un programma che usando le funzioni che restituiscono un puntatore allochi un array di contati di cui numeri di elemnti è chiesto in inputi dall'
  5. utente il programma deve permettere le seguenti voci di menù:
  6. inserise nuovo contatto
  7. stampa tutti i contatti
  8. ricerca un contatto per cognome
  9. contatto congome,nome, telefono,città.
  10. */
  11. #include "stdafx.h"
  12. #include <iostream>
  13. #include <string.h>
  14. #define NC 20+1
  15. using namespace std;
  16. typedef struct {
  17. char nome[NC];
  18. char cognome[NC];
  19. int telefono;
  20. char citta[NC];
  21. }CONTATTI;
  22. CONTATTI*carica(int n);//prototipo
  23. void ricerca(int n, CONTATTI a[] );
  24. void stampa(int n, CONTATTI a[]);
  25. void menù();
  26. int main()
  27. {
  28. menù();
  29. return 0;
  30. }
  31. void menù() {
  32. int numero_contati;
  33. int scelta = 0;
  34. CONTATTI*u=0;
  35. do {
  36. system("cls");
  37. printf(" **menu**\n");
  38. printf("0.esci\n");
  39. printf("1.carica\n");
  40. printf("2.ricerca\n");
  41. printf("3.visualizza\n");
  42. scanf_s("%d", &scelta, sizeof(int));
  43. switch (scelta) {
  44. case 0:
  45. printf("arrivederci e lasciate la mancia\n");
  46. system("pause");
  47. break;
  48. case 1:
  49. printf("inserire il numero dei contatti\n");
  50. scanf_s("%d", &numero_contati, sizeof(int));
  51. u = carica(numero_contati);
  52. break;
  53. case 2:
  54. ricerca(numero_contati, u);
  55. system("pause");
  56. break;
  57. case 3:
  58. stampa(numero_contati, u);
  59. system("pause");
  60. break;
  61. default:
  62. printf("valore non valido\n");
  63. break;
  64. }
  65. } while (scelta != 0);
  66. free(u);
  67. }
  68. void stampa(int n, CONTATTI a[]) {
  69. for (int i = 0; i < n; i++) {
  70. printf(" nome :%s \n", a[i].nome);
  71. printf(" cognome :%s \n", a[i].cognome);
  72. printf("città: %s \n", a[i].citta);
  73. //printf(" telefono :%d \n", a[i].telefono);
  74. }
  75. }
  76. void ricerca(int n,CONTATTI a[]) {
  77. char str[NC];
  78. int g = 0;
  79. printf("inserire il congome da ricercare\n");
  80. scanf_s("%s", str, NC);
  81. for (int i = 0; i < n; i++) {
  82. if (strcmp(str, a[i].cognome) == 0) {
  83. g = i;
  84. break;
  85. }
  86. }
  87. printf(" nome %s \n", a[g].nome);
  88. printf(" città %s \n", a[g].citta);
  89. //printf(" telefono %d \n,a[g].telefono);
  90. }
  91. CONTATTI*carica(int n) {
  92. //int numero_contati;
  93. CONTATTI*o;
  94. //printf("inserire il numero dei contatti\n");
  95. //scanf_s("%d", &numero_contati, sizeof(int));
  96. o = (CONTATTI*)malloc(n* sizeof(CONTATTI));
  97. for (int i = 0; i < n ; i++) {
  98. system("cls");
  99. printf("inserire il cognome\n");
  100. scanf_s("%s", o[i].cognome, NC);
  101. printf("inserire nome\n");
  102. scanf_s("%s", o[i].nome, NC);
  103. printf("inserire città\n");
  104. scanf_s("%s", o[i].citta, NC);
  105. /*
  106. printf("inserire numero di telefono\n"); chiedere al prof
  107. scanf_s("%d", o[i].telefono, sizeof(int));
  108. */
  109. }
  110. return o;
  111. }