Ir para conteúdo
GustavoSoaresLima

Programa em C para cadastrar aluno

Recommended Posts

Boa tarde, estou tentando fazer um programa para cadastrar alunos para um trabalho da faculdade

Isso é o que pede no enunciado:

* Uma função separada para calcular o imc, ela recebe dois valores em ponto flutuante (peso e altura) e retorna um valor (o imc) em ponto flutuante.
* Uma estrutura chamada Aluno onde será armazenado nome, e-mail, peso e altura.
* Um vetor de 20 posições que armazenará as estruturas.
* Uma tela de menu, que terá as seguintes opções:

1. Cadastra aluno (apenas 1, escolhendo a posição de 1 a 20).
2. Listar alunos.
3. Apagar aluno (pode apagar pela posição na lista).
4. Listar IMC de alunos (lista todos os nomes, com o valor do IMC e a condição para o IMC de acordo com a tabela acima).
0. Sair.

O programa deve permanecer em execução até o usuário escolher a opção "Sair".

 

até agora consegui fazer quase tudo, mas quando eu peço pra listar o valor dos floats aparecem como 0.00, mesmo eu tendo colocado um valor diferente para eles.

Esse é meu código:

#include<stdio.h>
#include<stdlib.h>
#include <locale.h>

struct Aluno{
          char nome[20];
          char email[20];
          float peso;
		  float altura;
		  float IMC;
};

          struct Aluno cad_aluno[20];

float calculaimc(float p, float a){
    float resultado = p / (a*a);
    return resultado;
}

int main (){
	int opcao, i, l;
	setlocale(LC_ALL, "Portuguese");

        for (i = 1; i <=20;){
            printf("\n\nCadastro dos Alunos: \n");
            printf("Digite o numero de uma das opções: \n");
            printf("1- Cadastrar aluno \n");
            printf("2- Listar alunos \n");
            printf("3- Apagar alunos \n");
            printf("4- Listar IMC de alunos \n");
            printf("0- Sair \n");
            scanf("%d", &opcao);

            switch(opcao) {

            case 1:

                    fflush(stdin);
                    printf ("\n Nome do aluno:");
                    scanf ("%s", &cad_aluno[i].nome);
                    fflush(stdin);
                    printf ("\n Email do aluno:");
                    scanf ("%s", &cad_aluno[i].email);
                    fflush(stdin);
                    printf ("\n Peso do aluno: ");
                    scanf ("%f", &cad_aluno[i].peso);
                    fflush(stdin);
                    printf ("\n Altura do aluno: ");
                    scanf ("%f", &cad_aluno[i].altura);
                    fflush(stdin);
                    cad_aluno[i].IMC = calculaimc(cad_aluno[i].peso, cad_aluno[i].altura);
                    fflush(stdin);
                    i++;
                break;
            case 2:
                for (l = 1; l <=20; l++) {
                    if(l < i){
                        printf("\n\nNome: %s", &cad_aluno[l].nome);
                        printf("\nEmail: %s", &cad_aluno[l].email);
                        printf("\nPeso: %1.2f", &cad_aluno[l].peso);
                        printf("\nAltura: %1.2f", &cad_aluno[l].altura);
                        printf("\nIMC: %1.2f", &cad_aluno[l].IMC);
                    }
                    else{
                        l = 20;
                    }
                }
                break;
            case 3 :
                break;
            case 4 :
                for (l = 0; l <20; l++) {
                    if(l < i){
                        printf("IMC do aluno %d: %1.2f", l, &cad_aluno[l].IMC);
                    }
                    else{
                        l = 20;
                    }
                }
                break;
            case 0 : exit(0);
            default:
                printf ("Opção invalida\n");
                break;
        }
	}

	return 0;
}

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include<stdio.h>
#include<stdlib.h>
struct Aluno{
    char nome[30];
    char email[30];
    float peso;
    float altura;
    float imc;
}alunos[20];
float calcular_imc(float altura, float peso){
    float imc = peso/(altura*altura);
}
int main(){
    int pos_cadastradas[30];
    int index = 0;
    int pos;
    int opcao;
    do{
        printf("1.Cadastrar | 2.Listar | 3.Remover | 4.Listar IMC | 0.Sair:");
        scanf("%d",&opcao);
        switch(opcao){
            case 1:
                pos = 0;
                printf("\nPosicao(de 0 a 19):");
                scanf("%d",&pos);
                if(pos <= 19){
                    fflush(stdin);
                    printf("Nome:");
                    gets(alunos[pos].nome);
                    printf("Email:");
                    gets(alunos[pos].email);
                    printf("Peso:");
                    scanf("%f",&alunos[pos].peso);
                    printf("altura:");
                    scanf("%f",&alunos[pos].altura);
                    alunos[pos].imc = calcular_imc(alunos[pos].altura,alunos[pos].peso);
                    pos_cadastradas[index] = pos;
                    index++;
                    break;
                    printf("\n1.Cadastrar | 2.Listar | 3.Remover | 4.Listar IMC | 0.Sair:");
                    scanf("%d",&opcao);
                }else{
                    printf("Opcao invalida, fechando algoritmo...");
                    exit(-1);
                }
            case 2:
                for(int i = 0; i < index; i++){
                    printf("\nNome:%s",alunos[pos_cadastradas[i]].nome);
                    printf("\nEmail:%s",alunos[pos_cadastradas[i]].email);
                    printf("\nAltura:%f",alunos[pos_cadastradas[i]].altura);
                    printf("\nIMC:%f",alunos[pos_cadastradas[i]].imc);

                }
                    break;
                    printf("\n1.Cadastrar | 2.Listar | 3.Remover | 4.Listar IMC | 0.Sair:");
                    scanf("%d",&opcao);
            case 3:
                exit(0);
            case 4:
                  for(int i = 0; i < index; i++){
                    printf("\nIMC:%f",alunos[pos_cadastradas[i]].imc);
                }
                 break;
                 printf("\n1.Cadastrar | 2.Listar | 3.Remover | 4.Listar IMC | 0.Sair:");
                 scanf("%d",&opcao);
            default:
                 printf("Opcao invalida, fechando algoritmo...");
                 exit(-1);
        }
    }while(opcao != 0);
    system("PAUSE");
}

Não sei como remover, então botei exit(0) no lugar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Duke73
      Bom dia turma !!
      Estou com um probleminha em um formulário de cadastro que recebe via email o E-mail do usuário. Ele entra na página para finalizar o seu cadastro, preenche os dados e envia, mas no banco só está gravando os dados da tabela "Contas" e não da de "Usuarios" também, assim quando ele vai se logar, não consegue. Na tabela "Contas" não não gera o campo "usuario_id".
      Algué pode me ajudar ?! Agradeço
       
      Segue o codigo abaixo:
      <?php require_once('includes/config.php'); if (isset($_POST['acao']) && $_POST['acao'] == "cadastro"){     if(True){         $email = addslashes($_POST['u_email']);         $sql = "SELECT email FROM Contas WHERE email = '{$email}'";         $query = $conn->query($sql);         $usuario = addslashes($_POST['u_usuario']);         $sql = "SELECT usuario FROM Usuarios WHERE usuario = '{$usuario}'";         $query = $conn->query($sql);         if($query->num_rows){            header('Location: login.php?error=username_used');         } else {           $email = addslashes($_GET['email']);           $senha = md5($_POST['u_senha']);           $nome = addslashes($_POST['u_nome']);           $usuario = addslashes($_POST['u_usuario']);           $nascimento = addslashes($_POST['u_nascimento']);           $cep = str_replace('-', '', $_POST['u_cep']);           $sexo = addslashes($_POST['u_sexo']);             $termos = addslashes($_POST['u_termos']);                   $sql = "INSERT INTO Usuarios VALUES (null, '{$nome}', '{$usuario}', '{$nascimento}', {$cep}, {$sexo});";                 $query = $conn->query($sql);                 $id = $conn->insert_id;                 $sql = "UPDATE Contas SET senha = '{$senha}', usuario_ID = '$id', ativo = 1  WHERE email = '{$email}';";                 //$sql = "UPDATE Contas SET senha='{$senha}', usuario_ID='{$id}' WHERE email='{$email}';";                 //$sql = "INSERT INTO Contas VALUES (null, '{$email}', '{$senha}', {$tipo}, {$id}, null, 0);";                 if($query = $conn->query($sql)){                     header("Location: login.php?error=account_created");                 } else {                     header('Location: confirm.php?error=account_no_created');                 }         }     } } ?> <?php   // busca a biblioteca recaptcha require_once "recaptchalib.php"; // sua Secret Key $secret = "6LffqW4UAAAAANBM0v2ex8l0uO4Ueed3ar4ebHxz";   // resposta vazia $response = null;   // verifique a chave secreta $reCaptcha = new ReCaptcha($secret);   // se submetido, verifique a resposta if($_POST){   if ($_POST["g-recaptcha-response"]) {   $response = $reCaptcha->verifyResponse(           $_SERVER["REMOTE_ADDR"],           $_POST["g-recaptcha-response"]       );   } } ?> <!DOCTYPE html> <html> <head>     <base href="">     <meta charset="utf-8" />     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta property="og:image" content="<?php echo 'imgs/'.$sorteio['imagem']; ?>">     <meta property="og:image:type" content="image/jpeg">     <meta property="og:image:width" content="1024">     <meta property="og:image:height" content="1024">     <title><?php echo $sorteio['nome']; ?> - <?php echo TITLE; ?></title>     <meta name="viewport" content="width=device-width, initial-scale=1">   <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">     <link rel="shortcut icon" href="imgs/favicon.ico" />     <link rel="stylesheet" type="text/css" media="screen" href="assets/css/bootstrap.min.css" />     <link rel="stylesheet" type="text/css" media="screen" href="assets/css/main.css" />     <style type="text/css">         card {             border: none !important;         }     </style> </head> <body class="homepage is-preload">     <div id="page-wrapper">     <?php require_once 'includes/nav.php'; ?>             <main style="margin-top: 60px;">         <div class="container">             <div class="row">                 <div class="card col-12">                     <div class="card-body">                         <h5 class="w-100 text-center card-title">                             Concluir Registo                         </h5>                         <hr>                         <div class="row justify-content-md-center">                             <!-- Registro Formulário -->                             <div class="col-md-6 col-lg-6 col-md-12 col-xs-12">                                 <div id="formUsuario">                                     <form method="POST"  value="cadastro">                                         <input type="hidden" name="acao" value="cadastro"/>                                         <div class="form-group">                                             <label for="emailUsuario">E-mail</label>                                             <input type="email" value="<?php echo $_GET['email']; ?>" class="form-control" id="emailUsuario" aria-describedby="emailHelp" placeholder="Insira seu e-mail" name="u_email" disabled>                                         </div>                                         <div class="form-group">                                             <label for="senhaUsuario">Senha</label>                                             <input type="password" class="form-control" id="senhaUsuario" aria-describedby="senhaHelp" placeholder="Insira sua senha" name="u_senha" required>                                         </div>                                         <div class="form-group">                                             <label for="nomeUsuario">Nome Completo</label>                                             <input type="text" class="form-control" id="nomeUsuario" aria-describedby="nomeHelp" placeholder="Insira seu nome" name="u_nome" required>                                         </div>                                         <div class="form-group">                                             <label for="nomedeUsuario">Nome de Usuário</label>                                             <input type="text" class="form-control" id="nomedeUsuario" aria-describedby="usuarioHelp" placeholder="Insira seu nome de usuário" name="u_usuario" required>                                         </div>                                         <div class="form-group">                                             <label for="dataUsuario">Data de Nascimento</label>                                             <input type="date" class="form-control" id="dataUsuario" aria-describedby="nascimentoHelp" name="u_nascimento" required>                                         </div>                                         <div class="form-group">                                             <label for="CEPUsuario">Código Postal</label>                                             <input type="text" minlength="4" maxlength="4" class="form-control" id="CEPUsuario" aria-describedby="cepHelp" placeholder="Ex.: XXXX ( Apenas os 4 primeiros dígitos )" name="u_cep" required>                                         </div>                                         <div class="form-group">                                             <label for="selectSexo">Sexo</label>                                             <select class="form-control" id="selectSexo" name="u_sexo" required>                                                 <option checked>Selecione aqui</option>                                                 <option value="0">Masculino</option>                                                 <option value="1">Feminino</option>                                             </select>                                         </div>                                         <div class="form-group">                                             <label class="selectTermos">Aceita os Nossos Termos de Usos? Leia os nossos Termos <a href="termos_utilizacao.php">Aqui</a></label>                                             <select class="form-control" id="selectSexo" name="u_termos" required>                                                 <option checked>Selecione aqui</option>                                                 <option value="0">Aceito</option>                                                 <option value="1">Não Aceito</option>                                             </select>                                          </div>                                         <div class="form-group">                                             <label >Captcha</label>                                             <div class="g-recaptcha" data-sitekey="6LffqW4UAAAAAJ984jA-Pt5n1sU65Wk6wSyCx-Uk"></div>                                         </div>                                                                                <hr>                                                                                  <button type="button" id="action" name="tipo" value="usuario" class="btn btn-primary" onclick="participar()">Curtir Página</button>                                         <button type="button" id="btn-cadastrar" name="tipo" value="usuario" class="btn btn-primary">Criar Conta</button>                                   </form>                                 </div>                             <script src='https://www.google.com/recaptcha/api.js?hl=pt-BR'></script>                                                  </div>                     </div>                 </div>             </div>         </div>     </div> </main> <br><br><br><br> <?php require_once 'includes/footer.php'; ?>     <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>     <script src="assets/js/bootstrap.min.js"></script>     <script>   var init = 0;     function participar(){         if(init == 0){             var popup = window.open("<?php echo LINK1; ?>", 'newwindow', 'width=900,height=600');         }         popup.onunload = function(){             if(init == 1){                 $('#action').html('Da Gosto Sorte Macaca');                 $('#action').attr('class', 'btn btn-primary');                 init++;             } else {               $('#btn-cadastrar').attr('class', 'btn btn-primary text-white');               $('#btn-cadastrar').attr('type', 'submit');               $('#action').remove(); //             var c = 30; //             var q = setInterval(function(){ //                 c = c - 1; //                 if(c == 0){ //                     $('#btn-cadastrar').html('Registar'); //                     $('#btn-cadastrar').attr('type', 'submit); //                     $('#btn-cadastrar').attr('class', 'btn btn-primary text-white mb-3'); //                     $('#action').remove(); //                     clearInterval(q); //                 } else { //                     $('#btn-cadastrar').html('Participar! ('+c+')'); //                 } //             }, 1000);             }         }     }     </script>   </div>   </body> </html>  
    • Por chocomilki
      Ola amigos
       
      Tenho um controle de reunioes de uma empresa  e as reunioes são todas as segunda e gostaria de cadastrar todas as segundas ate Dezembro e que no site aparece automático pra mim ex:
       
      10/09 
       
      17/09
       
      25/09
       
      E assim por diante ou seja eu não tenha que por no site toda a Segunda  a data do dia pra ir pro site...
       
      Obrigado.
    • Por DrDjou
      Boa tarde pessoal estou com muita dificuldade para fazer esse códigos:
      1) Cléo Kuhn contratou você para desenvolver um programa (utilize funções) que leia a quantidade de chuva em milímetros, por dia durante um mês. Sabendo que, podemos ter meses com 28, 30 e 31 dias, (ignorando o ano bissexto). Primeiramente deve ser possível informar o mês que deseja lançar as informações, depois deve ser possível informar a precipitação diária de chuva. Após a inserção dos dados deve ser possível verificar a média mensal de precipitação em milímetro, quantidade de dias que choveu, e a quantidade de dias que não choveu.
      este já começei:
      #include<stdio.h>
      #include<stdlib.h>
      int main(void){
          int mes,a,b,c,m,soma=0,i;
          printf("Digite o mes que voce quer informar a chuva:\n");
          scanf("%d",&mes);
                  if(mes=1,mes=3,mes=5,mes=7,mes=8,mes=10,mes=12){
                      for(m=0;m<=31;m++){
          printf("Milimetros de chuva\nse nao choveu digite'0'.Dia %d:",i);
          scanf("%d",&m);
          }
                  if(mes=4,mes=6,mes=9,mes=11){
                      for(m=0;m<=30;m++){
          printf("Informe quantos milimetros choveu neste dia se nao choveu digite'0':\n");
          scanf("%d",&m);
          }
                  if(mes=2){
                      for(m=0;m<=28;m++){
          printf("Informe quantos milimetros choveu neste dia se nao choveu digite'0':\n");
          scanf("%d",&m);
          }    if(m>=0)
                          Printf("Não choveu");
                          scanf("%d",&a);
                          if(m<0)
                          Printf("Choveu");
                          scanf("%d",&b);
          a=soma+m;
           b=soma+m;
                      printf("choveu %d, nao choveu %d.",b,a);
              
                  }                                    
                      
                      system("pause");
                      }}}
       
       
       
      2) (2 pontos) Implemente um programa que utilize funções para calcular o valor a ser pago no acerto de uma prestação de conta. O programa deverá solicitar ao usuário o valor da prestação e o número de dias em atraso e passar estes valores para a função que calcula o valor a ser pago, e devolverá este valor ao programa que a chamou. O programa deverá então exibir o valor a ser pago na tela, e deverá voltar a pedir outro valor de prestação e assim continuar até que seja informado um valor igual a zero para a prestação. Neste momento o programa deverá ser encerrado, exibindo o relatório do dia, que conterá a quantidade e o valor total de prestações pagas no dia. O cálculo do valor a ser pago é feito da seguinte forma. Para pagamentos sem atraso, cobrar o valor da prestação. Quando houver atraso, cobrar 2% de multa, mais 0,2% de juros por dia de atraso.
    • Por Marcela Loschi Salvador
      Microsoft VBScript runtime error '800a0009'
      Subscript out of range: '[number: 3]'
      /portal/estudantes/cadastro/verifica_cad_existe1.asp, line 191
    • Por MarceloSan
      Pessoal, preciso de uma ajuda,
      Tenho que salvar fotos de ferramentas e peças em um banco de dados, essas fotos vão ser tiradas, mas tiradas com uma câmera usb. estou tendo dificuldades para fazer isso.
      Consigo pegar o código setado na outra pagina normal, a imagem da câmera também esta na variavel. Falta apenas a parte de salvar.
       
       segue abaixo o meu codigo.
       
       
       
      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Fotos</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> video{ max-width:200%; } img{ max-width:30%; } </style> </head> <body> <video autoplay></video> <script> (function() { 'use strict'; var video = document.querySelector('video') , canvas; /** * generates a still frame image from the stream in the <video> * appends the image to the <body> */ function takeSnapshot() { var img = document.querySelector('img') || document.createElement('img'); var context; var width = video.offsetWidth , height = video.offsetHeight; canvas = canvas || document.createElement('canvas'); canvas.width = width; canvas.height = height; context = canvas.getContext('2d'); context.drawImage(video, 0, 0, width, height); img.src = canvas.toDataURL('image/png'); document.body.appendChild(img); } // use MediaDevices API // docs: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia if (navigator.mediaDevices) { // access the web cam navigator.mediaDevices.getUserMedia({video: true}) // permission granted: .then(function(stream) { video.src = window.URL.createObjectURL(stream); video.addEventListener('click', takeSnapshot); }) // permission denied: .catch(function(error) { document.body.textContent = 'Could not access the camera. Error: ' + error.name; }); } })(); </script> <?php include "../lib/config.inc.php"; $foto = "<script>document.write(canvas)</script>"; echo '</br>'; echo "$foto"; echo '</br>'; $numero = $_GET['codigo']; echo $numero; $query="Insert into snapshot (codigo_ferramenta, Image) values('$numero','$foto')"; $result= $this->query($query); if($result){ return "Image saved to database"; } else{ return "Image not saved to database"; } ?> </body> </html>
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.