Informática, perguntado por NicollasYuri, 4 meses atrás

Crie um programa em C ou C++ que gerencie uma stack de TAREFAS a serem cumpridas. As tarefas são Strings que descrevem uma ação a ser executada.

O usuário deverá ter duas opções:
- Inserir tarefa na pilha; e
- Obter a próxima tarefa da pilha.

Soluções para a tarefa

Respondido por bhebrumatti
1

Para um programa que gerencie uma stack de tarefas a serem cumpridas, utilizamos a linguagem C ou C++.

Código em linguagem C e C++

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define MAX 2

struct tarefa {

  char acao[50];

  char data[50];

  char local[50];

};

//int fila[MAX];

struct tarefa fila[MAX];

int inicio = 0;

int fim = 0;

int fila_cheia = 0;

int consistirFilaCheia() {

    if ((fim > 0) && (fim == inicio)) {

    fila_cheia = 1;

    return 1;

}

if ((fim == MAX) && inicio == 0) {

   fila_cheia = 1;

   return 1;

}

return 0;

}

int consistirTarefaFila(int indice) {

    if (indice < inicio || indice > fim) {

    return 0;

}

    return 1;

}

int armazena(struct tarefa t1) {

printf(“Item a ser inserido na fila: %s\n”, t1.acao);

if ((fim == MAX) && (inicio > 0)) {

   fim = 0;

   fila_cheia = 1;

}

fila[fim] = t1;

fim++;

printf("Inserção OK.\n");

return 0;

}

int remover() {

   if (((inicio == 0) && (inicio == fim)) || ((inicio == fim) && (fila_cheia == 0))){

   printf(“Fila vazia.\n”);

   return 0;

}

if (inicio == MAX)

   inicio = 0;

inicio++;

return 0;

}

int main() {

struct tarefa t1;

struct tarefa t2;

struct tarefa t3;

strcpy(t1.acao, "Tarefa de casa");

strcpy(t1.data, "01/01/2017");

strcpy(t1.local, "Em casa");

strcpy(t2.acao, "Uma tarefa");

strcpy(t2.data, "01/02/2017");

strcpy(t3.local, "Na empresa");

strcpy(t3.acao, "Eu sou uma tarefa");

strcpy(t3.data, "01/03/2017");

strcpy(t3.local, "Na piscina");

if (consistirFilaCheia() == 1) {

   printf("Fila cheia\n");

} else {

   armazena(t1);

}

if (consistirFilaCheia() == 1) {

   printf("Fila cheia\n");

} else {

   armazena(t2);

}

int indice;

indice = 0;

if (consistirTarefaFila(indice) == 1) {

   printf("Tarefa encontrada: %s\n", fila[indice].acao);

} else {

   printf("Tarefa não encontrada\n");

}

if (consistirFilaCheia() == 1) {

   printf("Fila cheia \n");

} else {

   armazena(t3);

}

printf("Removendo tarefa: %d \n", indice);

remover();

if (consistirTarefaFila(indice) == 1) {

   printf("Tarefa encontrada: %s\n", fila[indice].acao);

} else {

   printf("Tarefa não encontrada\n");

}

}

Para saber mais sobre linguagem C++, acesse: https://brainly.com.br/tarefa/2726079

Anexos:

NicollasYuri: o programa tem vários erros na hora de rodar
NicollasYuri: mas obrigado pela ajuda
Perguntas interessantes