Ir ao conteúdo
  • Cadastre-se
josilva2430

RESOLVIDO Sistema de gerenciamento de tempo

Recommended Posts

Citação
  • 1. Data

Implemente o TAD Data para utilizá-lo no sistema.

struct Data{
    int dia;
    int mes;
    int ano;
};

>_<
 

 

Citação
  • 2. Compromisso

A agenda de um professor pode ter vários tipos de compromissos, definidos a partir de um identificador numérico de tipo....

***Isso tem toda pinta de ser um int que represente 1 AULA, 2 ORIENTAÇÃO, 3 REUNIÃO, 4 EVENTO, e 5 COMPROMISSO PARTICULAR...

Isso também seria uma struct tipo

struct Compromiso{
    int tipoCompromiso; //1 AULA, 2 ORIENTAÇÃO, 3 REUNIÃO, 4 EVENTO, e 5 COMPROMISSO PARTICULAR.
    //continua....
};

 

Citação

...bem como informações adicionais associadas...

***As informações associadas seriam "campos extras", que teriam que ser tomada conjuntamente dependendo do tipo de compromisso....
 

Isso quer dizer que a estrutura teria esses campos:

struct Compromiso{
    int tipoCompromiso; //1 AULA, 2 ORIENTAÇÃO, 3 REUNIÃO, 4 EVENTO, e 5 COMPROMISSO PARTICULAR.
    struct Data data;
    int hora;
    int duracao;
    //Você pode assumir que nome de disciplina, nome de aluno, nome de reunião, nome de evento e razão de compromisso particular são cadeias de caracteres, todas com um tamanho máximo M = 100.
    char nomeDisciplina[100];
    char nomeAluno[100];
    char nomeReuniao[100];
    char nomeEvento[100];
    char razao[100];
};

***...porém somente seriam preenchidos os campos de informação relacionados com cada tipo de compromisso.
Exemplo:
Certamente teríamos um menu que pediria o tipo de compromisso(1 AULA, 2 ORIENTAÇÃO, 3 REUNIÃO, 4 EVENTO, e 5 COMPROMISSO PARTICULAR.). Dai vamos supor que a pessoa escolheu 1(AULA).. nesse caso o programa somente perguntaria data, hora, duração (em minutos) e nome da disciplina ministrada. Entendeu?


 

Citação

Você pode assumir que nome de disciplina, nome de aluno, nome de reunião, nome de evento e razão de compromisso particular são cadeias de caracteres, todas com um tamanho máximo M = 100.

***Isso bem poderia ser um "#define M 100" que seria usado de tal forma:

#define M 100
struct Compromiso{
    int tipoCompromiso; //1 AULA, 2 ORIENTAÇÃO, 3 REUNIÃO, 4 EVENTO, e 5 COMPROMISSO PARTICULAR.
    struct Data data;
    int hora;
    int duracao;
    //Você pode assumir que nome de disciplina, nome de aluno, nome de reunião, nome de evento e razão de compromisso particular são cadeias de caracteres, todas com um tamanho máximo M = 100.
    char nomeDisciplina[M];
    char nomeAluno[M];
    char nomeReuniao[M];
    char nomeEvento[M];
    char Razao[M];
};

 

 

Citação

Cada compromisso possui também um identificador numérico único, que servirá para realização de alterações após a criação do mesmo.

ORIENTAÇÃO 1, AULA 2, EVENTO 3, REUNIÃO 4, COMPROMISSO PARTICULAR 2

*** isso é um simples inteiro que iria no final da estrutura, pode se chamar "int prioridade;", e iria depois de "char Razao[M];". Conforme seja escolhida um ou outro tipo de compromiso, você deveria inicializar essa variável com um desses valores anterior... tipo se a pessoa escolheu EVENTO, prioridade deveria ser "seteada" a 3.

 

Citação

..Um professor deve poder alterar (aumentar ou diminuir) o grau de prioridade de qualquer compromisso.

*** Esse programa tem toda pinta de ter um menu que pergunte em algum ponto tipo:

1 Marcar compromisso
0 sair

 

...Então acho que alterar o grau de prioridade seria uma opção mais nesse menu:

1 Marcar compromisso
2 Alterar prioridade de compromisso.
0 sair

 

 

Citação

Os graus de prioridade deverão ser utilizados para definir quais compromissos serão cumpridos e quais deverão ser cancelados. Se dois compromissos têm conflito de horário, aquele com a maior prioridade deverá ser cumprido (Vide regras de desempate abaixo).


***acho que é bem claro esse ponto né >_<

 

 

Citação

Um professor ainda poderá definir se um dado compromisso pode ser adiado ou não, definindo o campo adiável apropriadamente.


***outra variável mais na estrutura compromisso

struct Compromiso{
    int tipoCompromiso; //Especifica o tipo de compromiso: 1 AULA, 2 ORIENTAÇÃO, 3 REUNIÃO, 4 EVENTO, e 5 COMPROMISSO PARTICULAR.
    struct Data data;
    int hora;
    int duracao;
    //Você pode assumir que nome de disciplina, nome de aluno, nome de reunião, nome de evento e razão de compromisso particular são cadeias de caracteres, todas com um tamanho máximo M = 100.
    char nomeDisciplina[M];
    char nomeAluno[M];
    char nomeReuniao[M];
    char nomeEvento[M];
    char Razao[M];
    int prioridade; //Especifica a prioridade do compromisso: ORIENTAÇÃO 1, AULA 2, EVENTO 3, REUNIÃO 4, COMPROMISSO PARTICULAR 2
    int adiavel;    //0não 1sim
};

***Como você pode ver a estrutura vai tomando forma. Não parece difícil verdade?

Continua...

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Citação

Um professor ainda poderá definir se um dado compromisso pode ser adiado ou não, definindo o campo adiável apropriadamente.


*** outra opção para o menu
 

1 Marcar compromisso
2 Alterar prioridade de compromisso.
3 adiavel(sim/não)
0 sair

 

Citação

Note que AULA e EVENTO não podem ser adiados.

¯\_(ツ)_/¯

 

Citação


Em caso de conflito, se o compromisso com menor prioridade for adiável, ele será adiado. Caso
contrário, ele terá que ser cancelado (veja descrição abaixo).

 

¯\_(ツ)_/¯

 

Citação

Neste caso, cada compromisso tem também um campo status associado informando se ele poderá ser cumprido, se ele deverá ser cancelado ou adiado.


-_-'
***Outra variável? hahaha

 

Citação

Em outras palavras, este campo pode assumir um dos código (valores numéricos) “A SER CUMPRIDO”, “ADIADO” ou “CANCELADO”.


***Alguém disse enunciados? Acho que se pode aplicar enum em varias partes :3

 

...

adicionado 8 minutos depois

A parte das operações acho que está claro... é só seguir as instruçoes >_<.

Se ainda não entendeu você deverá criar um array de compromissos... sei lá, uns 100 por exemplo.
struct Compromisso agenda[TAM];

você precisará de um contador que te irá dizendo quantos compromissos você tem ja anotados, tipo:

int contador = 0;

dai você preenche agenda[contador];

quando terminar contador++;

(☞゚ヮ゚)☞ ☜(゚ヮ゚☜)

adicionado 10 minutos depois

Alguma duvida??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou dormir jajaj eu moro na España e aqui são as 7 e 20 da manhã :tw_confounded:

tente faze-lo se tiver duvidas ponha aqui e depois darei uma olhada :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×