Ir para conteúdo
Fórum Script Brasil
  • 0

Somar registros cadastrados


Justiceira

Pergunta

Galera estou com um problema para somar os registros cadastrados,só os registros.Pensei em mostrar o MAX-1,mas e se a pessoa não preenchesse ?Daria errado então.Me ajudem!!!


#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#define MAX 5

struct registro {
int codlivro;
char nomelivro[30];
float preço;
int quant;
};
struct registro tabela[MAX];

void preenche_tabela()
{
int i;
char strnum[30];

fflush(stdin);
for(i=0;i<MAX;i++)
{
printf("\n\nCodigo do Livro : ");
gets(strnum);
tabela[i].codlivro = atoi(strnum);

printf("\nNome do Livro : ");
gets(tabela[i].nomelivro);

printf("\nPreco : ");
gets(strnum);
tabela[i].preço = atof(strnum);

printf("\nQuantidade : ");
gets(strnum);
tabela[i].quant = atoi(strnum);
}
}

void contar_reg()
{
int i,vt=0;

for(i=0;i<MAX;i++)
if((tabela[i].nomelivro,"")==0)
vt;
else
vt++;
printf("\nO Total de Registros Cadastrados na Tabela: %d\n",vt);
}


main (){
int vt,esc;
{
printf("\n MENU \n\n\n");
printf("0.ara Sair.\n");
printf("1.Prencher a Tabela\n");
printf("2.Contar o Total de Registros Cadastrados na Tabela.\n");
printf("\nDigite sua Opcao:\n");
scanf("%d",&esc);
while(esc!=0)
{
switch(esc)
{
case 0:
printf("\n FIM!!! \n");
break;
case 1: {
preenche_tabela();
break;
}
case 2: {
contar_reg();
break;
}
}
system ("pause");
}
}
}
[/codebox]

Editado por Jonathan Queiroz
Modificar título para descrever melhor o tópico (Jonathan)
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Existe alguma forma de obrigar o preenchimento dos campos codlivro, nomelivro, preço, quant ??para que nenhum registro seja preenchido incompleto?Ou que ao menos seja ignorado se for o caso??

Como faria isso?? :blush:

Colocando um if(CONDIÇÃO??) na função preencher_tabela,apos cada leitura...

Link para o comentário
Compartilhar em outros sites

  • 0

Eu não entendi a pergunta...

No teu codigo o usuario tá sempre preenchendo todos os registros (MAX).

Caso você preenchesse apenas um por vez, você poderia criar uma variável global pra manter a contadem dos registros que fossem cadastrados com sucesso.

Ex:

//...
struct registro tabela[MAX];
int regCont = 0;

//...
void preenche_registro() {
    //...
    regCont++;
}

Não é muito elegante, mas funciona.

A segunda pergunta, pra conferir se o usuário cadastrou tudo certo, o jeito é criar um monte de if, ou do..while até o safado digitar tudo certo.

Você pode por exemplo usar variaveis temporárias pra pegar os valores do registro, daí no final confere tudo e aí manda pra variável real.

Pra não ficar repetindo isso várias vezes, melhor criar uma função que faz isso e retorna 0 tá tudo certo ou 1 se deu problema.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...