Ir para conteúdo

Arquivado

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

Ianaconi

Cadastro de Jogos

Recommended Posts

Estou desenvolvendo um sisteminha para cadastro de jogos.

 

Gostaria de algumas dicas para melhorar o programa. O que vocês acham? Ta ficando bom?

 

Mto obrigado!

 

 

cab.h

void carrega(void);void clrscr(void);void incluir(void);void listar(void);void pesquisar(void);void libera(void);void salvar(void);void editar(void);void apagar(void);void exportar(void);

 

funcoes.cpp

/* Funções e estruturas */#include <stdio.h>#include <conio.h>#include <string.h>#include <stdlib.h>#include <windows.h> #include <string.h>#include "cab.h"#define html "games.html"#define config "config.dat"#define usua "games.dat"char c[3];void clrscr(void){	//Limpar a tela	COORD coordScreen = {0, 0};	DWORD cCharsWritten;	CONSOLE_SCREEN_BUFFER_INFO csbi;	DWORD dwConSize;	HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);	GetConsoleScreenBufferInfo(hConsole, &csbi);	dwConSize = csbi.dwSize.X * csbi.dwSize.Y; 	FillConsoleOutputCharacter(hConsole, TEXT(' '),dwConSize, coordScreen, &cCharsWritten);	GetConsoleScreenBufferInfo(hConsole, &csbi); 	FillConsoleOutputAttribute(hConsole, csbi.wAttributes,dwConSize, coordScreen, &cCharsWritten);	 SetConsoleCursorPosition(hConsole, coordScreen); }struct lojagames{	   char nome[30],nomefab[30],idioma[15],classificacao[15],anolancamento[10],preco[10];	   int codi;};	   int num=0,iguais=0;char dia[2],mes[2];FILE *arquivo;struct lojagames *games;void incluir(void){	 //Alocação dinâmica da memória	 if (num == 0) games = (struct lojagames*)(malloc(sizeof(struct lojagames))); else	 games = (struct lojagames*)(realloc(games,((num+1)*sizeof(struct lojagames))));	 //Entrada de dados	 printf("\nEntrada de dados:\n\n");	 printf("Nome do Jogo: ");	 fflush(stdin);	 gets(games[num].nome);	 fflush(stdin);	 printf("Nome do Fabricante: ");	 gets(games[num].nomefab);	 fflush(stdin);	 printf("Idioma do Jogo: ");	 gets(games[num].idioma);	 fflush(stdin);	 printf("Classificacao: ");	 gets(games[num].classificacao);	 printf("Data de Lancamento: ");	 gets(games[num].anolancamento);	 printf("Preco: ");	 gets(games[num].preco);	 games[num].codi = (num+1);	 num++;	 printf("\nCadastro conclu¡do com sucesso!");	 getch();}void listar(void){	//Lista as estruturas válidas	int x;	printf("\n\nCadastros: ");	if(num != 0)	{	for(x = 0; x < num;x++)	{		 fflush(stdout);		 printf("\n\n* Jogo n£mero %d",games[x].codi);		 printf("\n> Nome do Jogo: %s",games[x].nome);		 printf("\n> Nome do Fabricante: %s",games[x].nomefab);		 printf("\n> Idioma do Jogo: %s",games[x].idioma);		 printf("\n> Classificacao: %s",games[x].classificacao);		 printf("\n> Data de Lancamento: %s",games[x].anolancamento);		 printf("\n> Preco: %s",games[x].preco);	}	printf("\n\nListagem completa!");	getch();	}	else	{	printf("\n\nNÆo existe cadastro algum!");	getch();	}}void comp(char teste1,char teste2){	if(teste1 == teste2) iguais++;}void pesquisar(void){	int x,y=0,z;	char comparar[30];	printf("\nDigite o nome do Jogo: ");	fflush(stdin);	gets(comparar);	printf("\n\nJogos encontrados: ");	if(num != 0)	{	for(x = 0; x < num;x++)	{		 for(z=0;z<6;z++) comp(games[x].nome[z],comparar[z]);		 if(iguais >= 3)		 {			   printf("\n\n* Jogo n£mero %i",games[x].codi);			   printf("\n> Nome do Jogo: %s",games[x].nome);			   printf("\n> Nome do Fabricante: %s",games[x].nomefab);		 	   printf("\n> Idioma do Jogo: %s",games[x].idioma);			   printf("\n> Classificacao: %s",games[x].classificacao);			   printf("\n> Data de Lancamento: %s",games[x].anolancamento);			   printf("\n> Preco: %s",games[x].preco);			   y++;			   iguais = 0;		 }	}	if(y > 0)	{	printf("\n\nListagem concluida com sucesso!");	getch();	}	else	{		printf("\n\nJogo nÆo encontrado!");	getch();	}	}	else	{		printf("\n\nNÆo existe cadastro algum!");	getch();	}}   void libera(void){	 //Libera a memória ocupada pela matriz jogos	 free(games);}void salvar(void){	 //Salva os jogos em um arquivo	 arquivo = fopen(usua,"wb");	 fwrite(games, sizeof(struct lojagames), num, arquivo);	 fclose(arquivo);	 arquivo = fopen(config,"w");	 fwrite(&c, strlen(c), 1, arquivo);	 	 fclose(arquivo);	 printf("Salvo com sucesso!");	 getch();}   void carrega(void){   //Carrega os jogos já existentes   int tam=0,ch,x;   if(arquivo = fopen(usua, "rb"))   {	  while((ch = fgetc(arquivo)) != EOF)	  {		 tam++;	  }	  	  num = tam/sizeof(struct lojagames);	  rewind(arquivo);	  games = (struct lojagames*)(malloc(num*sizeof(struct lojagames)));	  fread(games,sizeof(struct lojagames),num,arquivo);	  fclose(arquivo);   }   if(arquivo = fopen(config, "r"))   {	 fread(&c[0],1,1,arquivo);	 fread(&c[1],1,1,arquivo);	 fclose(arquivo);	  	 fclose(arquivo);   }	 }void editar(void){	 //Edita um jogo	 int codigo;	 printf("Digite o c¢digo do jogo: ");	 scanf("%d",&codigo);	 if (codigo <= num)	 {		   codigo--;		   printf("\nEntrada de dados do jogo:\n\n");		   printf("Nome do Jogo: ");			 fflush(stdin);		   gets(games[codigo].nome);		   fflush(stdin);		   printf("Nome do Fabricante: ");		   gets(games[codigo].nomefab);		   fflush(stdin);		   printf("Idioma do Jogo: ");		   gets(games[codigo].idioma);		   fflush(stdin);		   printf("Classificacao: ");		   gets(games[codigo].classificacao);		   printf("Data de Lancamento: ");		   gets(games[codigo].anolancamento);		   printf("Preco: ");		   gets(games[codigo].preco);		   printf("\nJogo editado!");	 }	 else	 printf("Jogo nÆo existe!");	 getch();}void apagar(void){	 //Apaga um jogo	 int codigo,x;	 printf("\nDigite o c¢digo do jogo que deseja apagar: ");	 scanf("%i",&codigo);	 codigo--;	 for(x=codigo;x<(num-1);x++)	 {		games[x] = games[x+1];		games[x].codi = games[x].codi-1;	 }   	 num--;	 games = (struct lojagames*)(realloc(games,((num)*sizeof(struct lojagames))));	 printf("\nJogo apagado com sucesso!");	 getch();			}void exportar(void){	 //Exporta jogos	 int x;	 char head[400]={"<html><head><title>Catalogo de Jogos</title></head><body><table border=1 align=center cellpadding=3 cellspacing=0 bgcolor=#000000><tr><td>Nome do Jogo:</td><td>Nome do Fabricante:</td>	 <td>Idioma:</td><td>Classificacao:</td><td>Data de Lancamento:</td><td>Preco:</td></tr>"};	 char fim[18];	 char *buffer;	 arquivo = fopen(html,"w");	 //Grava as <>	 fwrite(head,260,1,arquivo);	 for(x=0;x<num;x++)	 {			//Grava cada contato em uma linha			strcpy(buffer,"<tr bgcolor=#0099CC>");  			fwrite(&buffer,20,1,arquivo);		  			strcpy(buffer,"<td>");		 			fwrite(&buffer,5,1,arquivo);			fwrite(games[x].nome,strlen(games[x].nome),1,arquivo);			strcpy(buffer,"</td>");		 			fwrite(&buffer,5,1,arquivo);						strcpy(buffer,"<td>");		 			fwrite(&buffer,5,1,arquivo);			fwrite(games[x].nomefab,strlen(games[x].nomefab),1,arquivo);			strcpy(buffer,"</td>");		 			fwrite(&buffer,5,1,arquivo);												strcpy(buffer,"<td>");		 			fwrite(&buffer,5,1,arquivo);			fwrite(games[x].idioma,strlen(games[x].idioma),1,arquivo);			strcpy(buffer,"</td>");		 			fwrite(&buffer,5,1,arquivo);						strcpy(buffer,"<td>");		 			fwrite(&buffer,5,1,arquivo);			fwrite(games[x].classificacao,strlen(games[x].classificacao),1,arquivo);			strcpy(buffer,"</td>");		 			fwrite(&buffer,5,1,arquivo);  						strcpy(buffer,"<td>");		 			fwrite(&buffer,5,1,arquivo);			fwrite(games[x].anolancamento,strlen(games[x].anolancamento),1,arquivo);			strcpy(buffer,"</td>");		 			fwrite(&buffer,5,1,arquivo);			strcpy(buffer,"<td>");		 			fwrite(&buffer,5,1,arquivo);			fwrite(games[x].preco,strlen(games[x].preco),1,arquivo);			strcpy(buffer,"</td>");		 			fwrite(&buffer,5,1,arquivo);						strcpy(buffer,"</tr>");		 			fwrite(&buffer,5,1,arquivo);																 }	 strcpy(buffer,"");	 fflush(stdout);	 fflush(stdin);	 strcpy(fim,"</table></html>");	 fwrite(&fim,16,1,arquivo);	 	 fclose(arquivo);	 printf("Jogos exportados!");	 getch();	 }

 

main.cpp

/*Cria menu, e serve como trigger para as funções*/#include <stdio.h>#include <stdlib.h>#include "cab.h"int main(int argc, char *argv[]){	  int cod=1;	  carrega();	  while(cod != 0)	  	  {				clrscr();				printf("\n\n");				printf("				 ||----------------------------------------------||\n");				printf("				 ||			 Catalogo de Jogos				||\n");				printf("				 ||______________________________________________||\n");				printf("				 || 1 - Incluir jogo							 ||\n");				printf("				 || 2 - Pesquisar jogo						   ||\n");				printf("				 || 3 - Listar todos os jogos					||\n");				printf("				 || 4 - Salvar								   ||\n");				printf("				 || 5 - Apagar jogo							  ||\n");				printf("				 || 6 - Editar jogo							  ||\n");				printf("				 || 7 - Exportar em HTML						 ||\n");				printf("				 || 0 - Sair									 ||\n");				printf("				 ||______________________________________________||\n\nOp‡Æo: ");	  fflush(stdin);	  scanf("%d",&cod);	  if(cod == 1) incluir();	  if(cod == 2) pesquisar();	  if(cod == 3) listar();   	  if(cod == 4) salvar();		if(cod == 5) apagar();	  if(cod == 6) editar();	  if(cod == 7) exportar();	  }	  libera();	  return(0);  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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