Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
#include <stdio.h> #include<stdlib.h> #define C 5 #define N 3 typedef struct { int id; char nome[40]; char CPF[11]; char RG[10]; char estadocivil[12]; char contato[10]; char profissao[30]; }Cliente; //defino a estrutura do cliente typedef struct { int pasta; int cod; char data[8]; char area[15]; //civil, trabalhista, criminal, tributaria char vara[40]; char advogado[40]; Cliente cliente; char contrario[40]; char advcontrario[40]; float valoracao; }Processo; // defino estrutura do processo typedef struct { Processo processo[N]; int prim, ult; }Acoes; // -------------------------------------------------------------------------------- termina estruturas void CriarAcoes(Acoes *X){ X->prim=0; X->ult=X->prim; } //cria a lista acoes que armazena os clientes int VerificaVazia(Acoes X){ return(X.prim==X.ult); // retorna true se tiver vazia } int VerificaCheia(Acoes X){ return(X.ult==N); // retorna true se tiver cheia } // -------------------------------------------------------------------------------- termina verificacoes void InserirCliente(Cliente p1){ //inserindo um cliente num processo ele exclui o cliente anterior. P eh o retorno de InserirProcesso que guarda a posicao do cliente. printf("Digite um codigo para o cliente: \n"); scanf("%d",&p1.id); printf("Digite o nome do cliente:\n "); scanf("%s",&p1.nome); printf("Digite o RG do cliente:\n "); scanf("%s",&p1.RG); printf("Digite o CPF do cliente:\n "); scanf("%s",&p1.CPF); printf("Digite a profissao do cliente:\n "); scanf("%s",&p1.profissao); printf("Digite o estado civil do cliente:\n "); scanf("%s",&p1.estadocivil); printf("Digite o contato do cliente:\n "); scanf("%s",&p1.contato); } void InserirProcesso(Acoes *X, Processo p1){ int A; int P=X->prim; Cliente ct; if(VerificaCheia(*X)) printf("Lista cheia, remova processo!\n"); else{ P=X->prim; while((P!=X->ult)&&(p1.pasta>X->processo[P].pasta)) P++; InserirCliente(ct); // ------------- para teste comentar X->processo[P].cliente=ct; if((P<X->ult)&&(p1.pasta!=X->processo[P].pasta)){ for(A=X->ult;A>P;A--){ X->processo[A]=X->processo[A-1]; X->processo[P]=p1; X->ult++; } }else if(P==X->ult){ X->processo[P]=p1; X->ult++; } else{ printf("Codigo nao existe!\n\n"); } } } void LerProcesso(Processo p1){ printf("Digite o codigo da pasta:\n"); scanf("%d",&p1.pasta); printf("Digite o codigo do processo:\n"); scanf("%d",&p1.cod); printf("Digite a area do processo:\n"); scanf("%s",&p1.area); printf("Digite o advogado do caso:\n"); scanf("%s",&p1.advogado); printf("Digite a data de cadastro do processo:\n"); scanf("%s",&p1.data); printf("Digite a vara do processo:\n"); scanf("%s",&p1.vara); printf("Digite o valor da acao:\n"); scanf("%f",&p1.valoracao); printf("Digite o contrario da acao:\n"); scanf("%s",&p1.contrario); printf("Digite o advogado contrario:\n"); scanf("%s",&p1.advcontrario); } void RemoveProcesso(Acoes *X, Processo *p1){ //as pessoas sao vinculadas ao processo int A; int P=X->prim; int pt; printf("Digite o numero do processo a remover: \n"); scanf("%d",&pt); if(VerificaVazia(*X)){ printf("Lista vazia, insira pasta\n"); } else{ while((P<X->ult)&&(pt>X->processo[P].pasta)){ P=P+1; } if((P==X->ult)||(X->processo[P].pasta != pt)){ printf("Elemento nao encontrado"); } else{ *p1=X->processo[P]; for(A=P;A<X->ult;A++) X->processo[A]=X->processo[A+1]; X->ult--; printf("\nElemento removido!\n\n",p1->pasta); } } } void VisualisarProcesso(Processo p1){ printf("\nNumero da pasta do processo: %d\n",p1.pasta); printf("Data de protocolo: %s\n",p1.data); printf("Nome do cliente: %s\n",p1.cliente.nome); printf("RG do cliente: %s\n",p1.cliente.RG); printf("CPF do cliente: %s\n",p1.cliente.CPF); printf("Area da aчуo: %s\n",p1.area); printf("Vara locada: %s\n",p1.vara); printf("Advogado do cliente: %s\n",p1.advogado); printf("Valor da acao: %f\n",p1.valoracao); printf("Pessoa contraria: %s\n",p1.contrario); printf("Advogado contrario: %s\n",p1.advcontrario); } void BuscaProcesso(Acoes *X, Processo *p1){ int A; int P=X->prim; int pt; printf("Digite o numero da pasta a consultar: \n"); scanf("%d",&pt); if(VerificaVazia(*X)){ printf("Lista vazia, insira pasta\n"); } else{ P=X->prim; while((P!=X->ult)&&(pt>X->processo[P].pasta)){ P=P+1; } if((P<X->ult)&&(X->processo[P].pasta == pt)){ Processo p2; p2=X->processo[P]; VisualisarProcesso(p2); } else{ printf("Elemento nao encontrado"); } } } void BuscaCliente(Acoes *X){ int A; int P=X->prim; int ident; Cliente p1; int n; Processo p2; printf("Digite o numero do cliente a procurar: \n"); scanf("%d",&ident); if(VerificaVazia(*X)){ printf("Lista vazia, insira pasta, nao ha clientes para procurar\n"); } else{ p2=X->processo[P]; p1=X->processo[P].cliente; n=p1.id; while((P<X->ult)&&(n==ident)){ p2=X->processo[P]; p1=X->processo[P].cliente; n=p1.id; P=P+1; } if(n == ident){ printf("O cliente %s pertence ao processo de pasta %i de processo",p1.nome,p2.pasta); } else{ printf("Cliente nao encontrado"); } } } void Menu(){ printf("---------- Menu ----------\n "); printf("Digite 1 para INSERIR PROCESSO\n "); printf("Digite 2 para BUSCAR PROCESS0/PASTA\n "); printf("Digite 3 para REMOVER PROCESSO\n "); printf("Digite 4 para BUSCAR CLIENTE\n"); printf("Digite 0 para SAIR\n "); //nao tem opcao de editar processo ou pessoa pq sao dados estaticos e privados } // -------------------------------------------------------------------------------- aqui comeca o programa int main(){ Acoes acoes; int cod=1; //Cliente ct={1,"maria","02374400166","4956313","solteiro","36268956","alfaiate"}; ------------- para teste descomentar //Processo proc={1,1,"15151515","civil","goiania","jaum",ct,"pedro","otavio",10.0}; ------------- para teste descomentar Processo proc; Cliente ct; int p; CriarAcoes(&acoes); printf(" ------------- PROCESSOS ADVOCACIA ------------- \n"); while(cod!=0){ Menu(); scanf("%d",&cod); switch(cod){ case 1: if(VerificaCheia(acoes)){ printf("Lista cheia, favor remover\n"); printf("\n"); break; } else{ LerProcesso(proc); //------------- para teste comentar InserirProcesso(&acoes,proc); break; printf("\n"); } case 2: if(VerificaVazia(acoes)){ printf("Lista vazia, insira pasta\n"); printf("\n"); break; } else{ BuscaProcesso(&acoes, &proc); printf("\n"); break; } case 3: if(VerificaVazia(acoes)){ printf("Lista vazia, insira pasta\n"); printf("\n"); break; } else{ RemoveProcesso(&acoes,&proc); printf("\n"); break; } case 4: if(VerificaVazia(acoes)){ printf("Lista vazia, insira pasta\n"); printf("\n"); break; } else{ BuscaCliente(&acoes); printf("\n"); break; } case 0: cod=0; break; default: printf("Opcao invalida! \n"); } } return 0; }
Compartilhar