Ir ao conteúdo
  • Cadastre-se

C Procurar valor em matriz e alterar nota do aluno selecionado


Enrol4do

Posts recomendados

Como eu posso fazer pra salvar cada linha da matriz nota como um aluno, quero que cada aluno cadastro seja uma linha da matriz que é composta por 4 parciais. A alteração sera feita pelo prof e o aluno tera somente a opção de verificar suas notas. 

#include<stdio.h>
#include<conio.h>
#include<string.h>
	struct ficha_prof{
		int matricula;
		int senha;
		char materia[10];
	};
	struct ficha_prof prof[10];
	
	struct ficha_aluno{
		int matricula;
		int senha;
		char nome[10];	
	};
	struct ficha_aluno aluno[10];	                                      
main(){
	int i=0,j=0,x=0,a=1,m=0,n=0,e=0,z=0,y=0,cont_aluno=0,cont_prof=0,listar_aluno=0,contar=0;
	int op1=0,op2=0;
	int login=145,login_senha=145;
	char procurar_nome[10];
	float nota[4][4];
	
	
	do{ 
		printf("GERENCIADOR DE ATIVIDADES");
		
		printf("\n1 - PROFESSOR");
        printf("\n2 - ALUNO");
        printf("\n0 - SAIR");

        printf("\nDIGITE SUA OPCAO:  ");
        scanf("%d", &op1);
        switch(op1){
        	 case 1:		 	 	
        		printf("\n\n###### Menu professor ######");
        		printf("\n1 - CADASTRO");
        		printf("\n2 - LOGIN");
        		printf("\n0 - VOLTAR");
       			printf("\nDIGITE SUA OPCAO:  ");
        			
        		scanf("%d", &op1);	 		
       			 switch(op1){
       	 			case 1:
       	 			do{
						
               			printf("\n\n@@@ CADASTRAR PROFESSOR @@@@");
                			              		
                    	printf("\nDigite sua materia: ");
                   		scanf("%s",&prof[i].materia);                 		 	
                    	printf("\nDigite sua matricula: ");
                   		scanf("%d", &prof[i].matricula);
                   		printf("\nDigite sua senha: ");
                   		scanf("%d", &prof[i].senha);
						
               			printf("\n### CADASTRADO COM SUCESSO !! ###\n\n");
                   	 	printf("\n1 - NOVO CADASTRO");
        				printf("\n0 - LOGIN");
        				printf("\nDIGITE SUA OPCAO:  ");
        				scanf("%d",&op1);
        				i++;
        				
                   	}while(op1 != 0);	 	
		
                    case 2:
                    	printf("\n\n@@@ LOGIN PROFESSOR @@@@");
						printf("\nDigite sua matricula:");
						scanf("%d", &login);	
        				printf("\nDigite sua senha:");
        				scanf("%d", &login_senha);
        			
        				
        				for(cont_prof=0;cont_prof<=i;cont_prof++){
        					
        					if((login == prof[cont_prof].matricula) && (login_senha == prof[cont_prof].senha)){
        						do{
        							printf("\nMATERIA: %s \n",prof[cont_prof].materia);
        							printf("\n1 - NOTAS");
        							printf("\n2 - ATIVIDADES");
       								printf("\n3 - LISTAR ALUNOS");
       								printf("\n0 - VOLTAR");
       								printf("\nDIGITE SUA OPCAO:  ");
        							scanf("%d", &op1);	 		
        								switch(op1){							        									
       										case 1:
       											printf("\nNotas");
       											printf("\n1 - LISTAR ALUNOS");
       											printf("\n0 - CONTINUAE");
       											scanf("%d",&op1);
       												   if(op1 == 1){
       														for(e=0; e < cont_aluno; e++){
                   													printf("\nO Nome:  %s", aluno[e].nome);
                   											    	printf("\nO Matricula: %d",aluno[e].matricula);
                   	 												printf("\n-----------------------");
                   	 												
                									  		   }
														  }
       											printf("\nDigite o nome:");
                								scanf("%s", &procurar_nome);
                								for(x=0; x < j; x++){
                    								if(strcmp(procurar_nome, aluno[x].nome)==0){
                        								z=1;
                        								printf("\n## Aluno:%s !",aluno[x].nome);
                        								for(n=0;n<1;n++){
                        									for(m=0;m<=3;m++){
                        										printf("\nN%d:",contar++);
                        										scanf("%f",&nota[n][m]);
															}
														}	
                									}
                								}
            									if(z==0){
                    								printf("\n\nALUNO NAO ENCONTRADO !!");
                								}
				
       											break;
       										case 2:
        										printf("Adicionar atividade");
        										break;

        									default:
        										a=0;
										}
								}while(a!=0);
						    }
						}
				    default:
                   		printf("\n####################");
                   		break;	
				   }break;
				   
            case 2:
            	printf("\n\n###### Menu Aluno ######");
        		printf("\n1 - CADASTRO");
        		printf("\n2 - LOGIN");
        		printf("\n0 - VOLTAR");
        		printf("\nDIGITE SUA OPCAO:  ");
        			
        		scanf("%d", &op1);	 		
       				switch(op1){	
					   case 1:
					   	do{
					   		printf("\n\n@@@ CADASTRAR ALUNO @@@@");
                			printf("\nDigite seu nome: ");
                			scanf("%s",&aluno[j].nome); 
                    		printf("\nDigite sua matricula: ");
                    		scanf("%d", &aluno[j].matricula);
                    		printf("\nDigite sua senha: ");
                    		scanf("%d", &aluno[j].senha);
                    		
                   		 	printf("\n### CADASTRADO COM SUCESSO !! ###\n");
                   		 	printf("\n1 - NOVO CADASTRO");
        					printf("\n0 - LOGIN");
        					printf("\nDIGITE SUA OPCAO:  ");
							scanf("%d",&op1);
        					j++;
                       }while(op1 != 0);	
                    		
                       case 2:
                    		printf("\n\n@@@ LOGIN ALUNO @@@@");
							printf("\nDigite sua matricula:");
							scanf("%d",&login);	
        					printf("\nDigite sua senha:");
        					scanf("%d",&login_senha);
        				
        					for(cont_aluno=0;cont_aluno<=j;cont_aluno++){
        						
       							if((login == aluno[cont_aluno].matricula) && (login_senha == aluno[cont_aluno].senha)){
       								do{
        								y = 1;
        								printf("\n\nBem vindo: %s \n",aluno[cont_aluno].nome);
        								printf("\n1 - NOTAS");
        								printf("\n2 - ATIVIDADES");
        								printf("\n0 - VOLTAR");
        								printf("\nDIGITE SUA OPCAO:  ");
        								scanf("%d", &op1);	 		
        									switch(op1){	
        										case 1:
        											printf("\nVerificar notas");
        											for(n=0;n<1;n++){
														for(m=0;m<4;m++){
															printf("\nNota %d: %2.f",contar+1,nota[n][m]);			
														}
													}
													printf("\n[%d][%d]",nota[n][m]);
        											break;
        										case 2:
        											printf("Verificar atividades");
       												break;
       											default:
       												a=0;
											}	
									   }while(a!=0);		
								   }
							}
					   		default:
                   			printf("\n####################");
                   			break;	
					   }break;				
		}
		printf("\n1 - MENU PRINCIPAL");	
		printf("\n0 - SAIR");
        printf("\nDIGITE SUA OPCAO:  ");
		scanf("%d", &a);
		printf("\n\n");	
	}while(a !=0);
		printf("Fim");
}

 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Enrol4do disse:

cada linha da matriz nota como um aluno, quero que cada aluno cadastro seja uma linha da matriz que é composta por 4 parciais. A alteração sera feita pelo prof e o aluno tera somente a opção de verificar suas notas

 

Você está tentando dizer que cada aluno tem 4 notas "parciais"?

 

As notas são dados do aluno, apenas inclua na estrutura de aluno. O que vai dar as opções alterar é seu programa, então não faz diferença

 

Entendeu as coisas que te expliquei no outro tópico sobre esse mesmo programa?

Link para o comentário
Compartilhar em outros sites

6 minutos atrás, arfneto disse:

 

Você está tentando dizer que cada aluno tem 4 notas "parciais"?

 

As notas são dados do aluno, apenas inclua na estrutura de aluno. O que vai dar as opções alterar é seu programa, então não faz diferença

 

Entendeu as coisas que te expliquei no outro tópico sobre esse mesmo programa?

So consegui prosseguir justamente por ter perguntado no tópico... Sim cada aluno tem 4 notas parciais. 

printf("\n\n@@@ CADASTRAR ALUNO @@@@");
                			printf("\nDigite seu nome: ");
                			scanf("%s",&aluno[j].nome); 
                    		printf("\nDigite sua matricula: ");
                    		scanf("%d", &aluno[j].matricula);
                    		printf("\nDigite sua senha: ");
                    		scanf("%d", &aluno[j].senha);
                    		nota[n][m]=nota[n][m]+1;
        					
                   		 	printf("\n### CADASTRADO COM SUCESSO !! ###\n");
                   		 	printf("\n1 - NOVO CADASTRO");
        					printf("\n0 - LOGIN");
        					printf("\nDIGITE SUA OPCAO:  ");
							scanf("%d",&op1);
        					j++;
        					
                       
	case 1:
   		printf("\nVerificar notas");
  			for(n=0;n<1;n++){
				for(m=0;m<4;m++){
					printf("\nNota %d: %2.f",contar+1,nota[n][m]);			
					}
			}
		printf("\n[%d][%d]",nota[n][m]);

Estou tentando fazer dessa forma, mas não esta dando certo

 

Link para o comentário
Compartilhar em outros sites

3 minutos atrás, Enrol4do disse:

So consegui prosseguir justamente por ter perguntado no tópico

 

Não parece ter mudado muito o programa...

 

Do modo como está vai ter muito trabalho, como eu disse. E não respondeu o que vai fazer com esses dados, as atividades e notas, mas com esse tópico já revela algo, ao menos em relação às notas.

	printf("\nVerificar notas");
  			for(n=0;n<1;n++){
				for(m=0;m<4;m++){
					printf("\nNota %d: %2.f",contar+1,nota[n][m]);			
					}
			}
		printf("\n[%d][%d]",nota[n][m]);

Essas construções parecem no geral muito complicadas.

 

E não mudou o lance do case ao que parece. Esse aí do trecho não parece ter uma break e em geral isso acaba dando errado

 

Coloque as notas onde elas deveriam estar: na estrutura de cada aluno...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

CK7JRHkrpS6jVcTfoI-D8_mjUR4k63pIRBINwOW0

Eita Lê lê...

 

Uma função principal (main) não pode ser tão sobrecarregada assim, por quê? Porque nos torna mais 'veneráveis' e quando isso acontece, acontece juntamente com erros de lógica, de sintaxe, e por último o mais importante, de designer.

 

 

0L1TKhXeKwI-fjJmELQM9fi2q3_ZrRK8ba2OqF8U

Defina uma Estrutura Notas, por quê? Porque mais tarde terá interesse em conhecer quem é o professor, qual é a matéria/disciplina e toda essas dinâmicas tem muito sentido, por quê? Porque esses dados estão todos 'vinculados'. 

 

 

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

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