Nuovo metodo di ricerca nomi

This commit is contained in:
La Programmatrice Verde 2025-09-23 18:59:08 +02:00
parent 815fb9762e
commit 03736a95f1
2 changed files with 18 additions and 27 deletions

View File

@ -19,7 +19,7 @@ class Program {
string[] numeriditelefono = new string[DIMENSIONE_RUBRICA]; string[] numeriditelefono = new string[DIMENSIONE_RUBRICA];
Voce singolavoce = null; Voce singolavoce = null;
Voce[] voci = new Voce[DIMENSIONE_RUBRICA]; Voce[] voci = new Voce[DIMENSIONE_RUBRICA];
Rubrica? rubrica = null; Rubrica rubrica = new Rubrica(DIMENSIONE_RUBRICA);
do { do {
Console.WriteLine("1)Aggiungi nuova voce in rubrica"); Console.WriteLine("1)Aggiungi nuova voce in rubrica");
Console.WriteLine("2)Ricerca esatta per nome"); Console.WriteLine("2)Ricerca esatta per nome");
@ -93,7 +93,7 @@ class Program {
} }
} }
while (nomeesatto.Length > 40 || check2 == true); while (nomeesatto.Length > 40 || check2 == true);
messaggio = rubrica.EsistenzaNomeEsatto(nomeesatto, contatore); messaggio = rubrica.Ricerca(nomeesatto, true, contatore);
Console.WriteLine(messaggio); Console.WriteLine(messaggio);
} }
break; break;
@ -116,7 +116,7 @@ class Program {
} }
} }
while (nomeapprossimato.Length > 40 || check2 == true); while (nomeapprossimato.Length > 40 || check2 == true);
rubrica.EsistenzaNomeApprosimato(nomeapprossimato, contatore); rubrica.Ricerca(nomeapprossimato, false, contatore);
} }
break; break;
case 4: case 4:
@ -170,7 +170,7 @@ class Program {
if (VerificaCorrettezza(p_stringa, p_tipologia)) { if (VerificaCorrettezza(p_stringa, p_tipologia)) {
ritorno = p_tipologia ? "Il nome non può contenere numeri" : "Numero di telefono non valido"; ritorno = p_tipologia ? "Il nome non può contenere numeri" : "Numero di telefono non valido";
} }
if (p_contatore != 0 && p_rubrica != null) { if (p_contatore != 0) {
if (p_rubrica.Contains(p_stringa)) { if (p_rubrica.Contains(p_stringa)) {
ritorno = $"Questo {(p_tipologia ? "nome" : "numero di telefono")} esiste già nella rubrica."; ritorno = $"Questo {(p_tipologia ? "nome" : "numero di telefono")} esiste già nella rubrica.";
} }

View File

@ -3,8 +3,8 @@ namespace Rubrica_Miglioria;
class Rubrica { class Rubrica {
Voce[] vocidellarubrica; Voce[] vocidellarubrica;
public Rubrica(Voce[] p_vocidellarubrica) { public Rubrica(int p_dimensione) {
this.vocidellarubrica = p_vocidellarubrica; this.vocidellarubrica = new Voce[p_dimensione];
} }
public void Setvocidellarubrica(Voce[] p_vocidellarubrica) { public void Setvocidellarubrica(Voce[] p_vocidellarubrica) {
@ -13,29 +13,20 @@ class Rubrica {
public Voce[] GetVocidellarubrica() { public Voce[] GetVocidellarubrica() {
return this.vocidellarubrica; return this.vocidellarubrica;
} }
public string EsistenzaNomeEsatto(string p_nomeesatto, int p_contatore) {
string nomedellarubrica = ""; public string Ricerca(string p_ricerca, bool p_tipologia, int p_contatore) {
string numeroditelefonodellarubrica = ""; /*
string messaggio = "non esiste il nome " + p_nomeesatto + " all'interno della rubrica"; p_tipologia=true -> ricerca esatta
for (int i = 0; i < p_contatore; i++) { p_tipologia=false -> ricerca non esatta
nomedellarubrica = this.vocidellarubrica[i].GetNome(); */
if (p_nomeesatto == nomedellarubrica) { bool notFound = true;
messaggio = "esiste il nome " + p_nomeesatto + " all'interno della rubrica" + "e il suo numero di telefono è " + (numeroditelefonodellarubrica = this.vocidellarubrica[i].Getnumeroditelefono()); int i = 0;
break; for (; i < p_contatore && notFound; i++) {
} notFound = !(p_tipologia ? p_ricerca == this.vocidellarubrica[i].GetNome() : this.vocidellarubrica[i].GetNome().StartsWith(p_ricerca));
}
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()));
}
} }
return !notFound ? $"Voce trovata:\nNome: {this.vocidellarubrica[i].GetNome()}\nNumero di telefono: {this.vocidellarubrica[i].Getnumeroditelefono()}" : $"Il nome {p_ricerca} non è stato trovato nella rubrica.";
} }
public void StampaRubricaCompleta(int p_contatore) { public void StampaRubricaCompleta(int p_contatore) {
string nomedellarubrica = ""; string nomedellarubrica = "";
string numeroditelefonodellarubrica = ""; string numeroditelefonodellarubrica = "";