Vous êtes sur la page 1sur 4

UNIFEI – Universidade Federal de Itajubá

Campus Avançado de Itabira


Laboratório de Lógica de Programação – ECOI02
Profa. Claudia A. Izeki

Projeto 1 – Notas
Antes de começar a programar, leia atentamente
este documento até o fim com os integrantes de sua
equipe.

A avaliação do projeto será realizada com base nos


requisitos apresentados neste documento!

1 - Da Formação e Interação da Equipe


● Integrantes por equipe: mínimo 3 e máximo 5;
● Todos os integrantes devem participar ativamente do trabalho. Todos devem participar de
todas as fases do desenvolvimento do programa, que poderão ser avaliadas de forma
individual posteriormente.
2 - Do Problema

Em um reino tão, tão distante, perto de uma grande pedra que brilha, vivem jovens que amam
resolver problemas com programas de computador.

A professora de lógica de programação, então, lhes pediu que fizessem um programa para
cadastro de suas notas em programação. O controle de frequência não é necessário porque
todos comparecem às aulas.

Nesse reino, cada disciplina é semestral e possui duas grandes notas bimestrais: a N1 e a N2
que, somadas e divididas por 2 resultam na média final. Caso obtenham média final de, no
mínimo 6,0, estão aprovados. Caso obtenham média abaixo de 2,0 estão reprovados e, caso
contrário, têm uma chance com a recuperação.

Com esse sistema, a professora deseja:


• Cadastrar nomes completos de alunos, que não podem ser repetidos;
• Entrar com a quantidade de avaliações que compõem tanto a N1 quanto a N2, limitadas
a 5 por bimestre. Ela pode escolher, por exemplo, 3 avaliações compondo a N1 e 2
compondo a N2;
• Entrar com os pesos de cada uma dessas avaliações;
• Cadastrar as notas dos alunos em todas essas avaliações;
• Visualizar a planilha de notas, com uma casa após a vírgula, conforme Tabela 1.
• Nessa planilha, colorir de verde os alunos que passaram, de amarelo os que irão para
recuperação, e de vermelho os que reprovaram. Saber a quantidade de alunos em cada
um desses intervalos;
• Saber a média final da turma e seu desvio padrão;
• Os nomes dos alunos com a maior média final. Caso existir mais de um aluno nessa
situação, mostrar todos.

Os alunos ficaram muito entusiasmados com esse desafio! Vão poder praticar muitos
conceitos que viram até o momento na disciplina!

T ABELA 1 - E XEMPLO DE PLANILHA DE NOTAS DOS ALUNOS .


Aluno A1 A2 A3 N1* B1 B2 N2* Média*
Fulano de Tal 10.0 7.9 6.3 7.2 9.0 10.0 9.5 8.3
Sicrano de Tal 0.0 4.5 3.5 3.5 3.5 5.6 4.6 4.0
Beltrano de Tal 8.0 2.0 2.0 2.6 1.0 1.0 1.0 1.8

Média da turma: 4.7


Desvio padrão: 3.3 (veja o exercício das temperaturas para lembrar o cálculo!)

N1 = (A1+3*A2+6*A3)/10; // exemplo
N2 = (B1+B2)/2 // exemplo
Média = (N1+N2)/2;

• São calculadas automaticamente pelo programa.


3 - Do Programa

Além de resolver o problema descrito na seção anterior, o programa deverá possuir os seguintes
requisitos de código:

● Uso de matriz de caracteres para armazenar os nomes dos alunos;


● Apenas abrindo um parênteses, antes de toda chamada à função de leitura de string,
ou seja, da função gets(), chame a função fflush(stdin); que fará a limpeza do buffer
de entrada do teclado. O que ocorre é que muitas vezes, o computador não deixa você digitar
a string, pois fica um “[enter]” na memória. O fflush faz com que esse “[enter]” seja
retirado do buffer de entrada, fazendo com que você consiga digitar sua string. O fflush é
da biblioteca cstdio;

● Uso de matriz numérica para armazenar na sequência: as notas dos alunos em avaliações da
N1, a média no 1º bimestre, as notas em avaliações da N2, a média no 2º bimestre, e a média
final, conforme a Tabela 1;

● Definição e uso de constantes (com a palavra-chave const) para armazenar:


● A quantidade máxima de alunos;
● A quantidade máxima de caracteres para nome de aluno;
● A quantidade máxima de avaliações por bimestre;
● A quantidade máxima total de notas por aluno, que é: 2 * a quantidade de avaliações
bimestrais + 1 média do 1º bimestre + 1 média do 2º bimestre + 1 média final.
 Uma vez definidas, use-as em todo o programa. Isso é muito importante!

● Deve ser dado ao professor a possibilidade de entrar:


● com a quantidade de alunos desejada, que seja limitada à quantidade máxima definida;
● com a quantidade de avaliações por bimestre, que seja limitada à quantidade máxima
definida;
● com os pesos das avaliações de cada bimestre;
● com as notas de cada aluno.

● Validações com estruturas de repetição:


● Para nomes não repetidos de alunos;
● Para quantidade válida de alunos;
● Para quantidade de avaliações por bimestre;
● Para pesos;
● Notas dos alunos, no intervalo [0.0, 10.0].

● Modularização: lembre-se que o uso de funções evita repetição de código, divide e estrutura
melhor um algoritmo, além de aumentar a legibilidade do código;

● Projeto no CodeBlocks: organize seu projeto com a main.cpp, o arquivo de cabeçalho


(.h) com os protótipos e definições de constantes (const) e o arquivo com as definições de
funções (.cpp);
● Utilização de apenas variáveis locais. Não use variáveis globais! Variáveis globais são
variáveis declaradas fora de qualquer definição de função;

● Comentários: na main.cpp, logo no início, escrever: dados dos programadores (RA e


nome), data e descrição breve do programa. No decorrer do programa, incluir comentários
que julgar necessários. Antes da definição de cada função, escrever o que ela faz;

● Indentações: é essencial o uso de indentações (espaçamentos) para melhor estruturação do


seu programa, tornando-o legível para quem o lê. Lembre-se que a opção do menu do
Code::Blocks “Plugins->Source code formatter (AStyle)” indenta seu código;

● Legibilidade do programa: nomes significativos das variáveis e funções, indentações,


comentários, ....

● Usabilidade da interface: mantenha um diálogo eficiente com o usuário usando mensagens


significativas, ou seja, o usuário não deverá adivinhar como se comunicar com o
programa.

4 - Da Entrega
● Quando? 01/06/2017 até às 12:00, horário do SIGAA.
● O quê? A pasta do projeto compactada, sem o arquivo executável (você pode apagá-lo em
bin>Debug), e juntamente com um tutorial de uso do programa (formato pdf), descrito na
Seção 5.
● Como? via SIGAA, em Tarefas no menu Atividades na Turma T02 (teórica). Lembre-se: (1)
não será possível submeter o projeto após o horário máximo programado; (2) certifique-se de
verificar se o arquivo foi realmente enviado.
● Quem envia? Apenas um integrante do grupo deverá entregar o projeto.

5 – Do Tutorial
Arquivo em formato pdf, com:
● Capa contendo nome da Universidade, nome da disciplina, nome do projeto, nome da
professora, os integrantes da equipe e informação que o documento é um tutorial;
● A próxima seção deve ter o título “Um Exemplo de Execução do Programa”, na qual deve-
se descrever de forma sucinta a execução do programa com um exemplo e apresentando telas
da execução do programa. Deve-se apresentar telas com exemplos de todas as validações
implementadas no programa;
● Na próxima seção, intitulada “Considerações Finais”, descrever se conseguiram
implementar com sucesso tudo o que foi pedido, se o programa possui erros e quais são, o que
vocês aprenderam, como foi a divisão de trabalho dentro da equipe, etc.

6 - De fraudes
Programas iguais ou muito semelhantes terão notas iguais a zero. Uso software que detecta plágio.
Portanto, tentem programar com a própria ideia da equipe, assim vocês não terão problemas! Estou
disponível para tirar quaisquer dúvidas, seja de entendimento ou de código!

Bom Projeto! Claudia.

Vous aimerez peut-être aussi