Actuellement en prépa intégrée, je dois rendre un TP de langage C.
le but de ce TP est d'élaborer une ébauche de gestion du personnel d'une entreprise :
- demander au user de saisir le nom du fichier : done !
- lire ce fichier et stocker les données dans plusieurs tableaux : done !
- afficher de manière cohérente (1 ligne = 1 personne) : done !
- demander au user, metier et pays pour lequel on veut calculer le salaire moyen : done !
la commence les souci, j'ai bien fais ce qui est demandé, cependant j'affiche le nom des salarié selon le metier demandé et ensuite selon le pays, j'aimerais rassembler les deux en meme temps (en plus) : j'aimerais ensuite comparer les nom obtenus en fonction du metier et ceux du pays, et afficher les noms communs aux deux critères ! (ca va jusque la ? mon explication est.... brrrrref !)
#include <stdio.h>
#include <string.h>
int main()
{
char nomfich[150];
FILE *FICHIER;
char T_nom[50][150];
char T_prenom[50][150];
//char T_taille[50][150];
char T_pays[50][150];
char T_job[50][150];
char T_salaire[50][150];
char metier[20];
char pays[20];
int I;
int i,j;
int x=0, y=0,z=0;
//int nomb=0, num=0;
printf("\nEntrez le nom du fichier voulu :\n");
scanf("%s",nomfich);
FICHIER=fopen(nomfich,"r");
if(FICHIER!=NULL)
{
I=0;
while(fscanf(FICHIER,"%s",T_nom[I])!=EOF) // tant qu'on arrive pas a la fin du fichier, le tableau se remplit
{
fscanf(FICHIER,"%s\t%s\t%s\t%s",T_prenom[I],T_job[I],T_pays[I],T_salaire[I]/*T_taille[I]*/);
printf("=>%s\t\t%s\t\t%s\t%s\t%s\n",T_nom[I],T_prenom[I],T_job[I],T_pays[I],T_salaire[I]/*T_taille[I]*/);
//printf("-%s\n",T_prenom[I]);
//printf("-%s\n",T_taille[I]);
I++; // passage a l element suivant
}
//printf("\n\nle nombre de personne est de %d\n",I);
printf("\nPour quel metier va-t-on calculer le salaire moyen ?");
scanf("%s",&metier);
printf("\nles personnes correspondants au metiers et pays sont : ");
for(i=0;i<I;i++)
{
if(strcmp(metier,T_job[i])==0)
{
//nomb=nomb + 1;
x=1;
printf("\n => %s ",T_nom[i]);
}
}
if (x==0)
{
printf ("\n Aucune personne ne correspond !\n ");
}
printf("\nPour quel pays va-t-on calculer le salaire moyen ?");
scanf("%s",&pays);
printf("\nLes personnes correspondant au pays sont :");
for(j=0;j<I;j++)
{
if(strcmp(pays,T_pays[j])==0)
{
//num=num + 1;
y=1;
printf("\n => %s ",T_nom[j]);
}
}
if (y==0)
{
printf ("\n Aucun pays ne correspond !\n ");
}
for (i=0,j=0;i<I,j<I;i++,j++)
if (strcmp(T_nom[i],T_nom[j])==0)
{
z=1;
printf("_n => %s",T_nom[i,j]);
}
fclose(FICHIER);
}
else
{
printf("fichier inexistant");
}
getch ();
}
- calculer puis afficher le salaire moyen des salariés répondants aux critères ci dessus
- afficher le nb de salarié correspondants aux critères : j'imagine poser un "int nombre=0" puis le rentrer dans un if etc etc
- demander au user si il vuet ou non refaire le traitement pour un nouveau fichier
- revenir au début si il répond positivement !
voila rien que ca
PS : je vous joins mon petit prog ainsi que deux doc.txt (le personnel des entreprise a comparer etc)
LES NOMS ET PRENOMS SUR LES .TXT SONT FICTIFS!
si vous voulez tester le prog, j'utilise code blocks (le dernier), et enregistrez les fichier sous .txt dnas le meme repertoire que le prog que vous lancerez
premier fichier .txt
ARNODO Laurent SYSTEME FRANCE 36250.00
BRYON Jennifer MECA Espagne 61724.00
DE-BOISSEZON Jerome MECA FRANCE 24314.00
DEGORCE Amal GESTION FRANCE 31284.00
FOSSEUX Nicolas GESTION FRANCE 51332.00
GUIGARD Fabien AERO FRANCE 26035.00
LE-BOULLENGER Arnaud GESTION FRANCE 55214.00
VAN-EENOO Guillaume AERO FRANCE 26587.00
VAN-OSSEL Semchs GESTION FRANCE 38616.00
deuxieme fichier .txt
AITBELHAJ Chantal AERO FRANCE 58081.00
ARNODO Laurent SYSTEME FRANCE 36250.00
AULON Stephanie MECA FRANCE 53162.00
BARBAUD Nazim SYSTEME FRANCE 56847.00
BASKARANE Romain MECA FRANCE 41977.00
BASTIDE Benjamin SYSTEME Espagne 26164.00
BEBIANO Mathieu GESTION FRANCE 31290.00
BENABADJI Gregory MECA FRANCE 22413.00
BERNARD Sandrine SYSTEME FRANCE 61375.00
BIGOT Valerie MECA FRANCE 77362.00
BON Julien SYSTEME Espagne 25786.00
BOUAZIZ Bastien GESTION FRANCE 25750.00
BOUCHON Brice AERO FRANCE 65438.00
BOUTAN Florian MECA FRANCE 74639.00
BREGEON Enguerrant GESTION FRANCE 60896.00
BROUTECHOUX Frederic SYSTEME FRANCE 52671.00
BRYON Jennifer MECA Espagne 61724.00
CADAUX Elodie GESTION FRANCE 51516.00
CHAUDUN-AUBRY Mathieu SYSTEME FRANCE 75366.00
CHEVET Tibere SYSTEME FRANCE 74728.00
CRONIER Philippe MECA FRANCE 23278.00
CZERNIK Sylvestre SYSTEME FRANCE 60433.00
DARNIOT Mathieu SYSTEME Espagne 53168.00
DE-BOISSEZON Jerome MECA FRANCE 24314.00
DEGORCE Amal GESTION FRANCE 31284.00
DELAHAYES Jerome SYSTEME Espagne 76661.00
DEMONT Pierre-Antoine SYSTEME Espagne 75674.00
DUPRE Guillaume SYSTEME FRANCE 48288.00
FERHOUNE Julien GESTION FRANCE 36667.00
FLEITER Ludovic AERO FRANCE 66580.00
FOSSEUX Nicolas GESTION FRANCE 51332.00
FOURNIER Benoit GESTION FRANCE 21372.00
GABRIELLI Romain MECA Italie 22060.00
GAILLEZ Pierre-Nicolas MECA FRANCE 73457.00
GHOUZI Vincent GESTION FRANCE 63223.00
GRESLEBIN Guillaume AERO FRANCE 66672.00
GUERNIC Maxime GESTION FRANCE 45189.00
GUIGARD Fabien AERO FRANCE 26035.00
GUILLIN Martial GESTION FRANCE 60534.00
HERICHER Lucas SYSTEME CANADA 72526.00
HUMBERT Gregoire MECA FRANCE 32560.00
JOINET Manon MECA FRANCE 26675.00
JOPS Laurent AERO FRANCE 26818.00
JUGLAR Stephane MECA FRANCE 67393.00
JUMEAU Julien AERO Espagne 42987.00
JUNG Mathieu MECA FRANCE 21525.00
LANSADE Adeline GESTION FRANCE 23686.00
LAUMONT Thomas MECA FRANCE 45136.00
LE-BOULLENGER Arnaud GESTION FRANCE 55214.00
LEBARON Julien MECA FRANCE 34416.00
LESAGE Diane MECA FRANCE 43351.00
LIGNON Jordane GESTION FRANCE 62997.00
LILLE Sebastien SYSTEME CANADA 67612.00
LUCAS Etienne MECA FRANCE 23308.00
MATHIVAT Youssef MECA FRANCE 63340.00
MERCIER Arnaud SYSTEME FRANCE 70350.00
RAMBAUD Vincent SYSTEME FRANCE 61166.00
RAMIER Eric MECA FRANCE 45984.00
REJEB Jean-Philippe AERO FRANCE 56724.00
REMY Mathieu SYSTEME FRANCE 30506.00
ROBERT Jean-Philippe SYSTEME FRANCE 58496.00
RODARIE Florian GESTION FRANCE 62013.00
RODRIGUES Laella GESTION CANADA 43529.00
ROUJAN Alexandre MECA FRANCE 58415.00
RUAULT Sylvain MECA FRANCE 76241.00
SACAZES Thibaud MECA FRANCE 25805.00
SAMSON Cyril MECA FRANCE 74333.00
SCHMITT Louis AERO FRANCE 72912.00
SEDRAN Charles SYSTEME FRANCE 41603.00
STANON Lucas SYSTEME FRANCE 68256.00
STOSSKOPF Nicolas GESTION CANADA 51824.00
THIERCELIN Adrien AERO FRANCE 49244.00
TOFFALONI Helene AERO FRANCE 22153.00
TRUCHET Romain MECA FRANCE 55455.00
VAN-EENOO Guillaume AERO FRANCE 26587.00
VAN-OSSEL Semchs GESTION FRANCE 38616.00
VANDEVIVERE Maryama SYSTEME CANADA 60759.00
VERGIER Cyril SYSTEME FRANCE 31390.00
VERHAEGHE Yannick SYSTEME FRANCE 59296.00
ZAIDI Nicolas GESTION FRANCE 65617.00
Pour arriver à tes fins, il va te falloir réorganiser un peu ton code et tes données, dans un premier temps, faire des fonctions, c'est la clé de la réussite. Tu peux aussi faire usage de structures, cela va très rapidement simplifier les choses. Donc au lieu de faire prenom[50][150], nom[50][150] etc, tu créés une structure contenant prenom[150], nom[150], etc. puis tu fais un tableau de structure[50], ainsi tes données seront dans un même bloc.
tu vas pouvoir t'épargner pas mal de boulot du côté des index et faciliter le tri.
Ensuite pour reposer la question et revenir sur un autre fichier, ce n'est qu'une question de boucle.
drx - Merci du conseil, je le ferais en fin de travail (on a eu ca a faire hier et on doit le rendre demain, alors qu'on a jamais travailler ces notions donc j'essaie de finir quand meme :/)
Postz - alors, j'ai évidemment tester cette facon : le probleme est que je dois afficher le nom des personnes correspondants aux critère.
donc j'ai fais d'un coté le metier, de l'autre le pays (les deux sont afficher) mais j'aimerais ensuite afficher les personnes qui répondents au metier ET au pays :/
D'abord, tu as déterré un vieux sujet de 2014. Ensuite, tu devrais poster ton propre sujet. Puis, ton sujet n'est pas assez précis. Finalement, as-tu du code ou un plan ou un algorithme à nous montrer?
Le Tout est souvent plus grand que la somme de ses parties.
@FlorickKASSANG Bonjour, merci de ne pas déterrer d'ancien sujet. Créer le votre dans le respect des règles du forum à savoir qu'un message commence par des règles de politesses (un bonjour ou des salutations à la communauté et se termine par des remerciements par avance pour les futures réponses) un descriptif de votre problème et le code que vous avez écrit inséré sur le forum avec l'outil d'intégration de code soit le bouton code </>.
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Je ferme ce sujet. En cas de désaccord, me contacter par MP.
Bonhomme !! | Jeu de plateforme : Prototype.
Le Tout est souvent plus grand que la somme de ses parties.