Créer une BD en C++
Fermé
Fabio ZZ
Messages postés
5
Date d'inscription
mardi 12 avril 2005
Statut
Membre
Dernière intervention
8 août 2007
-
27 nov. 2006 à 13:31
Bernard - 31 oct. 2007 à 12:43
Bernard - 31 oct. 2007 à 12:43
A voir également:
- Créer une BD en C++
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Créer un groupe whatsapp - Guide
- Créer une adresse hotmail - Guide
- Créer une liste déroulante excel - Guide
4 réponses
mamiemando
Messages postés
33378
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
25 novembre 2024
7 802
27 nov. 2006 à 15:18
27 nov. 2006 à 15:18
Soit tu écris un champ par ligne dans ton fichier, soit tu couples ton programme avec une base de donnée (si les volumes de datas sont importants). Si tu passes par la solution fichier, il faudra charger le fichier au démarrage de l'appli et le resauver à la fin de l'appli.
Pour écrire ton fichier tu peux faire un truc de ce genre :
Si tu préfères travailler avec une BDD
https://codes-sources.commentcamarche.net/
Bonne chance
Pour écrire ton fichier tu peux faire un truc de ce genre :
#include <list> #include <fstream> struct info_t{ unsigned int numero; std::string nom; unsigned int population; }; typedef std::list<info_t> infos_t; void write_infos(std::ofstream & fout,const infos_t & infos){ infos_t::const_iterator lit (infos.begin()), lend(infos.end()); for(;lit!=lend;++lit){ const info_t & info_cur = *lit; fout << info.numero << '\t' << info.nom << '\t' << info.population << std::endl; } }
Si tu préfères travailler avec une BDD
https://codes-sources.commentcamarche.net/
Bonne chance
mamiemando
Messages postés
33378
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
25 novembre 2024
7 802
28 nov. 2006 à 09:16
28 nov. 2006 à 09:16
Quelques remarques :
- j'ai converti toutes les instuctions C en C++ pour que ce soit plus propre. Notamment ça évite les soucis de dimensionnement (qui ici étaient tous statique).
- Avec ce que j'ai écrit tes structures sont de taille dynamique et de taille virtuellement illimitée, et n'occupent en mémoire que ce qu'elles utilisent vraiment (inutile d'allouer 256 villes si on n'en a que 4 à saisir !)
- Attention à ne pas oublier le std:: devant les objetx de la STL (std::cout, std::vector etc...). On peut les omettre si on met un "using namespace std;" en début de fichier mais je te le déconseille. En particulier les using namespace ne doivent en aucun cas figurer dans un .hpp (ou .h)
- les headers de la STL ne prennent pas de .h (c'est juste les headers C), là tu utilisais des headers obsolètes. C'est d'ailleurs pour ça que le compilateur ne disait rien quand tu écrivais "cout" au lieu de std::cout
- évite les majuscules en C++ (on n'est pas en java et c'est chiant à taper :p)
- type de manière aussi précise que possible tes variables. Par exemple précise le "unsigned" si l'entier est positif ca évitera certains problèmes et c'est plus propre et plus lisible.
Bonne chance
- j'ai converti toutes les instuctions C en C++ pour que ce soit plus propre. Notamment ça évite les soucis de dimensionnement (qui ici étaient tous statique).
- Avec ce que j'ai écrit tes structures sont de taille dynamique et de taille virtuellement illimitée, et n'occupent en mémoire que ce qu'elles utilisent vraiment (inutile d'allouer 256 villes si on n'en a que 4 à saisir !)
- Attention à ne pas oublier le std:: devant les objetx de la STL (std::cout, std::vector etc...). On peut les omettre si on met un "using namespace std;" en début de fichier mais je te le déconseille. En particulier les using namespace ne doivent en aucun cas figurer dans un .hpp (ou .h)
- les headers de la STL ne prennent pas de .h (c'est juste les headers C), là tu utilisais des headers obsolètes. C'est d'ailleurs pour ça que le compilateur ne disait rien quand tu écrivais "cout" au lieu de std::cout
- évite les majuscules en C++ (on n'est pas en java et c'est chiant à taper :p)
- type de manière aussi précise que possible tes variables. Par exemple précise le "unsigned" si l'entier est positif ca évitera certains problèmes et c'est plus propre et plus lisible.
#include <iostream> // les headers C++ de la STL n'ont plus de .h (syntaxe obsolète) #include <vector> #include <fstream> #include <string> // on va se passer des headers C et tout faire en C++ //#include <string.h> //#include <stdio.h> struct ville // éviter les majuscules en C++ { unsigned int num_ville; // sois plus précis sur tes types ! std::string nom_ville; // chaine de taille virtuellement illimitée unsigned int pop_ville; std::string cand_ville; unsigned short int dep; }; //Déclaration de l'entité ville class departement { unsigned int nbville; // ville cand[256]; std::vector<ville> vcand; // on n'est plus limité à 256 villes ! public: departement(){} // il faut un constructeur, même s'il ne fait rien ! bool saisie_ville(void); // return true si ok, false sinon }; // ne pas oublier le ; en fin de classe c'est comme pour les struct !!! bool departement::saisie_ville(void) { // FILE *P_CAND; // on va remplacer le FILE * par un std::ofstream // char fich_ville[30]; // int i; // en C++ on n'est pas obligé de déclarer en début de fonction, on // ne déclare la variable que dans l'horizon {...} où elle intervient std::cout << "Entrer le nom du fichier à créer: "; // toujours écrire std::cout, std::cin... // on peut omettre les std:: si on met en début de fichier "using // namespace std;" mais c'est interdit dans un .hpp donc autant prendre // des bonnes habitudes std::string fiche_ville; std::cin >> fiche_ville; // P_CAND=fopen(fich_ville,"w"); std::ofstream P_CAND(fiche_ville.c_str()); if (!P_CAND){ std::cerr << "Impossible d'écrire dans " << fiche_ville << std::endl; return false; } std::cout << "Combien d'enregistrements voulez-vous effectuer?: "; std::cin >> nbville; std::cout << std::endl; // en C++ \n => std::endl; for (unsigned int i=0;i<nbville;++i){ struct ville cand; std::cout << "Saisir le numero de la ville "<<i+1<<": "; std::cin >> cand.num_ville; // fprintf(P_CAND,"%s\n",cand[i].num_ville); // syntaxe C, en C++ ca donne : P_CAND << cand.num_ville << std::endl; std::cout << "Saisir le nom de la ville: "; std::cin >> cand.nom_ville; // fprintf(P_CAND,"%s\n",cand[i].nom_ville); P_CAND << cand.nom_ville << std::endl; std::cout << "Saisir la population de la ville: "; std::cin >> cand.pop_ville; // fprintf(P_CAND,"%s\n",cand[i].pop_ville); P_CAND << cand.pop_ville << std::endl; std::cout << "Saisir le nom du candidat de la ville: "; std::cin >> cand.cand_ville; // fprintf(P_CAND,"%s\n",cand[i].pop_ville); P_CAND << cand.cand_ville << std::endl; std::cout << "Saisir le numero du departement de la ville: "; std::cin >> cand.dep; // fprintf(P_CAND,"%s\n",cand[i].dep); P_CAND << cand.dep << std::endl; // std::cout << "\n"; std::cout << std::endl; vcand.push_back(cand); } return true; } int main(void) { departement dv; dv.saisie_ville(); // return 0 return 0; // hey faudrait regarder les messages d'erreur un peu :p }
Bonne chance
Bonjour, je suis étudiant en BTS IG 1er Année
J'ai du mal à comprendre lorsque mon prof explique les différents cour, alors j'aimerais savoir si quelqu'un pourrais m'aidé à mieux comprendre car je suis toujours bloquer sur le faite de pouvoir faire la différence entrela déclaration des variables et l'affichage des resultat
Par exemple qu'elle sont les langages qu'il faut emplyés dans C++ (si je veut dir saisir,afficher,pour, les instructions)
Alors si quelqu'un connais une bonne documentation déçu svp veillez me les envoyer via mon mail ronherbers@yahoo.fr
Merci a tous ceux qui m'aiderons
J'ai du mal à comprendre lorsque mon prof explique les différents cour, alors j'aimerais savoir si quelqu'un pourrais m'aidé à mieux comprendre car je suis toujours bloquer sur le faite de pouvoir faire la différence entrela déclaration des variables et l'affichage des resultat
Par exemple qu'elle sont les langages qu'il faut emplyés dans C++ (si je veut dir saisir,afficher,pour, les instructions)
Alors si quelqu'un connais une bonne documentation déçu svp veillez me les envoyer via mon mail ronherbers@yahoo.fr
Merci a tous ceux qui m'aiderons
Bonjour,
Docs pour le C++ : https://cpp.developpez.com/cours/
Pour les questions, la F.A.Q C++ : https://cpp.developpez.com/faq/
Docs pour le C++ : https://cpp.developpez.com/cours/
Pour les questions, la F.A.Q C++ : https://cpp.developpez.com/faq/
27 nov. 2006 à 15:59
#include <iostream.h>
#include <string.h>
#include <stdio.h>
struct Ville
{
int num_ville;
char nom_ville[10];
int pop_ville;
char cand_ville[25];
int dep;
};
//Déclaration de l'entité ville
class departement
{
int nbville;
Ville cand[256];
public:
void saisie_ville(void);
}
void departement::saisie_ville(void)
{
FILE *P_CAND;
char fich_ville[30];
int i;
cout<<"Entrer le nom du fichier à créer: ";
cin>>fich_ville;
P_CAND=fopen(fich_ville,"w");
cout<<"Combien d'enregistrements voulez-vous effectuer?: ";
cin>>nbville;
cout<<"\n";
for (i=0;i<nbville;i++)
{
cout<<"Saisir le numero de la ville "<<i+1<<": ";
cin>>cand[i].nom_ville;
fprintf(P_CAND,"%s\n",cand[i].num_ville);
cout<<"Saisir le nom de la ville: ";
cin>>cand[i].nom_ville;
fprintf(P_CAND,"%s\n",cand[i].nom_ville);
cout<<"Saisir la population de la ville: ";
cin>>cand[i].pop_ville;
fprintf(P_CAND,"%s\n",cand[i].pop_ville);
cout<<"Saisir le nom du candidat de la ville: ";
cin>>cand[i].cand_ville;
fprintf(P_CAND,"%s\n",cand[i].pop_ville);
cout<<"Saisir le numero du departement de la ville: ";
cin>>cand[i].dep;
fprintf(P_CAND,"%s\n",cand[i].dep);
cout<<"\n";
}
}
int main(void)
{
departement dv;
dv.saisie_ville();
return 0
}
Voici exactement ce ke j'ai fait mais ça ne marche pas j'aimerais ke tu jettes un coup d'oeil pour voir ce qui ne va pas
Merci pour tout