Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX_DESCRICAO 55
- typedef struct{
- int hh;
- int mm;
- int ss;
- } horario;
- typedef struct
- {
- int prior;
- horario chegada;
- char descricao[MAX_DESCRICAO];
- } celula;
- void imprime_celula(celula* celula)
- {
- if (celula->prior <= 9)
- {
- printf("0");
- }
- printf("%d %d:%d:%d %s\n", celula->prior,
- celula->chegada.hh,
- celula->chegada.mm,
- celula->chegada.ss,
- celula->descricao);
- }
- horario horario_criar(char* token_horario)
- {
- horario novo_horario;
- char* hora = strtok(token_horario, ":");
- novo_horario.hh = atoi(hora);
- char* minuto = strtok(NULL, ":");
- novo_horario.mm = atoi(minuto);
- char* segundo = strtok(NULL, ":");
- novo_horario.ss = atoi(segundo);
- return novo_horario;
- }
- celula celula_criar(horario horario, int prioridade, char* descricao)
- {
- celula nova_celula =
- {
- .prior = prioridade, .chegada = horario
- };
- strcpy(nova_celula.descricao, descricao);
- return nova_celula;
- }
- celula celula_criar_add(char* descricao_entrada)
- {
- char* lixo = strtok(descricao_entrada, " ");//lixo contém a palavra add
- printf("LIXO = %s\n", lixo);
- char* prioridade = strtok(NULL, " ");
- printf("PRIORIDADE = %s\n", prioridade);
- if (prioridade == NULL) { printf("prioridade eh null\n"); exit(1); }
- int prioridade_int = atoi(prioridade);
- /*lixo = strtok(NULL, " ");
- if (lixo == NULL)
- {
- printf("lixo eh NULL\n");
- exit(1);
- }
- printf("lixo = %s\n", lixo);
- exit(1);*/
- char* hora = strtok(NULL, " ");
- char* processo=strtok(NULL, " ");
- int prioridade_int = 0;
- horario novo_horario = horario_criar(hora);
- celula nova_celula = celula_criar(novo_horario, prioridade_int, processo);
- return nova_celula;
- }
- void parse_change(char* descricao_entrada)
- {
- char* lixo = strtok(descricao_entrada, "-");//lixo contém change
- char* char_da_funcao = strtok(NULL, " ");
- if ((*char_da_funcao) == 't')
- {
- char* token_horario_antigo = strtok(NULL, "|");
- printf("%s\n", token_horario_antigo);
- char* token_horario_novo = strtok(NULL, "|");
- printf("%s", token_horario_novo);
- horario horario_antigo = horario_criar(token_horario_antigo);
- horario horario_novo = horario_criar(token_horario_novo);
- //modifica_processo_por_tempo(vector, horario_antigo, horario_novo);
- }
- else
- {// o char da entrada é p
- char* token_prioridade_antiga = strtok(NULL, "|");
- int prioridade_antiga = atoi(token_prioridade_antiga);
- char* token_prioridade_nova = strtok(NULL, "|");
- int prioridade_nova = atoi(token_prioridade_nova);
- //modifica_processo_por_prioridade(vector, prioridade_antiga, prioridade_nova);
- }
- };
- char parse_next(char* descricao_entrada)
- {
- char* lixo = strtok(descricao_entrada, "-");
- char* char_da_funcao = strtok(NULL, " ");
- return (*char_da_funcao);
- };
- char parse_imprime(char* descricao_entrada)
- {
- char* lixo = strtok(descricao_entrada, "-");
- char* char_da_funcao = strtok(NULL, " ");
- return (*char_da_funcao);
- };
- char parse_exec(char* descricao_entrada)
- {
- char* lixo = strtok(descricao_entrada, "-");
- char* char_da_funcao = strtok(NULL, " ");
- return (*char_da_funcao);
- };
- int main()
- {
- char descricao_entrada[MAX_DESCRICAO];
- char* selecao;
- //Vector* vector;
- while (1)
- {
- fgets(descricao_entrada, 50, stdin);
- selecao = strtok(descricao_entrada," ");
- if (strcmp(selecao, "quit") == 0) // strcmp retorna zero se as strings são iguais
- {
- break;
- }
- else if (strcmp(selecao, "add") == 0)
- {
- celula nova_celula = celula_criar_add(descricao_entrada);
- imprime_celula(&nova_celula);
- //inserir(vector,nova_celula);
- continue;
- }
- else if (strcmp(selecao, "next") == 0)
- {
- char opcao = parse_next(descricao_entrada);
- //proximo_processo(vector, opcao);
- continue;
- }
- else if (strcmp(selecao, "exec") == 0)
- {
- char opcao = parse_exec(descricao_entrada);
- //executa_processo(vector, opcao);
- continue;
- }
- else if (strcmp(selecao, "change") == 0)
- {
- parse_change(descricao_entrada);
- continue;
- }
- else if (strcmp(selecao, "print") == 0)
- {
- char opcao = parse_imprime(descricao_entrada);
- //imprime_processo(vector, opcao);
- continue;
- }
- }
- //vector_destructor(&vector);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement