diff --git a/Program.cs b/Program.cs index 873a3a4..584d238 100644 --- a/Program.cs +++ b/Program.cs @@ -8,8 +8,8 @@ class Program { int scelta = 0; string nome = ""; string numeroditelefono; - bool check = false; - bool check2 = false; + bool rubricaEsiste = false; + bool error; bool check3 = false; int contatore = 0; string nomeesatto; @@ -19,12 +19,12 @@ class Program { string[] numeriditelefono = new string[DIMENSIONE_RUBRICA]; Voce singolavoce = null; Voce[] voci = new Voce[DIMENSIONE_RUBRICA]; - Rubrica rubrica = null; + Rubrica? rubrica = null; do { Console.WriteLine("1)Aggiungi nuova voce in rubrica"); Console.WriteLine("2)Ricerca esatta per nome"); - Console.WriteLine("3)Ricerca approsimata per nome"); - Console.WriteLine("4)Stampa completa rubrice"); + Console.WriteLine("3)Ricerca approssimata per nome"); + Console.WriteLine("4)Stampa completa rubrica"); Console.WriteLine("5)Esci"); scelta = Convert.ToInt32(Console.ReadLine()); switch (scelta) { @@ -34,53 +34,48 @@ class Program { } else { do { - check2 = false; + string? message; + error = true; Console.WriteLine("Inserisci il nome della voce che andrà nella rubrica telefonica"); nome = Console.ReadLine().ToLower(); - nomi[contatore] = nome; - check3 = VerificaDoppione(nome, nomi, contatore); - if (contatore == 0) { + message = Controllo(nome, true, contatore, rubrica); + + if (message != null) { + Console.WriteLine(message); } - if (nome.Length > 40) { - Console.WriteLine("il nome non può essere lungo più di 40 caratteri"); - } - if (VerificaCorrettezza(nome, true)) { - Console.WriteLine("il nome non può contenere dei numeri"); - } - if (check3 == true) { - Console.WriteLine("Questo nome esiste già nelle rubrica"); + else { + error = false; } + } - while (nome.Length > 40 || check2 == true || check3 == true); + while (error); do { - check2 = false; + string? message; + error = true; Console.WriteLine("Inserisci il numero di telefono della voce che andrà nella rubrica telefonica"); - numeroditelefono = Console.ReadLine(); - numeroditelefono = numeroditelefono.ToLower(); - numeriditelefono[contatore] = numeroditelefono; - check2 = VerificaCorrettezza(numeroditelefono, false); - check3 = VerificaDoppione(numeroditelefono, numeriditelefono, contatore); - if (numeroditelefono.Length > 20) { - Console.WriteLine("il numero di telefono non può essere lungo più di 20 caratteri"); + numeroditelefono = Console.ReadLine().ToLower(); + + message = Controllo(nome, true, contatore, rubrica); + + if (message != null) { + Console.WriteLine(message); } - if (check2 == true) { - Console.WriteLine("il numero di telefono deve contenere solo numeri"); - } - if (check3 == true) { - Console.WriteLine("Questo numero di telefono esiste già nelle rubrica"); + else { + error = false; } } - while (numeroditelefono.Length > 20 || check2 == true || check3 == true); + while (error); + singolavoce = new Voce(nome, numeroditelefono); voci[contatore] = singolavoce; rubrica = new Rubrica(voci); contatore++; - check = true; + rubricaEsiste = true; } break; case 2: - if (check == false) { + if (rubricaEsiste == false) { Console.WriteLine("devi prima aggiungere una voce in rubrica"); } else { @@ -103,7 +98,7 @@ class Program { } break; case 3: - if (check == false) { + if (rubricaEsiste == false) { Console.WriteLine("devi prima aggiungere una voce in rubrica"); } else { @@ -125,7 +120,7 @@ class Program { } break; case 4: - if (check == false) { + if (rubricaEsiste == false) { Console.WriteLine("devi prima aggiungere una voce in rubrica"); } else { @@ -140,9 +135,9 @@ class Program { } } while (scelta != 5); - Console.WriteLine("Chiusura effettuta con successo"); + Console.WriteLine("Chiusura effettuata con successo"); } - + static bool VerificaCorrettezza(string p_stringa, bool p_tipologia) { /* tipologia=true -> Controllo validità nome @@ -161,21 +156,23 @@ class Program { return check; } - static bool Controllo(string p_stringa, bool p_tipologia, int p_contatore) { - bool ritorno = true; + static string? Controllo(string p_stringa, bool p_tipologia, int p_contatore, Rubrica? p_rubrica) { + /* + tipologia=true -> Controllo validità nome + tipologia=false -> Controllo validità numero di telefono + */ + string? ritorno = null; const int LUNGHEZZA_NOME = 40; const int LUNGHEZZA_TELEFONO = 20; if (p_stringa.Length > (p_tipologia ? LUNGHEZZA_NOME : LUNGHEZZA_TELEFONO)) { - Console.WriteLine($"Il {(p_tipologia ? "nome" : "numero di telefono")} non può essere lungo più di {(p_tipologia ? LUNGHEZZA_NOME : LUNGHEZZA_TELEFONO)} caratteri"); - ritorno = false; + ritorno = $"Il {(p_tipologia ? "nome" : "numero di telefono")} non può essere lungo più di {(p_tipologia ? LUNGHEZZA_NOME : LUNGHEZZA_TELEFONO)} caratteri"; } if (VerificaCorrettezza(p_stringa, p_tipologia)) { - Console.WriteLine(p_tipologia ? "Il nome non può contenere numeri" : "Numero di telefono non valido"); - ritorno = false; + ritorno = p_tipologia ? "Il nome non può contenere numeri" : "Numero di telefono non valido"; } - if (p_contatore != 0) { - if (p_stringhe.Contains(p_stringa)) { - Console.WriteLine($"Questo {(p_tipologia ? "nome" : "numero di telefono")} esiste già nelle rubrica."); + if (p_contatore != 0 && p_rubrica != null) { + if (p_rubrica.Contains(p_stringa)) { + ritorno = $"Questo {(p_tipologia ? "nome" : "numero di telefono")} esiste già nella rubrica."; } } return ritorno; diff --git a/Rubrica.cs b/Rubrica.cs index feae58f..c296417 100644 --- a/Rubrica.cs +++ b/Rubrica.cs @@ -1,59 +1,48 @@ namespace Rubrica_Miglioria; class Rubrica { -Voce[] vocidellarubrica; + Voce[] vocidellarubrica; - public Rubrica(Voce[] p_vocidellarubrica) - { - this.vocidellarubrica = p_vocidellarubrica; - } + public Rubrica(Voce[] p_vocidellarubrica) { + this.vocidellarubrica = p_vocidellarubrica; + } - public void Setvocidellarubrica(Voce[] p_vocidellarubrica) - { - this.vocidellarubrica = p_vocidellarubrica; - } - public Voce[] GetVocidellarubrica() - { - return this.vocidellarubrica; - } - public string EsistenzaNomeEsatto(string p_nomeesatto, int p_contatore) - { - string nomedellarubrica = ""; - string numeroditelefonodellarubrica = ""; - string messaggio = "non esiste il nome " + p_nomeesatto + " all'interno della rubrica"; - for (int i = 0; i < p_contatore; i++) - { - nomedellarubrica = this.vocidellarubrica[i].GetNome(); - if (p_nomeesatto == nomedellarubrica) - { - messaggio = "esiste il nome " + p_nomeesatto + " all'interno della rubrica" + "e il suo numero di telefono è " + (numeroditelefonodellarubrica = this.vocidellarubrica[i].Getnumeroditelefono()); - break; - } - } - return messaggio; - } - public void EsistenzaNomeApprosimato(string p_nomeapprosimato, int p_contatore) - { - string nomedellarubrica = ""; - string numeroditelefonodellarubrica = ""; - for (int i = 0; i < p_contatore; i++) - { - nomedellarubrica = this.vocidellarubrica[i].GetNome(); - if (nomedellarubrica.StartsWith(p_nomeapprosimato)) - { - Console.WriteLine("esiste il nome " + nomedellarubrica + " e il suo numero di telefono è: " + (numeroditelefonodellarubrica = this.vocidellarubrica[i].Getnumeroditelefono())); - } + public void Setvocidellarubrica(Voce[] p_vocidellarubrica) { + this.vocidellarubrica = p_vocidellarubrica; + } + public Voce[] GetVocidellarubrica() { + return this.vocidellarubrica; + } + public string EsistenzaNomeEsatto(string p_nomeesatto, int p_contatore) { + string nomedellarubrica = ""; + string numeroditelefonodellarubrica = ""; + string messaggio = "non esiste il nome " + p_nomeesatto + " all'interno della rubrica"; + for (int i = 0; i < p_contatore; i++) { + nomedellarubrica = this.vocidellarubrica[i].GetNome(); + if (p_nomeesatto == nomedellarubrica) { + messaggio = "esiste il nome " + p_nomeesatto + " all'interno della rubrica" + "e il suo numero di telefono è " + (numeroditelefonodellarubrica = this.vocidellarubrica[i].Getnumeroditelefono()); + break; } } - public void StampaRubricaCompleta(int p_contatore) - { - string nomedellarubrica = ""; - string numeroditelefonodellarubrica = ""; - for (int i = 0; i < p_contatore; i++) - { - Console.WriteLine("nome: " + (nomedellarubrica = this.vocidellarubrica[i].GetNome())); - Console.WriteLine("numero di telefono: " + (numeroditelefonodellarubrica = this.vocidellarubrica[i].Getnumeroditelefono())); - Console.WriteLine(); + return messaggio; + } + public void EsistenzaNomeApprosimato(string p_nomeapprosimato, int p_contatore) { + string nomedellarubrica = ""; + string numeroditelefonodellarubrica = ""; + for (int i = 0; i < p_contatore; i++) { + nomedellarubrica = this.vocidellarubrica[i].GetNome(); + if (nomedellarubrica.StartsWith(p_nomeapprosimato)) { + Console.WriteLine("esiste il nome " + nomedellarubrica + " e il suo numero di telefono è: " + (numeroditelefonodellarubrica = this.vocidellarubrica[i].Getnumeroditelefono())); } } + } + public void StampaRubricaCompleta(int p_contatore) { + string nomedellarubrica = ""; + string numeroditelefonodellarubrica = ""; + for (int i = 0; i < p_contatore; i++) { + Console.WriteLine("nome: " + (nomedellarubrica = this.vocidellarubrica[i].GetNome())); + Console.WriteLine("numero di telefono: " + (numeroditelefonodellarubrica = this.vocidellarubrica[i].Getnumeroditelefono())); + Console.WriteLine(); + } + } } \ No newline at end of file