Jump to content
  • 0
Sign in to follow this  
Marcelo Lopes Vidal

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

Question

 

#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

 

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By gabriel1303
      É possível verificar a ocorrência de um caractere em negrito em uma planilha do Excel utilizando c/c++?
    • By novo na programação
      O sistema consiste em ler os dados cadastrados (valores estáticos) de uma entrevista e
      fornecer as informações para as seguintes perguntas:
       
      1 - Quantidade de mulher e homens na área? (% de cada sexo)
      2 - Faixa etária? (Menor e maior idade por sexo). Criar um vetor idade para cada sexo.
      3 - Quem ganha mais? Homem ou Mulher? (Comparar médias de salários)
      4 - Quem é mais especializado? (Comparar quantidade com pós-graduação %)
       
      Ex1. Perguntas?
      Sexo (1- H, 2-M)
      Idade (?)
      Salário (?)
      Possui pós-graduação? (1-S, 2-N)

      Entrada (estática)

      Entrevistado 1
      Sexo = 1
      Idade = 19
      Salário = 4.000,00
      Possui pós-graduação = 2

      Entrevistado 2
      Sexo = 2
      Idade = 25
      Salário = 3.000,00
      Possui pós-graduação = 1

      Entrevistado 3
      Sexo = 1
      Idade = 18
      Salário = 5.000,00
      Possui pós-graduação = 2

      Entrevistado 4
      Sexo = 1
      Idade = 23
      Salário = 6.000,00
      Possui pós-graduação = 1 

      Entrevistado 5
      Sexo = 2
      Idade = 30
      Salário = 2.000,00
      Possui pós-graduação = 1

      SAÍDA
      1 - Quantidade de mulher e homens na área?
      60% homens e 40% mulheres
      2 - Faixa etária?
      homens (18-23) e mulheres (25-30)
      3 - Quem ganha mais? Homem ou Mulher?
      Homens (média 5.000,00) e Mulheres (média 2.500,00)
      4 - Quem é mais especializado?
      homens - 33% e mulheres - 100%
      Cálculo = qtdhomens com pós/qtdhomens *100
    • By ArchTGS
      #include <iostream>
      #include <locale>
      using namespace std;
      int main(){
          setlocale(LC_ALL,"ptb");
          int idade;
          char *categoria;
          cout<<"informe a idade do participante: ";
          cin>>idade;
          while(idade!=-1){
              if(idade>=7 && idade<=12){
                  categoria="INFANTIL";
              }
              else if(idade>12 && idade<=17){
                  categoria="JUVENIL";
              }
              else if(idade>17 && idade<=49){
                  categoria="ADULTO";
              }
              else if(idade>=50){
                  categoria="SÊNIOR";
              }
              else{
                  cout<<"Infelizmente o candidato ainda não pode participar!";
              }
              cout<<"O participante está na categoria "<<categoria << " \n ";
              cout<<"Informe a idade do participante: ";
              cin>>idade;
          }
      }
      então pessoal esse é meu codigo, está funcionando bonitinho, porém quando eu faço o teste da ultima opção do encadeamento else, que está em vermelho, aparece o resto do codigo também, o que está em verde, tem alguma maneira de fazer essas ultimas mensagens não aparecerem? não quero ter que colocar saídas(cout) em todos os if's e elses.
      Obs: to aprendendo peguem leve.
    • By samueloliveir
      Questão 1
      Crie um algoritmo que leia um número entre 2 e 20 e gere uma tela com a seguinte configuração:
       
      Digite um número:
      4
      Saída do algoritmo:
      1
      12
      123
      1234
      123
      12
      1
       
      Questão 2
      Escreva um algoritmo que calcule a média da seguinte sequência numérica a seguir: 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + ... + 1/50. Feito isto, o algoritmo deverá apresentar uma lista contendo todos os números da sequencia que estão acima da média calculada.
       
      Questão 3
       
      Um posto está vendendo combustíveis com a seguinte tabela de descontos: Álcool: até 20 litros, desconto de 3% por litro e acima de 20 litros, desconto de 5% por litro; Gasolina: até 20 litros, desconto de 4% por litro e acima de 20 litros, desconto de 6% por litro. Escreva um algoritmo que leia o número de litros vendidos, o tipo de combustível (A-álcool, G-gasolina) e imprima o valor a ser pago pelo cliente. Considere que o preço do litro da gasolina é R$ 2,99 e o preço do litro do álcool é R$ 2,19. Usar procedimento.
       
      Questão 4
      Um número é, por definição, primo se ele não tem divisores, exceto 1 e ele próprio. Prepare um programa para ler um número inteiro positivo e determinar se ele é ou não um número primo. Usar função.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.