Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Gestione archivio telefonico [C]
Forum - C/C++ - Gestione archivio telefonico [C] - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
redi (Normal User)
Newbie


Messaggi: 6
Iscritto: 23/02/2016

Segnala al moderatore
Postato alle 19:24
Mercoledì, 24/02/2016
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #define MAXUTENTI 10
  3. typedef struct
  4. {
  5. char prefisso[5];
  6. int numero;
  7. }phone;
  8. typedef struct
  9. {
  10. char nome[20];
  11. char cognome[20];
  12. phone telefono;
  13. }utente;
  14. typedef enum
  15. {false,true} operazioni logiche;
  16. main()
  17. {
  18. utente UTENTI[MAXUTENTI];
  19. char nome[20],cognome[20],prefisso[5];
  20. int inseriti,a,i,j,numero;
  21. operazioni logiche fine,trovato;
  22. char scelta,c;
  23. inseriti=0;
  24. fine=false;
  25. while
  26. (inseriti<MAXUTENTI && !fine){
  27. printf("Vuoi inserire un utente?");
  28. scelta=getchar();
  29. c=getchar();
  30. if (scelta==10 || scelta==20){
  31. printf("Inserisci il nome:");
  32. gets(UTENTI[inseriti].nome);
  33. printf("Inserisci il cognome:");
  34. gets(UTENTI[inseriti].cognome);
  35.  
  36.  
  37. printf("Inserisci il numero:");
  38. scanf("%s",UTENTI[inseriti].telefono.numero);
  39. inseriti++;
  40. c=getchar();
  41. }
  42. else
  43.  fine=true;
  44. }
  45. fine=false;
  46. do
  47. {
  48. printf("\n");
  49. printf("QUALE SCELTA VUOI EFFETTUARE NELLA RUBRICA?\n");
  50. printf("1: inserisci nominativo\n");
  51. printf("2: ricerca\n");
  52. printf("3: uscita\n");
  53. scanf("%d",&a);
  54. c=getchar();
  55. switch
  56. (op){
  57.  
  58. case(2):
  59. /* ricerca */
  60. printf("Inserisci il dati della persona da ricercare: \n");
  61. printf("Nome:");
  62. gets(nome);
  63. printf("Cognome:");
  64. gets(cognome);
  65. i=0;
  66. trovato=false;
  67. while
  68. (i<inseriti && !trovato){
  69. if
  70. (strcmp(UTENTI[i].nome,nome)==0 && strcmp(UTENTI[i].cognome,cognome)==0){
  71. trovato=true;
  72. printf("Il numero di telefono e‘: (%s) %d\n",UTENTI[i].telefono.numero);
  73. }
  74. i++;
  75. }
  76. if
  77. (!trovato)
  78. printf("L’utente ricercato non appartiene all’archivio!\n");
  79. break;
  80. case(1):
  81. /* inserimento */
  82. if
  83. (inseriti<MAXUTENTI){
  84. printf("Inserisci il nominativo dell'utente: \n");
  85. printf("Nome:");
  86. gets(UTENTI[inseriti].nome);
  87. printf("Cognome:");
  88. gets(UTENTI[inseriti].cognome);
  89. printf("Numero di telefono:\n");
  90. scanf("%d",&UTENTI[inseriti].telefono.numero);
  91. inseriti++;
  92. }
  93. else
  94.  printf("Non e' presente piu' spazio per inserire nuovi nominativi.\n");
  95. break;
  96. case
  97. (3):
  98. /* uscita */
  99. fine=true;
  100. break;
  101. default: printf("ESCI!");
  102. }
  103. }
  104. while(!fine);
  105. }


cosa ne pensate?

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 20:03
Mercoledì, 24/02/2016
Non voglio leggere quel codice. La formattazione del codice sorgente E' UN OBBLIGO in tutte le discussioni pubbliche. NESSUNO leggerà MAI il tuo codice sorgente senza averlo prima formattato.

L'algoritmo è semplice:
più è profondo il livello più TAB devi premere prima della riga di codice.

es.

Codice sorgente - presumibilmente Plain Text

  1. 0 tab
  2. {
  3.     1 tab
  4.     {
  5.         2 tab
  6.         {
  7.              3 tab
  8.  
  9.              ecc.....
  10.         }
  11.     }
  12. }



Non volermene, non è cattiveria, è che non mi va di affaticarmi e perdere molto tempo per negligenza altrui, e nessun altro membro della community lo farà.

Una delle prime cose che noto è:
Codice sorgente - presumibilmente C/C++

  1. scelta=getchar();
  2. c=getchar();
  3. if (scelta==10 || scelta==20)



http://www.ascii-code.com/ come dovrei fare a inserire un "Device Control 4" in input dalla console?
perchè leggi c? Perchè lo leggi alle righe 29 e 40 quando lo lasci inutilizzato? Perchè non hai diviso il codice in funzioni attenendoti alle regole di buona programmazione?  

Codice sorgente - presumibilmente C/C++

  1. scelta=getchar();
  2. c=getchar();
  3. if (scelta==10 || scelta==20){
  4. printf("Inserisci il nome:");
  5. gets(UTENTI[inseriti].nome);
  6. printf("Inserisci il cognome:");
  7. gets(UTENTI[inseriti].cognome);



printf("Vuoi inserire un utente?")

se rispondo ok, si, no, bo, cc, ff, Ye, Ja, ecc.... otterrei sempre lo stesso risultato: Ho richiesto di NON inserire altri utenti. Inconcepibile.

Tra l'altro siccome non hai spezzato il codice in più funzioni ti ritrovi a dover copiare e incollare pezzi di programma tali e quali, riducendo la leggibilità del programma a niente e occupando spazio inutilmente.

Questo evidentemente non è il modo giusto di scrivere un programma.

Tra l'altro dubito quel codice possa funzionare, ma sono sicuro che non funzionerà come vuoi.


PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo