Ir ao conteúdo

Posts recomendados

Postado

Desculpe  não achei a  opção  do mingw e não sei exatamente qual tipo de C o programa Dev C++ utiliza mas esse é o meu problema 

Faça um programa, utilizando o Dev-C++, para armazenar os dados de um aluno(a), contendo os seguintes dados:

                              matricula: inteiro

                              nome: caractere

                              sexo: caractere

                              idade: inteiro                              av1, av2, av3 e media: real

O usuário poderá armazenar no máximo 30 alunos. O programa terá a opção de adicionar, exibir ou salvar/carregar os dados. O programa deverá ter as seguintes condições:

·       Adicionar:

o   Efetuar uma pesquisa para saber se o aluno(a) existe ou não no vetor através da matrícula do mesmo

§  Se existir, informar que o aluno(a) já se encontra presente e não adicione

§  Caso não exista, verifique se o sistema está ou não lotado antes de inserir

o   Ao armazenar as notas utilize o mesmo critério de avaliação da Faculdade para calcular a média, está não deve ser informada pelo aluno (Soma das 2 maiores notas divididos pela quantidade)(ou seja se  av3 > av1 então media = av3 + av2 /  2)

·       Exibir:

o   O usuário poderá exibir os alunos(as) com os seguintes critérios de média:

§  Alunos reprovados com média inferior a 5

§  Alunos reprovados com média inferior a 7

§  Alunos reprovados

§  Alunos aprovados com média superior ou igual a 7

§  Alunos aprovados com média superior ou igual a 9

§  Alunos aprovados

§  Todos os alunos

·       Salvar/Carregar:

o   O usuário irá escolher entre salvar ou carregar um arquivo externo

§  Colocar um campo para o usuário informar o nome do arquivo externo, tanto na opção de salvar quanto carregar

§  Ao selecionar a opção de carregar dados, o sistema deve ler todas as informações do arquivo externo e adicionar no programa

 

Por enquanto este é o meu código

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
using namespace std;
typedef struct{
    char nome[20], sexo[20];
    int idade, matricula;
    double av1, av2, av3, media;
}Aluno;

Aluno alu[25];  int total=0;

void Cadastrar(){
    system("cls");
    cout<<"Programa"<<endl;
    cout<<"Cadastrar Aluno"<<endl;
    if (total<50){
    
    cout<<"Nome: ";    cin>>alu[total].nome;
    cout<<"Idade: ";   cin>>alu[total].idade;
    cout<<"Sexo: "; cin>>alu[total].sexo;
    cout<<"Matricula: "; cin>>alu[total].matricula;
    cout<<"Nota da Av1: "; cin>>alu[total].av1;
    cout<<"Nota da Av2: "; cin>>alu[total].av2;
    cout<<"Nota da Av3: "; cin>>alu[total].av3;
    total++;
}
else
cout<<"Sistema Lotado"<<endl;
system("pause");
}

void Buscar(){
    system("cls");
    cout<<"Programa"<<endl;
    cout<<"Buscar Funcionario"<<endl;
    if (total == 0)
    cout<<"Sistema vazio"<<endl;
    else{
        int matricula;
        cout<<"Matricula para busca: "; cin>>matricula;
        for(int i=0; total; i++){
            if (strcmp(alu[i].matricula,matricula) == 0){                        (Nesta parte o programa está dando erro)
                cout<<"Idade: "<<alu[i].idade<<endl;
                cout<<"Nome: "<<alu[i].nome<<endl;
                cout<<"Sexo: "<<alu[i].sexo<<endl<<endl;
                
            }
        }
    }
    system("pause");
}

main(){
    int op;
    do{
        system("cls");
    cout<<"Programa"<<endl;
    cout<<"[1] CADASTRAR ALUNO"<<endl;
    cout<<"[2] BUSCAR ALUNO"<<endl;
    cout<<"[0] Sair"<<endl;
    cout<<"opção: "; cin>>op;
    switch(op){
        case 1: Cadastrar();  break;
        case 2: Buscar();    break;
    }
    }while(op!=0);
    
}

 

Postado
  • Você escreveu um programa em C com uns cout no lugar de printf(). Não faça isso. Se ensinaram isso está errado. E muito. São linguagens muito diferentes
  • Não misture os cabeçalhos de C com C++.
  • Há uma convenção quando de fato precisa desses headers, e stdio.h por exemplo é escrito cstdio
  • não use system. Nunca. Se seu IDE não para ao final do programa mude de IDE. Se para apenas configure
  • nunca escreva um programa interativo. Só vai te atrasar. menu é um porre. Coloque isso depois de estar funcionando ou só vai perder tempo
1 hora atrás, BONGO boy disse:

Desculpe  não achei a  opção  do mingw e não sei exatamente qual tipo de C o programa Dev C++ utiliza

 

Está invertendo causa e consequência. É você que diz qual versão de C vai usar, na opção --std do compilador. Se não sabe onde está isso veja na documentação. O compilador do mingw é o gcc em geral. E Dev C++ é o ambiente. o tal IDE apenas.

 

Identificando a versão no programa: 

 

Esse programa de 1 linha mostra a versão de C usada para compilar

 

#include <stdio.h>
#define para_string(s) string(s)
#define string(s) "versão C [" #s "]"

int main(void)
{
    printf("%s\n",para_string(__STDC_VERSION__));
}

 

E mostrou algo assim na máquina que estou usando agora:

 

versão C [201710L]

 

Veja a diferença mudando a versão na hora de compilar:

 

C:\Clube> gcc main.c
C:\Clube> ./a
versão C [201710L]
C:\Clube> gcc --std=c11 main.c
C:\Clube> ./a
versão C [201112L]
C:\Clube> gcc --std=c89 main.c
./a
versão C [__STDC_VERSION__]

 

Use uma versão nova.

 

USE o botão CODE com explicado no primeiro post desse forum. Veja a diferença

 

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
using namespace std;
typedef struct{
    char nome[20], sexo[20];
    int idade, matricula;
    double av1, av2, av3, media;
}Aluno;

Aluno alu[25];  int total=0;

void Cadastrar(){
    system("cls");
    cout<<"Programa"<<endl;
    cout<<"Cadastrar Aluno"<<endl;
    if (total<50){
    
    cout<<"Nome: ";    cin>>alu[total].nome;
    cout<<"Idade: ";   cin>>alu[total].idade;
    cout<<"Sexo: "; cin>>alu[total].sexo;
    cout<<"Matricula: "; cin>>alu[total].matricula;
    cout<<"Nota da Av1: "; cin>>alu[total].av1;
    cout<<"Nota da Av2: "; cin>>alu[total].av2;
    cout<<"Nota da Av3: "; cin>>alu[total].av3;
    total++;
}
else
cout<<"Sistema Lotado"<<endl;
system("pause");
}

void Buscar(){
    system("cls");
    cout<<"Programa"<<endl;
    cout<<"Buscar Funcionario"<<endl;
    if (total == 0)
    cout<<"Sistema vazio"<<endl;
    else{
        int matricula;
        cout<<"Matricula para busca: "; cin>>matricula;
        for(int i=0; total; i++){
            if (strcmp(alu[i].matricula,matricula) == 0){                        (Nesta parte o programa está dando erro)
                cout<<"Idade: "<<alu[i].idade<<endl;
                cout<<"Nome: "<<alu[i].nome<<endl;
                cout<<"Sexo: "<<alu[i].sexo<<endl<<endl;
                
            }
        }
    }
    system("pause");
}

main(){
    int op;
    do{
        system("cls");
    cout<<"Programa"<<endl;
    cout<<"[1] CADASTRAR ALUNO"<<endl;
    cout<<"[2] BUSCAR ALUNO"<<endl;
    cout<<"[0] Sair"<<endl;
    cout<<"opção: "; cin>>op;
    switch(op){
        case 1: Cadastrar();  break;
        case 2: Buscar();    break;
    }
    }while(op!=0);
    
}

 

 

Seu programa tem muitos erros ainda.

 

Se quer usar C escreva em C e continue com struct e os headers de C e tal.

 

Se quer usar C++ esqueça essas coisas. C++ é uma linguagem muito mais expressiva que C

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!