Ir para conteúdo
  • 0
Entre para seguir isso  
Marcelo Lopes Vidal

Fiz Um Vetor de Struct Mas Queria Saber Como Usuario Poderia Adicionar Mais Cadastros No menu

Pergunta

 

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

struct aluno
{
	char nome[20];
	char endereco[50];
	char data_de_nascimento[10];
	char telefone[15];
	float nota1;
	float nota2;
};

struct aluno recadastramento(struct aluno valuno[10]);
void media_das_notas(struct aluno valuno[10]);
void aprovado_ou_reprovado(struct aluno valuno[10]);
void mostrar_informacoes(struct aluno valuno[10]);

int main(void)
{
	struct aluno valuno[10];
	int op;
	float media;
	int i;
	int j;
	
	printf("Digite as informacoes dos alunos");
	
	for(i=1;i<11;i++)
	{
	printf("Digite O Nome Do Aluno[%d]\n\n",i);
	printf("Nome: ");
	fflush(stdin);
	gets(valuno[i].nome);
	
	printf("\nDigite O Endereco Do Aluno[%d]\n\n",i);
	printf("Endereco: ");
	fflush(stdin);
	gets(valuno[i].endereco);
	
	printf("\nDigite A Data De Nascimento Do Aluno [%d] No Formato <00/00/0000>\n\n",i);
	printf("Data De Nascimento: ");
	fflush(stdin);
	gets(valuno[i].data_de_nascimento);
	
	for(j=0;j <15; j++)
	{		
		if(valuno[i].data_de_nascimento[2] != '/' && valuno[i].data_de_nascimento[5] != '/')
		{
			printf("ERRO! Digite novamente");
			printf("\nDigite A Data De Nascimento Do Aluno [%d] No Formato <00/00/0000>\n\n",i);	
			gets(valuno[i].data_de_nascimento);
			break;
		}
		else 
		{
			printf("FORMATO CORRETO");
			break;
		}
	}
	
	printf("\nDigite O Telefone Do Aluno [%d] No Formato <(DDD)00000-0000>\n\n",i);
	printf("Telefone Do Aluno: ");
	fflush(stdin);
	gets(valuno[i].telefone);
	
		for(j=0;j <15; j++)
	{		
		if(valuno[i].telefone[0] != '(' && valuno[i].telefone[4] != ')' && valuno[i].telefone[10] != '-')
		{
			printf("ERRO! Digite novamente");
			printf("Digite O Telefone Do Aluno [%d]: ",i);	
			gets(valuno[i].telefone);
			break;
		}
		else 
		{
			printf("FORMATO CORRETO");
			break;
		}
	}
	
	printf("\nDigite A Primeira Nota Do Aluno [%d]\n\n",i);
	printf("Nota 1: ");
	scanf("%f",&valuno[i].nota1);
	
	printf("\nDigite A Segunda Nota Do Aluno [%d]\n\n",i);
	printf("Nota 2: ");
	scanf("%f",&valuno[i].nota2);
	}

	do
	{
		printf("\nMENU\n");
		printf("-	1)Editar informações dos alunos \n	2)Mostrar as medias dos alunos \n	3)Dizer se os alunos foram aprovados medias >= 6 ou reprovados (medias <6)\n	4)Listar todas as informações dos alunos");
		printf("\n\nOpcao::: ");
		scanf("%d",&op);
		
		switch(op)
		{
			case 1:
			recadastramento(valuno);
				break;
			case 2:
			media_das_notas(valuno);
				break;
			case 3:
			aprovado_ou_reprovado(valuno);
				break;
			case 4:
				mostrar_informacoes(valuno);
				break;
			default: 
				printf("\nOpcao INVALIDA\n");
				break;
		}
	}while(op > 0 && op < 5);
} 
struct aluno recadastramento(struct aluno valuno[10]) //recadastramento de informações//Funções 
{
	int i;
	for(i=1;i<11;i++)
	{
		printf("\nDigite O Nome Do Aluno [%d]\n\n",i);
		printf("Nome: ");
		fflush(stdin);
		gets(valuno[i].nome);
	
		printf("\nDigite O Endereco Do Aluno [%d]\n\n",i);
		printf("Endereco: ");
		fflush(stdin);
		gets(valuno[i].endereco);
	
		printf("\nDigite A Data De Nascimento Do Aluno [%d] No Formato <00/00/0000>\n\n",i);
		printf("Data De Nascimento: ");
		fflush(stdin);
		gets(valuno[i].data_de_nascimento);
	int j;
	for(j=0;j < 11; j++)
		{		
			if(valuno[i].data_de_nascimento[2] != '/' && valuno[i].data_de_nascimento[5] != '/')//validção de data no formato correto
			{
				printf("ERRO! Digite novamente");
				printf("\nDigite A Data De Nascimento Do Aluno [%d]No Formato <00/00/0000>\n\n",i);	
				gets(valuno[i].data_de_nascimento);
				break;
			}
			else 
			{
				printf("FORMATO CORRETO");
				break;
			}
		}
	
		printf("\nDigite O Telefone Do Aluno [%d] No Formato <(DDD)00000-0000>\n\n",i);
		printf("Telefone Do Aluno: ");
		fflush(stdin);
		gets(valuno[i].telefone);
	
	for(j=0;j <15; j++)//validção de numero no formato correto
		{		
			if(valuno[i].telefone[0] != '(' && valuno[i].telefone[4] != ')' && valuno[i].telefone[10] != '-')
			{
				printf("ERRO! Digite novamente");
				printf("Digite O Telefone Do Aluno [i]: ",i);	
				gets(valuno[i].telefone);
				break;
			}
			else 
			{
				printf("FORMATO CORRETO");
				break;
			}
		}
	
		printf("\nDigite A Primeira Nota Do Aluno [%d]\n\n",i);
		printf("Nota 1: ");
		scanf("%f",&valuno[i].nota1);
	
		printf("\nDigite A Segunda Nota Do Aluno [%d]\n\n",i);
		printf("Nota 2: ");
		scanf("%f",&valuno[i].nota2);
	}
}
void media_das_notas(struct aluno valuno[10])//media de notas
{
	int i;
	for(i=1;i<11;i++)
	{
		float media;
		media = (valuno[i].nota1 + valuno[i].nota2) / 2;
		printf("Media: %.2f\n",media);
	}
}
void aprovado_ou_reprovado(struct aluno valuno[10])//se foi aprovado ou reprovado
{
	int i;
	for(i=1;i<11;i++)
	{
		float media;
		media = (valuno[i].nota1 + valuno[i].nota2) / 2;
	
		if(media >= 6)
		{
			printf("\nAluno [%d] APROVADO\n",i);
		}
		else
		{
			printf("\nAluno [%d] REPROVADO\n",i);
		}
		
			printf("\nMedia do Aluno[%d]: %.2f\n",i,media); 
			
	}
}
void mostrar_informacoes(struct aluno valuno[10])//mostrando informções de cadastro
{
	int i;
	for(i=1;i<11;i++)
	{
		printf("-Listagem Do Aluno[%d]",i);
		printf("\n\nNome do Aluno[%d]: %s",i,valuno[i].nome);
		printf("\nEndereco do Aluno[%d]: %s",i,valuno[i].endereco);
		printf("\nData De Nascimento do Aluno[%d]: %s",i,valuno[i].data_de_nascimento);
		printf("\nTelefone do Aluno[%d]: %s",i,valuno[i].telefone);
		printf("\nNota 1 do Aluno[%d]: %.2f ",i,valuno[i].nota1);
		printf("\nNota 2 do Aluno[%d]: %.2f ",i,valuno[i].nota2);
	}
}
//Fim Do Codigo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta

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
Entre para seguir isso  

  • Conteúdo Similar

    • Por Dan Borges
      Olá,
       
      Tenho conhecimentos em C#, e ultimamente venho programando utilizando o MonoGame para desenvolver jogos. Estava procurando como é feito uma pista pseudo 3D, e achei esse artigo em JS: https://codeincomplete.com/posts/javascript-racer-v1-straight/
       
      Por ter a lógica de programação da mente, mesmo sem saber js, entendi parte do código, mas esse trecho, não:
      segments = []; for(var n = 0 ; n < 500 ; n++) { // arbitrary road length segments.push({ index: n, p1: { world: { z: n *segmentLength }, camera: {}, screen: {} }, p2: { world: { z: (n+1)*segmentLength }, camera: {}, screen: {} }, color: Math.floor(n/rumbleLength)%2 ? COLORS.DARK : COLORS.LIGHT }); } A primeira vista entendi que ele está adicionando valores ao array segments com o método push. Mas, os valores colocados, não fazem sentido para mim.
      É como se fosse criada uma classe dinamicamente (que contenha as variáveis:, index, p1, p2...) sem precisar declará-la.
      Seria basicamente isso? Ele criou um objeto que representa uma classe, mas sem nomeá-la, ou algo semelhante?
    • Por EREGON
      Bom dia,
       
      estou a tentar fazer um exercício para, dado um ficheiro .txt na directoria do programa, terei de encontrar todas as palavras que são palíndromos. Tendo este código para ler as palavras do ficheiro .txt (letra a letra) para uma matrix.
       
      Estando as palavras armazenadas numa matrix, como faço essa validação?
       
      Obg,
       
      #include <stdio.h> #include <stdlib.h> int main(int argc, char const *argv[]) { FILE* inp; inp = fopen("palindromo.txt","r"); char arr[100][50]; int i = 0; while(1){ char r = (char)fgetc(inp); int k = 0; while(r!=',' && !feof(inp)){ //Le ate fim de ficheiro arr[i][k++] = r; //armazena no array r = (char)fgetc(inp); } arr[i][k]=0; //ultimo carater nulo //Alguma parte aqui, valida se a palavra e PALINDROMO. //COMO?? if(feof(inp)){ //valida EOF break; } i++; } int j; for(j = 0;j<=i;j++){ printf("%s\n",arr[j] ); //Imprime array } return 0; }  
    • Por Bruno Goedert Dalmolin
      Não consigo apresentar as palavras equivalentes conseguem me ajudar???
      O código é o seguinte: 
       
      #include <stdio.h>
      char equivale(int ddd){
          switch(ddd){
              case 61:
                  return "Brasilia";
                  break;
              case 71:
                  return "Salvador";
                  break;
              case 11:
                  return "Sao Palo";
                  break;
              case 21:
                  return "Rio de Janeiro";
                  break;
              case 32:
                  return "Juiz de Fora";
                  break;
              case 19:
                  return "Campinas";
                  break;
              case 27:
                  return "Vitoria";
                  break;
              case 31:
                  return "Belo Horizonte";
                  break;
          }
      }
      int main(){
          int ddd;
          scanf("%d",&ddd);
          equivale(ddd);
          printf("%d",equivale(ddd));
      }
×

Informação importante

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