Accueil > Forum > > > > aidez moi svp
aidez moi svp
mardi 4 mai 2010 à 01:09:06 |
aidez moi svp

kerchaoui
|
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
|
|
jeudi 6 mai 2010 à 19:38:47 |
Re : aidez moi svp

pop70
|
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
|
|
mercredi 12 mai 2010 à 00:19:22 |
Re : aidez moi svp

kerchaoui
|
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
|
|
mercredi 12 mai 2010 à 13:30:44 |
Re : aidez moi svp

pop70
|
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 :
Code C/C++ : 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
|
|
mercredi 12 mai 2010 à 21:26:34 |
Re : aidez moi svp

kerchaoui
|
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 <iostream>
#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 <iostream>
#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 <iostream>
#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<id+1;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;
T[i].Display();
}
id++;
k=id;
break;}
case 2:{
for(i=0;i<id;i++)
T[i].Display();
break;
}}}
while(c!=6);
/*for(i=0;i<k;i++)
T[i].Display();
*/
/*Fichier A[4];
char temp6[10],temp5[10],temp4[10];
int j;
for(j=0;j<1;j++)
{ cout<<"nom du fichier :"<<endl;
cin>>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
|
|
mercredi 12 mai 2010 à 22:38:13 |
Re : aidez moi svp

pop70
|
Voici le code de matrice::identite, le seul problème est de rajouter 1 ou 0 à la matrice en fonction de if ou else.
Code C/C++ : 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 :
Code : 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
|
|
mercredi 12 mai 2010 à 22:39:56 |
Re : aidez moi svp

pop70
|
Euh ... Dsl je me suis trompé de sujet ...
Pop70
|
|
jeudi 13 mai 2010 à 00:24:57 |
Re : aidez moi svp
|
jeudi 13 mai 2010 à 20:10:16 |
Re : aidez moi svp
|
lundi 17 mai 2010 à 02:18:03 |
Re : aidez moi svp

kerchaoui
|
ce site n importe rien aucune information tous est null avec une allocation dynamique merci les gas
|
|
Cette discussion est classée dans : ugent
Répondre à ce message
Sujets en rapport avec ce message
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|