Como posso desenvolver este algoritmo em C++?
"II - Elaborar um programa para ler a media de todas as disciplinas
> inclusive o nome de cada disciplina.(Diagrama Também)
> a) elaborar a media final entre todas as disciplinas.
> b) caso o aluno seja aprovado em todas as disciplinas, ou seja, a
> media for >=6 imprimir a mensagem aprovado
> c) caso o aluno tenha media inferior, imprimir recuperação na frente
> da disciplina.
> d) A saida do sistema deverá ser uma tabelinha contendo a disciplina,
> media e mensagem de aprovação ou recuperação."
Sei que terei que usar matriz, para formar a tabela, mas to com dificuldade em montar a lógica disso tudo. Alguém pode me ajudar?
Se postarem o algoritmo ajuda, mas quero entender todos passos, até pq é necessário que eu também faça o fluxograma. Agradeço, desde já, a colaboração de vocês.
Comments
Amigo, eu não sei se você vai olhar, mas eu resolvi o seu problema e coloquei no Pastebin (pastebin.com) - um site onde costuma-se compartilhar código-fonte ou textos. Ele tem a função de 'highlight', onde o código fica colorido, de acordo com a sintaxe da linguagem. mais na Wikipédia: http://pt.wikipedia.org/wiki/Pastebin
Ah.. A questão de 'design' não está 100%. E você só deve usar para entendimento do que foi feito ou como poderia ter sido feito. Ou seja: estude-o e faça o seu! (como você mesmo afirmou que fará)
Veja aqui: http://pastebin.com/PJ6uBCxG
Este link jamais irá expirar - a não ser que aconteça alguma catástrofe por aí ou que o Pastebin feche - o que acho improvável. Mas por via das dúvidas, aqui vai:
#include <iostream>
#include <string>
#include <vector>
#include <iomanip> // Para setprecision() e fixed
int main(void)
{
// Cria as variáveis de leitura
float nota, media_das_disciplinas;
std::string disciplina;
// Cria os variáveis vetores (vectors) de notas e disciplinas
std::vector<float> notaS;
std::vector<std::string> disciplinaS;
// Cria as variáveis da quantidade de itens nos vetores (vectors)
std::vector<float>::size_type quantidade_de_notas, i;
std::vector<std::string>::size_type quantidade_de_disciplinas, j;
// Inicializa variáveis
media_das_disciplinas = 0.0;
disciplina = "\n";
// Leitra das disciplinas e notas do aluno ENQUANTO houver LEITURA
while( disciplina != "" )
{
// Pede por uma disciplina ou para sair
std::cout << "Digite o nome da disciplina ou ENTER para sair: ";
std::getline( std::cin, disciplina );
// Executa se não saiu do laço (loop)
if( disciplina != "" )
{
// Insere no final do vetor (vector) o nome da disciplina
disciplinaS.push_back(disciplina);
// Obtém a média da disciplina
std::cout << "Digite a media da disciplina: ";
std::cin >> nota;
// Insere no final do vetor (vector)
notaS.push_back(nota);
// Soma a nota a futura média geral
media_das_disciplinas += nota;
// Limpa o buffer
std::cin.ignore(1);
}
// Pula uma linha (somente visual)
std::cout << std::endl;
}
// Pula uma linha (somente visual)
std::cout << std::endl;
// Se existe alguma entrada (disciplina e nota), realiza o 'boletim'
if( !notaS.empty() && !disciplinaS.empty() )
{
// Tabelinha (início)! -- considerando 70 colunas
std::cout << "=======================================… << std::endl;
std::cout << " \tDISCIPLINA\t | \tNOTA\t\t | \tAPROVACAO" << std::endl;
// Inicializa j
j = 0;
// Acessa cada uma das disciplinas e suas respectivas notas e retorna os dados referentes
for( i = 0; i < notaS.size(); i++ )
{
// Tabelinha!
std::cout << "---------------------------------------… << std::endl;
// Verifica se o aluno está aprovado ou não da disciplina em questão
if( notaS[i] >= 6.0 )
{
std::cout << " " << disciplinaS[j] << "\t | \t" << std::fixed << std::setprecision(1) << notaS[i] << "\t\t | \tAprovado " << std::endl;
}
else
{
std::cout << " " << disciplinaS[j] << "\t | \t" << std::fixed << std::setprecision(1) << notaS[i] << "\t\t | \tReprovado " << std::endl;
}
// Obtem valor de iteração de j do próximo ciclo
j++;
}
// Tabelinha!
std::cout << "---------------------------------------… << std::endl;
// Calcula a média geral
media_das_disciplinas = media_das_disciplinas / quantidade_de_disciplinas;
// Verifica se aluno reprovado ou aprovado
if( media_das_disciplinas >= 6 )
{
std::cout << "\t\t\t\t\t\t | Aluno aprovado!" << std::endl;
}
else
{
std::cout << "\t\t\t\t\t\t | Aluno Reprovado!" << std::endl;
}
// Tabelinha (fim)!
std::cout << "=======================================… << std::endl;
}
// Retorno de saída do programa (sucesso!)
return(0);
}
Se baseie neste e faça as adaptações necessárias.
http://br.answers.yahoo.com/question/index;_ylt=Aq...
Média:
=media(intervalo) ou =med(intrervalo)
=se(media>=6;"Aprovado";"Reprovado")
e assim vai indo
ou pesquisa no google!
Acho q é melhor usar o google mesmo... é...
Abraço
Não sei.