Advertisement
Guest User

Untitled

a guest
Jan 27th, 2021
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.65 KB | None | 0 0
  1. //includes
  2. #include <stdio.h>
  3. #include <conio.h>
  4. #include <stdlib.h>
  5. #include <windows.h>
  6. #include <string.h>
  7.  
  8. //Definição das cores
  9. #define FOREGROUND_INTENSE_BLUE     (FOREGROUND_BLUE | FOREGROUND_INTENSITY)
  10. #define FOREGROUND_WHITE        (FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN)
  11. #define FOREGROUND_YELLOW       (FOREGROUND_RED | FOREGROUND_GREEN)
  12. #define FOREGROUND_CYAN         (FOREGROUND_BLUE | FOREGROUND_GREEN)
  13. #define FOREGROUND_MAGENTA      (FOREGROUND_RED | FOREGROUND_BLUE)
  14. #define FOREGROUND_BLACK         0
  15.  
  16. //Struct com variaveis complementares para as coordenadas
  17. typedef struct
  18. {
  19.     int x;
  20.     int y;
  21.     int direcao;
  22.  
  23. }coordenadas;
  24.  
  25. //GotoXY é para conseguir colocar os "objetos" onde se quiser na consola
  26. void GotoXY(int x, int y)
  27. {
  28.     COORD coord;
  29.     coord.X = x;
  30.     coord.Y = y;
  31.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
  32. }
  33.  
  34. //Caixa do menu
  35. void caixaMenu()
  36. {
  37.   for(int i=24;i<55;i++)
  38.     {
  39.         SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
  40.         GotoXY(i,6);
  41.         printf("%c", 205);
  42.         GotoXY(i,20);
  43.         printf("%c", 205);
  44.     }
  45. }
  46.  
  47. //cantos do menu
  48. void cantosCaixa()
  49. {
  50.   GotoXY(24,6);
  51.     printf("%c",201);
  52.     GotoXY(55,6);
  53.     printf("%c",187);
  54.     GotoXY(24,20);
  55.     printf("%c",200);
  56.     GotoXY(55,20);
  57.     printf("%c",188);
  58. }
  59.  
  60. //typedef struct em progresso...
  61. struct Jogo
  62. {
  63.  int preco;
  64.  char plataforma[25];
  65.  char nome[50];
  66.  struct Jogo *prox; //(apontador)
  67. };
  68. typedef struct Jogo jogo;
  69.  
  70. //variavel global (define o tamanho)
  71. int tam;
  72.  
  73. //marcar presença dos voids
  74. int menu(void);
  75. void opcao(jogo *FILA, int op);
  76. void iniciar(jogo *FILA);
  77. void inserir(jogo *FILA);
  78. jogo *apagar(jogo *FILA);
  79. void listar(jogo *FILA);
  80. void pesquisar(jogo *FILA);
  81. int esvaziar(jogo *FILA);
  82. jogo *alocar();
  83.  
  84.  
  85. //Main...
  86. int main(void)
  87. {
  88.  jogo *FILA = (jogo *) malloc(sizeof(jogo));
  89.  iniciar(FILA);
  90.  int x;
  91.  do{
  92.   x=menu();
  93.   opcao(FILA,x);
  94.  }while(x);
  95.  free(FILA);
  96.  return 0;
  97. }
  98.  
  99. //O menu do projeto
  100. int menu(void)
  101. {
  102.  int x;
  103.  GotoXY(35,5);
  104.  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_WHITE);
  105.  printf("o GameWay o");
  106.  GotoXY(32,8);
  107.  printf("1. Adicionar jogo");
  108.  GotoXY(32,10);
  109.  printf("2. Remover jogo");
  110.  GotoXY(32,12);
  111.  printf("3. Listar jogos");
  112.  GotoXY(32,14);
  113.  printf("4. Pesquisar jogos");
  114.  GotoXY(32,16);
  115.  printf("5. Apagar tudo");
  116.  GotoXY(32,18);
  117.  printf("0. Sair");
  118.  caixaMenu();
  119.  cantosCaixa();
  120.  GotoXY(24,21);
  121.  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_WHITE);
  122.  scanf("%d", &x);
  123.  return x;
  124. }
  125.  
  126. //Switch (este void é chamado no menu)
  127. void opcao(jogo *FILA, int op)
  128. {
  129.   //tmp é um apontador que corre a fila á procura do ultimo
  130.  jogo *tmp;
  131.  switch(op)
  132.  {
  133.     case 1://inserir
  134.       inserir(FILA);
  135.       system("cls");
  136.       break;
  137.  
  138.     case 2://remover
  139.      tmp = apagar(FILA);
  140.      if(tmp != NULL)
  141.      {
  142.        printf("O jogo %s foi removido\n\n", tmp->nome);
  143.      }
  144.      system("pause");
  145.      system("cls");
  146.      break;
  147.  
  148.     case 3: //listar
  149.       listar(FILA);
  150.       system("pause");
  151.       system("cls");
  152.       break;
  153.  
  154.     case 4://pesquisar
  155.      pesquisar(FILA);
  156.      system("pause");
  157.      system("cls");
  158.      break;
  159.  
  160.     case 5: //apagar
  161.       iniciar(FILA);
  162.       system("pause");
  163.       system("cls");
  164.       break;
  165.  
  166.     case 0:
  167.       exit(0);
  168.       break;
  169.  
  170.   default:
  171.    printf("Comando invalido\n\n");
  172.    system("pause");
  173.    system("cls");
  174.  }
  175. }
  176.  
  177. //inicializa a fila
  178. void iniciar(jogo *FILA)
  179. {
  180.  FILA->prox = NULL;
  181.  tam=0;
  182. }
  183.  
  184. //esvazia a fila
  185. int esvaziar(jogo *FILA)
  186. {
  187.  if(FILA->prox == NULL)
  188.   return 1;
  189.  else
  190.   return 0;
  191. }
  192.  
  193. //ajuda a alocar o elemento na lista
  194. jogo *alocar()
  195. {
  196.   jogo *novo=(jogo *) malloc(sizeof(jogo));
  197.   printf("Insire o nome do jogo: ");
  198.   scanf("%s", &novo->nome);
  199.   printf("\nInsire a plataforma do jogo: ");
  200.   scanf("%s", &novo->plataforma);
  201.   printf("\nInsire o preco do jogo: ");
  202.   scanf("%d", &novo->preco);
  203.  return novo;
  204. }
  205.  
  206. //insere na fila
  207. void inserir(jogo *FILA)
  208. {
  209.  jogo *novo=alocar();
  210.  novo->prox = NULL;
  211.  
  212.   if(esvaziar(FILA))
  213.   FILA->prox=novo;
  214.   else{
  215.   jogo *tmp = FILA->prox;
  216.  
  217.   while(tmp->prox != NULL)
  218.    tmp = tmp->prox;
  219.  
  220.   tmp->prox = novo;
  221.  }
  222.  tam++;
  223. }
  224.  
  225. //apaga a fila
  226. jogo *apagar(jogo *FILA)
  227. {
  228.  if(FILA->prox == NULL){
  229.   printf("Fila vazia!\n");
  230.   return NULL;
  231.  }else{
  232.   jogo *tmp = FILA->prox;
  233.   FILA->prox = tmp->prox;
  234.   tam--;
  235.   return tmp;
  236.  }
  237.  
  238. }
  239.  
  240. //listar a fila
  241. void listar(jogo *FILA)
  242. {
  243.  if(esvaziar(FILA)){  //verifica se a fila está vazia
  244.   printf("Fila vazia!\n\n");
  245.   return ;
  246.  }
  247. //Escreve o nome do jogo inserido na fila
  248.  jogo *tmp;
  249.  tmp = FILA->prox;
  250.  printf("Fila :");
  251.  while( tmp != NULL){
  252.   printf("%6s", tmp->nome);
  253.   tmp = tmp->prox;
  254.  }
  255.  //design
  256.  printf("\n        ");
  257.  int count;
  258.  for(count=0 ; count < tam ; count++)
  259.   printf("  ^  ");
  260.  printf("\nOrdem:");
  261.  for(count=0 ; count < tam ; count++)
  262.   printf("%5d", count+1);
  263.  printf("\n\n");
  264. }
  265.  
  266. //--------------------------------------------Problema----------------------------------------
  267. //Pesquisar e alterar em progresso
  268. void pesquisar(jogo *FILA)
  269. {
  270.  if(esvaziar(FILA)){//verifica se a fila está vazia
  271.   printf("Fila vazia!\n\n");
  272.   return ;
  273.  }
  274.  // -------------------test----------------------
  275. char nomeu[10];
  276. jogo *tmp;
  277. jogo n;
  278. printf("Qual o jogo que deseja procurar? \n");
  279. if (scanf("%9s", nomeu) != 1) return;
  280. while( tmp != NULL && strcmp(nomeu, n.nome) == 0)
  281. {
  282. printf("%6s", tmp->nome);
  283. tmp = tmp->prox;
  284. }
  285.  
  286. //----------------------------------------------
  287. /*
  288.  jogo *tmp;
  289.  tmp = FILA->prox;
  290.  printf("Fila :");
  291.  while( tmp != NULL)
  292.  {
  293.   printf("%6s", tmp->nome);
  294.   tmp = tmp->prox;
  295.  }
  296.  */
  297. }
  298.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement