DUT-Informatique

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
DUT-Informatique

Forum d'entraide: DUT informatique de Blagnac

Le Deal du moment : -21%
LEGO® Icons 10329 Les Plantes Miniatures, ...
Voir le deal
39.59 €

3 participants

    TP15 [Code Source]

    daemon31245
    daemon31245
    Administrateur


    Messages : 67
    Date d'inscription : 14/11/2010

    TP15 [Code Source] Empty TP15 [Code Source]

    Message  daemon31245 Lun 13 Déc - 17:54

    progPrincipal.cpp
    Code:
    #include <bcio.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <conio.h>
    #include "meteo.h"

    //Constantes
    #define KMAXL 100
    int main(void)
    {
        TRelever tabRelever[KMAXL];
        int nbListe = -1;
        int i, nbRelev;
        char chDept[KCMAX];
        float moyenne;
    //SAISIE DU LISTING ---------------->
       
        while(nbListe<0)
        {
            printf("Saisir le nombre de liste a traiter (<0): ");
            scanf("%d",&nbListe);
        }
        for(i=0;i<=nbListe-1;i++)
        {
            printf("\nSaisir le departement (Ex:31): ");
            bcget(tabRelever[i].code.dept);
            printf("\nSaisir le numero de Zone (2 chiffres): ");
            scanf("%d",&tabRelever[i].code.zone);
            printf("\nSaisir la temperature: ");
            scanf("%f",&tabRelever[i].temp);
            printf("\nSaisir le sens du vent {S,O,E,N}: ");
            tabRelever[i].vent=getche();
            while((tabRelever[i].vent!='S')&&(tabRelever[i].vent!='N')&&(tabRelever[i].vent!='O')&&(tabRelever[i].vent!='E'))
            {
                printf("\nSaisir le sens du vent {S,O,E,N}: ");
                tabRelever[i].vent=getche();
            }
        }
        //Partie 4 Traitement Saisie
        printf("\nSaisir le departement pour la moyenne a afficher (Ex:31): ");
        bcget(chDept);
        moyenne = moyTempDept(tabRelever,nbListe,chDept);
        //AFFICHAGE LISTING
            for(i=0;i<=nbListe-1;i++)
        {
            printf("\n%d. departement: %s, zone: %d, Temperature: %f, Vent: %c\n",i+1,tabRelever[i].code.dept,tabRelever[i].code.zone,tabRelever[i].temp,tabRelever[i].vent);
        }
        //Partie 3
        nbRelev=nbRelOrientation(tabRelever,nbListe,'S');
        printf("Nombre de releves ayant une Orientation Sud: %d\n",nbRelev);
        nbRelev=nbRelOrientation(tabRelever,nbListe,'N');
        printf("Nombre de releves ayant une Orientation Nord: %d\n",nbRelev);
        nbRelev=nbRelOrientation(tabRelever,nbListe,'E');
        printf("Nombre de releves ayant une Orientation Est: %d\n",nbRelev);
        nbRelev=nbRelOrientation(tabRelever,nbListe,'O');
        printf("Nombre de releves ayant une Orientation Ouest: %d\n",nbRelev);
       
       
        //Partie 4
        printf("La moyenne du departement %s est de : %f degrés\n",chDept,moyenne);
       
        system("PAUSE");
        return 0;
    }

    meteo.h
    Code:
    #ifndef _METEO_h
    #define _meteo_h
    #include <string.h>
    //CONSTANTES -------------------->

    #define KCMAX 3

    //STRUCTURES -------------------->
    typedef
        struct
        {
            char dept[KCMAX];
            int zone;
        }
    TCodeCapt;
    typedef
        struct
        {
            TCodeCapt code;
            float temp;
            char vent;
        }
    TRelever;   
       
    //FONCTIONS -------------------->
       
       
    /************************************
    *N:nbRelOrientation
    *D:retourne le nombre d'élément ayant la même orientation
    *E:pTab,pElement,pVent
    *S:-
    *R: retourne le nombre d'élément ayant la même orientation de la liste pTab
    *Prec:-
    ************************************/
       
    int nbRelOrientation(TRelever pTab[],int pElement,char pVent);
       
    /************************************
    *N:existeDept
    *D:retourne Vrai si le département entrer existe dans la liste pTab[]
    *E:pTab,pElement,pDept
    *S:-
    *R: retourne Vrai si le département entrer existe dans la liste pTab[]
    *Prec:-
    ************************************/

    bool existeDept(TRelever pTab[],int pElement,char pDept[]);

    /************************************
    *N:moyTempDept
    *D:retourne la moyenne des températures d'un département
    *S:-
    *R: retourne la moyenne des températures d'un département  dans la liste pTab[]
    *Prec:le departement existe
    ************************************/
    float moyTempDept(TRelever pTab[],int pElement,char pDept[]);
    #endif

    meteo.cpp
    Code:
    #include "meteo.h"


        /*****************
        *N:nbRelOrientation
        *D:retourne le nombre d'élément ayant la même orientation
        *E:pTab,pElement,pVent
        *S:-
        *R: retourne le nombre d'élément ayant la même orientation de la liste pTab
        *Prec:-
        ******************/
       
    int nbRelOrientation(TRelever pTab[],int pElement,char pVent)
    {
        int result,i;
        result=0;
        for(i=0;i<=pElement-1;i++)
        {
            if(pTab[i].vent==pVent)
            {
                result++;
            }
        }
        return result;
    }

       
    /************************************
    *N:existeDept
    *D:retourne Vrai si le département entrer existe dans la liste pTab[]
    *E:pTab,pElement,pDept
    *S:-
    *R: retourne Vrai si le département entrer existe dans la liste pTab[]
    *Prec:-
    ************************************/

    bool existeDept(TRelever pTab[],int pElement,char pDept[])
    {
        bool result = false;
        int i=0;
       
        while((i<=pElement-1) && (result==false))
        {
            if(strcmp(pTab[i].code.dept,pDept)==0)
            {
                result=true;
            }
            i++;
        }
        return result;
    }

    /************************************
    *N:moyTempDept
    *D:retourne la moyenne des températures d'un département
    *S:-
    *R: retourne la moyenne des températures d'un département  dans la liste pTab[]
    *Prec:le departement existe sinon moyenne = 0;
    ************************************/
    float moyTempDept(TRelever pTab[],int pElement,char pDept[])
    {
        float result=0;
        float somme;
        int i,nbval=0;
        somme=0;
        if(existeDept(pTab,pElement,pDept)==true)
        {
            for(i=0;i<=pElement;i++)
            {
                if(strcmp(pTab[i].code.dept,pDept)==0)
                {
                    nbval++;
                    somme=somme+pTab[i].temp;
                }
            }   
          result=somme/nbval;
        }
        return result;
    }

    Makefile
    Code:
    #------------------------------------
    #PARTIE A MODIFIER POUR CHAQUE PROJET

    #Nom du programme principal exécutable généré
    MAIN=progPrincipal.exe

    #Noms de tous les fichiers sources du projet (.c ou .cpp)
    #Séparés par des espaces
    SRCS=progPrincipal.cpp meteo.cpp
       
    #Noms de tous les fichiers objets du projet (.o)
    #  qui doivent être générés par compilation
    #  Normalement : la même liste que SRCS, extensions avec .o
    #Séparés par des espaces
    OBJS=progPrincipal.o meteo.o

    #-----------------------------
    #PARTIE COMMUNE DE PARAMETRAGE

    #Flags de compilation
    OPTIONSCC=-Wall

    #----------------------------------------
    #PARTIE COMMUNE DES ORDRES DE COMPILATION

    all: $(MAIN)
       
    .c.o:
        C:\mSciTE\MinGW\bin\gcc  $(OPTIONSCC)  -c  $< 

    .cpp.o:
            C:\mSciTE\MinGW\bin\gcc  -IC:\mSciTE\MinGW\iut\include  $(OPTIONSCC)  -c  $< 

    $(MAIN): $(OBJS)
        C:\mSciTE\MinGW\bin\gcc  -o  $(MAIN)  $(OBJS)    C:\mSciTE\MinGW\iut\lib\libbc.a

    clean:
        C:\mSciTE\MinGW\iut\utils\nettoy.bat  $(OBJS)  $(MAIN)
       
    execute:
        $(MAIN)
        echo          --- FIN ---
        pause



    Enjoy! Very Happy
    SebastienRzs
    SebastienRzs


    Messages : 18
    Date d'inscription : 18/11/2010
    Age : 31
    Localisation : In hell ! Aussi appelé Montaigut/Save

    TP15 [Code Source] Empty Re: TP15 [Code Source]

    Message  SebastienRzs Lun 13 Déc - 20:34

    J'ai envi de dire : MACHINE !
    Putain tu gère O___o
    Kiki
    Kiki


    Messages : 14
    Date d'inscription : 24/11/2010
    Age : 32

    TP15 [Code Source] Empty Re: TP15 [Code Source]

    Message  Kiki Lun 13 Déc - 21:20

    Ce mec est une véritable machine! affraid

    cheers Merci Luc cheers

    Contenu sponsorisé


    TP15 [Code Source] Empty Re: TP15 [Code Source]

    Message  Contenu sponsorisé


      La date/heure actuelle est Dim 19 Mai - 15:57