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. :D

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

    ;)

Sign In or Register to comment.