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
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