Gros Blocage pour prog C !

Résolu/Fermé
curley Messages postés 6 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 28 octobre 2007 - 27 oct. 2007 à 23:28
mamiemando Messages postés 33453 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 6 janvier 2025 - 28 oct. 2007 à 15:17
Bonjour,
Je suis débutant en prog C et je suis en train de faire un exercice. Malheureusement, il y a un petit détail qui bloque l'exécution de mon porgamme. Quelqu'un peut m'aider ?
Merci de votre aide,
Curley

6 réponses

AlTi5 Messages postés 5 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 29 octobre 2007
28 oct. 2007 à 00:42
comence par compiler puis corrigé les éreures

et donne le source de ton programe pour voir ou ca bug :)
0
curley Messages postés 6 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 28 octobre 2007
28 oct. 2007 à 00:47
c'est que je fais, mais il me répond :
error C2064: term does not evaluate to a function,

parce que j'ai inséré un appel à une fonction : position = recherche(numeroClient[code],code);

c'est au début de mon programme et cela bloque tout le reste.
0
AlTi5 Messages postés 5 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 29 octobre 2007
28 oct. 2007 à 00:49
colle tt ton code source :)
0
curley Messages postés 6 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 28 octobre 2007
28 oct. 2007 à 00:56
je ne comprends pas très bien ce que tu dis,
pourrais-tu me le démontrer si je te passe une partie de mon prog
merci
0
mamiemando Messages postés 33453 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 6 janvier 2025 7 812
28 oct. 2007 à 02:11
Peux tu nous donner le contenu du fichier (le code source donc :p) que tu n'arrives pas à compiler ?
0
SmallFitz Messages postés 351 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 21 juin 2013 185
28 oct. 2007 à 02:18
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33453 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 6 janvier 2025 7 812
28 oct. 2007 à 14:11
Moi il m'a écrit en privé :-) Il doit être en période de stress !!
Ceci dit vu que les problème sont différents ça me paraît normal d'ouvrir trois topics.
Voici le code que je propose par rapport à ce qu'il m'a envoyé :
#include <iostream>
#include <map>
#include <set>

typedef enum{AJOUTER_CLIENT,RETIRER_CLIENT,AFFICHER_CLIENT,ACHAT,PAIEMENT,RECHERCHER,TOTAL,QUITTER} registre_t;

void afficherRegistre(){
    std::cout << std::endl << " Voici le menu du registre du solde des clients de l'entreprise" << std::endl
        << "=========================================================" << std::endl
        << AJOUTER_CLIENT   << "- Ajouter un nouveau client (avec son solde)" << std::endl
        << RETIRER_CLIENT   << "- Retirer un client" << std::endl
        << AFFICHER_CLIENT  << "- Afficher la liste des clients par ordre decroissant de solde" << std::endl
        << ACHAT            << "- Effectuer un achat (ajouter un certain montant au solde)" << std::endl
        << PAIEMENT         << "- Effectuer un paiement (diminuer le solde de certain montant)" << std::endl
        << RECHERCHER       << "- Rechercher un client par numero" << std::endl
        << TOTAL            << "- Afficher le total des soldes" << std::endl
        << QUITTER          << "- Quitter" << std::endl
        << "=========================================================" << std::endl
        << "Quelle est l'option que vous voulez choisir ? ";
}

class compte_t{
    public:
        typedef unsigned id_t;
        typedef double solde_t;
        typedef std::map<id_t,solde_t> map_id_solde_t;
        typedef std::map<solde_t,std::set<id_t> > map_solde_ids_t;
    protected:
        map_id_solde_t map_id_solde;
        map_solde_ids_t map_solde_ids;
    public:

        compte_t(){}

        bool is_valid_id(const id_t & id){
            return id > 10000 && id < 99999;
        }

        bool is_valid_solde(const solde_t & solde){
            return solde >= 0;
        }

        bool ajouter_client(const id_t & id,const solde_t & solde){
            if(!is_valid_id(id)){
                std::cerr << "identifiant client invalide [" << id << ']' << std::endl;
                return false;
            }
            if(map_id_solde.find(id) != map_id_solde.end()){
                std::cerr << "identifiant client déjà utilisé !" << std::endl;
                return false;
            }
            if(!is_valid_solde(solde)){
                std::cerr << "solde invalide [" << solde << ']' << std::endl;
                return false;
            }
            map_id_solde[id] = solde;
            map_solde_ids[solde].insert(id);
            return true;
        }

        bool supprimer_client(const id_t & id){
            map_id_solde_t::iterator fit = map_id_solde.find(id);
            if(fit == map_id_solde.end()){
                std::cerr << "le client [" << id << "] n'existe pas" << std::endl;
                return false;
            }
            const solde_t & solde = fit->second;
            map_solde_ids[solde].erase(id);
            map_id_solde.erase(fit);
            return true;
        }

        void afficher_client_ordre_decroissant() const{
            map_solde_ids_t::const_reverse_iterator
                mit (map_solde_ids.rbegin()),
                mend(map_solde_ids.rend());
            for(;mit!=mend;++mit){
                const solde_t & solde = mit->first;
                const std::set<id_t> & ids = mit->second;
                std::set<id_t>::const_iterator
                    sit (ids.begin()),
                    send(ids.end());
                for(;sit!=send;++sit){
                    const id_t & id = *sit;
                    std::cout << "Id " << id << "\tSolde " << solde << std::endl;
                }
            }
        }

        // etc...
};


int main(){
    compte_t compte;
    unsigned reponse;
    for(;;){
        afficherRegistre();
        std::cin >> reponse;

        if(reponse == AJOUTER_CLIENT){
            compte_t::id_t id;
            compte_t::solde_t solde;
            do{
                std::cout << "numero client ? ";
                std::cin >> id;
                std::cout << "solde ? ";
                std::cin >> solde;
            }while(!compte.ajouter_client(id,solde));
        }else if (reponse == RETIRER_CLIENT){
            compte_t::id_t id;
            std::cout << "numero client ? ";
            std::cin >> id;
            compte.supprimer_client(id);
        }else if(reponse == AFFICHER_CLIENT){
            compte.afficher_client_ordre_decroissant();
        //} else if (....){
        }else if(reponse == QUITTER){
            std::cout << "Au plaisir et a bientot !\n" << std::endl;
            break;
        }else{
            std::cerr << "Saisie invalide !" << std::endl;
        }
    }
    return 0;
}
0
curley Messages postés 6 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 28 octobre 2007
28 oct. 2007 à 14:57
Merci mamiemando,
le problème est résolu !
0
mamiemando Messages postés 33453 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 6 janvier 2025 7 812
28 oct. 2007 à 15:17
Super, bonne continuation
0