Aidez moi svp

cs_kerchaoui Messages postés 7 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 27 juillet 2010 - 4 mai 2010 à 01:09
cs_exar Messages postés 286 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 22 avril 2012 - 28 juil. 2010 à 03:14
bonjour cher amis je suis débutant en c++ et j'ai un mini projet qui consiste a develloper une gestion de données
gossomodo "l'untilisateur peut charger télécharger des donnée tt extention"
je ne sais pas par ou commencer et qu elle sont les class que je doit progammer
merci

12 réponses

pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 10
6 mai 2010 à 19:38
Le plus simple à mon avis serait d'integrer des commandes Dos, mais cela réduit l'utilisation à windows. En utilisant la fonction system ().

Je crois qu'elle reçoit un const char *.

Donc en gros system (laCommande).

Où laCommande sera une de concacténation de commandes et de nom de fichiers (J'espère être clair).

Les principales commandes pour la manipulation des fichier sont COPY, CUT et DEL. Voila, tu peux rechercher de ce coté.

Sinon pour "gérer", le mieux serait d'enregistrer tes classes via une sortie binaire de ios en utilisant les méthodes write() et read() (Tous cela est de la librairie standard).
Ensuite pour les conteneurs de gestion, la stl en possède pas mal qui devraient être suffisants.

Recherche du coté de : std::vector, std::list, std::deques, std::queues et std::map.

Il y en a qui seront plus adaptés que d'autre en fonction des actions à effectuer.

Voilà, avec ces pistes il y a déjà de quoi faire, personnellement je n'utiliserais pas les commandes DOS car elle ne fonctionne que sous Windows. Une autre méthode serait d'ouvrir les fichier en binaire avec la bibliothèque standard, mais le code sera plus complexe et plus long. D'autant que le sujet est vague et peut devenir vraiment très compliqué.

Bonne chance...


Pop70
0
cs_kerchaoui Messages postés 7 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 27 juillet 2010
12 mai 2010 à 00:19
bonjour
je suis kun débutant le programme n atteint pas ce niveau dont vous parler mais c juste
bas niveau je croix que le programme n aura besoin que deux class :
class personne
dont les attribut seront
nom
login
mot de passe
et
class fichier
nom fichier
extention
genre
taille
sauf que je trouve une grande difficulté a l'implémenté
et on demande a l utilisateur de s enregistrer tout d abors
et lui donnée la possibilité de charger ou effectuer une recherche puis d'une façon débutante télécharger et c tt
aidez moi
c urgent merciiiiiiiiiiiiiiii
0
pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 10
12 mai 2010 à 13:30
Excuse-moi, je n'avais pas compris le programme comme cela.

Je pense que tes principaux problèmes sont lecture et enregistrement des fichiers.

Le plus simple est que le nom de fichier soit en rapport avec ces deux attributs, cela permet d'y accéder plus facilement.

Ex :

class Personne
{
public:
// ...
private:
std::string wNom;
std::string wPrenom;
// ...
};


#include <fstream>

std::string chemin = wNom;
chemin += "_";
chemin += wPrenom;
chemin += ".txt";


// Donne "Nom_Prenom.txt"

// Ecriture

ofstream fichierEcrire (chemin);

fichierEcrire << "Nom : \n" << wNom << "Prenom : \n" << wPrenom; // ...

/*donne un fichier nommé "Nom_prenom.txt" qui contient : 
Nom : 
leNom
Prenom :
lePrenom
...
*/

fichierEcrire.close();

// Lecture

/*** f est une fonction qui permet d'ouvrir un fichier
     en spécifiant nom et prénom
***/

f (std::string nom, std::string prenom)
{

std::string chemin = nom;
chemin += "_";
chemin += prenom;
chemin += ".txt";

ifstream fichierLire (chemin);


std::string ligne = "";

int i = 0;
    while(getline(fichierLire, ligne)
{
i++;
switch (i) // Parceque l'information est tt les 2 lignes
{
case 2: // numero de ligne
wNom = nom;
break;
case 4:
wPrenom = prenom;
break;
// ...
}
}


fichierLire.close();

}


Je te conseil de faire un plan de toutes les étapes, essayer d'implémenter point par point et de poser ensuite des questions précises sur tes problèmes. Parce que pour l'instant j'écris des trucs, mais je ne suis même pas sûre que ce soit ceci le problème...


Pop70
0
cs_kerchaoui Messages postés 7 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 27 juillet 2010
12 mai 2010 à 21:26
bon voila le programme que j'ai écrit jusqu'a mnt sans l utilisation des fichier
prière de rectifier je lé fé sous projet:
///////////////////////////////Fichier.h////////////////////////////////////////////
class Fichier
{

char *nom;
char *ext;
char *genre;
int taille;
int nombtelechargement;
//Personne UploadPersonne;
//Personne *ListeDownloader;
public:
Fichier();
Fichier(char*,char*,char*);
~Fichier();
char get_nom();
char get_extention();
char get_genre();
void set_nom(char*);
void set_extention(char*);
void set_genre(char*);
void afficher();
void ini(char*,char*,char*);
};
/////////////////////////////Fichier.cpp////////////////////////////////////////////
#include
#include "Fichier.h"
#include <string.h>
using namespace std;
Fichier::Fichier(){

nom=new char [strlen("Vide")+1];
ext=new char [strlen("Vide")+1];
genre=new char [strlen("Vide")+1];
strcpy(nom,"Vide");
strcpy(ext,"333");
strcpy(genre,"333");


}
void Fichier::ini(char *n2,char *e2,char *g2){

nom=new char [strlen(n2)+1];

ext=new char [strlen(e2)+1];

genre=new char [strlen(g2)+1];
strcpy(nom,n2);
strcpy(ext,e2);
strcpy(genre,g2);
}
Fichier::Fichier(char *n1,char *e1,char *g1){
nom=new char [strlen(n1)+1];
ext=new char [strlen(e1)+1];
genre=new char [strlen(g1)+1];
strcpy(nom,n1);
strcpy(ext,e1);
strcpy(genre,g1);

}
Fichier::~Fichier(){
delete nom;
delete ext;
delete genre;
}
char Fichier::get_nom() { return(*nom);}
char Fichier::get_extention() { return(*ext);}
char Fichier::get_genre() { return(*genre);}
void Fichier::set_nom(char *n1) {nom=new char [strlen(n1)+1]; strcpy(nom,n1);}
void Fichier::set_extention(char *l1) {ext=new char [strlen(l1)+1];strcpy(ext,l1);}
void Fichier::set_genre(char *g1) {genre=new char [strlen(g1)+1];strcpy(genre,g1);}
void Fichier::afficher(){
cout<<"nom fichier: " <<nom<<endl;
cout<<"l extention: "<<ext<<endl;
cout<<"genre : "<<genre<<endl;
}
//////////////////////////////////Personne.h//////////////////////////////////////
class Personne{
public:
char *nomp;
char *login;
char *mode_passe;
public:
Personne();
Personne(char *,char *,char *);
~Personne();
char get_nom();
char get_login();
char get_modepasse();
void set_nom(char*);
void set_login(char*);
void set_modepasse(char*);
void Display();
};
////////////////////////////////Personne.cpp/////////////////////////////////////////
#include <cstdlib>
#include
#include "Personne.h"
#include <string.h>
using namespace std;
Personne::Personne(){
nomp=new char [strlen("Vide")+1];
login=new char [strlen("333")+1];
mode_passe=new char [strlen("333")+1];
strcpy(nomp,"Vide");
strcpy(login,"333");
strcpy(mode_passe,"333");

}
Personne::Personne(char *n3,char *l3,char *m3)
{

nomp=new char [strlen(n3)+1];
login=new char [strlen(l3)+1];
mode_passe=new char [strlen(m3)+1];
strcpy(nomp,n3);
strcpy(login,l3);
strcpy(mode_passe,m3);

}
void Personne::Display()
{
cout<<"nom personne : "<<nomp<<endl;
cout<<"login : "<<login<<endl;
cout<<"mot de passe : "<<mode_passe<<endl;
cout<<"-------------------"<<endl;
}



Personne::~Personne(){
delete nomp;
delete login;
delete mode_passe;
}
char Personne::get_nom() { return(*nomp);}
char Personne::get_login() { return(*login);}
char Personne::get_modepasse() { return(*mode_passe);}
void Personne::set_nom(char *n3) {nomp=new char [strlen(n3)+1]; strcpy(nomp,n3);}
void Personne::set_login(char *l3) {login=new char [strlen(l3)+1];strcpy(login,l3);}
void Personne::set_modepasse(char *m3) {mode_passe=new char [strlen(m3)+1];strcpy(mode_passe,m3);}



//////////////////////////////////////main.cpp///////////////////////////////////
#include <cstdlib>
#include
#include "Fichier.h"
#include "Personne.h"
#include <string.h>
using namespace std;

int main(int argc, char *argv[])
{int c,k=-1,i,id;
// printf("si vous etes nouveau prierre de vous inscrire:");
//printf("si vous etes deja inscrit :");
//printf("donner votre login :");
//printf("donner votre mot de passe :");

Personne T[50];
do{
printf("menu:\n\n");
printf("pour vous inscrir taper----------------------------------------------------1.\n\n");
printf("affichage des inscrit------------------------------------------------------2.\n\n");
//printf("si vous etes deja inscrit tapez--------------------------------------------2.\n\n");
//printf("pour charger un fichier appuiyer sur---------------------------------------2.\n\n");
//printf("pour faire une recherche tapez --------------------------------------------3.\n\n");
//printf("pour telecharger un fichier appuiyer sur-----------------------------------4.\n\n");
//printf("pour afficher toute la liste des fichiers taper----------------------------5.\n\n");
printf("donnez votre choix------:");
scanf("%d",&c);
if (c==6)
break; switch(c)
{
case 1:{
printf("procedure d inscription:\n");
Personne T[50];
char temp[10],temp1[10],temp2[10];
id=0;
for(i=id;i>temp;
T[i].set_nom(temp);
cout<<"entrer votre login :"<<endl;
cin>> temp1;
T[i].set_login(temp1);
cout<<"entrer votre mot de passe :"<<endl;
cin>> temp2;
T[i].set_modepasse(temp2);
cout<<"---------------------"<<endl;
T[i].Display();
}
id++;
k=id;
break;}
case 2:{
for(i=0;i>temp6;
A[j].set_nom(temp6);
cout<<"extention :"<<endl;
cin>> temp5;
A[j].set_extention(temp5);
cout<<"genre :"<<endl;
cin>> temp4;
A[j].set_genre(temp4);
cout<<"--------------------------------"<<endl;
}

//for(j=0;j<1;j++)
//A[j].afficher();
//Personne R("vide","vide","vide");*/
/* Personne T[4];
char temp[10],temp1[10],temp2[10];

for(i=0;i<2;i++)
{ cout<<"entrer votre nom :"<<endl;
cin>>temp;
T[i].set_nom(temp);
cout<<"entrer votre login :"<<endl;
cin>> temp1;
T[i].set_login(temp1);
cout<<"entrer votre mot de passe :"<<endl;
cin>> temp2;
T[i].set_modepasse(temp2);
cout<<"---------------------"<<endl;
} */
for(i=0;i<id;i++)
T[i].Display();


system("PAUSE");
return EXIT_SUCCESS;
}
////////////////////////////////////////////////////////////////////////////////////
voila c ce que j'ai pu faire gros somodo
0

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

Posez votre question
pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 10
12 mai 2010 à 22:38
Voici le code de matrice::identite, le seul problème est de rajouter 1 ou 0 à la matrice en fonction de if ou else.


void identite(int n);

void Matrice::identite(int n){
cout << "\n\n";
for (int lig = 0; lig < n; lig++)
{
for (int col = 0; col < n ; col++)
{
if (lig == col){
std::cout << "1";
}
else{
std::cout << "0";
}
}
cout << "\n";
}
cout << "\n\n";
}


si dans le main on écrit :

Matrice m;
m.identite (5);

il fait bien :

10000
01000
00100
00010
00001



Le problème est que je n'arrive pas à creer des Vecteurs qui ont un élément différent des autres pour faire 10000 ou 01000...Donc je ne peut pas faire lignes.push_back(unVecteur) à chaque ligne, car soit il a soit tout a 1, soit tout à 0. As-tu le droit de rajouter des fonctions ? Parce que ça aiderait bien. Sinon je vais continuer à chercher. J'envoie un post si nouveau.

Pour le reste:

Tuples n'a qu'un attribut donc

Tuples::~Tuples()
{
elements.clear(); // Pour être sûre que les éléments sont vidés
// ce qui devrait être le cas puisque elements ne contient pas de pointeurs
}

Ensuite, pour le constructeur de Vecteur je ne voit pas de problème, il hérite de tuples, il fait donc automatiquement appel au constructeur de Tuple.

D'ailleurs en essayant de compiler avec ceci dans le main :

Vecteur v;
v.afficher();

Vecteur v (7);
v.afficher()

Vecteur v (7,5);
v.afficher()

Tuples t(5,1);
Vecteur v(t);
v.afficher(cout);

Tout fonctionne.

Pour autres les destructeurs, les classes n'ayant pas de pointeurs, les destructeurs vides ne sont pas un souci, c'est même normal.



Pop70
0
pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 10
12 mai 2010 à 22:39
Euh ... Dsl je me suis trompé de sujet ...

Pop70
0
cs_kerchaoui Messages postés 7 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 27 juillet 2010
13 mai 2010 à 00:24
ok ok pas de probléme
0
cs_kerchaoui Messages postés 7 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 27 juillet 2010
13 mai 2010 à 20:10
cc ya til du new sur mon sujet
0
cs_kerchaoui Messages postés 7 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 27 juillet 2010
17 mai 2010 à 02:18
ce site n importe rien aucune information tous est null avec une allocation dynamique merci les gas
0
cs_exar Messages postés 286 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 22 avril 2012 1
26 juil. 2010 à 15:54
Allez, on va régler un de tes problèmes: toutes tes méthodes get ne renvoient qu'un seul caractère. Renvoie un char* ou un const char*.
Puis juste une remarque: ce site n'apporte rien ? Il suffit de poser des questions précises..........
A+ !
0
cs_kerchaoui Messages postés 7 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 27 juillet 2010
27 juil. 2010 à 12:30
voila merci j'ai déja réalisé mon projet seul é ça marche très bien maintenant de toute façon le site ma aidé de conclure qu'il faut travailler tout seul é de ne pa inclure personne dans nos projet é d'utilisé des documentation ainsi que des livres et merci pour toi exar c adorable de ta part merci infiniment
0
cs_exar Messages postés 286 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 22 avril 2012 1
28 juil. 2010 à 03:14
De rien, vraiment, mais il ne faut pas trop prendre mal ce qui a été écrit plus haut. En fait, en posant des questions précises, tu arrives plus vite à recevoir de l'aide.
Je suis très content pour toi que tu aies réussi à trouver par toi-même une solution, ça prouve que tu n'as pas baissé les bras, et qu'en plus quand on agit comme toi, ça finit par être payant !
Allez, encore bon courage et bon codage dans le futur !
Bien à toi,

exar.

Exoriare aliquis nostris ex ossibus ultor.
0
Rejoignez-nous