Exemplo n.º 1
0
 public Acessorio(string descricao, double preco, Carro carro)
 {
     this.descricao = descricao;
     this.preco     = preco;
     this.carro     = carro;
 }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            Marca volkswagen = new Marca(1001, "Volkswagen", "Alemanhã");
            Marca GE         = new Marca(1002, "General Motors", "Estados Unidos");

            marcas.Add(volkswagen);
            marcas.Add(GE);

            volkswagen.carros.Add(new Carro(101, "Fusca", 1980, 5000.00, volkswagen));
            volkswagen.carros.Add(new Carro(102, "Golf", 2016, 60000.00, volkswagen));
            volkswagen.carros.Add(new Carro(103, "Fox", 2017, 30000, volkswagen));

            GE.carros.Add(new Carro(104, "Cruze", 2016, 30000.00, GE));
            GE.carros.Add(new Carro(105, "Cobalt", 2015, 25000.00, GE));
            GE.carros.Add(new Carro(106, "Cobalt", 2017, 35000.00, GE));

            carros.Add(new Carro(101, "Fusca", 1980, 5000.00, volkswagen));
            carros.Add(new Carro(102, "Golf", 2016, 60000.00, volkswagen));
            carros.Add(new Carro(103, "Fox", 2017, 30000.00, volkswagen));
            carros.Add(new Carro(104, "Cruze", 2016, 30000.00, GE));
            carros.Add(new Carro(105, "Cobalt", 2015, 25000.00, GE));
            carros.Add(new Carro(106, "Cobalt", 2017, 35000.00, GE));


            int opcao = 0;

            while (opcao != 7)
            {
                Console.Clear();
                Console.Write("\n1 - LISTAR MARCAS");
                Console.Write("\n2 - LISTAR CARROS DE UMA MARCA ORDENADAMENTE");
                Console.Write("\n3 - CADASTRAR MARCA");
                Console.Write("\n4 - CADASTRAR CARRO");
                Console.Write("\n5 - CADASTRAR ACESSORIO");
                Console.Write("\n6 - MOSTRAR DETALHES DE UM CARRO");
                Console.Write("\n7 - SAIR");
                Console.Write("\nDigite uma opção: ");
                opcao = int.Parse(Console.ReadLine());
                if (opcao < 1 || opcao > 7)
                {
                    Console.Write("\nOPÇÃO INVÁLIDA");
                }

                switch (opcao)
                {
                case 1:
                    Console.WriteLine("\nLISTAGEM DE MARCAS: ");

                    foreach (Marca listaMarcas in marcas)
                    {
                        Console.WriteLine(listaMarcas.codigo + ", " + listaMarcas.nome + ", País: " + listaMarcas.pais + ", Número de carros: " + listaMarcas.carros.Count);
                    }

                    break;

                case 2:
                    Console.Write("\nDigite o código da marca: ");

                    try
                    {
                        int codMarca = int.Parse(Console.ReadLine());
                        int pos      = marcas.FindIndex(m => m.codigo == codMarca);
                        Console.Write(marcas[pos]);
                    }
                    catch (Exception e)
                    {
                        Console.Write("Marca não encontrada");
                    }

                    break;

                case 3:
                    Console.Write("\nDigite os dados da marca: ");
                    Console.Write("\nCódigo: ");
                    int codigoMarca = int.Parse(Console.ReadLine());
                    Console.Write("Nome: ");
                    string nomeMarca = Console.ReadLine();
                    Console.Write("País de origem: ");
                    string paisMarca = Console.ReadLine();
                    marcas.Add(new Marca(codigoMarca, nomeMarca, paisMarca));

                    break;

                case 4:
                    Console.Write("\nDigite os dados do carro: ");
                    Console.Write("\nMarca (código): ");

                    try
                    {
                        int codM    = int.Parse(Console.ReadLine());
                        int posicao = marcas.FindIndex(m => m.codigo == codM);
                        if (posicao == -1)
                        {
                            throw new Exception();
                        }

                        Console.Write("Código do carro: ");
                        int codC = int.Parse(Console.ReadLine());
                        Console.Write("Modelo: ");
                        string modC = (Console.ReadLine());
                        Console.Write("Ano: ");
                        int anoC = int.Parse(Console.ReadLine());
                        Console.Write("Preço básico: ");
                        double precoBC = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);

                        //Estou criando um novo carro e dizendo que esse carro pertence a marca(posição encontrada)
                        Carro novoCarro = new Carro(codC, modC, anoC, precoBC, marcas[posicao]);
                        //Estou dizendo que essa marca(posição encontrada) vai ter agora na lista de carros dela esse novo carro
                        marcas[posicao].carros.Add(novoCarro);
                        //Estou adicionando tbm esse novo carro a uma lista de carros caso precise saber todos os carros existentes
                        carros.Add(novoCarro);
                    }
                    catch (Exception e)
                    {
                        Console.Write("Marca não encontrada");
                    }

                    break;

                case 5:
                    Console.Write("\nDigite os dados do acessório: ");
                    Console.Write("\nCarro (código): ");
                    try
                    {
                        int codAceCarro     = int.Parse(Console.ReadLine());
                        int posicaoAceCarro = carros.FindIndex(m => m.codigo == codAceCarro);
                        if (posicaoAceCarro == -1)
                        {
                            throw new Exception();
                        }

                        Console.Write("Descrição: ");
                        string desc = Console.ReadLine();
                        Console.Write("Preço: ");
                        double precoAce = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);
                        //Estou criando um novo acessorio e dizendo que esse acessorio pertence ao carro na(posição encontrada)
                        Acessorio novoAce = new Acessorio(desc, precoAce, carros[posicaoAceCarro]);
                        //Estou dizendo que esse carro(posição encontrada) vai ter agora na lista de acessorios dele esse novo acessorio
                        carros[posicaoAceCarro].acessorios.Add(novoAce);
                    }
                    catch (Exception e)
                    {
                        Console.Write("Carro não encontrado");
                    }


                    break;


                case 6:
                    Console.Write("\nDigite o código do carro: ");

                    try
                    {
                        int codDoCarro = int.Parse(Console.ReadLine());
                        int posCarro   = carros.FindIndex(m => m.codigo == codDoCarro);
                        if (posCarro == -1)
                        {
                            throw new Exception();
                        }

                        Console.Write(carros[posCarro]);
                    }
                    catch (Exception e)
                    {
                        Console.Write("Carro não encontrado");
                    }


                    break;
                }

                Console.ReadLine();
            }
        }