Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //includes
- #include <stdio.h>
- #include <conio.h>
- #include <stdlib.h>
- #include <windows.h>
- #include <string.h>
- //Definição das cores
- #define FOREGROUND_INTENSE_BLUE (FOREGROUND_BLUE | FOREGROUND_INTENSITY)
- #define FOREGROUND_WHITE (FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN)
- #define FOREGROUND_YELLOW (FOREGROUND_RED | FOREGROUND_GREEN)
- #define FOREGROUND_CYAN (FOREGROUND_BLUE | FOREGROUND_GREEN)
- #define FOREGROUND_MAGENTA (FOREGROUND_RED | FOREGROUND_BLUE)
- #define FOREGROUND_BLACK 0
- //Struct com variaveis complementares para as coordenadas
- typedef struct
- {
- int x;
- int y;
- int direcao;
- }coordenadas;
- //GotoXY é para conseguir colocar os "objetos" onde se quiser na consola
- void GotoXY(int x, int y)
- {
- COORD coord;
- coord.X = x;
- coord.Y = y;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
- }
- //Caixa do menu
- void caixaMenu()
- {
- for(int i=24;i<55;i++)
- {
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
- GotoXY(i,6);
- printf("%c", 205);
- GotoXY(i,20);
- printf("%c", 205);
- }
- }
- //cantos do menu
- void cantosCaixa()
- {
- GotoXY(24,6);
- printf("%c",201);
- GotoXY(55,6);
- printf("%c",187);
- GotoXY(24,20);
- printf("%c",200);
- GotoXY(55,20);
- printf("%c",188);
- }
- //typedef struct em progresso...
- struct Jogo
- {
- int preco;
- char plataforma[25];
- char nome[50];
- struct Jogo *prox; //(apontador)
- };
- typedef struct Jogo jogo;
- //variavel global (define o tamanho)
- int tam;
- //marcar presença dos voids
- int menu(void);
- void opcao(jogo *FILA, int op);
- void iniciar(jogo *FILA);
- void inserir(jogo *FILA);
- jogo *apagar(jogo *FILA);
- void listar(jogo *FILA);
- void pesquisar(jogo *FILA);
- int esvaziar(jogo *FILA);
- jogo *alocar();
- //Main...
- int main(void)
- {
- jogo *FILA = (jogo *) malloc(sizeof(jogo));
- iniciar(FILA);
- int x;
- do{
- x=menu();
- opcao(FILA,x);
- }while(x);
- free(FILA);
- return 0;
- }
- //O menu do projeto
- int menu(void)
- {
- int x;
- GotoXY(35,5);
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_WHITE);
- printf("o GameWay o");
- GotoXY(32,8);
- printf("1. Adicionar jogo");
- GotoXY(32,10);
- printf("2. Remover jogo");
- GotoXY(32,12);
- printf("3. Listar jogos");
- GotoXY(32,14);
- printf("4. Pesquisar jogos");
- GotoXY(32,16);
- printf("5. Apagar tudo");
- GotoXY(32,18);
- printf("0. Sair");
- caixaMenu();
- cantosCaixa();
- GotoXY(24,21);
- SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_WHITE);
- scanf("%d", &x);
- return x;
- }
- //Switch (este void é chamado no menu)
- void opcao(jogo *FILA, int op)
- {
- //tmp é um apontador que corre a fila á procura do ultimo
- jogo *tmp;
- switch(op)
- {
- case 1://inserir
- inserir(FILA);
- system("cls");
- break;
- case 2://remover
- tmp = apagar(FILA);
- if(tmp != NULL)
- {
- printf("O jogo %s foi removido\n\n", tmp->nome);
- }
- system("pause");
- system("cls");
- break;
- case 3: //listar
- listar(FILA);
- system("pause");
- system("cls");
- break;
- case 4://pesquisar
- pesquisar(FILA);
- system("pause");
- system("cls");
- break;
- case 5: //apagar
- iniciar(FILA);
- system("pause");
- system("cls");
- break;
- case 0:
- exit(0);
- break;
- default:
- printf("Comando invalido\n\n");
- system("pause");
- system("cls");
- }
- }
- //inicializa a fila
- void iniciar(jogo *FILA)
- {
- FILA->prox = NULL;
- tam=0;
- }
- //esvazia a fila
- int esvaziar(jogo *FILA)
- {
- if(FILA->prox == NULL)
- return 1;
- else
- return 0;
- }
- //ajuda a alocar o elemento na lista
- jogo *alocar()
- {
- jogo *novo=(jogo *) malloc(sizeof(jogo));
- printf("Insire o nome do jogo: ");
- scanf("%s", &novo->nome);
- printf("\nInsire a plataforma do jogo: ");
- scanf("%s", &novo->plataforma);
- printf("\nInsire o preco do jogo: ");
- scanf("%d", &novo->preco);
- return novo;
- }
- //insere na fila
- void inserir(jogo *FILA)
- {
- jogo *novo=alocar();
- novo->prox = NULL;
- if(esvaziar(FILA))
- FILA->prox=novo;
- else{
- jogo *tmp = FILA->prox;
- while(tmp->prox != NULL)
- tmp = tmp->prox;
- tmp->prox = novo;
- }
- tam++;
- }
- //apaga a fila
- jogo *apagar(jogo *FILA)
- {
- if(FILA->prox == NULL){
- printf("Fila vazia!\n");
- return NULL;
- }else{
- jogo *tmp = FILA->prox;
- FILA->prox = tmp->prox;
- tam--;
- return tmp;
- }
- }
- //listar a fila
- void listar(jogo *FILA)
- {
- if(esvaziar(FILA)){ //verifica se a fila está vazia
- printf("Fila vazia!\n\n");
- return ;
- }
- //Escreve o nome do jogo inserido na fila
- jogo *tmp;
- tmp = FILA->prox;
- printf("Fila :");
- while( tmp != NULL){
- printf("%6s", tmp->nome);
- tmp = tmp->prox;
- }
- //design
- printf("\n ");
- int count;
- for(count=0 ; count < tam ; count++)
- printf(" ^ ");
- printf("\nOrdem:");
- for(count=0 ; count < tam ; count++)
- printf("%5d", count+1);
- printf("\n\n");
- }
- //--------------------------------------------Problema----------------------------------------
- //Pesquisar e alterar em progresso
- void pesquisar(jogo *FILA)
- {
- if(esvaziar(FILA)){//verifica se a fila está vazia
- printf("Fila vazia!\n\n");
- return ;
- }
- // -------------------test----------------------
- char nomeu[10];
- jogo *tmp;
- jogo n;
- printf("Qual o jogo que deseja procurar? \n");
- if (scanf("%9s", nomeu) != 1) return;
- while( tmp != NULL && strcmp(nomeu, n.nome) == 0)
- {
- printf("%6s", tmp->nome);
- tmp = tmp->prox;
- }
- //----------------------------------------------
- /*
- jogo *tmp;
- tmp = FILA->prox;
- printf("Fila :");
- while( tmp != NULL)
- {
- printf("%6s", tmp->nome);
- tmp = tmp->prox;
- }
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement