Projeto em Java

Softwares e sistemas

  • Status do projeto

    Concluído
  • Interessado

    2
  • Postado em

  • Localização

    O projeto pode ser concluído remotamente
  • Orçamento

    Em consulta
  • Depósito pago

    R$ 0,00
  • Bônus total por indicação

    R$ 0,00
  • Na contratação

    R$ 0,00
  • postado por

    Moises

Descrição do Projeto

(Por conta do curto praso para a entrega desse projeto, o mesmo esta sendo desenvolvido em conjunto com outra pessoa, compartilhado atravez do Github - traducao do projeto no final do arquivo. Obrigado)

Object Orientation with Design Patterns (Basic Implementation)

Project Title: Stock Market Simulator

Due Date: Sunday, 5th May 2019

You have been tasked to design and implement a simulator of a simplified model of a stock market.
The program is going to simulate both companies and investors, following the specific requirements
described below.
When the simulation has been completed, you must present the user a menu with a list of possible
reports for them to see the result.

Specific Requirements
• The system must create dynamically 100 companies. All of them must have:
o A unique ID
o A random number of shares (between 500 and 1000)
o A random share price (between 10 and 100)
o Any other attribute that you consider relevant to the context
• The system must create dynamically 100 investors. All of them must have:
o A unique ID
o A random budget between 1000 and 10000
o Any other attribute that you consider relevant to the context
• Once all the companies have been created, the simulator should run a “trading day”. This will
run transactions were investors buy shares in the companies that exist, following the rules
below:
o If a company sells 10 shares, the share price should double up.
o If any 10 shares are sold (from any company), and a company hasn’t sold any, the
price must reduce in half.
o Investors can do as many transactions as they like, but must buy only one share per
transaction. Investors must try to buy shares in as many possible companies to
guarantee the safety of their investment.
o The simulator should stop when all shares have been sold, or all investors have spent
all their money.
• You are required to present the user with a menu to display the result of the simulation, with
the following options:

o Company with the highest capital (number of shares times share price)
o Company with the lowest capital (number of shares times share price)
o If there are more than one company at the top or bottom position, they all should be
displayed in the result.
o Investor with the highest number of shares
o Investor that has invested in the most companies
o Investor with the lowest number of shares
o Investor that has invested in the least number of companies
o It there is more than one investor in any of the positions, they all should be displayed
in the result.
• At least three design patterns must be implemented in your project.

Extra marks – Important

If you would like to achieve a distinction consider adding some extra layers of functionality, such as,
but not limited to,
• Implementing data persistency through a file or external database, or any other aspect that
might be relevant to the context.
• Implementation of a multithreaded environment to simulate several investors trading at the
same time.
• Other reports such as total number of transactions.
Deliverables
• Design document: to include details and justification of the design patterns used and class
diagram of the program.
• Source code of the working program. The software must run, as no debugging will be
attempted.
• One page individual report from each group member explaining their roles within the project.
This report should include and overview of their task during the development process,
challenges faced and how they were overcame.
• One submission per group!
Notes
• Your project must make use of the four principles of object orientation as well as apply SOLID
principles.
• The use of other structures such as enums, packages, wrappers classes, among others, are
also recommended.
• The use of a graphic user interface is not mandatory. A command line program would be
enough. If a graphic user interface is implemented, this will be considered as additional
marks.
• Groups must have a maximum of 3 members.
All Members are expected to do some
coding as part of their contribution.


Marking Scheme Summary
Description Weighting Minimum requirements have been met and work correctly: dynamic creation of objects, trading simulation process and reports to user 20
Appropriate use of at least three design patterns – each one applied correctly to the problem 20
Design document: the Class diagram is relevant to the program and represents the design patterns used. Justification of the design patterns is relevant. 1 5
Individual report: There is clear evidence of the individual contribution to the overall project, not only describing what was done, but also problems along the way and solutions. 1 5
Implementation of additional functionality, GUI implementations, or other OOC structures (these must be relevant to the application!) 30


TRADUCAO VERNACO


Orientação a objetos com padrões de design

Título do Módulo: Orientação a Objetos com Padrões de Design

Título do projeto: Simulador do mercado de ações

Ponderação: 30%

Data de entrega: domingo, 5 de maio de 2019

Você foi encarregado de projetar e implementar um simulador de um modelo simplificado de um mercado de ações.
O programa vai simular empresas e investidores, seguindo os requisitos específicos
Descrito abaixo.
Quando a simulação estiver concluída, você deve apresentar ao usuário um menu com uma lista de possíveis
relatórios para eles verem o resultado.

Requisitos Específicos
• O sistema deve criar dinamicamente 100 empresas. Todos eles devem ter:
o Um ID único
o Um número aleatório de ações (entre 500 e 1000)
o Um preço por ação aleatória (entre 10 e 100)
o Qualquer outro atributo que você considera relevante para o contexto
• O sistema deve criar dinamicamente 100 investidores. Todos eles devem ter:
o Um ID único
o Um orçamento aleatório entre 1000 e 10000
o Qualquer outro atributo que você considera relevante para o contexto
• Uma vez que todas as empresas tenham sido criadas, o simulador deve executar um “dia de negociação”. Isso vai
executar transações foram os investidores compram ações nas empresas que existem, seguindo as regras
abaixo:
o Se uma empresa vender 10 ações, o preço da ação deve dobrar.
o Se quaisquer 10 ações forem vendidas (de qualquer empresa) e uma empresa não tiver vendido nenhuma, o
preço deve reduzir pela metade.
o Os investidores podem fazer quantas transações quiserem, mas devem comprar apenas uma ação por
transação. Os investidores devem tentar comprar ações em tantas empresas possíveis para
garantir a segurança do seu investimento.
o O simulador deve parar quando todas as ações forem vendidas ou todos os investidores tiverem gasto
todo seu dinheiro.
• Você é obrigado a apresentar ao usuário um menu para exibir o resultado da simulação, com
as seguintes opções:

o Empresa com o capital mais alto (número de ações vezes o preço da ação)
o Companhia com o capital mais baixo (número de ações vezes o preço da ação)
o Se houver mais de uma empresa na posição superior ou inferior, todas devem ser
exibido no resultado.
o Investidor com o maior número de ações
o Investidor que investiu na maioria das empresas
o Investidor com o menor número de ações
o Investidor que investiu no menor número de empresas
o Há mais de um investidor em qualquer uma das posições, todos devem ser exibidos
no resultado.
• Pelo menos três padrões de projeto devem ser implementados em seu projeto.


PONTUACAO Extra - Importante

Se você quiser obter uma distinção, considere adicionar algumas camadas extras de funcionalidade, como
Mas não limitado a,
• Implementação de persistência de dados através de um arquivo ou banco de dados externo, ou qualquer outro aspecto que
pode ser relevante para o contexto.
• Implementação de um ambiente multithreaded para simular vários investidores negociando no
mesmo tempo.
• Outros relatórios, como o número total de transações.
Entregas
• Documento de design: para incluir detalhes e justificativa dos padrões de projeto utilizados e classe
diagrama do programa.
• Código fonte do programa de trabalho. O software deve ser executado, já que nenhum depuração será
tentada.
• Relatório individual de uma página de cada membro do grupo explicando suas funções dentro do projeto.
Este relatório deve incluir uma visão geral de sua tarefa durante o processo de desenvolvimento,
desafios enfrentados e como eles foram superados.
• Uma submissão por grupo!
Notas
• Seu projeto deve fazer uso dos quatro princípios de orientação a objetos, bem como aplicar SOLID
princípios.
• O uso de outras estruturas como enums, packages, wrappers classes, entre outras, são
também recomendado.
• O uso de uma interface gráfica de usuário não é obrigatório. Um programa de linha de comando seria
o suficiente. Se uma interface gráfica de usuário for implementada, isso será considerado como
marcas.
• Grupos devem ter no máximo 3 membros.
Todos os membros devem fazer algumas
codificação como parte de sua contribuição.


Resumo do esquema de marcação
Descrição Ponderação Os requisitos mínimos foram atendidos e funcionam corretamente: criação dinâmica de objetos, negociação de processos de simulação e relatórios para o usuário 20
Uso apropriado de pelo menos três padrões de projeto - cada um aplicado corretamente ao problema.
Documento de design: o diagrama de Classes é relevante para o programa e representa os padrões de design usados. A justificativa dos padrões de projeto é relevante. 1 5
Relatório individual: Há evidências claras da contribuição individual para o projeto como um todo, não apenas descrevendo o que foi feito, mas também problemas ao longo do caminho e soluções. 1 5
Implementação de funcionalidades adicionais, implementações GUI ou outras estruturas OOC (estas devem ser relevantes para a aplicação!)

Freelancers interessados

    {{ item.displayName }} {{ item.displayName }}

    {{ item.displayDisciplines }}

    • {{ item.hourlyRate || '-' }} por hora
    • {{ item.cityName }}
      {{ item.stateName }}, {{ item.countryName }}
    • {{ item.nrSharedConnections }} conexões compartilhadas

Nenhum freelancer interessado ainda

Operação falhou!
Por favor, tente novamente mais tarde. Se o problema persistir entre em contato com o suporte.