Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
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


  • Conteúdo Similar

    • Por biza
      Ola
      Estou  a construir um datalogger em código C.Desta forma necessito passar os dados entre ficheiros. O meu problema está na inclusão de algumas variáveis no topo de um arquivo .txt onde os dados são salvos. Variáveis como tempo de data e hora, id do dispositivo e muito mais... Para isso preciso de ajuda, gostaria que os dados estivessem disponíveis para todos os arquivos, até aí é fácil, basta incluir a variável como extern, no arquivos *.h e incluí-lo em todos os outros que você deseja que a variável esteja disponível. mas como posso fazer para ter acesso a ele dentro do array que preciso?
      Exemplo: main.c
      #include "main.h" char dateTimeFormat[24]; void main(void){ dateTimeFormat = "22-02-22 13:23:04"; } main.h
      extern char dateTimeFormat[24];  
      teste.c
       
      #include "main.h" extern char dateTimeFormat[24]; /*Header .txt file initialization*/ volatile char headerFile[] ="\n\n" "# HEALT MONITORING SYSTEM \r\n" "# DEVELOPED: BIZA \r\n" "# VERSION: B \r\n" "# DATATIMECAPTURE:"+dateTimeFormat+ "\r\n" "# SAMPLINGFREQUENCY: 500 \r\n" "# SAMPLECHANNELS: 1 2 3 4 5 6 7 8 \r\n" "# SAMPLINGRESULUTION: 24 \r\n" "# IDDEVICE: HEALTHY \r\n" "# ENDOFHEADER  
      Como posso incluir a variável "dateTimeFormat" dentro do headerFile como descrevi acima?
       
    • Por Leandro T.
      pessoal bom dia alguém poderia me ajudar com o FormValidation?
       
      "nomefuncionario": {
                  validators: {
                      
                  
                    notEmpty: {
                      message: "Nome completo do funcionário é obrigatório."
                    } , <=== este funciona normalmente
                      
                      callback: {  // agora o callback nao consigo fazer funcionar
                              message: 'este nome não é valido',
                              callback: function (input) {
                                  if (input.value = 'algum valor digitado') {
                                      return true
                                  } }},
                      
                      
                      
                  }
    • Por nathanmoreira
      Após diversos cálculos provindos de um código, recebo um número inteiro ao qual não sei o tamanho ao certo (pode variar de 1 pra frente). Quero passar esse número para string e formatar ele de maneira a colocar um ,00 no final e, a cada 3 números antes da virgula, um ponto. Ou seja, deixar o número num formato como: 45.114.477,00
       
      Como fazer? 
    • Por oromotoceu
      #include <stdio.h>
      #include <stdlib.h>
      #define MAXTAM 1000
      int Frente, Tras, Lista[MAXTAM];
      void Lista_Construtor(){
      Frente=0;
      Tras=-1;
      }
      int Lista_Vazia(){
      if(Tras==-1)
      return 1;
      else
      return 0;
      }
      int Lista_Cheia(){
      if(Tras==MAXTAM-1)
      return 1;
      else
      return 0;
      }
      int Lista_Tamanho(){
      return Tras+1;
      }
      int Lista_Inserir_Inicio(int Valor){
      if(Lista_Cheia()){
      return 0;
      }else{
      /*se quero inserir na posição 0,
      vou deslocar todos os elementos para frente*/
      for(int i=Tras+1;i>Frente;i--){
      Lista=Lista[i-1];
      }
      Lista[Frente]=Valor;
      Tras++;
      return 1;
        }
      }
      int Lista_Inserir_Fim(int Valor){
      if(Lista_Cheia()){
      return 0;
      }else{
      Tras++;
      Lista[Tras]=Valor;
      return 1;
        }
      }
      int Lista_Inserir(int Valor, int Posicao){
      if(Lista_Cheia()){
      return 0;
      }else{
      /* Para verificar se a posição
      está no meio da lista */
      if(Posicao>Frente && Posicao<Tras){
      for(int i=Tras+1;i>Posicao;i--){
      Lista=Lista[i-1];
      }
      Lista[Posicao]=Valor;
      Tras++;
      return 1;
      }else{ 
      return 0;
         }
        }
      }
      int Lista_Remover_Inicio(int *Valor){
      if(Lista_Vazia()){
      return 0;
      }else{
      *Valor =Lista[Frente];
      for(int i=Frente;i<Tras;i++){
      Lista=Lista[i+1];
         }
      Tras--;
        }
      }
      int Lista_Remover_Fim(int *Valor){
      if(Lista_Vazia()){
      return 0;
      }else{
      *Valor=Lista[Tras];
      Tras--;
      return 1;
        }
      }
      int Lista_Remover(int *Valor, int Posicao){
      if(Lista_Vazia()){
      return 0;
      }else{
      if(Posicao>Frente && Posicao<Tras){
      *Valor=Lista[Posicao];
      for(int i=Posicao;i<Tras;i++){
      Lista=Lista[i+1];
      }
      Tras--;
      return 1;
         }
        }
      }
      int Lista_Get_toda(int *Valor){
      if(Lista_Vazia()){
      return 0;
      }else{
      *Valor=Lista[Frente];
      return 1;
        }
      }
      int Lista_Get_inicio(int *Valor){
      if(Lista_Vazia()){
      return 0;
      }else{
      *Valor=Lista[Frente];
      return 1;
        }
      }
      int Lista_Get_Fim(int *Valor){
      if(Lista_Vazia()){
      return 0;
      }else{
      *Valor=Lista[Tras];
      return 1;
        }
      }
      int Lista_Busca_Valor(int Valor, int *Posicao){
      int i;
      if(Lista_Vazia()){
      return 0;
      }else{
      for(i=Frente;i<Tras;i++){
      if(Lista==Valor){
      break;
        }
      }
      if(i==Tras){
      return 0;
      }else{
      *Posicao=i; 
      return 1;
         }
        }
      }
      int Lista_Busca_Posicao(int *Valor, int Posicao){
      if(Lista_Vazia()){
      return 0;
      }else{
      if(Posicao>Frente && Posicao<Tras){
      *Valor=Lista[Posicao];
      return 1;
      }else{
      return 0;
         }
        }
      }
      int main(){
      int i,Valor,op=0,pos;
      Lista_Construtor();
      while(op!=12){
      printf("*** Menu de opções ***\n");
      printf("1-Inserir início\n");
      printf("2-Inserir fim\n");
      printf("3-Inserir meio\n");
      printf("4-Excluir início\n");
      printf("5-Excluir fim\n");
      printf("6-Excluir meio\n");
      printf("7-Mostrar toda lista\n");
      printf("8-Mostrar primeiro item da lista\n");
      printf("9-Mostrar último item da lista\n");
      printf("10-Mostrar a posição de um item da lista\n");
      printf("11-Mostrar o valor de uma posição\n");
      printf("12-Sair\n");
      printf("Escolha uma opção: ");
      scanf("%d", &op);
      switch(op){
          case 1:
              printf("Digite o valor a ser inserido: ");
              scanf("%d", &Valor);
              Lista_Inserir_Inicio(Valor);
              break;
          case 2:
              printf("Digite o valor a ser inserido: ");
              scanf("%d", &Valor);
              Lista_Inserir_fim(Valor);
              break;
            case 3:
              printf("Digite o valor a ser inserido: ");
              scanf("%d", &Valor);
              printf("Digite a posição que deseja inserir: ");
              scanf("%d", &pos);
              Lista_ Inserir_meio(int Valor, pos); 
              break;
            case 4:
              printf("Digite a remoção do início: ");
              scanf("%d", &*Valor);
              Lista_ Excluir_inicio(*Valor); 
              break;
              case 5:
              printf("Digite a remoção do fim: ");
              scanf("%d", &*Valor);
              Lista_ Excluir_fim(*Valor); 
              break;
              case 6:
              printf("Digite a remoção do meio: ");
              scanf("%d", &Valor);
              printf("Digite a posição que deseja remover: ");
              scanf("%d", &*Posicao);
              Lista_ Excluir_meio(intValor, * pos); 
              break;
               case 7:
              printf("Digite ao a mostrar toda lista: ");
              scanf("%d", &Valor);
              Lista_ mostrar_toda_lista(Valor);
              break;
             case 8:
              printf("Digite ao a mostrar primeiro item da lista: ");
              scanf("%d", &*Valor);
              Lista_ mostrar_primeiro_item_da_lista(*Valor);
              break;
             case 9:
              printf("Digite ao a mostrar último item da lista: ");
              scanf("%d", &*Valor);
              Lista_ mostrar_ultimo_item_da_lista(*Valor);
              break;
              case 10:
              printf("Digite ao a mostrar a posição de um item da lista: ");
              scanf("%d", &Valor);
              printf("Digite a posição que deseja mostrar na lista: ");
              scanf("%d", &* pos);
              Lista_ mostrar_posicao_de_um_item_da_lista(intValor, *pos);
              break;
              case 11:
              printf("Digite ao a mostrar o valor de uma posição: ");
              scanf("%d", &*Valor
              printf("Digite a posição que deseja mostrar no valor: ");
              scanf("%d", &pos);
              Lista_ mostrar_posicao_de_um_valor_da_lista(int*Valor, pos);
              break;
              case 12:
              default:
              printf("Valor Invalido!\n");
              system("PAUSE");
               }
         }
       return 0;
      }
    • Por oromotoceu
      bom dia pode me ajudar nessa questão por favor
      O programa deverá trabalhar dados de um veículo, onde será armazenado, Nome do proprietário, placa do carro, modelo do carro e preço do carro.
      O programa deve ter as seguintes opções:
      Inserir dados (todos os dados sugeridos no enunciado acima).
      Excluir um Carro específico com a busca pela placa.
      Editar dados de um Carro com a busca pela placa.
      Consultar carro por Placa.
      Exibir todos os dados cadastrados.
      Finalizar programa.
      A opção exibir todos os dados, apresenta tudo que já foi cadastrado e está na memória.
       
×

Informação importante

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