From a5d525111c50e0a93a3124c811576ea36172edff Mon Sep 17 00:00:00 2001 From: Adrien Van Date: Fri, 3 Feb 2017 20:16:18 +0100 Subject: [PATCH] first commit --- GaideC18.c | 57 +++++++++++++ GaideC19.c | 33 +++++++ VANDAMME18.c | 92 ++++++++++++++++++++ VANDAMME19.c | 26 ++++++ VANDAMME20.c | 61 +++++++++++++ VANDAMME23.c | 236 +++++++++++++++++++++++++++++++++++++++++++++++++++ colin14.c | 134 +++++++++++++++++++++++++++++ 7 files changed, 639 insertions(+) create mode 100644 GaideC18.c create mode 100644 GaideC19.c create mode 100644 VANDAMME18.c create mode 100644 VANDAMME19.c create mode 100644 VANDAMME20.c create mode 100644 VANDAMME23.c create mode 100644 colin14.c diff --git a/GaideC18.c b/GaideC18.c new file mode 100644 index 0000000..e40699c --- /dev/null +++ b/GaideC18.c @@ -0,0 +1,57 @@ +#include +#include +#include +#include + +//http://www.gnu.org/software/libc/manual/html_mono/libc.html#Comparison-Functions + +void EncoderContact (char*,char*,char*,char*,char*); +void EcrireContact (char*,char*,char*,char*,char*,FILE*); +FILE*OuvrirFichier (); +int main() +{ + char Nom[21],Prenom[21],Tel[11],GSM[15],eMail[30]; + + EncoderContact(Nom, Prenom, Tel, GSM, eMail); + EcrireContact(Nom, Prenom, Tel, GSM, eMail, OuvrirFichier()); +} +EncoderContact(char*Nom,char*Prenom,char*Tel,char*GSM,char*eMail) +{ + printf("entrez votre nom: \t"); + fflush(stdin); + gets(Nom); + printf(" entrez votre Prenom: \t"); + fflush(stdin); + gets(Prenom); + printf("\n entrez votre num�ro de telephone :\t "); + fflush(stdin); + gets(Tel); + printf("\n entrez votre num�ro de GSM : \t"); + fflush(stdin); + gets(GSM); + printf("\n entrez votre eMail:\t "); + fflush(stdin); + gets(eMail); + +} +EcrireContact(char*Nom,char*Prenom,char*Tel,char*GSM,char*eMail,FILE*PtFichier) +{ + fprintf(PtFichier, "%s\n%s \n %s \n%s \n %s \n",Nom,Prenom,Tel,GSM,eMail); + fclose(PtFichier); +} +FILE *OuvrirFichier () +{ + char NomFichier [50]; + FILE*PtFichier; + do + { + printf("entrez le nom de votre fichier (avec chemin d'acc�s):\n"); + fflush(stdin); + gets(NomFichier); + PtFichier=fopen(NomFichier,"w"); + } + while(PtFichier==NULL); + printf("fichier cree"); + return (PtFichier); + +} diff --git a/GaideC19.c b/GaideC19.c new file mode 100644 index 0000000..a97fde4 --- /dev/null +++ b/GaideC19.c @@ -0,0 +1,33 @@ +#include +#include +void CharToString(char,char*); +int versAscii(char); +int main() +{ + char cara,b[9]; + for(cara= 'A'; cara<='Z';cara++) + { + CharToString(cara,b); + printf("%c: %Xh %s\n",cara, versAscii(cara), b); + + } + getch(); + return 0; +} + +int versAscii(char c) +{ + return (int)c; +} + +void CharToString(char cara, char* b) +{ + int i,m=1; + for(i=7;i>=0;i--) + { + if(cara&m) b[i]='1'; + else b[i]='0'; + m<<=1; + } + b[8]='\0'; +} diff --git a/VANDAMME18.c b/VANDAMME18.c new file mode 100644 index 0000000..d9ec778 --- /dev/null +++ b/VANDAMME18.c @@ -0,0 +1,92 @@ +/* + * EX18 + * VAN DAMME Adrien + * Grp 2 + * La fct fgets permet de récuperer une chaine de caractère de façon sécurisée + * + */ + +#include +#include +#include +#include + +#define __STR_LENGHT__ 20 + +int EncoderContact(char *, char *, char *, char *, char *); +int EcrireContact(char *, char *, char *, char *, char *, FILE *); +FILE* OuvrirFichier(); + +int main() { + char Nom[__STR_LENGHT__],Prenom[__STR_LENGHT__],Tel[__STR_LENGHT__],GSM[__STR_LENGHT__],eMail[__STR_LENGHT__]; + FILE * fi; + fi = OuvrirFichier(); + + while(EncoderContact(Nom, Prenom, Tel, GSM, eMail)==-1); + while(EcrireContact(Nom, Prenom, Tel, GSM, eMail, fi)==-1); + fclose(fi); + return 0; +} + +int EncoderContact(char *nom, char *prenom, char *tel, char *gsm, char *email) +{ + int bug = 0; + char *p; + printf("Votre nom (%d caratères max)", (int)__STR_LENGHT__); + fflush(stdin);bug = fgets(nom, __STR_LENGHT__, stdin)?bug:-1; + p = strchr(nom, '\n'); + if(p)*p=0; + + printf("Votre prenom (%d caratères max)", (int)__STR_LENGHT__); + fflush(stdin);bug = fgets(prenom, __STR_LENGHT__, stdin)?bug:-1; + p = strchr(prenom, '\n'); + if(p)*p=0; + + printf("Votre telephone (%d caratères max)", (int)__STR_LENGHT__); + fflush(stdin);bug = fgets(tel, __STR_LENGHT__, stdin)?bug:-1; + p = strchr(tel, '\n'); + if(p)*p=0; + + printf("Votre gsm (%d caratères max)", (int)__STR_LENGHT__); + fflush(stdin);bug = fgets(gsm, __STR_LENGHT__, stdin)?bug:-1; + p = strchr(gsm, '\n'); + if(p)*p=0; + + printf("Votre email (%d caratères max)", (int)__STR_LENGHT__); + fflush(stdin);bug = fgets(email, __STR_LENGHT__, stdin)?bug:-1; + p = strchr(email, '\n'); + if(p)*p = 0; + + return bug; +} +int EcrireContact(char *nom, char *prenom, char *tel, char *gsm, char *email, FILE *f) +{ + int bug = 0; + clearerr(f); + fprintf(f, "Nom %s\n", nom); + bug = ferror(f)?-1:bug; + fprintf(f, "Prenom %s\n", prenom); + bug = ferror(f)?-1:bug; + fprintf(f, "Telephone %s\n", tel); + bug = ferror(f)?-1:bug; + fprintf(f, "GSM %s\n", gsm); + bug = ferror(f)?-1:bug; + fprintf(f, "Email %s\n", email); + bug = ferror(f)?-1:bug; + + return bug; +} +FILE* OuvrirFichier() +{ + FILE *fi; + char chemin[__STR_LENGHT__]; + do{ + do{ + printf("Emplacement de votre fichier (%d caratères max)", (int)__STR_LENGHT__); + fflush(stdin); + }while(fgets(chemin, __STR_LENGHT__, stdin) == NULL); + *(strchr(chemin, '\n')) = 0; + fi = fopen(chemin, "w"); + }while(fi == NULL); + return fi; +} diff --git a/VANDAMME19.c b/VANDAMME19.c new file mode 100644 index 0000000..e7699fe --- /dev/null +++ b/VANDAMME19.c @@ -0,0 +1,26 @@ +#include +#include +void CharToString(char,char*); +unsigned int toAscii(char); +int main() +{ + char cara,b[9]; + for(cara='A'; cara<='Z';cara++) + { + CharToString(cara,b); + printf("%c: %Xh %s\n",cara, toAscii(cara), b); + } + getch(); + return 0; +} + +unsigned int toAscii(char c) + return (unsigned int)c; + +void CharToString(char cara, char* b) +{ + int i; + for(i=0;i<8;i++) + b[8-i-1]=(cara&(1< +#include +#include +#include + +#define __STR_LENGHT__ 20 + +int LireMots(char *, char **); +int trier (char **); +int cmpstr(char *, char *); +int affTab(char **); + +int main() { + char tab[20][20]; + char chemin[20] = "tt.txt"; + LireMots(chemin, tab); + affTab(tab); + trier(tab); + affTab(tab); + return 0; +} + + +int LireMots(char *chemin, char **tab) +{ + int i; + char c[__STR_LENGHT__]; + char *p; + FILE * fi; + if((fi=fopen(chemin, "r")) == NULL) + return -1; + for(i=0;i<20;i++) + { + fgets(c, 20,fi); + p = strchr(c, '\n'); + if(p)*p = 0; + strcpy(((char*)tab+(i*20)),c); + } + return 0; +} +int trier(char **tab) +{ + qsort(tab,20,20,cmpstr); +} +int affTab(char **tab) +{ + int i=0; + for(i=0;i<20;i++) + printf("%s\n", ((char*)tab+(i*20))); +} +int cmpstr(char *a, char *b) { + return strcmp(a, b); +} diff --git a/VANDAMME23.c b/VANDAMME23.c new file mode 100644 index 0000000..e9d25ca --- /dev/null +++ b/VANDAMME23.c @@ -0,0 +1,236 @@ +#include +#include +#include +#include +#include +#define __TVA__ 1.21 +#define __REDUC__ 0.9 +#define __MAXNBRART__ 3 + +#define __STRLEN__ 34 + +typedef struct { + char deisgnation[__STRLEN__]; + float prixHTVA; + int quant; +} Article; +typedef struct { + Article * article; + unsigned int nbrArt; +} Panier; + + + + +void EncoderDate(int*, int*, int*); +int DateValide (int, int, int); +void afficherArticle(Article * article, unsigned int nbrArt, FILE * file); +void encoderArticle(Article * article); + +int main() +{ + int j,m,a; + char continuer = 'y'; + FILE * file; + file = fopen("fact.txt","w"); + if(file == NULL) + { + printf("Erreur lors de l'ouvertur !\n"); + return -1; + } + + Panier panier; + panier.article = (Article *)malloc(sizeof(Article)); + panier.nbrArt = 1; + if(panier.article == NULL) + { + printf("ERREUR ALLOCATION !"); + free(panier.article); + return -1; + } + + do + { + EncoderDate(&j,&m,&a); + } + while (!DateValide(j, m, a)); + + do + { + printf("%u\n", panier.nbrArt); + if(panier.nbrArt <= __MAXNBRART__) + { + encoderArticle(&(panier.article[panier.nbrArt-1])); + printf("Y-a-t-il encore un article ?(Y|n)"); + fflush(stdin); + scanf("%c", &continuer); + if(panier.nbrArt < 3 && (continuer|0b00100000) == 'y') + { + printf("%u\n", panier.nbrArt); + panier.nbrArt++; + Article * tempArticle; + tempArticle = (Article*)realloc(panier.article, sizeof(Article)*(panier.nbrArt)); + if(panier.article == NULL) + { + printf("ERREUR ALLOCATION !"); + free(tempArticle); + free(panier.article); + return -1; + } + else + { + panier.article = tempArticle; + } + } + else + { + system("cls"); + printf("Vous avez ateint le nombre d'article maximum !\n\n"); + break; + } + } + }while((continuer|0b00100000) == 'y'); + //En t�te de la facture + printf("La Bulle Informatique\nRoute du Condroz 78, 4123 Neupre\n"); + printf("\nFacture a payer\n"); + printf("Date de facturation :"); + + fprintf(file,"La Bulle Informatique\nRoute du Condroz 78, 4123 Neupre\n"); + fprintf(file,"\nFacture a payer\n"); + fprintf(file,"Date de facturation :"); + if (j<10) + { + if (m<10) + { + printf("0%d/0%d/%d", j, m, a); + fprintf(file,"0%d/0%d/%d", j, m, a); + } + else + { + printf("0%d/%d/%d", j, m, a); + fprintf(file,"0%d/%d/%d", j, m, a); + } + } + else + { + if (m<10) + { + printf("%d/0%d/%d", j, m, a); + fprintf(file,"%d/0%d/%d", j, m, a); + } + else + { + printf("%d/%d/%d", j, m, a); + fprintf(file,"%d/%d/%d", j, m, a); + } + } + printf("%u\n", panier.nbrArt); + afficherArticle(panier.article,panier.nbrArt, file); + getch(); + fclose(file); + free(panier.article); + return 0; +} +void EncoderDate(int *j, int *m, int *a) +{ + printf("Entrez la date sous cette forme : jj/mm/aaaa\n"); + fflush(stdin); scanf("%d/%d/%d",j,m,a); +} + +int DateValide(int j, int m, int a) +{ + int bis; + if(m != 2) + { + if(m >= 1 && m <= 7) + { + if(m %2 == 0) + { + if(j >= 1 && j <= 30) return 1; + else return 0; + } + else + { + if(j >= 1 && j <= 31) return 1; + else return 0; + } + } + else if(m > 7 && m <= 12) + { + if(m %2 == 0) + { + if(j >= 1 && j <= 31) return 1; + else return 0; + } + else + { + if(j >= 1 && j <= 30) return 1; + else return 0; + } + } + else return 0; + } + else + { + if(a %100 == 0) + { + if(a %400 == 0) bis = 1; + else bis = 0; + } + else + { + if(a %4 == 0)bis = 1; + else bis = 0; + } + if(bis == 1) + { + if(j >= 1 && j <= 29) return 1; + else return 0; + } + else + { + if(j >= 1 && j <= 28) return 1; + else return 0; + } + } +} + + +void afficherArticle(Article * article, unsigned int nbrArt,FILE * file) +{ + unsigned int i; + printf("%u\n", nbrArt); + float prixTot=0; + fprintf(file,"\n|---------------------------------------------------------------------------------------------|\ + \n| Designation | prixHTVA | Quantite | 10%% | prixTVAC |"); + printf("\n|---------------------------------------------------------------------------------------------|\ + \n| Designation | prixHTVA | Quantite | 10%% | prixTVAC |"); + for(i=0;i=20)?'x':' ',\ + (article[i].quant>=20)?article[i].prixHTVA*__TVA__*__REDUC__*article[i].quant:article[i].prixHTVA*__TVA__*article[i].quant); + fprintf(file,"\n|%34s|%12.2f Eur |%14d| %c |%12.2f |",\ + article[i].deisgnation,article[i].prixHTVA,article[i].quant\ + ,(article[i].quant>=20)?'x':' ',\ + (article[i].quant>=20)?article[i].prixHTVA*__TVA__*__REDUC__*article[i].quant:article[i].prixHTVA*__TVA__*article[i].quant); + + prixTot += (article[i].quant>=20)?article[i].prixHTVA*__TVA__*__REDUC__*article[i].quant:article[i].prixHTVA*__TVA__*article[i].quant; + } + printf("\n|---------------------------------------------------------------------------------------------|"); + printf("\nPrix totale :%f", prixTot); + + fprintf(file,"\n|---------------------------------------------------------------------------------------------|"); + fprintf(file,"\nPrix totale :%f", prixTot); +} +void encoderArticle(Article * article) +{ + printf("\nVeuillez entrer le nom : "); + scanf("%34s", article->deisgnation); + printf("\nVeuillez entrer le prix a l'unite hors TVA : "); + scanf("%f", &article->prixHTVA); + printf("\nVeuillez entrer la quantite desiree : "); + fflush(stdin); + scanf("%d", &article->quant); +} diff --git a/colin14.c b/colin14.c new file mode 100644 index 0000000..e408326 --- /dev/null +++ b/colin14.c @@ -0,0 +1,134 @@ +#include +#include +#define Taux 0.21 + +void EncoderDate(int*, int*, int*); +int DateValide (int, int, int); + +int main() +{ + //Declarer et initialiser les variables + float PrixU=0; + float TVA=0; + int Qte=25; + float PrixHT=0; + float PrixTTC=0; + float PrixTot=0; + int j=0; + int m=0; + int a=0; + int TorF; + + //Encoder et vérifier la date + do + { + EncoderDate(&j,&m,&a); + TorF = DateValide(j, m, a); + } + while (TorF == 0); + + //Encoder le prix et la quantité + printf("Veuillez entrer le prix a l'unite hors TVA : "); + scanf("%f", &PrixU); + printf("Veuillez entrer la quantite desiree : "); + fflush(stdin); + scanf("%d", &Qte); + + //En tête de la facture + printf("La Bulle Informatique\nRoute du Condroz 78, 4123 Neupre\n"); + printf("\nFacture a payer\n"); + + //Calcul des prix + printf("\nHewlett-Packard ProBook650 : \t%10.2f Euros X%1d\n",PrixU,Qte); + PrixHT = PrixU*Qte; + printf("Prix HTVA : \t%10.2f Euros\n",PrixHT); + TVA = PrixHT*Taux; + printf("TVA (21%%) : \t%10.2f Euros\n",TVA); + PrixTTC = PrixHT + TVA; + printf("\nPrix TTC : \t%10.2f Euros\n",PrixTTC); + PrixTot = PrixTTC - PrixTTC/10; + if (Qte>=20) + {printf("Remise de 10%% a l'achat d'au moins 20 pieces\n"); + printf("Prix total : \t%10.2f Euros\n",PrixTot); + } + printf("Date de facturation :"); + if (j<10) + { + if (m<10) + printf("0%d/0%d/%d", j, m, a); + else + printf("0%d/%d/%d", j, m, a); + } + else + { + if (m<10) + printf("%d/0%d/%d", j, m, a); + else + printf("%d/%d/%d", j, m, a); + } + getch(); + return 0; +} +void EncoderDate(int *j, int *m, int *a) +{ + printf("Entrez la date sous cette forme : jj/mm/aaaa\n"); + fflush(stdin); scanf("%d/%d/%d",j,m,a); +} + +int DateValide(int j, int m, int a) +{ + int bis; + if(m != 2) + { + if(m >= 1 && m <= 7) + { + if(m %2 == 0) + { + if(j >= 1 && j <= 30) return 1; + else return 0; + } + else + { + if(j >= 1 && j <= 31) return 1; + else return 0; + } + } + else if(m > 7 && m <= 12) + { + if(m %2 == 0) + { + if(j >= 1 && j <= 31) return 1; + else return 0; + } + else + { + if(j >= 1 && j <= 30) return 1; + else return 0; + } + } + else return 0; + } + else + { + if(a %100 == 0) + { + if(a %400 == 0) bis = 1; + else bis = 0; + } + else + { + if(a %4 == 0)bis = 1; + else bis = 0; + } + if(bis == 1) + { + if(j >= 1 && j <= 29) return 1; + else return 0; + } + else + { + if(j >= 1 && j <= 28) return 1; + else return 0; + } + } +}