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];
Voce singolavoce = null;
Voce[] voci = new Voce[DIMENSIONE_RUBRICA];
Rubrica? rubrica = null;
Rubrica rubrica = new Rubrica(DIMENSIONE_RUBRICA);
do {
Console.WriteLine("1)Aggiungi nuova voce in rubrica");
Console.WriteLine("2)Ricerca esatta per nome");
@ -93,7 +93,7 @@ class Program {
}
}
while (nomeesatto.Length > 40 || check2 == true);
messaggio = rubrica.EsistenzaNomeEsatto(nomeesatto, contatore);
messaggio = rubrica.Ricerca(nomeesatto, true, contatore);
Console.WriteLine(messaggio);
}
break;
@ -116,7 +116,7 @@ class Program {
}
}
while (nomeapprossimato.Length > 40 || check2 == true);
rubrica.EsistenzaNomeApprosimato(nomeapprossimato, contatore);
rubrica.Ricerca(nomeapprossimato, false, contatore);
}
break;
case 4:
@ -170,7 +170,7 @@ class Program {
if (VerificaCorrettezza(p_stringa, p_tipologia)) {
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)) {
ritorno = $"Questo {(p_tipologia ? "nome" : "numero di telefono")} esiste già nella rubrica.";
}

View File

@ -3,8 +3,8 @@ namespace Rubrica_Miglioria;
class Rubrica {
Voce[] vocidellarubrica;
public Rubrica(Voce[] p_vocidellarubrica) {
this.vocidellarubrica = p_vocidellarubrica;
public Rubrica(int p_dimensione) {
this.vocidellarubrica = new Voce[p_dimensione];
}
public void Setvocidellarubrica(Voce[] p_vocidellarubrica) {
@ -13,29 +13,20 @@ class Rubrica {
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 string Ricerca(string p_ricerca, bool p_tipologia, int p_contatore) {
/*
p_tipologia=true -> ricerca esatta
p_tipologia=false -> ricerca non esatta
*/
bool notFound = true;
int i = 0;
for (; i < p_contatore && notFound; i++) {
notFound = !(p_tipologia ? p_ricerca == this.vocidellarubrica[i].GetNome() : this.vocidellarubrica[i].GetNome().StartsWith(p_ricerca));
}
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) {
string nomedellarubrica = "";
string numeroditelefonodellarubrica = "";