Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

AndreLopes20

Duvida !

Recommended Posts

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.

Share this post


Link to post
Share on other 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"));
	}
}
}

Edited by vikcch

Share this post


Link to post
Share on other 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 ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.