//metodo que imprimi todas as requisicoes enfileiradas void imprimir(){ if(pBegin==NULL){ printf("Nao ha requisicoes\n"); printf("Aperte uma tecla para continuar:"); getch(); limpa(); }else{ struct Nodo* pAtual = pBegin; while(pAtual!=NULL){ printf("Codigo:%d\tNumero do cartao:%d\tValor da compra:%.2f\n", pAtual->requisicao.codigo, pAtual->requisicao.cartao, pAtual->requisicao.valor); pAtual = pAtual->pProximo; } printf("Aperte uma tecla para continuar:"); getch(); limpa(); } }
int main(){ int opcao; do{ puts("Digite 1 para Matris de Adjacencia\n"); puts("Digite 2 para Matris de Incidencia Nao Ordenado\n"); puts("Digite 3 para Matris de Incidencia Ordenado\n"); puts("Digite 0 para Encerrar o Programa\n"); scanf("%i",&opcao); limpa(); if(opcao==1) matris_adjacencia(); else if(opcao==2) matris_incidencia(1); else if(opcao==3) matris_incidencia(2); else if(opcao==0){ puts("Fim do programa\n"); sleep(3); return 0; } else puts("Entrada Inválida!\n"); puts("Digite algo para continuar..."); getch(); limpa(); }while(opcao!=0); }
//apos a avaliacao e atualizacao dos saldos o arquivo saldos.txt eh salvo void salvar_saldos(){ if(cod>1){ remove("saldos.txt")==0; FILE * arq2; char linha[16]; arq2 = fopen("saldos.txt","a+"); int i; for(i=0;i<MAX;i++){ if(vetor[i]>0){ struct Nodo *aux3=malloc(sizeof(struct Nodo)); aux3 = hashTable[i]; sprintf(linha,"%d",aux3->requisicao.cartao); fputs(linha,arq2); fputs("\n",arq2); sprintf(linha,"%.2f",aux3->requisicao.saldo); fputs(linha,arq2); fputs("\n",arq2); sprintf(linha,"%.2f",aux3->requisicao.limite); fputs(linha,arq2); fputs("\n#\n",arq2); free(aux3);//libera a memoria alocada } } fclose(arq2); printf("Arquivo de saldos atualizado com sucesso\n\n"); printf("Aperte uma tecla para continuar:"); getch(); limpa(); }else{ printf("Avalie o arquivo de requisicoes primeiro\n\n"); printf("Aperte uma tecla para continuar:"); getch(); limpa(); } }
void converte_num_char(int num, char* simb){ int i = 0, j = 0, res = 0, aux = num; char parm = '\0'; char temp[TAM]; limpa(temp); do{ res = aux % 10; parm = res + 48; concatenan(temp, &parm, 1); aux = aux / 10; i++; }while(aux > 1 && i < TAM - 1); i = i - 1; do{ simb[j] = temp[i]; i--; j++; }while(i > -1); simb[j+1] = '\0'; }
/** * Shuffle a list */ listP baralhar(listP baralho) { int cartArr[(num*2)-2],i; shuff(cartArr); limpa (cartArr,dbar); for(i=0;i<=(num*2)-3;i++) { baralho = poe(baralho,cartArr[i]); }; return(baralho); }
//metodo que armazena todas as requisicoes da fila em um arquivo void armazenar(){ if(pBegin==NULL){ printf("Nao ha requisicoes para escrever\n\n"); printf("Aperte uma tecla para continuar:"); getch(); limpa(); }else{ struct Nodo* pAtual = pBegin; remove("requisicoes.txt");//exclui o arquivo antes de escrever as requisicoes while(pAtual!=NULL){ FILE * arquivo; char linha [16]; arquivo = fopen ("requisicoes.txt","a+"); sprintf(linha,"%d",pAtual->requisicao.codigo); fputs (linha,arquivo); fputs("\n",arquivo); sprintf(linha,"%d",pAtual->requisicao.cartao); fputs (linha,arquivo); fputs("\n",arquivo); sprintf(linha,"%.2f",pAtual->requisicao.valor); fputs (linha,arquivo); fputs("\n#\n",arquivo); fclose (arquivo); pAtual = pAtual->pProximo; } printf("Requisicoes salva no arquivo\n\n"); printf("Aperte uma tecla para continuar:"); getch(); limpa(); } }
//Empilha a pilha um em cima da pilha2 void uniaodepilhas(Pilha* pilha1, Pilha* pilha2){ Pilha aux; int elem; limpa(&aux); while(ehvazia(pilha1) != 1){ desempilha(&elem, pilha1); empilha(elem, &aux); } while(ehvazia(&aux)!= 1){ desempilha(&elem, &aux); empilha(elem, pilha2); } }
//apos a avalicao o arquivo avaliacoes.txt e salvo void salvar_avaliacoes(){ if(pTopo==NULL){ printf("Nao ha avaliacoes para escrever\n\n"); printf("Aperte uma tecla para continuar:"); getch(); limpa(); }else{ struct NodoPilha* pAtual = pTopo; remove("avaliacoes.txt")==0;//exclui o arquivo antes de escrever as requisicoes while(pAtual!=NULL){ FILE * arq3; char linha [16]; arq3 = fopen ("avaliacoes.txt","a+"); sprintf(linha,"%d",pAtual->avaliacao.codigo); fputs (linha,arq3); fputs("\n",arq3); sprintf(linha,"%c",pAtual->avaliacao.resultado); fputs (linha,arq3); fputs("\n#\n",arq3); fclose (arq3); pAtual = pAtual->proximo; } printf("Avaliacoes salva no arquivo\n\n"); printf("Aperte uma tecla para continuar:"); getch(); limpa(); } }
int main(){ int opcao; do{ puts("Digite 1 para Vetor de Adjacencia\n"); puts("Digite 0 para Encerrar o Programa\n"); printf("::>"); scanf("%i",&opcao); limpa(); if(opcao==1) vetor_adjacencia(); else if(opcao==0){ puts("Fim do programa\n"); sleep(3); return 0; } else puts("Entrada Inválida!\n"); puts("Digite algo para continuar..."); getch(); limpa(); }while(opcao!=0); }
int main(){ do{ printf("Trabalho de AED II - Processsador\n\n\n"); printf("1 - Carregar o arquivo de saldos\n"); printf("2 - Avaliar o arquivo de requisicoes\n"); printf("3 - Salvar o arquivo de saldos\n"); printf("4 - Salvar arquivo de avaliacoes\n"); printf("0 - Sair\n\n"); printf("Escolha uma opcao:"); scanf("%d",&opcao); switch(opcao){ case 1:{ printf("\n\n"); carregar_saldo(); }break; case 2:{ printf("\n\n"); carregar_requisicoes(); }break; case 3:{ printf("\n\n"); salvar_saldos(); }break; case 4:{ printf("\n\n"); salvar_avaliacoes(); }break; default:{ if(opcao>4){ printf("opcao invalida\n"); getch(); } limpa(); } } }while(opcao!=0); }
void barStk(int* stock, int tmn) { int tmp[stk],r,i=0; limpa(tmp,tmn); r=(rand()%tmn); showA(tmn,stock); while(i<tmn) { if (tmp[r] == 0) { tmp[r] = stock[i]; i++; r=rand()%stk; } else { r=rand()%stk; }; }; }
int main(){ short i; Tree *raiz=NULL; Ler_arq("rb",&raiz); do{ menu(); scanf("%hd", &i); limpa(); switch(i){ case 1: inserir(&raiz, cadastro()); } getchar(); }while(i!=7); }
/** * Shuffle an array */ int shuff(int* baralho) { int i=0, n=0,r; srand(time(NULL)); limpa(baralho,dbar); while(i<104) { r = rand() % 105; if ( n >= 13) { n=0; }; if (baralho[r] == 0) { n++;baralho[r] = n; i++; }; }; return(0); }
//carrega o arquivo de saldo e insere na tabelahash usando lista encadeada para tratamento de colisao void carregar_saldo(){ FILE *arq; arq = fopen("saldos.txt","r"); char separador; int posicao; if(arq==NULL){ printf("Erro ao abrir arquivo de saldos\n\n"); }else{ inicializa_hashTable(); while(!feof(arq)){ struct Nodo *aux = malloc(sizeof(struct Nodo)); //pega cada linha do arquivo e atribui a variavel da estrutura fscanf(arq,"%d\n",&aux->requisicao.cartao); fscanf(arq,"%f\n",&aux->requisicao.saldo); fscanf(arq,"%f\n",&aux->requisicao.limite); fscanf(arq,"%c\n",&separador); posicao = hash(aux);//calcula a posicao da tabelahash vetor[posicao]= aux->requisicao.cartao;//posicao valida do vetor vetorPosicoes[posicao] = posicao;// adicionar_hash(aux,posicao);//adiciona o nodo na tabelahash printf("posicao: %d\tcartao: %d\tsaldo: %.2f\tlimite: %.2f\n", posicao, hashTable[posicao]->requisicao.cartao, hashTable[posicao]->requisicao.saldo, hashTable[posicao]->requisicao.limite); aux->proximo = NULL; aux = NULL; free(aux); } } fclose(arq); printf("\n\n"); printf("Arquivo de saldos carregado com sucesso\n"); printf("Aperte uma tecla para continuar:"); getch(); limpa(); }
//metodo que inclui uma requisicao na fila void incluir(){ struct Nodo *v = malloc(sizeof(struct Nodo)); v->requisicao.codigo=cod; v->pProximo=NULL; printf("Digite o numero do cartao(8 digitos):"); scanf("%d",&v->requisicao.cartao); printf("Digite o valor da compra:"); scanf("%f",&v->requisicao.valor); enqueue(v); free(v);//libera a memoria alocada cod++;//codigo da requisicao incrementa apos o enqueue printf("\n\nRequisicao incluida com sucesso!\n"); printf("Aperte uma tecla para continuar:"); getch(); limpa(); }
int main(){ do{ printf("Trabalho de AED II - Produtor\n\n\n"); printf("1 - Incluir requisicao\n"); printf("2 - Armazenar requisicao\n"); printf("0 - Sair\n\n"); printf("Escolha uma opcao:"); scanf("%d",&opcao); switch(opcao){ case 1:{ incluir(); }break; case 2:{ armazenar(); }break; case 3 :{ imprimir(); }break; default:{ if(opcao>3){ printf("opcao invalida\n"); getch(); } limpa(); } } }while(opcao!=0); }
//metodo que carrega o arquivo de avaliacoes void carregar_requisicoes(){ FILE *arq1; arq1 = fopen("requisicoes.txt","r"); char separador; if(arq1==NULL){ printf("Erro ao abrir o arquivo de requisicoes\n\n"); }else{ if(condicao_requisicao==0){ while(!feof(arq1)){ int cartao; int codigo,posicao; float valor; struct NodoPilha *aux2 = malloc(sizeof(struct NodoPilha)); fscanf(arq1,"%d\n",&codigo); fscanf(arq1,"%d\n",&cartao); fscanf(arq1,"%f\n",&valor); fscanf(arq1,"%c\n",&separador); posicao=posicaoNoHash(cartao);//posicao da tabelahash que possui esse cartao if(hashTable[posicao]!=NULL){//a avaliacao apenas ocorre se a posicao na tabelahash for diferente de null if(hashTable[posicao]->requisicao.cartao==cartao){ //se o valor da compra for menor ou igual ao saldo do cartao o resultado da avaliacao eh aceito //e o saldo do cartao eh atualizado senao eh negado if(valor<=hashTable[posicao]->requisicao.saldo){ printf("Requisicao numero: %d do cartao %d foi aceita\n",codigo,cartao); aux2->avaliacao.resultado='A'; hashTable[posicao]->requisicao.saldo -=valor; }else{ printf("Requisicao numero: %d do cartao %d foi negada\n",codigo,cartao); aux2->avaliacao.resultado='N'; } aux2->avaliacao.codigo=cod;//codigo da operacao empilha(aux2);//empilha o nodo da avaliacao free(aux2);//libera memoria alocada cod++; } } condicao_requisicao++; } }else{ printf("Requisicoes ja avaliadas\n"); } } fclose(arq1); printf("\n\n"); printf("Arquivo de requisicoes carregado com sucesso\n"); printf("Aperte uma tecla para continuar:"); getch(); limpa(); }
/** * Main function. Initializes and starts the game */ int spitm() {listP mao1,mao2,pl11,pl12,pl13,pl14,pl21,pl22,pl23,pl24; int stock1[stk],stock2[stk],baralho[(num*2)-2],pc1[sz],pc2[sz],pc3[sz]; mao1=mao2=pl11=pl12=pl13=pl14=pl21=pl22=pl23=pl24=NULL; int vencedor=0,turno=1,o,d,i=0,n=0,x=(LINES/2),y=(COLS/2); initscr(); cbreak(); keypad(stdscr,TRUE); noecho(); start_color(); init_pair(1,COLOR_WHITE,COLOR_GREEN); init_pair(2,COLOR_RED,COLOR_GREEN); bkgd(COLOR_PAIR(1)); attron(COLOR_PAIR(2)); limpa(pc1,13); limpa(pc2,13); limpa(pc3,13); shuff(baralho); atoa(baralho,stock1,20); atoa(baralho,stock2,20); mao1=atod(baralho,mao1,5); mao2=atod(baralho,mao2,5); while(!i) { if(stock1[0] > stock2[0]) { turno=1;i++; };break; if(stock1[0] < stock2[0]) { turno=2; i++; };break; barStk(stock1,stk); barStk(stock2,stk); }; while(vencedor==0) { while(elemN(mao1)<5) mao1=atod(baralho,mao1,1); while(turno==1) { clear(); mostrac(mao1,pl11, pl12,pl13, pl14, mao2, pl21, pl22, pl23,pl24, pc1, pc2, pc3, stock1, stock2,turno); echo(); mvprintw(22,0,"Insira origem(1-10) e destino (1-7):__ __"); mvscanw(22,36," %d %d",&o,&d); if(o>0 && o<6) { if(d==1) { if (showi(mao1,elemN(mao1)-o) == topAr(pc1)+1) { dtoa(mao1,elemN(mao1)-o,pc1); }; }; if(d==2) { if (showi(mao1,elemN(mao1)-o) == topAr(pc2)+1) { dtoa(mao1,elemN(mao1)-o,pc2); }; }; if(d==3) { if (showi(mao1,elemN(mao1)-o) == topAr(pc3)+1) { dtoa(mao1,elemN(mao1)-o,pc3); }; }; if(d==4) { pl11=poe(pl11,showi(mao1,elemN(mao1)-o)); if(elemN(mao1) == o) { mao1=rmUlt(mao1);turno=2; } else { rmI(mao1,elemN(mao1)-(o)); turno=2; }; }; if(d==5) { pl12=poe(pl12,showi(mao1,elemN(mao1)-o)); if(elemN(mao1) == o) { mao1=rmUlt(mao1); turno=2; } else { rmI(mao1,elemN(mao1)-(o)); turno=2; }; }; if(d==6) { pl13=poe(pl13,showi(mao1,elemN(mao1)-o)); if(elemN(mao1) == o) { mao1=rmUlt(mao1); turno=2; } else { rmI(mao1,elemN(mao1)-(o)); turno=2; }; }; if(d==7) { pl14=poe(pl14,showi(mao1,elemN(mao1)-o)); if(elemN(mao1) == o) { mao1=rmUlt(mao1); turno=2; } else { rmI(mao1,elemN(mao1)-(o)); turno=2; }; }; }; //end if(o>0 && o<6) if(o==10) { if(d==1){ if (topAr(stock1) == topAr(pc1)+1) { addAe(stock1,pc1); }; }; if(d==2) { if (topAr(stock1) == topAr(pc2)+1) { addAe(stock1,pc2); }; }; if(d==3) { if (topAr(stock1) == topAr(pc3)+1) { addAe(stock1,pc3); }; }; }; if(o>5 && o< 10) { if(o==6 && d==1 && (elemN(pl11)!=0)) { if (showi(pl11,elemN(pl11)-o) == topAr(pc1)+1) { dtoa(pl11,elemN(pl11)-1,pc1); }; }; if(o==7 && d==1 && (elemN(pl12)!=0)) { if (showi(pl12,elemN(pl12)-o) == topAr(pc1)+1) { dtoa(pl12,elemN(pl12)-1,pc1); }; }; if(o==8 && d==1 && (elemN(pl13)!=0)) { if (showi(pl13,elemN(pl13)-o) == topAr(pc1)+1) { dtoa(pl13,elemN(pl13)-1,pc1); }; }; if(o==9 && d==1 && (elemN(pl14)!=0)) { if (showi(pl14,elemN(pl14)-o) == topAr(pc1)+1) { dtoa(pl14,elemN(pl14)-1,pc1); }; }; if(o==6 && d==2 && (elemN(pl11)!=0)) { if (showi(pl11,elemN(pl11)-o) == topAr(pc2)+1) { dtoa(pl11,elemN(pl11)-1,pc2); }; }; if(o==7 && d==2 && (elemN(pl12)!=0)) { if (showi(pl12,elemN(pl12)-o) == topAr(pc2)+1) { dtoa(pl12,elemN(pl12)-1,pc2); }; }; if(o==8 && d==2 && (elemN(pl13)!=0)) { if (showi(pl13,elemN(pl13)-o) == topAr(pc2)+1) { dtoa(pl13,elemN(pl13)-1,pc2); }; }; if(o==9 && d==2 && (elemN(pl14)!=0)) { if (showi(pl14,elemN(pl14)-o) == topAr(pc2)+1) { dtoa(pl14,elemN(pl14)-1,pc2); }; }; if(o==6 && d==3 && (elemN(pl11)!=0)) { if (showi(pl11,elemN(pl11)-o) == topAr(pc3)+1) { dtoa(pl11,elemN(pl11)-1,pc3); }; }; if(o==7 && d==3 && (elemN(pl12)!=0)) { if (showi(pl12,elemN(pl12)-o) == topAr(pc3)+1) { dtoa(pl12,elemN(pl12)-1,pc3); }; }; if(o==8 && d==3 && (elemN(pl13)!=0)) { if (showi(pl13,elemN(pl13)-o) == topAr(pc3)+1) { dtoa(pl13,elemN(pl13)-1,pc3); }; }; if(o==9 && d==3 && (elemN(pl14)!=0)) { if (showi(pl14,elemN(pl14)-o) == topAr(pc3)+1) { dtoa(pl14,elemN(pl14)-1,pc3); }; }; };//end if(o>5 && o< 10) }; //end while(turno==1) n=0; while ((stock1[n]==0) && (n<stk)) { n++; }; // Winner is player 1 if (stock1[n] == 0) { vencedor=1; turno=1; } // Tie if(baralho[num*2-3]==0) { vencedor=3; }; // Clean central stack if(pc1[0]==13) { atoa(pc1,baralho,13); }; if(pc2[0]==13) { atoa(pc2,baralho,13); }; if(pc3[0]==13) { atoa(pc3,baralho,13); }; // fill hand 2 while(elemN(mao2)<5) { mao2=atod(baralho,mao2,1); }; while(turno==2) { clear(); mostrac(mao1,pl11, pl12,pl13, pl14, mao2, pl21, pl22, pl23,pl24, pc1, pc2, pc3, stock1, stock2,turno); echo(); mvprintw(22,0,"Insira origem(1-10) e destino (1-7):__ __"); mvscanw(22,36,"%d %d",&o,&d); if(o>0 && o<6) { if(d==1) { if (showi(mao2,elemN(mao2)-o) == topAr(pc1)+1) { dtoa(mao2,elemN(mao2)-o,pc1);}; }; if(d==2) { if (showi(mao2,elemN(mao2)-o) == topAr(pc2)+1) { dtoa(mao2,elemN(mao2)-o,pc2); }; }; if(d==3) { if (showi(mao2,elemN(mao2)-o) == topAr(pc3)+1) { dtoa(mao2,elemN(mao2)-o,pc3); }; }; if(d==4) { pl21=poe(pl21,showi(mao2,elemN(mao2)-o)); if(elemN(mao2) == o) { mao2=rmUlt(mao2);turno=1; } else { rmI(mao2,elemN(mao2)-(o)); turno=1; }; }; if(d==5) { pl22=poe(pl22,showi(mao2,elemN(mao2)-o)); if(elemN(mao2) == o) { mao2=rmUlt(mao2); turno=1; } else { rmI(mao2,elemN(mao2)-(o)); turno=1; }; }; if(d==6) { pl23=poe(pl23,showi(mao2,elemN(mao2)-o)); if(elemN(mao2) == o) { mao2=rmUlt(mao2); turno=1; } else { rmI(mao2,elemN(mao2)-(o)); turno=1; }; }; if(d==7) { pl24=poe(pl24,showi(mao2,elemN(mao2)-o)); if(elemN(mao2) == o) { mao2=rmUlt(mao2); turno=1; } else { rmI(mao2,elemN(mao2)-(o)); turno=1; } }; }; if(o==10) { if(d==1){ if (topAr(stock2) == topAr(pc1)+1) { addAe(stock2,pc1); }; }; if(d==2) { if (topAr(stock2) == topAr(pc2)+1) { addAe(stock2,pc2); }; }; if(d==3) { if (topAr(stock2) == topAr(pc3)+1) { addAe(stock2,pc3); }; }; }; if(o>5 && o< 10) { if(o==6 && d==1 && (elemN(pl21)!=0)) { if (showi(pl21,elemN(pl21)-o) == topAr(pc1)+1) { dtoa(pl21,elemN(pl21)-1,pc1); }; }; if(o==7 && d==1 && (elemN(pl22)!=0)) { if (showi(pl22,elemN(pl22)-o) == topAr(pc1)+1) { dtoa(pl22,elemN(pl22)-1,pc1); }; }; if(o==8 && d==1 && (elemN(pl23)!=0)) { if (showi(pl23,elemN(pl23)-o) == topAr(pc1)+1) { dtoa(pl23,elemN(pl23)-1,pc1); }; }; if(o==9 && d==1 && (elemN(pl24)!=0)) { if (showi(pl24,elemN(pl24)-o) == topAr(pc1)+1) { dtoa(pl24,elemN(pl24)-1,pc1); }; }; if(o==6 && d==2 && (elemN(pl21)!=0)) { if (showi(pl21,elemN(pl21)-o) == topAr(pc2)+1) { dtoa(pl21,elemN(pl21)-1,pc2); }; }; if(o==7 && d==2 && (elemN(pl22)!=0)) { if (showi(pl22,elemN(pl22)-o) == topAr(pc2)+1) { dtoa(pl22,elemN(pl22)-1,pc2); }; }; if(o==8 && d==2 && (elemN(pl23)!=0)) { if (showi(pl23,elemN(pl23)-o) == topAr(pc2)+1) { dtoa(pl23,elemN(pl23)-1,pc2); }; }; if(o==9 && d==2 && (elemN(pl24)!=0)) { if (showi(pl24,elemN(pl24)-o) == topAr(pc2)+1) { dtoa(pl24,elemN(pl24)-1,pc2); }; }; if(o==6 && d==3 && (elemN(pl21)!=0)) { if (showi(pl21,elemN(pl21)-o) == topAr(pc3)+1) { dtoa(pl21,elemN(pl21)-1,pc3); }; }; if(o==7 && d==3 && (elemN(pl22)!=0)) { if (showi(pl22,elemN(pl22)-o) == topAr(pc3)+1) { dtoa(pl22,elemN(pl22)-1,pc3); }; }; if(o==8 && d==3 && (elemN(pl23)!=0)) { if (showi(pl23,elemN(pl23)-o) == topAr(pc3)+1) { dtoa(pl23,elemN(pl23)-1,pc3); }; }; if(o==9 && d==3 && (elemN(pl24)!=0)) { if (showi(pl24,elemN(pl24)-o) == topAr(pc3)+1) { dtoa(pl24,elemN(pl24)-1,pc3); }; }; }; }; n=0; while ((stock2[n]==0) && (n<stk)) { n++; }; // Winner is player 2 if (stock2[n] == 0) { vencedor=1; turno=1; } // Tie if(baralho[num*2-3]==0) { vencedor=3; }; // Clean central stack if(pc1[0]==13) { atoa(pc1,baralho,13); }; if(pc2[0]==13) { atoa(pc2,baralho,13); }; if(pc3[0]==13) { atoa(pc3,baralho,13); }; }; if((vencedor==1)||(vencedor==2)) { clear(); mvprintw(x-1,y-10,"+------------------------------------+"); mvprintw(x,y-10,"|O jogador %d vence! |",vencedor); mvprintw(x+1,y-10,"+------------------------------------+"); getch(); } else { clear(); mvprintw(x-1,y-10,"+------------------------------------+"); mvprintw(x,y-10,"|Empate, não há vencedores. |"); mvprintw(x+1,y-10,"+------------------------------------+"); getch(); }; endwin(); bkgd(COLOR_PAIR(2)); return 0; }