Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] petit programme

gestion personnel

25 septembre 2014 à 1:46:54

Bonsoir à tous !

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 :p

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

:D

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



 -

-
Edité par oktam 25 septembre 2014 à 1:48:47

  • Partager sur Facebook
  • Partager sur Twitter
25 septembre 2014 à 2:28:25

Salut,

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.

Bonne continuation.

  • Partager sur Facebook
  • Partager sur Twitter

Bonhomme !! | Jeu de plateforme : Prototype.

25 septembre 2014 à 10:06:27

if(strcmp(metier,T_job[i])==0)

// deviendra

if (strcmp(metier,T_job[i] == 0 || strcmp(metier, T_pays[i]) == 0)

Bonjour,

Si j'ai bien compris tu as envi de faire une recherche général, tu devrai pour sa rassemblé tes conditions a l'aide des ||

-
Edité par Postz 25 septembre 2014 à 10:07:07

  • Partager sur Facebook
  • Partager sur Twitter
25 septembre 2014 à 20:31:17

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 :/

  • Partager sur Facebook
  • Partager sur Twitter
25 septembre 2014 à 21:13:24

petit up : c'est pour demain :/
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2014 à 11:50:26

for (i = 0; i<I; i++)
{
	if (strcmp(T_pays[i], pays) == 0 && strcmp(T_metier[i], metier) == 0)
		printf("%s %s %s %s\n", T_prenom[I],T_job[I],T_pays[I],T_salaire[I]);
}

J'ai pas test mais je crois que sa pourrais t'aidé j'espère que je ne répond pas trop tard quand même.

  • Partager sur Facebook
  • Partager sur Twitter
13 avril 2022 à 3:01:42

Je suis en prépa intégrée je doit rendre un TP de langage C

Écrire un programme de gestion de point de vente (facturation des ventes d'articles d'un point de vente)

  • Partager sur Facebook
  • Partager sur Twitter
13 avril 2022 à 4:22:59

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?
  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

13 avril 2022 à 9:11:58

@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 </>.

Déterrage

Citation des règles générales du forum :

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.

  • Partager sur Facebook
  • Partager sur Twitter