Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

AndreLopes20

Duvida !

Mensagens Recomendadas

AndreLopes20

Boa Tarde , estou encravado num trabalho da faculdade em que tenho que criar um menu ... assim sendo fiz o seguinte código para o menu :

public class Programa
{

	public static void Main()
	{

		string opcao;
		do
		{
			Console.WriteLine("\t\t\t GESTÃO DE REPARAÇÃO DE COMPUTADORES\t\t\t\n");
			Console.WriteLine("\t\t\t A - Observação da Lista de Clientes \t\t\t \n ");
			Console.WriteLine("\t\t\t B - Observação da Lista de Técnicos \t\t\t\n");
			Console.WriteLine("\t\t\t C - Observação da Lista de Desktop \t\t\t\n");
			Console.WriteLine("\t\t\t D - Observação da Lista de Laptop \t\t\t\n");
			Console.WriteLine("\t\t\t E - Observação da Lista de Espera de Computadores para Reparação \t\t\t\n");
			Console.WriteLine("\t\t\t F - Observação da Lista de Computadores em Reparação \t\t\t\n");
			Console.WriteLine("\t\t\t G - Observação da Lista de Espera de Computadores reparados para entrega aos Clientes \t\t\t\n");
			Console.WriteLine("\t\t\t H - Sair do Programa \t\t\t\n");
			Console.WriteLine("Digite uma opção:\n");

			opcao = Console.ReadLine();
			switch (opcao)
			{
				case "A":
				case "a":
					ObservacaoListadeClientes(); //invocar o main da classe clientes
					break;


				default:
					Console.WriteLine("A opção que inseriu não se encontra no menu");

					break;

			}

			Console.WriteLine("Premir a tecla enter para continuar ...");
			Console.ReadLine();
			Console.WriteLine();

		} while (opcao != "H" && opcao != "h");

e fiz a seguinte classe :

 public class Cliente
	{
		private int numero_cliente;
		private string nome;
		private int telefone;
		private string email;

		public Cliente()
		{
			numero_cliente = 0;
			nome = "";
			telefone = 0;
			email = "";
		}

		public Cliente(int n, string a, int i, string j)
		{
			numero_cliente = n;
			nome = a;
			telefone = i;
			email = j;
		}

		public int Cnumero_cliente
		{
			get
			{ return numero_cliente; }
			set
			{ numero_cliente = value; }
		}

		public string Cnome
		{
			get { return nome; }
			set { nome = value; }
		}

		public int Ctelefone
		{
			get { return telefone; }
			set { telefone = value; }
		}

		public string Cemail
		{
			get { return email; }
			set { email = value; }
		}

		public static void ObservacaoListadeClientes()
		{
			List<Cliente> Clientes = new List<Cliente>();
			Clientes.Add(new Cliente(0, "Mariana Lopes", 968574230, "mariana@hotmail.com"));

			foreach (Cliente b in Clientes)
			{
				Console.WriteLine("Dados do Cliente :" + b);
			}


		}

	}

}
}

Agora a minha questão é : como é que eu ligo estas duas classes para que o meu main da classe Clientes funcione no menu ?

Obrigado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
vikcch

Boas,

O que entendes por "main da classe Clientes" e "ligar as duas classes" ?

No switch (opcao) case "A" onde chamas o metodo ObservacaoListadeClientes() tens que dizer o nome classe, assumindo que estão dentro da mesma namespace, e teres o metodo como static.

ex:

Clientes.ObservacaoListadeClientes();

Dentro desse metodo estás a criar uma list com os clentes, ou seja, vais perder a list no fim do metodo...

Eu fazia mais ou menos isto:

Na classe principal:

namespace Programa
{
public class Programa
{
	static void Main(string[] args)
	{
		Cliente.CriarClients();

		string opcao;
		do
		{
			Console.Clear();
			Console.WriteLine("\t\t\t GESTÃO DE REPARAÇÃO DE COMPUTADORES\t\t\t\n");
			Console.WriteLine("\t\t\t A - Observação da Lista de Clientes \t\t\t \n ");			  
			Console.WriteLine("\t\t\t H - Sair do Programa \t\t\t\n");
			Console.Write("Digite uma opção: ");

			opcao = Console.ReadLine().ToUpper(); // converte minusculas para maiusculas
			switch (opcao)
			{
				case "A":
					Cliente.ObservacaoListadeClientes();
					break;

				case "H":
					break;

				default:
					Console.WriteLine("A opção que inseriu não se encontra no menu");
					break;
			}

			Console.WriteLine("Premir a tecla enter para continuar ...");
			Console.ReadLine();				

		} while (opcao != "H");
	}
}
}

Na classe Cliente:

namespace Programa
{
public class Cliente
{
	private static List<Cliente> clientes = null;

	private int numero_cliente;
	private string nome;
	private int telefone;
	private string email;

	public Cliente()
	{
		numero_cliente = 0;
		nome = "";
		telefone = 0;
		email = "";
	}

	public Cliente(int n, string a, int i, string j)
	{
		numero_cliente = n;
		nome = a;
		telefone = i;
		email = j;
	}

	public int Cnumero_cliente
	{
		get
		{ return numero_cliente; }
		set
		{ numero_cliente = value; }
	}

	public string Cnome
	{
		get { return nome; }
		set { nome = value; }
	}

	public int Ctelefone
	{
		get { return telefone; }
		set { telefone = value; }
	}

	public string Cemail
	{
		get { return email; }
		set { email = value; }
	}

	public void info()
	{			
		Console.WriteLine("ID: " + this.numero_cliente);
		Console.WriteLine("Nome: " + this.nome);
		Console.WriteLine("Telefone: " + this.telefone);
		Console.WriteLine("Email: " + this.email);
	}

	public static void ObservacaoListadeClientes()
	{
		Console.Clear();
		Console.WriteLine("Dados do Clientes:");
		Console.WriteLine("");
		foreach (Cliente c in clientes)
		{
			c.info();
			Console.WriteLine("");
		}
	}

	public static void CriarClients()
	{
		clientes = new List<Cliente>();

		clientes.Add(new Cliente(0, "Mariana Lopes", 968574230, "mariana@hotmail.com"));
		clientes.Add(new Cliente(1, "Joana Rita", 961111111, "joanarita@hotmail.com"));
	}
}
}

Editado por vikcch

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
AndreLopes20

Ok muito obrigado , já me deste uma grande ajuda ! Vou então experimentar como disseste ... Tenho que fazer assim para todas as classes que eu queira ligar ao menu certo ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.