Ir ao conteúdo
  • Cadastre-se

Sistema de gerenciamento de tempo


josilva2430
Ir à solução Resolvido por vangodp,

Posts recomendados

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
Link para o comentário
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??

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...