Ir para conteúdo

POWERED BY:

Arquivado

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

Kelvin Dules

[Resolvido] Estrutura de Repetição

Recommended Posts

Segue o código e em seguida as duvidas:

 

//Autor: Kelvin Dias Dules
//Data: 24/02/2009 - 24 de Fevereiro do ano de 2009*
//Licenciado para: VGS Clan - Vengeance Shooters*
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>



void remover();
void cadastrar();
void pesquisar();
void editar();
void ajuda();
// ---------------------- Variáveis!!!
FILE *registro;
char carac;
char st[30];
char st2[30];
char st3[30];
char id[10];
char stat[50];
char nficha[30];
char caracter;
char resp[20];
char rank[10];
char sPass[50];
int pass;
int funcao;
int iAux;
int main() //Início!

{



//Segurança*
iAux = 0; 
system("color 2");
printf("==========================================\n");
printf("||	   Sistema de Seguranca VGS	   ||\n");
printf("------------------------------------------\n");
printf("Digite a senha de administracao!\n");
printf("\n\nSENHA ==>  ");
scanf("%d",&pass);
itoa(pass,sPass,10);
printf("%s", sPass);
if (!strcmp(sPass,"741230")) printf(" ===> SENHA CORRETA #Acesso Liberado#");
else {
	 printf(" ===> SENHA INCORRETA! #Acesso Negado#");
	 iAux =1;
	 }
system("pause>>NULL");
\*---------------==============	 Menu* ======================-------------*/
if (iAux!=1) {
system("cls");
system("color 4");
printf("\n==============================");
printf("\n|  VGS Member Gerenciator  2.0 ||");
printf("\n==============================");
printf("\n				by [VGS]Kelvin");
printf("\n||");
printf("\n====================||||");
printf("\n[1] Cadastrar Membro||||");
printf("\n[2] Editar Cadastro ||||");
printf("\n[3] Remover Cadastro||||");
printf("\n[4] Pesquisar	   ||||");
printf("\n[5] Sobre		   ||||");
printf("\n[6] Sair			||||");
printf("\n====================||||");
printf("\n====================||||");
printf("\nDigite o numero referente a funcao!");
printf("\n------------------------------------\n\n");
scanf("%d",&funcao);
switch(funcao){
					case 1:cadastrar();break;
					case 2:editar();break;
					case 3:remover();break;
					case 4:pesquisar();break;
					case 5:ajuda();break;
					case 6:return 0;break;
					default:printf("Essa opcao não existe!");break;
} }}






//Cadastrar Membros**
void cadastrar(){
system("cls");
system("color 3");
getchar();
printf("Digite o nome do cadastro: ");
gets(nficha);  
if (registro = fopen(nficha,"w"))   /* Arquivo !*/
if(!registro){
printf( "O arquivo nao pode ser gravado!");
exit(0);}
//Dados de Entrada*
system("cls");
printf("===== Ficha de Cadastro =====");
printf("\n\nNome: ");
scanf("%s",st);
printf("Idade: ");
scanf("%s",id);
printf("Cidade/Estado: ");
scanf("%s",st2);
printf("Nickname: ");
scanf("%s",st3);
printf("RANK: ");
scanf("%s",rank);
printf("Status: ");
scanf("%s",stat);	 
//Dados de Saída*
	fprintf(registro,"===== Ficha do Membro ======");
	fprintf(registro,"\n||-");
	fprintf(registro,"\nNome: %s",st);
	fprintf(registro,"\nIdade: %s",id);
	fprintf(registro,"\nCidade/Estado: %s",st2);
	fprintf(registro,"\nNickname: %s",st3);
	fprintf(registro,"\nRank: %s",rank);
	fprintf(registro,"\nStatus: %s",stat);
	fprintf(registro,"\n==============================-|");
	fclose(registro);
}
	
//Remover Cadastro*
void remover(){
getchar();
printf("Digite o nome do cadastro a ser removido: \n");
gets(nficha);
if (remove(nficha)==0);
else
	printf("Erro ao tentar remover cadastro!");
}
//Pesquisar**
void pesquisar(){
system("cls");
printf("Digite o nome do cadastro: ");
scanf("%s",&nficha);
if((registro = fopen(nficha,"r")) == NULL)
{
			 printf("Erro ao abrir arquivo!");
			 exit(1);
			 };
			 
			 do
			 {
		caracter = getc(registro);
		putchar(caracter);
	  }
	while(caracter != EOF);

	printf("\n\n");
	fclose(registro);
	system("pause");
  }
  
  //Editar Cadastro** -----------------------------------------------|Mostrar Dados
  void editar(){
	   system("cls");
printf("Digite o nome do cadastro para editar: ");
scanf("%s",&nficha);
if((registro = fopen(nficha,"r")) == NULL)
{
			 printf("Erro ao abrir arquivo!");
			 exit(1);
			 };
			 
			 do
			 {
		caracter = getc(registro);
		putchar(caracter);
	  }
	while(caracter != EOF);

	printf("\n\n");
	fclose(registro);
	//Parte da Ficha----------------------------------------------------|


getchar();
printf("Digite o NOVO nome do cadastro: ");
gets(nficha);  
if (registro = fopen(nficha,"w"))   /* Arquivo !*/
if(!registro){
printf( "O arquivo nao pode ser gravado!");
exit(0);}
//Dados de Entrada*
system("color 7");
printf("");
printf("");
printf("===== Ficha de Cadastro =====");
printf("\n\nNome: ");
scanf("%s",st);
printf("Idade: ");
scanf("%s",id);
printf("Cidade/Estado: ");
scanf("%s",st2);
printf("Nickname: ");
scanf("%s",st3);
printf("RANK: ");
scanf("%s",rank);
printf("Status: ");
scanf("%s",stat);	 
//Dados de Saída*
	fprintf(registro,"===== Ficha do Membro ======");
	fprintf(registro,"\n||-");
	fprintf(registro,"\nNome: %s",st);
	fprintf(registro,"\nIdade: %s",id);
	fprintf(registro,"\nCidade/Estado: %s",st2);
	fprintf(registro,"\nNickname: %s",st3);
	fprintf(registro,"\nRank: %s",rank);
	fprintf(registro,"\nStatus: %s",stat);
	fprintf(registro,"\n==============================-|");
	fclose(registro);
}
   //Sobre!
   void ajuda(){
	   system("color 5");
	   system("cls");
	   printf("================ Sobre* ================\n");
	   printf(" >>> Esta e a segunda versao do programa\n");
	   printf(" >>> com novas funcoes e bugs corrigidos.\n");
	   printf(" >>> VGS MG: 2.0 // Copyright@2009™	 \n");
	   printf(" >>>									\n");
	   printf("\n");
	   printf("\n");
	   printf(" >>> Agradecimentos:					\n");
	   printf(" +Forum iMaster por tirar algumas duvidas\n");
	   printf(" +Especialmente QuitZaumm*/*			 \n");
	   printf("========================================\n");
	   system("pause");
	   }

 

Bem, primeiramente por favor nao copiem meu programa xD

 

A duvida é: Como criar uma estrutura de repetição para que sempre que executar uma função ele perguntar se quer repetir o programa ou fechar.

 

exemplo: Se eu executar a função "CADASTRAR" quando eu acabar tudo nessa função o programa perguntar se quero repetir o programa (O Menu) ou fechar.

Tentei com o While mas nao consegui.. postem como devo fazer por favor, tow precisando disso urgente!

 

 

Obrigado}

Compartilhar este post


Link para o post
Compartilhar em outros sites

É muito simples....

pensa um pouco, da seguinte forma:

o que eu preciso fazer?? repetir o programa.

 

o que eu preciso repetir?? o menu principal.

 

logo, você coloca tudo o que você precisa repetir em um while, por exemplo

 

char opt='s';

while (opt == 's') {

printf("Quer continuar? (s/n)\n");
scanf("%c%*c", &opt);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

no while melhor fazer assim:

while (opt == 's' || opt == 'S') {

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.