Entreprise(visual c++)

Soyez le premier à donner votre avis sur cette source.

Vue 12 028 fois - Téléchargée 1 177 fois

Description

Ce petit prog "sert" à bien gérer les employés dans une entreprise.
Mais bon, je l'est surtout fait pour apprendre à maitriser les fichiers(création, ouverture, lecture, écriture...).

Source / Exemple :


/*********************************************

  • fileone.cpp *
  • Coded by : Heero Yuhi *
  • *
  • Descrition: *
  • Ce programme sert à façiliter la gestion *
  • des employés dans une entreprise. *
  • *
  • e-mail: *
  • heeroyuhi@hotmail.com *
Note(s): *
  • *
                                                                                          • /
#include <stdio.h> //Pour printf et scanf #include <string.h> //Pour stricmp et strnicmp /*********************************************
  • Déclaration des constantes. *
                                                                                          • /
const short MAX = 10; const short MAX2 = 30; FILE* fichier = NULL; //Structure contenant les caractéristiques des employés struct Employe { char nom[MAX2]; char prenom[MAX2]; char age[MAX]; char date_arrivee[MAX2]; char emploi[MAX2]; char paye[MAX2]; } employe; /*********************************************
  • Déclaration des fonctions *
                                                                                          • /
int what(char entree[]); void help(void); void newE(char fnom[], int error); void open(char fnom[], int error); int save(Employe employe, char fnom[]); /*********************************************
  • Fonction principale *
                                                                                          • /
int main(void) { bool sortir = false; char entree[MAX2]; int choix = 0; char fnom[MAX2]; int error = 0; printf("\n\n\tBonjour.\n\nPour avoir de l'aide, tapez \"help\"" " \x85 l'invite de commande.\n"); while(!sortir) { do { if(choix == 5) printf("\nVous avez effectue une mauvaise entree.\nVeuillez taper " "\"help\" pour consulter l'aide.\n"); printf("\ngemp> "); scanf("%s", &entree); choix = what(entree); } while(choix == 5); switch(choix) { case 1: sortir = true; break; case 2: help(); break; case 3: newE(fnom, error); break; case 4: open(fnom, error); break; default: break; } } printf("\n\tAu revoir.\n\n"); return 0; } /*********************************************
  • Fonction affichant l'aide a l'écran *
                                                                                          • /
void help(void) { static bool how_many = false; if(!how_many) { printf("\n\tBienvenue dans l'aide.\n"); how_many = true; } printf("\n new: creation d'un nouveau fichier employe" "\n create: \"" "\n exit: quitte le programme" "\n quit: \"" "\n bye: \"" "\n help: menu d'aide" "\n ?: \"" "\n open: ouvre un fichier employe" "\n load: \"\n"); } /*********************************************
  • Fonction déterminant quelle commande a *
  • entré l'utilisateur *
                                                                                          • /
int what(char entree[]) { if(!(strcmp(entree, "exit")) || !(strcmp(entree, "quit")) || !(strcmp(entree, "bye"))) return 1; else if(!(strcmp(entree, "help")) || !(strcmp(entree, "?"))) return 2; else if(!(strcmp(entree, "new")) || !(strcmp(entree, "create"))) return 3; else if(!(strncmp(entree, "open", 4)) || !(strncmp(entree, "load", 4))) return 4; else return 5; } /*********************************************
  • Fonction qui crée un nouveau fichier employé*
                                                                                          • /
void newE(char fnom[], int error) { printf("\nVeuillez entrer les donnees demandees concernant" " l'employe(e).\nson nom : "); scanf("%s", &employe.nom); printf("son prenom : "); scanf("%s", &employe.prenom); printf("son age : "); scanf("%s", &employe.age); printf("la date de son arrivee dans l'entreprise : "); scanf("%s", &employe.date_arrivee); printf("son emploi : "); scanf("%s", &employe.emploi); printf("le montant de sa paye(par mois) : "); scanf("%s", &employe.paye); printf("Veuillez \x85 present entrer le nom du fichier : "); scanf("%s", fnom); fichier = fopen(fnom,"rt"); if(!fichier) //Si le fichier existe déjà, il { //ne faut pas l'écraser error = save(employe, fnom); if(error) printf("Une erreur est survenue pendant la creation du fichier %s.", fnom); } else { printf("Un fichier du m\x88me nom existe d\x82j\x85."); fclose(fichier); } } /*********************************************
  • Fonction servant à consulter et/ou modifier *
  • un ficher déjà existant *
                                                                                          • /
void open(char fnom[], int error) { short choice = 1; printf("open> "); scanf("%s", fnom); fichier = fopen(fnom, "rt"); if(!fichier) { printf("\nUne erreur est survenue durant l'ouverture du fichier %s.", fnom); return ; } rewind(fichier); fread(employe.nom, sizeof(employe.nom), 1, fichier); fseek(fichier, MAX2, SEEK_CUR); fread(employe.prenom, sizeof(employe.prenom), 1, fichier); fseek(fichier, MAX2, SEEK_CUR); fread(employe.age, sizeof(employe.age), 1, fichier); fseek(fichier, MAX, SEEK_CUR); fread(employe.date_arrivee, sizeof(employe.date_arrivee), 1, fichier); fseek(fichier, MAX2, SEEK_CUR); fread(employe.emploi, sizeof(employe.emploi), 1, fichier); fseek(fichier, MAX2, SEEK_CUR); fread(employe.paye, sizeof(employe.paye), 1, fichier); fclose(fichier); for(;;) { printf("\nDonnees : \n1.nom : %s\n2.prenom : %s" "\n3.age : %s\n4.date d'arrivee : %s\n5.emploi : %s\n6.paye : %s\n" "\nQuelle donnee voulez-vous modifier\n" "(Pour arr\x88ter d'entrer des donnees, tapez '0') : ", employe.nom, employe.prenom, employe.age, employe.date_arrivee, employe.emploi, employe.paye); scanf("%hd", &choice); if(!choice) break; printf("Veuillez entrer la nouvelle donnee : "); switch(choice) { case 1: scanf("%s", &employe.nom); break; case 2: scanf("%s", &employe.prenom); break; case 3: scanf("%s", &employe.age); break; case 4: scanf("%s", &employe.date_arrivee); break; case 5: scanf("%s", &employe.emploi); break; case 6: scanf("%s", &employe.paye); break; } } error = save(employe, fnom); if(error) printf("Une erreur est survenue pendant l'ecriture dans le fichier %s.", fnom); return; } /*********************************************
  • Fonction qui sauvegarde les donnees *
  • dans le fichier specifie. *
                                                                                          • /
int save(Employe employe, char fnom[]) { fichier = fopen(fnom, "wt"); //Création ou ouverture du fichier employé if(!fichier) //Vérification return 1; rewind(fichier); //On se place au début du fichier //Ecriture des données dans le fichier créé fwrite(employe.nom, sizeof(employe.nom), 1, fichier); fseek(fichier, MAX2, SEEK_CUR); fwrite(employe.prenom, sizeof(employe.prenom), 1, fichier); fseek(fichier, MAX2, SEEK_CUR); fwrite(employe.age, sizeof(employe.age), 1, fichier); fseek(fichier, MAX, SEEK_CUR); fwrite(employe.date_arrivee, sizeof(employe.date_arrivee), 1, fichier); fseek(fichier, MAX2, SEEK_CUR); fwrite(employe.emploi, sizeof(employe.emploi), 1, fichier); fseek(fichier, MAX2, SEEK_CUR); fwrite(employe.paye, sizeof(employe.paye), 1, fichier); printf("\nDonnees sauvergardees."); fclose(fichier); return 0; }

Conclusion :


Je vais bientôt rajouter 2 ou 3 petites fonctions en plus style effacer un fichier ou rajout automatique d'un suffixe au nom du fichier.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_mohammed amine
Messages postés
23
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
24 avril 2007

19 août 2006 à 17:46
salut,
Pourquoi ne pas utiliser les classes ? ca vous permet de jouer avec l'heritage et par la suite tu peut gérer pas seulement les employées mais aussi les manager ,les commercials,les salaries,...
c'est trés intéressant.
@++
thecyril1
Messages postés
1
Date d'inscription
vendredi 26 mars 2004
Statut
Membre
Dernière intervention
9 mai 2005

9 mai 2005 à 22:19
Bah c plus du C que du C++...
C'est vrai qu'il serait plus interessant d'utiliser les classes...
magic_Nono
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
28 sept. 2004 à 17:14
je regarde & posterai mon com...
titanium13
Messages postés
6
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
9 juillet 2004

9 juil. 2004 à 13:49
Ciao personnellement je trouve ta source très bien elle explique bien aux débutant qulqs fnctions très utiles!!! @t next!
titanium13
Messages postés
6
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
9 juillet 2004

9 juil. 2004 à 13:49
Ciao personnellement je trouve ta source très bien elle explique bien aux débutant qulqs fnctions très utiles!!! @t next!
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.