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 jeredy
      Tenho um trabalho da faculdade e não consigo fazer rodar o programa corretamente.
      Quando eu coloco o cpf, na hora de imprimir sai um número aleatório. Creio que possa ser por falta de memória pois se coloco um número menor ele sai certo, porém não consigo adicionar memória em cpf.
       
      Obs: ainda não fiz a parte dos menores e da medial do grupo e a parte de imprimir em tabela pois não consegui fazer funcionar nem um básico mas se alguém souber essa parte também e puder me ajudar agradeço!!
       
      #include <stdio.h> #include <stdlib.h> main(){ struct funcionarios{ int *cpf; char nome[30]; int nascimento; float salario; }; int aux=0; //para testar se for 0 antes de armazenar o cpf struct funcionarios *func; int qtdLeitura=0, i=0, cont=0; func = ((struct funcionarios *) (malloc(sizeof(struct funcionarios) * 1))); while(1){ printf("Digite o cpf %d: ", i+1); scanf("%d", &aux); if(aux!= 0){ func.cpf = aux; fflush(stdin); } else{ break; } if(func != NULL){ qtdLeitura++; func = ((struct funcionarios *) realloc(func, sizeof(struct funcionarios) *(qtdLeitura+1))); } printf("Digite o nome %d: ", i+1); scanf("%s", func.nome); printf("Digite o nascimento %d: ",i+1); scanf("%d", &func.nascimento); printf("Digite o salario %d: ",i+1); scanf("%f", &func.salario); cont++; i++; } printf("\n\n"); for(i=0;i<cont;i++){ printf("Cpf %d:%d \n",i+1, func.cpf); printf("Nome %d: %s\n",i+1, func.nome); printf("Nascimento %d: %d\n",i+1, func.nascimento); printf("Salario %d: %.2f\n",i+1, func.salario); } }
       

    • By Thiago Hartmann
      Olá a todos!
      Sou iniciante em C, estou cursando o 1º semestre em ads na faculdade, estou fazendo um trabalho onde preciso elaborar um software para uma pizzaria, contendo cardápio, preço dos produtos, login e etc...

      estou com um problema em relação ao cardápio, onde não sei como somar os valores dos itens escolhidos pelo "cliente" através do cardápio se puderem me ajudar em relação a como colocar os preços referentes a cada produto para que eles somem automaticamente quando o cliente escolher o que deseja, pois não sei se devo fazer como constantes globais, ou uma função específica para isso.
       
      Obrigado!
       
      #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <conio.h> void entrada (){ printf ("*************************************\n"); printf ("**** Bem Vindo ****\n"); printf ("**** a ****\n"); printf ("**** UNIPIZZA ****\n"); printf ("*************************************\n"); } int menu (){ int op; printf (" \nCardápio \n\n"); printf ("1 - Pizzas. \n"); printf ("2 - Bebidas. \n"); printf ("3 - Finalizar o pedido.\n"); printf ("Digite a opção desejada: \n"); scanf("%d", &op); getch()-48; printf ("\n"); ; return op; } int controladorapizza (int op) { int oppizza, m, c, fc,qq, p; printf ("\n1 - Pizza Mussarela - 18,00 R$ \n"); printf ("2 - Pizza Calabresa - 18,00 R$ \n"); printf ("3 - Pizza Franco com Catupiry - 18,00 R$ \n"); printf ("4 - Pizza Quatro Queijos - 22,00 R$ \n"); printf ("5 - Pizza Portuguesa - 22,00 R$ \n"); printf ("Digite a opção desejada: \n"); scanf ("%d", &oppizza); switch (oppizza){ case 1: printf ("\nVocê adicionou pizza de Mussarela a sua bandeja!\n"); m = 18; break; case 2: printf ("\nVocê adicionou pizza de Calabresa a sua bandeja!\n"); c = 18; break; case 3: printf ("\nVocê adicionou pizza de Quatro Queijos a sua bandeja!\n"); qq = 22; break; case 4: printf ("\nVocê adicionou pizza de Portuguesa a sua bandeja!\n"); p = 22; break; default: printf ("\nValor incorreto, tente novamente\n"); break;} return oppizza; } int controladorabebida (int op) { int opbebida, s, sv, rl, rlv, r, rv; char str [10]; printf ("\n1 - Suco - 5,00 R$ \n"); printf ("2 - Refrigerante Lata - 4,00 R$\n"); printf ("3 - Refrigerante 2L - 13,00 R$\n"); printf ("Digite a opção desejada: \n"); scanf ("%d", &opbebida); switch (opbebida){ case 1: printf ("\nInforme o sabor do suco: \n"); scanf ("%s", &str); printf ("\nVocê adicionou suco de %s a sua bandeja!\n", str); sv = 5; break; case 2: printf ("\nInforme o refrigerante lata: "); scanf ("%s", &str); printf ("\nVocê adicionou %s lata a sua bandeja!\n", str); rlv = 4; break; case 3: printf ("\nInforme o refrigerante 2 Litros: "); scanf ("%s", &str); printf ("\nVocê adicionou %s 2 Litros a sua bandeja!\n", str); rv = 13; break; default: printf ("\nComando incorreto, tente novamente\n"); break;} return opbebida; } int main(){ setlocale(LC_ALL,""); int op,oppizza,opbebida, total; const int entrega = 5; entrada(); do{ op = menu(op); switch(op){ case 1: oppizza = controladorapizza(oppizza); break; case 2: opbebida = controladorabebida(opbebida); break; total = entrega+opbebida+oppizza; printf ("O total de seu pedido é: %d", total); } }while(op != 3 ); total = entrega+opbebida+oppizza; printf ("O total de seu pedido é: %d", total); printf("\n\n\n"); return 0; }  
    • 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
×

Important Information

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