328 lines
11 KiB
C#
328 lines
11 KiB
C#
namespace Verifica_incontri;
|
|
|
|
class Program {
|
|
static void Main(string[] args) {
|
|
const int MAX_CLIENTI = 3; //da mettere a 10 prima di consegnare
|
|
int scelta = -1;
|
|
bool eccezione;
|
|
Cliente[] clienti = new Cliente[MAX_CLIENTI];
|
|
do {
|
|
Console.WriteLine("Inserire un'opzione:");
|
|
Console.WriteLine("1. Inserisci dati cliente");
|
|
Console.WriteLine("2. Visualizza clienti");
|
|
Console.WriteLine("3. Cerca partner");
|
|
Console.WriteLine("4. Pulisci schermo");
|
|
Console.WriteLine("0. Esci");
|
|
Console.Write("Scelta: ");
|
|
eccezione = false;
|
|
try {
|
|
scelta = Convert.ToInt32(Console.ReadLine());
|
|
}
|
|
catch (FormatException) {
|
|
eccezione = true;
|
|
Console.WriteLine("Opzione non valida.");
|
|
Pausa();
|
|
}
|
|
if (!eccezione) {
|
|
switch (scelta) {
|
|
case 0:
|
|
break;
|
|
case 1:
|
|
InserisciClienti(clienti);
|
|
Pausa();
|
|
break;
|
|
case 2:
|
|
if (!IsClientiPopulated(clienti)) {
|
|
Console.WriteLine("Errore: è necessario inserire i clienti prima di mostrarli.");
|
|
}
|
|
else {
|
|
StampaClienti(clienti);
|
|
}
|
|
Pausa();
|
|
break;
|
|
case 3:
|
|
if (!IsClientiPopulated(clienti)) {
|
|
Console.WriteLine("Errore: è necessario inserire i clienti prima di mostrarli.");
|
|
}
|
|
else {
|
|
CercaPartner(clienti);
|
|
}
|
|
Pausa();
|
|
break;
|
|
case 4:
|
|
Console.Clear();
|
|
break;
|
|
default:
|
|
Console.WriteLine("Opzione non valida");
|
|
Pausa();
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
while (scelta != 0);
|
|
}
|
|
|
|
|
|
static void Pausa() {
|
|
Console.WriteLine("Premere un tasto per continuare. . .");
|
|
Console.ReadKey();
|
|
}
|
|
|
|
static void InserisciClienti(Cliente[] p_clienti) {
|
|
string nome, cognome, sesso, professione;
|
|
int eta = -1, altezza = -1, numeroInteressi = -1;
|
|
string[] interessi;
|
|
bool eccezione;
|
|
|
|
for (int i = 0; i < p_clienti.Length; i++) {
|
|
Console.WriteLine($"Inserimento dati cliente n. {i + 1}:\n");
|
|
|
|
do {
|
|
Console.Write("Nome: ");
|
|
nome = Console.ReadLine();
|
|
if (string.IsNullOrEmpty(nome)) {
|
|
Console.WriteLine("Errore: inserire un nome.");
|
|
Pausa();
|
|
}
|
|
}
|
|
while (string.IsNullOrEmpty(nome));
|
|
|
|
do {
|
|
Console.Write("Cognome: ");
|
|
cognome = Console.ReadLine();
|
|
if (string.IsNullOrEmpty(cognome)) {
|
|
Console.WriteLine("Errore: inserire un cognome.");
|
|
Pausa();
|
|
}
|
|
}
|
|
while (string.IsNullOrEmpty(cognome));
|
|
|
|
do {
|
|
Console.Write("Sesso: ");
|
|
sesso = Console.ReadLine();
|
|
if (string.IsNullOrEmpty(sesso)) {
|
|
Console.WriteLine("Errore: inserire un sesso.");
|
|
Pausa();
|
|
}
|
|
}
|
|
while (string.IsNullOrEmpty(sesso));
|
|
|
|
do {
|
|
Console.Write("Età: ");
|
|
eccezione = false;
|
|
try {
|
|
eta = Convert.ToInt32(Console.ReadLine());
|
|
}
|
|
catch (FormatException) {
|
|
eccezione = true;
|
|
Console.WriteLine("Errore: età non valida");
|
|
Pausa();
|
|
}
|
|
if (!eccezione) {
|
|
if (eta <= 0) {
|
|
Console.WriteLine("Errore: età non valida");
|
|
Pausa();
|
|
}
|
|
}
|
|
}
|
|
while (eccezione || eta <= 0);
|
|
|
|
do {
|
|
Console.Write("Altezza (cm): ");
|
|
eccezione = false;
|
|
try {
|
|
altezza = Convert.ToInt32(Console.ReadLine());
|
|
}
|
|
catch (FormatException) {
|
|
eccezione = true;
|
|
Console.WriteLine("Errore: altezza non valida");
|
|
Pausa();
|
|
}
|
|
if (!eccezione) {
|
|
if (altezza <= 0) {
|
|
Console.WriteLine("Errore: altezza non valida");
|
|
Pausa();
|
|
}
|
|
}
|
|
}
|
|
while (eccezione || altezza <= 0);
|
|
|
|
do {
|
|
Console.Write("Professione: ");
|
|
professione = Console.ReadLine();
|
|
if (string.IsNullOrEmpty(professione)) {
|
|
Console.WriteLine("Errore: inserire una professione.");
|
|
Pausa();
|
|
}
|
|
}
|
|
while (string.IsNullOrEmpty(professione));
|
|
|
|
do {
|
|
Console.Write("Numero di interessi: ");
|
|
eccezione = false;
|
|
try {
|
|
numeroInteressi = Convert.ToInt32(Console.ReadLine());
|
|
}
|
|
catch (FormatException) {
|
|
eccezione = true;
|
|
Console.WriteLine("Errore: numero di interessi non valido");
|
|
Pausa();
|
|
}
|
|
if (!eccezione) {
|
|
if (numeroInteressi <= 0) {
|
|
Console.WriteLine("Errore: numero di interessi non valido");
|
|
Pausa();
|
|
}
|
|
}
|
|
}
|
|
while (eccezione || numeroInteressi <= 0);
|
|
|
|
interessi = new string[numeroInteressi];
|
|
|
|
for (int j = 0; j < numeroInteressi; j++) {
|
|
do {
|
|
Console.Write($"Interesse n. {j + 1}: ");
|
|
interessi[j] = Console.ReadLine();
|
|
if (string.IsNullOrEmpty(interessi[j])) {
|
|
Console.WriteLine("Errore: inserire un'interesse.");
|
|
Pausa();
|
|
}
|
|
}
|
|
while (string.IsNullOrEmpty(interessi[j]));
|
|
}
|
|
|
|
p_clienti[i] = new Cliente(nome, cognome, sesso, Convert.ToString(eta), Convert.ToString(altezza), professione, interessi);
|
|
|
|
Console.WriteLine($"\n\nCliente {i + 1} creato con successo.");
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
static bool IsClientiPopulated(Cliente[] p_clienti) {
|
|
bool ritorno;
|
|
if (p_clienti[0] == null) {
|
|
ritorno = false;
|
|
}
|
|
else {
|
|
ritorno = true;
|
|
}
|
|
return ritorno;
|
|
}
|
|
|
|
static void StampaClienti(Cliente[] p_clienti) {
|
|
for (int i = 0; i < p_clienti.Length; i++) {
|
|
Console.WriteLine($"Cliente n. {i + 1}:");
|
|
p_clienti[i].StampaCliente();
|
|
Console.WriteLine();
|
|
}
|
|
}
|
|
|
|
static void CercaPartner(Cliente[] p_clienti) {
|
|
string sesso;
|
|
int etaMin = -1, etaMax = -1, j = 0, scelta = 0;
|
|
bool eccezione;
|
|
int[] matches = new int[p_clienti.Length];
|
|
for (int i = 0; i < p_clienti.Length; i++) {
|
|
matches[i] = -1;
|
|
}
|
|
|
|
do {
|
|
Console.Write("Inserire il sesso da cercare: ");
|
|
sesso = Console.ReadLine().ToLower().Trim();
|
|
if (string.IsNullOrEmpty(sesso)) {
|
|
Console.WriteLine("Errore: inserire un sesso.");
|
|
Pausa();
|
|
}
|
|
}
|
|
while (string.IsNullOrEmpty(sesso));
|
|
|
|
do {
|
|
Console.Write("Inserire l'età minima: ");
|
|
eccezione = false;
|
|
try {
|
|
etaMin = Convert.ToInt32(Console.ReadLine());
|
|
}
|
|
catch (FormatException) {
|
|
eccezione = true;
|
|
Console.WriteLine("Errore: età non valida");
|
|
Pausa();
|
|
}
|
|
if (!eccezione) {
|
|
if (etaMin <= 0) {
|
|
Console.WriteLine("Errore: età non valida");
|
|
Pausa();
|
|
}
|
|
}
|
|
}
|
|
while (eccezione || etaMin <= 0);
|
|
|
|
do {
|
|
Console.Write("Inserire l'età massima: ");
|
|
eccezione = false;
|
|
try {
|
|
etaMax = Convert.ToInt32(Console.ReadLine());
|
|
}
|
|
catch (FormatException) {
|
|
eccezione = true;
|
|
Console.WriteLine("Errore: età non valida");
|
|
Pausa();
|
|
}
|
|
if (!eccezione) {
|
|
if (etaMax <= 0) {
|
|
Console.WriteLine("Errore: età non valida");
|
|
Pausa();
|
|
}
|
|
}
|
|
}
|
|
while (eccezione || etaMax <= 0);
|
|
|
|
for (int i = 0; i < p_clienti.Length; i++) {
|
|
if (Convert.ToInt32(p_clienti[i].GetEta()) >= etaMin &&
|
|
Convert.ToInt32(p_clienti[i].GetEta()) <= etaMax &&
|
|
p_clienti[i].GetSesso().ToLower().Trim() == sesso) {
|
|
Console.WriteLine("Trovata una corrispondenza:\n");
|
|
Console.WriteLine($"Nome: {p_clienti[i].GetNome()}");
|
|
Console.WriteLine($"Cognome: {p_clienti[i].GetCognome()}");
|
|
Console.WriteLine($"Età: {p_clienti[i].GetEta()}");
|
|
Console.WriteLine();
|
|
matches[j] = i;
|
|
j++;
|
|
}
|
|
}
|
|
do {
|
|
Console.WriteLine("Selezionare la corrispondenza:");
|
|
for (int i = 0; i < matches.Length && matches[i] != -1; i++) {
|
|
Console.WriteLine($"Corrispondenza n. {i + 1}:\n");
|
|
Console.WriteLine($"Nome: {p_clienti[matches[i]].GetNome()}");
|
|
Console.WriteLine($"Cognome: {p_clienti[matches[i]].GetCognome()}");
|
|
Console.WriteLine($"Età: {p_clienti[matches[i]].GetEta()}");
|
|
}
|
|
Console.WriteLine();
|
|
Console.Write("Scelta: ");
|
|
|
|
eccezione = false;
|
|
try {
|
|
scelta = Convert.ToInt32(Console.ReadLine());
|
|
}
|
|
catch (FormatException) {
|
|
eccezione = true;
|
|
Console.WriteLine("Opzione non valida.");
|
|
Pausa();
|
|
}
|
|
if (!eccezione) {
|
|
if (scelta < 1 || scelta >= p_clienti.Length) {
|
|
Console.WriteLine("Opzione non valida.");
|
|
Pausa();
|
|
}
|
|
}
|
|
|
|
}
|
|
while (eccezione && !(scelta < 1 || scelta >= p_clienti.Length)); //controllo non funzionante
|
|
p_clienti[scelta - 1].SetIsAvailable(false);
|
|
Console.WriteLine("Match eseguito");
|
|
}
|
|
} |