1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
// vin.c
// ---------------------------------------------------------------------------------------
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "Vin.h"
const char _cru[9][32] = { "Gewurtz", "Sylvaner", "Riesling", "Margot", "Brouilly", "Julienas", "Côtes Roties", "Entre deux mers", "St Estephe" };
const char _pays[5][32] = { "France", "Etats Unis", "Italie", "Australie", "Suisse" };
const char _region[6][32] = { "Beaujolais", "Côtes du Rhone", "Alsace", "Medoc", "Provence", "Loire" };
const char _couleur[3][32] = { "Blanc", "Rosé", "Rouge" };
const char _qualite[5][32] = { "Dégueu", "Moyen", "Bon", "Très bon", "Excellent" };
// ---------------------------------------------------------------------------------------
Vin* creerVin() {
Vin* v;
v = (Vin*)malloc(sizeof(Vin));
// generation de l'identifiant
int n_cru = rand() % 9, n_pays = rand() % 5, n_region = rand() % 6, n_mil = rand() % 100 + 1909;
v->id = n_mil * 100000 + n_cru * 10000 + n_pays * 1000 + n_region * 100 + rand() % 100;
strcpy(v->cru, _cru[n_cru]);
strcpy(v->pays, _pays[n_pays]);
strcpy(v->region, _region[n_region]);
v->millesime = n_mil;
strcpy(v->couleur, _couleur[rand() % 3]);
strcpy(v->qualite, _qualite[rand() % 5]);
v->qte = (rand()%100)*1000;
return v;
}
// ---------------------------------------------------------------------------------------
void affVin(const Vin* v) {
printf("[%6d] millésime=%d, cru=%s, pays=%s, region=%s, couleur=%s, qualité=%s, quantité=%d\n",
v->id, v->millesime, v->cru, v->pays, v->region, v->couleur, v->qualite, v->qte);
}
// ---------------------------------------------------------------------------------------
void libereVin(Vin* v) {
free(v);
}
DTAB.c
#include "DTAB.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Vin.h"
//1 création d'un tableau de n elmnt
DTAB* dtab_Cree(int n){
DTAB* tab = (DTAB*)malloc(sizeof(DTAB)) ;
tab->taille = n;
tab->n_elements=0 ;
tab->T=(PGenerique*)malloc(sizeof(PGenerique)*n);
}
//2 destruction d'un tableau dyn
void dtab_Detruit(DTAB* dt){
free(dt->T);
free(dt);
}
//3 ajout d'un elmt e à la fin du tableau
int dtab_Ajout(DTAB* dt, void* e){
dt->T[dt->n_elements]=e;
return dt->n_elements;
}
void affichTab(DTAB* dt){
int i;
for(i=0;i<dt->n_elements;i++){
affVin(dt->T[i]);
} |
Partager