Prosecuzione sistemazione dei controlli
This commit is contained in:
parent
03dfc24f00
commit
815fb9762e
93
Program.cs
93
Program.cs
@ -8,8 +8,8 @@ class Program {
|
|||||||
int scelta = 0;
|
int scelta = 0;
|
||||||
string nome = "";
|
string nome = "";
|
||||||
string numeroditelefono;
|
string numeroditelefono;
|
||||||
bool check = false;
|
bool rubricaEsiste = false;
|
||||||
bool check2 = false;
|
bool error;
|
||||||
bool check3 = false;
|
bool check3 = false;
|
||||||
int contatore = 0;
|
int contatore = 0;
|
||||||
string nomeesatto;
|
string nomeesatto;
|
||||||
@ -19,12 +19,12 @@ 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 = null;
|
||||||
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");
|
||||||
Console.WriteLine("3)Ricerca approsimata per nome");
|
Console.WriteLine("3)Ricerca approssimata per nome");
|
||||||
Console.WriteLine("4)Stampa completa rubrice");
|
Console.WriteLine("4)Stampa completa rubrica");
|
||||||
Console.WriteLine("5)Esci");
|
Console.WriteLine("5)Esci");
|
||||||
scelta = Convert.ToInt32(Console.ReadLine());
|
scelta = Convert.ToInt32(Console.ReadLine());
|
||||||
switch (scelta) {
|
switch (scelta) {
|
||||||
@ -34,53 +34,48 @@ class Program {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
do {
|
do {
|
||||||
check2 = false;
|
string? message;
|
||||||
|
error = true;
|
||||||
Console.WriteLine("Inserisci il nome della voce che andrà nella rubrica telefonica");
|
Console.WriteLine("Inserisci il nome della voce che andrà nella rubrica telefonica");
|
||||||
nome = Console.ReadLine().ToLower();
|
nome = Console.ReadLine().ToLower();
|
||||||
nomi[contatore] = nome;
|
|
||||||
check3 = VerificaDoppione(nome, nomi, contatore);
|
message = Controllo(nome, true, contatore, rubrica);
|
||||||
if (contatore == 0) {
|
|
||||||
|
if (message != null) {
|
||||||
|
Console.WriteLine(message);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
error = false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (nome.Length > 40) {
|
while (error);
|
||||||
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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
while (nome.Length > 40 || check2 == true || check3 == true);
|
|
||||||
do {
|
do {
|
||||||
check2 = false;
|
string? message;
|
||||||
|
error = true;
|
||||||
Console.WriteLine("Inserisci il numero di telefono della voce che andrà nella rubrica telefonica");
|
Console.WriteLine("Inserisci il numero di telefono della voce che andrà nella rubrica telefonica");
|
||||||
numeroditelefono = Console.ReadLine();
|
numeroditelefono = Console.ReadLine().ToLower();
|
||||||
numeroditelefono = numeroditelefono.ToLower();
|
|
||||||
numeriditelefono[contatore] = numeroditelefono;
|
message = Controllo(nome, true, contatore, rubrica);
|
||||||
check2 = VerificaCorrettezza(numeroditelefono, false);
|
|
||||||
check3 = VerificaDoppione(numeroditelefono, numeriditelefono, contatore);
|
if (message != null) {
|
||||||
if (numeroditelefono.Length > 20) {
|
Console.WriteLine(message);
|
||||||
Console.WriteLine("il numero di telefono non può essere lungo più di 20 caratteri");
|
|
||||||
}
|
}
|
||||||
if (check2 == true) {
|
else {
|
||||||
Console.WriteLine("il numero di telefono deve contenere solo numeri");
|
error = false;
|
||||||
}
|
|
||||||
if (check3 == true) {
|
|
||||||
Console.WriteLine("Questo numero di telefono esiste già nelle rubrica");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (numeroditelefono.Length > 20 || check2 == true || check3 == true);
|
while (error);
|
||||||
|
|
||||||
singolavoce = new Voce(nome, numeroditelefono);
|
singolavoce = new Voce(nome, numeroditelefono);
|
||||||
voci[contatore] = singolavoce;
|
voci[contatore] = singolavoce;
|
||||||
rubrica = new Rubrica(voci);
|
rubrica = new Rubrica(voci);
|
||||||
contatore++;
|
contatore++;
|
||||||
check = true;
|
rubricaEsiste = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (check == false) {
|
if (rubricaEsiste == false) {
|
||||||
Console.WriteLine("devi prima aggiungere una voce in rubrica");
|
Console.WriteLine("devi prima aggiungere una voce in rubrica");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -103,7 +98,7 @@ class Program {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (check == false) {
|
if (rubricaEsiste == false) {
|
||||||
Console.WriteLine("devi prima aggiungere una voce in rubrica");
|
Console.WriteLine("devi prima aggiungere una voce in rubrica");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -125,7 +120,7 @@ class Program {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
if (check == false) {
|
if (rubricaEsiste == false) {
|
||||||
Console.WriteLine("devi prima aggiungere una voce in rubrica");
|
Console.WriteLine("devi prima aggiungere una voce in rubrica");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -140,7 +135,7 @@ class Program {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (scelta != 5);
|
while (scelta != 5);
|
||||||
Console.WriteLine("Chiusura effettuta con successo");
|
Console.WriteLine("Chiusura effettuata con successo");
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool VerificaCorrettezza(string p_stringa, bool p_tipologia) {
|
static bool VerificaCorrettezza(string p_stringa, bool p_tipologia) {
|
||||||
@ -161,21 +156,23 @@ class Program {
|
|||||||
return check;
|
return check;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool Controllo(string p_stringa, bool p_tipologia, int p_contatore) {
|
static string? Controllo(string p_stringa, bool p_tipologia, int p_contatore, Rubrica? p_rubrica) {
|
||||||
bool ritorno = true;
|
/*
|
||||||
|
tipologia=true -> Controllo validità nome
|
||||||
|
tipologia=false -> Controllo validità numero di telefono
|
||||||
|
*/
|
||||||
|
string? ritorno = null;
|
||||||
const int LUNGHEZZA_NOME = 40;
|
const int LUNGHEZZA_NOME = 40;
|
||||||
const int LUNGHEZZA_TELEFONO = 20;
|
const int LUNGHEZZA_TELEFONO = 20;
|
||||||
if (p_stringa.Length > (p_tipologia ? LUNGHEZZA_NOME : LUNGHEZZA_TELEFONO)) {
|
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 = $"Il {(p_tipologia ? "nome" : "numero di telefono")} non può essere lungo più di {(p_tipologia ? LUNGHEZZA_NOME : LUNGHEZZA_TELEFONO)} caratteri";
|
||||||
ritorno = false;
|
|
||||||
}
|
}
|
||||||
if (VerificaCorrettezza(p_stringa, p_tipologia)) {
|
if (VerificaCorrettezza(p_stringa, p_tipologia)) {
|
||||||
Console.WriteLine(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";
|
||||||
ritorno = false;
|
|
||||||
}
|
}
|
||||||
if (p_contatore != 0) {
|
if (p_contatore != 0 && p_rubrica != null) {
|
||||||
if (p_stringhe.Contains(p_stringa)) {
|
if (p_rubrica.Contains(p_stringa)) {
|
||||||
Console.WriteLine($"Questo {(p_tipologia ? "nome" : "numero di telefono")} esiste già nelle rubrica.");
|
ritorno = $"Questo {(p_tipologia ? "nome" : "numero di telefono")} esiste già nella rubrica.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ritorno;
|
return ritorno;
|
||||||
|
|||||||
33
Rubrica.cs
33
Rubrica.cs
@ -3,54 +3,43 @@ namespace Rubrica_Miglioria;
|
|||||||
class Rubrica {
|
class Rubrica {
|
||||||
Voce[] vocidellarubrica;
|
Voce[] vocidellarubrica;
|
||||||
|
|
||||||
public Rubrica(Voce[] p_vocidellarubrica)
|
public Rubrica(Voce[] p_vocidellarubrica) {
|
||||||
{
|
|
||||||
this.vocidellarubrica = p_vocidellarubrica;
|
this.vocidellarubrica = p_vocidellarubrica;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Setvocidellarubrica(Voce[] p_vocidellarubrica)
|
public void Setvocidellarubrica(Voce[] p_vocidellarubrica) {
|
||||||
{
|
|
||||||
this.vocidellarubrica = p_vocidellarubrica;
|
this.vocidellarubrica = p_vocidellarubrica;
|
||||||
}
|
}
|
||||||
public Voce[] GetVocidellarubrica()
|
public Voce[] GetVocidellarubrica() {
|
||||||
{
|
|
||||||
return this.vocidellarubrica;
|
return this.vocidellarubrica;
|
||||||
}
|
}
|
||||||
public string EsistenzaNomeEsatto(string p_nomeesatto, int p_contatore)
|
public string EsistenzaNomeEsatto(string p_nomeesatto, int p_contatore) {
|
||||||
{
|
|
||||||
string nomedellarubrica = "";
|
string nomedellarubrica = "";
|
||||||
string numeroditelefonodellarubrica = "";
|
string numeroditelefonodellarubrica = "";
|
||||||
string messaggio = "non esiste il nome " + p_nomeesatto + " all'interno della rubrica";
|
string messaggio = "non esiste il nome " + p_nomeesatto + " all'interno della rubrica";
|
||||||
for (int i = 0; i < p_contatore; i++)
|
for (int i = 0; i < p_contatore; i++) {
|
||||||
{
|
|
||||||
nomedellarubrica = this.vocidellarubrica[i].GetNome();
|
nomedellarubrica = this.vocidellarubrica[i].GetNome();
|
||||||
if (p_nomeesatto == nomedellarubrica)
|
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());
|
messaggio = "esiste il nome " + p_nomeesatto + " all'interno della rubrica" + "e il suo numero di telefono è " + (numeroditelefonodellarubrica = this.vocidellarubrica[i].Getnumeroditelefono());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return messaggio;
|
return messaggio;
|
||||||
}
|
}
|
||||||
public void EsistenzaNomeApprosimato(string p_nomeapprosimato, int p_contatore)
|
public void EsistenzaNomeApprosimato(string p_nomeapprosimato, int p_contatore) {
|
||||||
{
|
|
||||||
string nomedellarubrica = "";
|
string nomedellarubrica = "";
|
||||||
string numeroditelefonodellarubrica = "";
|
string numeroditelefonodellarubrica = "";
|
||||||
for (int i = 0; i < p_contatore; i++)
|
for (int i = 0; i < p_contatore; i++) {
|
||||||
{
|
|
||||||
nomedellarubrica = this.vocidellarubrica[i].GetNome();
|
nomedellarubrica = this.vocidellarubrica[i].GetNome();
|
||||||
if (nomedellarubrica.StartsWith(p_nomeapprosimato))
|
if (nomedellarubrica.StartsWith(p_nomeapprosimato)) {
|
||||||
{
|
|
||||||
Console.WriteLine("esiste il nome " + nomedellarubrica + " e il suo numero di telefono è: " + (numeroditelefonodellarubrica = this.vocidellarubrica[i].Getnumeroditelefono()));
|
Console.WriteLine("esiste il nome " + nomedellarubrica + " e il suo numero di telefono è: " + (numeroditelefonodellarubrica = this.vocidellarubrica[i].Getnumeroditelefono()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void StampaRubricaCompleta(int p_contatore)
|
public void StampaRubricaCompleta(int p_contatore) {
|
||||||
{
|
|
||||||
string nomedellarubrica = "";
|
string nomedellarubrica = "";
|
||||||
string numeroditelefonodellarubrica = "";
|
string numeroditelefonodellarubrica = "";
|
||||||
for (int i = 0; i < p_contatore; i++)
|
for (int i = 0; i < p_contatore; i++) {
|
||||||
{
|
|
||||||
Console.WriteLine("nome: " + (nomedellarubrica = this.vocidellarubrica[i].GetNome()));
|
Console.WriteLine("nome: " + (nomedellarubrica = this.vocidellarubrica[i].GetNome()));
|
||||||
Console.WriteLine("numero di telefono: " + (numeroditelefonodellarubrica = this.vocidellarubrica[i].Getnumeroditelefono()));
|
Console.WriteLine("numero di telefono: " + (numeroditelefonodellarubrica = this.vocidellarubrica[i].Getnumeroditelefono()));
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user