Ir ao conteúdo

Posts recomendados

Postado

Estou com muitas dificuldades a resolver este exercício

 

A turma x encontra-se no final do 12º ano, e foi pedido que elaborassem um programa que:

Receba:

Nome de 10 alunos e armazene num vetor de 10 posições

As notas dos 10 alunos de 5 disciplinas diferentes e armazene-os numa matriz 10X5.

O programa deve ter um menu com a seguinte estrutura:Introduzir dados;

Disciplinas

Alunos (N_processo,Nome,Morada)

Classificações

Listagem

Nomes dos alunos e respetivas classificações

Alunos reprovados

Alunos aprovados

O programa deve dar a possibilidade de o utilizador poder aceder todo o menu e sair quando desejar.

O Aluno reprova ao ano se obter pelo menos uma classificação inferior a 10 valores.

As disciplinas devem guardadas num ficheiro de nome Disciplinas.txt

A informação dos alunos deve estar guardadas num ficheiro com o nome de alunos.txt

O ficheiro classificações.txt deve conter a seguinte informação, uma tabela com o nome das disciplinas, dos alunos e as respetivas classificações.

É obrigatório o uso de apontadores, estruturas e ficheiros.

 

Postado

porque não consigo mesmo começar, estou com muitas dificuldades neste programa

adicionado 5 minutos depois

@herbertbahia preciso entregar este trabalho mas já não mexo em linguagem C há muito tempo tive doente durante uns meses e perdi muita matéria e precisava deste trabalho feito...

  • Curtir 1
Postado

Bem consegui fazer um pouco do código mas a partir daqui não consegui mais fazer 

#include<stdio.h>
#include<conio.h>
#include<string.h>
//-------Variáveis globais--------------------------------
char nome[10][20];
char linha[6][20]={"Nome", "Lingua Portuguesa" ,"MA","Mat","GF","LE"};
int matriz[10][5],i,j,n;
//-------Variáveis globais--------------------------------
void inserir()
{
    int n1;
    printf("\n Insira o nome de 10 alunos\n\n");
    for(i=0,n=1;i<10;i++,n++)
        {
        printf("Insira o nome do aluno nº %d:",n);
        scanf("%s",&nome);
        }
    printf("\n Insira a nota de 5 disciplinas\n\n");
    for(i=0,n1=0;i<10,n1<=10;i++,n1++)
        printf("Notas do aluno numero %d\n",n1);
        
        for(j=0,n=1;j<5,n<=5;j++,n++)
        {
            printf("%d Nota do aluno",n);
            scanf("%d",&matriz [j]);
        }
    menu();
}
void menu()
{
    int op;
    printf("1-Inserir\n");
    printf("2-Consultar\n");
    printf("3-Listar\n");
    printf("Indique a opção que quer");
    scanf("%d",&op);
}
//-------Declaração de funções e procedimentos------------
void menu();
void inserir();
void mostrar();
void listagem();
           
//------procedimento mostrar-----------
void mostrar()
{
    printf("\n\n Saida de Dados  \n\n");
  
                for(i=0;i<=2;i++)
                    printf("%s\t",linha);
                printf("\n");
                for ( i=0; i<5; i++ )
                    {
                     printf("%s\t",nome); 
                     for ( j=0; j<10; j++ )
                        printf ("%d\t\t",matriz[ i ][ j ]);

  • Curtir 1
Postado

para postar um codigo use o botao <> no seu painel

o seu codigo esta um pouco distante de funcionar tem bastante erro.

como se ler dados em um vetor

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

int main(){

    char nomes[10][21];
    float notas[10][5];
    int i,j;
    
     for(i=0;i<1;i++){
     	fflush(stdin);
     	printf("Digite o nome %d\n",i+1);
    	fgets(nomes[i],21,stdin);
    	nomes[i][strlen(nomes[i])-1]='\0';
    	for(j=0;j<5;j++){
    		printf("Digite a nota %d de %s\n",j+1,nomes[i]);
    		scanf("%f",&notas[i][j]);
		}
    }
    
    for(i=0;i<1;i++){
        printf(" %s\n", nomes[i]);
        for(j=0;j<5;j++){
    		printf(" notas %.2f \n",notas[i][j]);
    }
}
}

acho que essas sao as funcoes que precisa criar no menu

Disciplinas

Alunos (N_processo,Nome,Morada)

Classificações

Listagem

Nomes dos alunos e respetivas classificações

Alunos reprovados

Alunos aprovados

Postado
Em 15/06/2020 às 20:46, José__pereira disse:

É obrigatório o uso de apontadores, estruturas e ficheiros.

Certo mas não esquece que é obrigatorio o uso de ponteiros ,struct e arquivos.

Postado

confesso que tambem achei seu enunciado um pouco confuso

mas pelo que entendir é fazer essas funções

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
 
 struct Aluno{
 	int N_processo;
 	char Nome[21];
 	char Morada[50];
 };
 
int main(){
	int op;
	struct Aluno Aluno[10];
	while(1){
	setlocale(LC_CTYPE, "Portuguese");
	printf("Introduzir dados;\n");
	printf("1 - Disciplinas\n");
	printf("2 - Alunos\n");
	printf("3 - Gerar ficheiro Classificações\n");
	printf("4 - Listagem\n");
	printf("5 - Nomes dos alunos e respetivas classificações\n");
	printf("6 - Alunos reprovados\n");
	printf("7 - Alunos aprovados\n");
	printf("8 - Sair\n");
	scanf("%d",&op);
	switch(op){
		case 1:
			break;
		case 2:
			int i;
			
			for(i=0;i<2;i++){
				printf("Introduza o nome do Aluno %d:\n",i+1);
				Aluno[i].N_processo=i;
				fflush(stdin);
				gets(Aluno[i].Nome);
				printf("Introduza a morada de %s:\n",Aluno[i].Nome);
				gets(Aluno[i].Morada);
			}
		
			break;
		case 3:
			break;
		case 4:
				for(i=0;i<2;i++)
				printf("Aluno %s \nnº do processo %d\n morador de %s\n\n",Aluno[i].Nome,Aluno[i].N_processo,Aluno[i].Morada);
			break;
		case 5:
			break;
		case 6:
			break;
		case 7:
			break;
		case 8:
			exit(1);
	}
}

}

 

Postado
6 minutos atrás, José__pereira disse:

e seu segundo código tem alguns erros estou tentando resolver mas não consigo

como assim? nao entendir

adicionado 0 minutos depois

voce nao precisa juntar, tente continuar o segundo...

Postado

você precisa fazer uma boa revisão nos conteúdos, tenho certeza que seu professor não vai te exigir um exercício sem passar um conteúdo antes, então tente entender como funciona cada parte do exercício.

Postado

@herbertbahia estou sim não consigo fazer nada não estou entendendo nada

 

adicionado 24 minutos depois

@herbertbahia eu peço desculpa pedir isto assim mas se me podesse resolver só mais algumas coisas no código agradecia muito para ter uma nota mais alta,ficava muito mas muito agradecido da sua parte

  • Curtir 1
Postado

pelo que entendir voce tanto pode digitar as informaçoes no txt e fazer um programa que leia eles, como tambem pode ler no stdin e armazenar no txt o importante são as funcoes funcionarem.

35 minutos atrás, José__pereira disse:

não estou entendendo nada

 

adicionado 45 minutos depois
1 hora atrás, José__pereira disse:

se me podesse resolver só mais algumas coisas no código agradecia muito para ter uma nota mais alta

 

diga que coisas quer? me faça uma pergunta especifica.

Postado

eis um exemplo

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
 
 struct Aluno{
 	int N_processo = {};
 	char Nome[21];
 	char Morada[50];
 	bool Classificacao;
 };
 
int main(){
	int op,i,j;
	struct Aluno Aluno[10]; 
	float disciplina[10][5];
	const char nomedisciplinas[5][20]={"matematica","portugues","ciencia","historia","geografia"};
	FILE * arq;
	while(1){
	setlocale(LC_CTYPE, "Portuguese");
	printf("Introduzir dados;\n");
	printf("1 - Disciplinas\n");
	printf("2 - Alunos\n");
	printf("3 - Classificações\n");
	printf("4 - Listagem\n");
	printf("5 - Nomes dos alunos e respetivas classificações\n");
	printf("6 - Alunos reprovados\n");
	printf("7 - Alunos aprovados\n");
	printf("8 - Sair\n");
	scanf("%d",&op);
	switch(op){
	
		case 3:
			arq = fopen("classificacoes.txt", "w");
			if( arq == NULL ){
    		perror("Erro ao criar classificacoes.txt");
    		getchar();
    		exit(-1);		
			}
			else{
			for(i=0;i<10;i++){
				for( j=0;j<5;j++)
			fprintf(arq,"Aluno %s Disciplina %s \n Classificacao: %s\n",Aluno[i].Nome,nomedisciplinas[j],Aluno[i].Classificacao);	
			}
			fclose(arq);
			printf("classificacoes.txt foi criado.\n");
			}	
		case 8:
			exit(1);
	}
}
}

 

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!