Giter Club home page Giter Club logo

mvc-sample's Introduction

Exercício de prática MVC

Escopo

Implementar uma aplicação que calcule o resultado de um campeonato de pontos corridos aplicando o padrão MVC sem o uso de frameworks.

Requisitos

O aplicativo deve possuir uma interface via linha de comando que permite a inserção dos dados do campeonato e dos times que participam. Ao iniciar, ela deve dar uma boas vindas ao usuário e pedir o nome do campeonato. Em seguida pedir os dados dos times. Nome, Número de Vitorias, Número de empates, Número de Derrotas, Número de Gols Pró e Número de Gols Contra.

O regulamento de pontos do campeonato a ser aplicado está descrito em: Campeonato Brasileiro 2015

Porém é importante lembrar que o regulamento é algo mutável podendo variar de ano para ano. Então essa alteração deve ser de fácil implementação sem impactar tanto o funcionamento do sistema.

Exemplo de entrada:

Seja bem vindo

Qual o nome do campeonato: Campeonato Brasileiro 2015 Serie A

Insira a lista de times...

Qual o nome do time? Conrinthians

Qual o numero de vitorias? 24

Qual o numero de empates? 8

Qual o numero de derrotas? 5

Qual o numero de gols pro? 70

Qual o numero de gols contra? 30

Deseja inserir outro time (s/n) ? s

Qual o nome do time? Atletico MG

Qual o numero de vitorias? 20

Qual o numero de empates? 6

Qual o numero de derrotas? 11

Qual o numero de gols pro? 62

Qual o numero de gols contra? 47

Deseja inserir outro time (s/n) ? n

Ao final da inserção dos dados o aplicativo deve exibir as opções. Que serão disponibilizadas para o usuário: Saber o nome do time campeão, o nome do lanterna, e exibir a tabela de pontuação ordenada.

Exemplo:

Selecione uma operação

[1] Saber o campeão

[2] Saber o lanterna

[3] Exibir tabela

[0] Encerrar

1

O campeão é o Corinthians

mvc-sample's People

Contributors

cleydsonjr avatar luizhenrique-dev avatar pereiradiego avatar

Watchers

 avatar  avatar  avatar  avatar

mvc-sample's Issues

Modelo - Criar mecanismo para cálculo de pontuação baseado nas regras de 2015

Criar um mecanismo que seja responsável pelo cálculo da pontuação dos times participantes do campeonato, conforme as regras de 2015. Desenvolver a solução de maneira que seja possível e seguro a alteração dessa regra, pois elas podem mudar futuramente.
-Vitória soma 3 pontos
-Empate soma 1 ponto
-Derrota não soma ponto

Modelo - Inserir operação para obter o campeão e o lanterna

Para obtenção do campeão e o lanterna do campeonato, desenvolver mecanismo para obter essas informações a partir da classificação de acordo com a regra abaixo:

*Campeão retorna o time com maior número de pontos ou melhor colocado em caso de empate de pontos
*Lanterna retorna o time com menor número de pontos ou pior colocado em caso de empate de pontos

Modelo - Criar mecanismo para desempate, com base nas regras de 2015

Ao obter a classificação, podem ocorrer empates de pontuação dos times, e esses empates precisam ser tratados pois não pode haver dois times em uma mesma posição na tabela. Portanto é necessário desenvolver um mecanismo para realizar o desempate dos times. Desenvolver o mecanismo seguindo os critérios de desempate descritos na regra de 2015:

  • Número de vitórias;
  • Saldo de gols;
  • Gols pró;
  • Confronto direto;
  • Menor número de cartões vermelhos;
  • Menor número de cartões amarelos;
  • Sorteio.

*Os critérios devem ser aplicados na ordem conforme descritos nesse documento.
*
*Com relação ao quarto critério (confronto direto), considera-se o resultado dos jogos somados, ou seja, o resultado de 180 minutos. Permanecendo o empate, o desempate se daria pelo maior número de gols marcados no campo do adversário. O quarto critério não seria considerado no caso de empate entre mais de dois clubes.

Interface - Fornecer interface para o cadastro de novo campeonato

Criar mecanismo de interface para que o usuário efetue o cadastro de novo campeonato e novos times para entrada dos dados(campos descritos em #2) a serem cadastrados para cada o campeonato e seus respectivos times.
A interface será conforme o exemplo:

Exemplo de entrada:

Seja bem vindo

Qual o nome do campeonato: Campeonato Brasileiro 2015 Serie A

Insira a lista de times...

Qual o nome do time? Conrinthians

Qual o numero de vitorias? 24

Qual o numero de empates? 8

Qual o numero de derrotas? 5

Qual o numero de gols pro? 70

Qual o numero de gols contra? 30

Deseja inserir outro time (s/n) ? s

Qual o nome do time? Atletico MG

Qual o numero de vitorias? 20

Qual o numero de empates? 6

Qual o numero de derrotas? 11

Qual o numero de gols pro? 62

Qual o numero de gols contra? 47

Deseja inserir outro time (s/n) ? n

Modelo - Criar estrutura capaz de cadastrar um campeonato e seus respectivos times

Criar entidade Campeonato para representação do campeonato e que essa seja capaz de vincular os times participantes do campeonato.

Atributos para entidade Campeonato:

  • Nome do campeonato
  • Ano do campeonato
  • Quantidade de rodadas
  • Listagem de Times participantes

Criar entidade Time para representação dos times participantes.

Atributos para entidade Time:

  • Nome do time
  • Quantidade de vitórias
  • Quantidade de derrotas
  • Quantidade de derrotas
  • Quantidade de gols a favor
  • Quantidade de gols sofridos

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.