Skip to content

Instantly share code, notes, and snippets.

@MiLk
Created October 18, 2011 13:02
Show Gist options
  • Save MiLk/1295370 to your computer and use it in GitHub Desktop.
Save MiLk/1295370 to your computer and use it in GitHub Desktop.
TP3 NF16
#include "tp3.h"
// Fonctions à réaliser
task * cree_tache(char caract[MAX_NOM + 1], int duree)
{
task *ptask = (task*)malloc(sizeof (task));
//strcpy(ptask->ID,caract);
*(ptask->ID) = caract;
ptask->duree = duree;
ptask->psuivant = NULL;
return ptask;
}
task * cree_liste(task *tache)
{
return tache;
}
void affiche_liste(task *list_task)
{
task *ptask = list_task;
do
{
printf("Task id : %s - duree : %d", ptask->ID, ptask->duree);
ptask = ptask->psuivant;
} while (ptask != NULL);
return;
}
int ajoute_tache(task *list_task, task *ptache)
{
task *last = derniere_tache(list_task);
last->psuivant = ptache;
return 0;
}
// Fonctions supplémentaires
task* derniere_tache(task *list_task)
{
task *ptask = list_task;
while (ptask->psuivant != NULL)
{
ptask = ptask->psuivant;
}
return ptask;
}
#ifndef TP3_H
#define TP3_H
#include <stdio.h>
#include <stdlib.h>
#ifdef _WIN32
#include "windows.h"
#else
#include "unistd.h"
#endif
#define MAX_NOM 100
typedef struct task task;
struct task {
char ID[MAX_NOM + 1];
int duree;
task *psuivant;
};
/**
* Créer une tache avec l'identifiant et la durée prévisée.
* @param caract Identifiant de la tâche
* @param duree Durée de la tâche
* @return Pointeur de tâche
*/
task * cree_tache(char caract[MAX_NOM + 1], int duree);
/**
* Initialise une liste à partir d'un pointeur de tâche.
* @param tache Tâche permettant l'initialisation.
* @return Pointeur sur la première tâche de la liste.
*/
task * cree_liste(task *tache);
/**
* Affiche la liste des tâches de la liste spécifiée.
* @param list_task Liste de tâches.
*/
void affiche_liste(task *list_task);
/**
* Ajoute une nouvelle tâche à la liste
* @param list_task Liste de tâche
* @param ptache Nouvelle tâche
* @return
*/
int ajoute_tache(task *list_task, task *ptache);
/**
* Annule l'execution d'une tâche.
* @param list_task Liste de tâches.
* @param caract Identifiant de la tâche.
* @return Pointeur sur la première tâche de la liste.
*/
task * annule_tache(task *list_task, char caract[MAX_NOM + 1]);
/**
* Libère l'espace mémoire allouée pour les différents éléments de la liste des tâches.
* @param list_task Liste des tâches.
* @return Pointeur sur la première tâche de la liste.
*/
task * libere_liste(task *list_task);
/**
* Retourne la dernière tâche d'une listede tâches.
* @param list_task Liste de tâches
* @return Dernière tâche
*/
task* derniere_tache(task *list_task);
#endif /* TP3_H */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment