*   >> Læs Uddannelse artikler >> education >> college and university

Modul 9: Introduktion til C og C ++

MODUL 9

---------------------------- --------------------- #include //for systemet () # include ... {C ++ koder ...} --------- ---------------------------------------- bør ændres til: ----- -------------------------------------------- #include //brug C ++ wrapper til at kalde C-funktioner fra C ++ programmer ... #include hjælp namespace std; ... {C ++ koder ...} ---------------------------------------- --------- I VC ++ /VC ++ .Net den iostream.h (header med .h) er ikke gyldig længere. Det bør være C ++ header, således at det falder inden for standarden.

I ældre Borland C ++ compiler dette stadig virker, men ikke ordentlig mere ... og for standard C /C ++ for at overføre skulle være noget problem, eller bedre du læser Module23 på https://www.tenouk.com/Module23.html at få det store billede ... For C-koder, de stadig C-koder: o) ================================= ======================================== ========== ================================================== ============= //Åbning og lukning fil eksempel # include # include //SUCCESS = 0, FAIL = 1 ved hjælp opregning enum {SUCCES, FAIL}; int main (void) {FILE * fptr; //filnavnet er tkk1103.

txt og placeret //i den samme mappe som programmet char filnavn [] = "tkk1103.txt"; //indstille værdien Reval til 0 int Reval = SUCCES; //test åbning fil til læsning, hvis ikke ... hvis ((fptr = fopen (filnavn, "r")) == NULL) {printf (, filename "Kan ikke åbne% s \\ n".) Reval = FAIL; //nulstille Reval til 1} //hvis det lykkes at gøre ... else {printf ("Åbning af% s fil med succes \\ n", filnavn); //programmet vil vise den adresse, hvor //de fil pointer peger på .. printf ("Værdien af ​​fptr: 0x% p \\ n", fptr); printf ("\\ n .... fil behandling bør ske her ....

\\ n"); printf ("\\ nReady at lukke% s file \\ n.", filnavn); //luk filen stream ... hvis (fclose (fptr) == 0) printf ("Lukning af% s fil med succes \\ n", filnavn); } //For Borland ... kan fjerne den følgende pause og biblioteket, //stdlib.h for andre compilere-system ("pause"); returnere Reval; } ------------------------------ Testtwo.txt ---------------- ---------------------------------- ÅBNING, læsning, skrivning og lukning FIL -------- ----------------------------------- Test fil. Denne fil med navnet testtwo.txt.

Efter åbning af filer til læsning og skrivning, uden fejl, vil indholdet af denne fil (testtwo.txt) læses og output (skrive) til den anden fil med navnet testone.txt og standard output (skærm /konsol) tegn for tegn !!! --- HAPPY LEARNING FOLK !!! ---- ------------------------------------- -------------------------------------------------- ----- //Læsning og skrivning et tegn ad gangen # include # include //opregnet datatype, SUCCES = 0, FAIL = 1 enum {SUCCES, FAIL}; //prototype funktion til at læse fra og skrive ...

void CharReadWrite (FILE * fin, FILE * fout); int main () {//erklære to fil pointers ... FILE * fptr1, * fptr2; //definere to filer navn ... char filnavn1 [] = "testone.txt"; char filnavn2 [] = "testtwo.txt"; int Reval = SUCCES; //teste åbningen filnavn1 til at skrive .... //hvis ikke .... Hvis ((fptr1 = fopen (filnavn1, "w")) == NULL) {printf ("Problem, kan ikke åbne% s. \\ n ", filnavn1); Reval = FAIL; } //Hvis åbning filnavn1 til skrivning er vellykket, //test til åbning til læsning filnavn2, hvis ikke ...

ellers hvis ((fptr2 = fopen (filnavn2, "r")) == NULL) {printf ("Problem, kan ikke åbne% s \\ n ", filnavn2.); Reval = FAIL; } //Hvis det lykkes åbning til at læse fra filnavn2 //og skrive til filnavn1 ... else {//funktion opkald til læsning og skrivning ... CharReadWrite (fptr2, fptr1); //lukke begge filer ... hvis (fclose (fptr1) == 0) printf ("% s tæt held \\ n", filnavn1); hvis (fclose (fptr2) == 0) printf ("% s tæt held \\ n", filnavn2); } //For Borland hvis kompileret med sin IDE ...

systemet ("pause"); returnere Reval; } //Læse skrive funktionsdefinition void CharReadWrite (FILE * fin, FILE * fout) {int c; //hvis slutningen af ​​filen er nået, do ... while ((c = fgetc (fin)) = EOF!) {//skrive til en fil ... fputc (c, fout); //visning på skærmen ... putchar (c); } Printf ("\\ n"); } ------------------------------------ Testfour.txt ---------- --------------------------- ÅBNING, læsning, skrivning én linje tegn -------------- -------------------------------------- Det er fil testfour.txt.

Denne fil indhold vil blive læst linje for linje tegn indtil ikke mere line af karakter fundet. Derefter vil det være output til skærmen, og også vil blive kopieret til fil testhree.txt. Kontrollere indholdet af testhree.txt fil ... --------------------------------------- ------------- ------------------HA 'EN GOD DAG--------------- ---- ---------------------------------------------- --------------------------------------- //Læsning og skrivning én linje ad gangen # omfatter # include enum {SUCCES, FAIL, MAX_LEN = 100}; //funktion prototype til læse- og skriver for linje ...

ugyldig LineReadWrite (FILE * fin, FILE * fout); int main (void) {FILE * fptr1, * fptr2; //fil testhree.txt er placeret i roden, c: //du kan sætte denne fil på ethvert sted forudsat //du giver den fulde sti, samme for testfour.txt char filnavn1 [] = "c: \\\\ testhree. tekst"; char filnavn2 [] = "c: \\\\ testfour.txt"; char Reval = SUCCES; //test åbning testhree.txt fil til skrivning, hvis ikke ... hvis ((fptr1 = fopen (filnavn1, "w")) == NULL) {printf ("Problem, kan ikke åbne% s for skrivning. \\ n" , filnavn1); Reval = FAIL; } //Test åbning testfour.txt fil til læsning, hvis fejle ...

ellers hvis ((fptr2 = fopen (filnavn2, "r")) == NULL) {printf ("Problem, kan ikke åbne% s for læsning. \\ n ", filnavn2); Reval = FAIL; } //Hvis åbning fro at skrive og læse en succes, skal du gøre ... else {//funktion opkald til læse og skrive, linje for linje ... LineReadWrite (fptr2, fptr1); //lukke begge filer streame ... hvis (fclose (fptr1) == 0) printf ("% s succes lukket \\ n.", filnavn1); hvis (fclose (fptr2) == 0) printf ("% s succes lukket \\ n.", filnavn2); } //For Borland screenshot-system ("pause") returnere Reval; } //Funktion definition for linje læse, skrive ...

void LineReadWrite (FILE * fin, FILE * fout) {//lokal variabel ... char buff [MAX_LEN]; mens (! fgets (buff, MAX_LEN, fin) = NULL) {//skrive til fil ... fputs (buff, fout); //skrive at screene ... printf ("% s", buff); }} ----------------------------------------- Testsix.txt ---- ------------------------------------------ aabning, læsning og skrivning for en blok af DATA ----------------------------------------------- Dette er fil testsix.txt. Dets indhold vil blive læst, og derefter output til skærmen /konsol og kopieres til testfive.txt fil. Læsning og skrivning baseret på blok af data.

Kan være denne metode er hurtigere i forhold til at læse /skrive ved karakter, ved linje ..... ----------------------------- ------------------ ------------------ENDE------------- ------------- ------------------------------------- -------------------------------------------------- ----------- //Læsning og skrivning en blok ad gangen # include # include //erklære enum datatype, vil du dette //lære i andet modul ... enum {SUCCES, FAIL, MAX_LEN = 80}; //funktion prototype til blok læsning og skrivning tomrum BlockReadWrite (FILE * fin, FILE * fout); //funktion prototype til fejlmeddelelser ...

int ErrorMsg (char * str); int main (void) {FILE * fptr1, * fptr2; //definere filnavne ... //filerne placering er på c: \\ Temp char filnavn1 [] = "c: \\\\ Temp \\\\ testfive.txt"; char filnavn2 [] = "c: \\\\ Temp \\\\ testsix.txt"; int Reval = SUCCES; //test åbning testfive.txt fil til skrivning, hvis ikke ... hvis ((fptr1 = fopen (filnavn1, "w")) == NULL) {Reval = ErrorMsg (filnavn1); } //Test åbning testsix.txt fil til læsning, hvis fejle ...

ellers hvis ((fptr2 = fopen (filnavn2, "r")) == NULL) {Reval = ErrorMsg (filnavn2); } //Hvis åbning af filer til skrivning og læsning er en succes, gør ... else {//funktion opkald til læsning og skrivning BlockReadWrite (fptr2, fptr1); //lukke begge filer streams ... hvis (fclose (fptr1) == 0) printf ("% s succes lukket \\ n", filnavn1); hvis (fclose (fptr2) == 0) printf ("% s succes lukket \\ n", filnavn2); } Printf ("\\ n"); //for Borland ...

systemet ("pause"); returnere Reval; } //Funktion definition for blok læse, skrive ugyldig BlockReadWrite (FILE * fin, FILE * fout) {int num; char buff [MAX_LEN + 1]; //mens ikke ende af filen for inddatafil, do ... mens {//læsning ... num = fread (buff, sizeof (char), MAX_LEN, fin) (feof (fin)!); //tilføje en null-tegn buff [num * sizeof (char)] = '\\ 0'; printf ("% s", buff); //skriver ... fwrite (buff, sizeof (char), num, fout); }} //Funktion definition for fejlmeddelelse int ErrorMsg (char * str) {//vise fejlmeddelelsen ... printf ("Problem, kan ikke åbne% s \\ n".

, Str); returnere FAIL; } -----------------------------------------tesseven.txt------------------------------------------------------ Dette er den første tekstlinje, tesseven.txt fil det er anden tekstlinje, tesseven.txt fil Dette er den tredje tekstlinje, tesseven.txt fil Dette er den fjerde tekstlinje, tesseven.

txt fil - -------------------------------------------------- -------------------------------------------- //Random adgang til en fil # include # include enum {SUCCES, FAIL, MAX_LEN = 120}; //funktion prototyper, søge filen positionsindikator ugyldig PtrSeek (FILE * fptr); //funktion prototype, fortæller filen positionsindikator ... lange PtrTell (FILE * fptr); //læst funktion prototype og skriver ... ugyldiggøre DataRead (FILE * fptr); int ErrorMsg (char * str); int main (void) {FILE * fptr; char filnavn [] = "c: \\\\ Temp \\\\ tesseven.

txt"; int Reval = SUCCES; //hvis der er nogle fejl at åbne filen for læsning ... if ((fptr = fopen (filnavn, "r")) == NULL) {Reval = ErrorMsg (filnavn); } //Hvis åbning er vellykket ... else {//PtrSeek () funktion opkald ... PtrSeek (fptr); //luk filen stream ... hvis (fclose (fptr) == 0) printf ("% s succes lukket \\ n.", filnavn); } //For Borland ...

systemet ("pause"); returnere Reval; } //PtrSeek () funktion definition void PtrSeek (FILE * fptr) {lange offset1, offset2, offset3, offset4; offset1 = PtrTell (fptr); DataRead (fptr); offset2 = PtrTell (fptr); DataRead (fptr); offset3 = PtrTell (fptr); DataRead (fptr); offset4 = PtrTell (fptr); DataRead (fptr); printf ("\\ nReread den tesseven.txt, i tilfældig rækkefølge: \\ n"); //genlæse den 2. linje i tesseven.txt fseek (fptr, offset2, SEEK_SET); DataRead (fptr); //genlæse 1. linje af tesseven.txt fseek (fptr, offset1, SEEK_SET); DataRead (fptr); //genlæse den 4. linie i tesseven.

txt fseek (fptr, offset4, SEEK_SET); DataRead (fptr); //genlæse den 3. linje i tesseven.txt fseek (fptr, offset3, SEEK_SET); DataRead (fptr); } //PtrTell () funktion definition lange PtrTell (FILE * fptr) {lange Reval; //fortælle fptr position ... Reval = ftell (fptr); printf ("The fptr er% ld \\ n", Reval); returnere Reval; } //DataRead () funktion definition void DataRead (FILE * fptr) {char buff [MAX_LEN]; //læsning tekstlinje på fptr position ... fgets (buff, MAX_LEN, fptr); //og vise teksten ...

printf ("->% s \\ n", buff); } //Fejlmeddelelse funktionsdefinition int ErrorMsg (char * str) {//vise denne fejlmeddelelse ... printf ("Problem, kan ikke åbne% s \\ n"., Str); returnere FAIL; } ------------------------------------------------- ------------------------------------------- //Læsning, skrivning, tilbagespoling og binære data #include #include enum {SUCCES, FAIL, MAX_NUM = 5}; //funktioner prototype ... void DataWrite (FILE * fout); ugyldiggøre DataRead (FILE * fin); int ErrorMsg (char * str); int main (void) {FILE * fptr; //binære typen filer ...

char filnavn [] = "c: \\\\ Temp \\\\ teseight.bin"; int Reval = SUCCES; //test til oprettelse, åbning binær fil til skrivning ... if ((fptr = fopen (filnavn, "WB +")) == NULL) {Reval = ErrorMsg (filnavn); } Else {//skrive data til filen teseight.bin DataWrite (fptr); //nulstille filen positionsvisning ... tilbage (fptr); //læse data ... DataRead (fptr); //luk filen stream ...

hvis (fclose (fptr) == 0) printf ("% s succes lukket \\ n", filnavn); } //For Borland-system ("pause") returnere Reval; } //DataWrite () funktion definition void DataWrite (FILE * fout) {int i; dobbelt buff [MAX_NUM] = {145,23, 589,69, 122,12, 253,21, 987,234}; printf ("Størrelsen af ​​lædertøj:% d byte \\ n", sizeof (buff)); for (i = 0; i {printf ("% 5.

2f \\ n", buff [i]), fwrite (& buff [i], sizeof (dobbelt), 1, fout)}} //DataRead () funktion definition ugyldiggøre DataRead (FILE * fin) {int i, dobbelt x; printf ("\\ nReread fra den binære fil: \\ n") for (i = 0; i {fread (& x, sizeof (dobbelt), (size_t) 1 , fin), printf ("% 5.2f \\ n", x);}} //ErrorMsg () funktion definition int ErrorMsg (char * str) {printf ("Kan ikke åbne% s \\ n"., str); tilbagevenden FAIL;} --------------------------------------- testcal.

txt ----- ---------------------------------- 23 12 33 10 4 6 44 31 7 50 ------ -------------------------------------------------- --------------------------------- /* C Program til at beregne gennemsnittet af en liste over numre. * //* beregne den samlede fra én fil, output gennemsnittet * //* i en anden fil * /# include /* for exit () * /# include int main (void) {int værdi, i alt = 0, tæller = 0; /* fileptrIn og fileptrOut er variabler af typen (FILE *) * /FILE * fileptrIn, * fileptrOut, char filenameIn [100], filenameOut [100] printf ("Indtast et input filnavn (brug sti, hvis nødvendigt): \\ n" ); scanf ("% s", filenameIn); printf ("Indtast en output filnavn (brug sti, hvis nødvendigt): \\ n"); scanf ("% s", filenameOut); /* åbne filer til læsning, "r" og skrive, "w" * /if ((fileptrIn = fopen (filenameIn, "r")) == NULL) {printf ("Fejl åbning% s for læsning.

\\ n" , filenameIn); exit

(1); } Else printf ("Åbning% s for læsning er OK \\ n.", FilenameIn); if ((fileptrOut = fopen (filenameOut, "w")) == NULL) {printf ("Fejl åbning% s for skrivning \\ n"., filenameOut); exit

(1); } Else printf ("Åbning% s for skrivning er OK \\ n.", FilenameOut); /* fscanf * /printf ("\\ nCalculate den samlede ... \\ n"); mens (EOF = fscanf (fileptrIn, "% i", og værdi)!) {samlede + = værdi; ++ tælle; } /* ende af while-løkken * //* Skriv den gennemsnitlige værdi til filen * //* fprintf * /printf ("Beregn gennemsnittet ... \\ n \\ n.

"); fprintf (fileptrOut, "Gennemsnit af% i tal =% f \\ n", tæller, alt /(dobbelt) count); printf ("Gennemsnit af% i tal =% f \\ n \\ n", tæller, alt /(dobbelt) count); printf ("Check også din% s filindhold \\ n", filenameOut); hvis (fclose (fileptrIn) == 0) printf ("% s lukket lykkedes \\ n", filenameIn); hvis (fclose (fileptrOut) == 0) printf ("% s lukket lykkedes \\ n", filenameOut); tilbage 0; } ------------------------------------------------- -------------------------------------------- //Omdirigering en standard strøm # include # include enum {SUCCES, FAIL, STR_NUM = 6}; ugyldig StrPrint (char ** str); int ErrorMsg (char * str); int main (void) {//erklære og definere en pointer til snor .

.. char * str [STR_NUM] = {"Omdirigering en standard strøm til tekstfilen.", "Disse 5 linjer tekst vil blive omdirigeret", " så mange ting, du kan gøre, hvis du forstår "," -konceptet, grundlæggende idé -! Prøv denne ene "," -------------- FÆRDIG ---------- ---------------- "}; char filnavn [] = "c: \\\\ Temp \\\\ testnine.txt"; int Reval = SUCCES; StrPrint (str); //opretter fil, hvis ikke eksisterer og åben til at skrive ... //hvis findes, kasseres det tidligere indhold ... hvis (freopen (filnavn, "w", stdout) == NULL) {Reval = ErrorMsg (filnavn); } Else {//kalder StrPrint () funktion ...

StrPrint (str); //lukke standard output ... fclose (stdout); } Returnere Reval; } //StrPrint () funktion definition void StrPrint (char ** str) {int i; for (i = 0; i //til output-skærm /konsol ... printf ("% s \\ n" standard, str [i]) systemet ("pause")} //ErrorMsg () funktion definition int ErrorMsg (char * str) {printf ("Problem, kan ikke åbne% s \\ n"., str), returnere FAIL;} ---------------------- -------------------------------------------------- -------------- //Demonstrere remove () funktion # include # include void main () {//erklære et array til at gemme filnavn ...

char filnavn [80]; printf ("Indtast filnavnet, der skal slettes:") får (filnavn); //kontrollere eventuelle fejl ... hvis (fjerne (filnavn) == 0) printf (". Fil% s er blevet slettet \\ n", filnavn ), ellers fprintf (stderr, "Fejl ved sletning af filen% s \\ n"., filnavn) systemet ("PAUSE");} --------------------- -------------------------------------------------- ---------------- //Brug omdøbe () for at ændre et filnavn #include #include void main () {char oldname [80], newname [80] printf ("Enter nuværende filnavn: ") får (oldname) printf (" Indtast nyt navn til fil: ") får (newname), hvis (omdøbe (oldname, newname) == 0) {printf ("% s er blevet omdøbe% s \\ n ", oldname, newname.

); } Else {fprintf (stderr ". Der opstod en fejl omdøbning% s \\ n", oldname); }-System ("PAUSE"); } ------------------------------------------------- ------------------------------------------- //Kopiering af en fil #include #include int file_copy (char * oldname, char * newname); void main () {char kilde [80], destination [80]; //få kilde og destination navne printf ("\\ nIndtast kildefilen:"); får (kilde); printf ("\\ nIndtast destination fil:"); får (destination); hvis (file_copy (kilde, destination) == 0) puts ("Kopier operation succesfulde"); ellers fprintf (stderr, "Fejl under kopiering drift"); systemet ("PAUSE"); } Int file_copy (char * oldname, char * newname) {FILE * fold, * fnew; int C; //Åbn kildefilen til læsning i binær tilstand, hvis ((fold = fopen (oldname, "rb")) == NULL) tilbagevenden -1; //Åben destinationsfilen til at skrive i binær tilstand, hvis ((fnew = fopen (newname, "WB")) == NULL) {fclose (fold); tilbage -1; } //Læs en byte ad gangen fra kilden, hvis slutningen af ​​filen //ikke er nået, skriver byte til destinationen, mens

(1) {c = fgetc (fold); if (! feof (fold)) fputc (c, fnew); ellers break; } Fclose (fnew); fclose (fold); tilbage 0; } ------------------------------- Testfour.

txt --------------- --------------------- ------------------ LINUX LOR! -------- ---------------- ------------ FEDORA 3, gcc xxx ----------------- --- ÅBNING, læsning, skrivning én linje tegn -------------------------------------- -------------- Det er fil testfour.txt. Denne fil indhold vil blive læst linje for linje tegn indtil ikke mere line af karakter fundet. Derefter vil det være output til skærmen, og også vil blive kopieret til fil testhree.txt. Kontrollere indholdet af testhree.txt fil ...

--------------------------------------- ------------- ------------------HA 'EN GOD DAG--------------- ---- ---------------------------------------------- --------------------------------- /*************** readline .c ************ /* Læsning og skrivning én linje ad gangen * /# include # include enum {SUCCES, FAIL, MAX_LEN = 100}; /* funktion prototype til læse- og skriver for linje ... * /void LineReadWrite (FILE * fin, FILE * fout); int main (void) {FILE * fptr1, * fptr2; /* fil testhree.txt er placeret på nuværende mappe.

du kan sætte denne fil på ethvert sted, forudsat at du giver den fulde sti, samme for testfour.txt * /char filnavn1 [] = "testhree.txt"; char filnavn2 [] = "testfour.txt"; char Reval = SUCCES; /* test åbning testhree.txt fil til skrivning, hvis ikke ... * /if ((fptr1 = fopen (filnavn1, "w")) == NULL) {printf ("Problem, kan ikke åbne% s for skrivning. \\ n ", filnavn1); Reval = FAIL; } /* Test åbning testfour.txt fil til læsning, hvis ikke ... * /else if ((fptr2 = fopen (filnavn2, "r")) == NULL) {printf ("Problem, kan ikke åbne% s for læsning .

\\ n ", filnavn2); Reval = FAIL; } /* Hvis åbning fro at skrive og læse en succes, skal du gøre ... * /else {/* funktion opfordring til læse og skrive, linje for linje ... * /LineReadWrite (fptr2, fptr1); /* lukke begge filer streame ... * /if (fclose (fptr1) == 0) printf ("% s succes lukket \\ n.", filnavn1); hvis (fclose (fptr2) == 0) printf ("% s succes lukket \\ n.", filnavn2); } Returnere Reval; } /* Funktion definition for linje læse, skrive * /void LineReadWrite (FILE * fin, FILE * fout) {/* lokal variabel ... * /char buff [MAX_LEN].

; mens (! fgets (buff, MAX_LEN, fin) = NULL) {/* skrive til fil ... * /fputs (buff, fout); /* skrive til at screene ... * /printf ("% s", buff); }} ------------------------------------------------ ---------------------------------------------- ////////////rwbinary.c////////////////FEDORA 3, gcc xxx ///////læsning, skrivning, spole tilbage og binære data #include enum {SUCCES, FAIL, MAX_NUM = 5}; //funktioner prototype ... void DataWrite (FILE * fout); ugyldiggøre DataRead (FILE * fin); int ErrorMsg (char * str); int main (void) {FILE * fptr; //binære typen filer ...

char filnavn [] = "/testo1/testo2/teseight.bin"; int Reval = SUCCES; //test til oprettelse, åbning binær fil til skrivning ... if ((fptr = fopen (filnavn, "WB +")) == NULL) {Reval = ErrorMsg (filnavn); } Else {//skrive data til filen teseight.bin DataWrite (fptr); //nulstille filen positionsvisning ... tilbage (fptr); //læse data ... DataRead (fptr); //luk filen stream ...

hvis (fclose (fptr) == 0) printf ("% s succes lukket \\ n", filnavn); } Returnere Reval; } //DataWrite () funktion definition void DataWrite (FILE * fout) {int i; dobbelt buff [MAX_NUM] = {145,23, 589,69, 122,12, 253,21, 987,234}; printf ("Størrelsen af ​​lædertøj:% d byte \\ n", sizeof (buff)); for (i = 0; i {printf ("% 5.

2f \\ n", buff [i]), fwrite (& buff [i], sizeof (dobbelt), 1, fout)}} //DataRead () funktion definition ugyldiggøre DataRead (FILE * fin) {int i, dobbelt x; printf ("\\ nReread fra den binære fil: \\ n") for (i = 0; i {fread (& x, sizeof (dobbelt), (size_t) 1 , fin), printf ("% 5.2f \\ n", x);}} //ErrorMsg () funktion definition int ErrorMsg (char * str) {printf ("Kan ikke åbne% s \\ n"., str); tilbagevenden SVIGTE; } ====================================================================================================;>;>.h>.h>.h>.h>.h>.h>.h>.h>.h>;>.h>.h>.h>.h>;>;>.h>.h>.h>.h>.h>.h>.h>.h>.h>.

h>.h>.h>.h>.h>

Page   <<       [1] [2] [3] [4] [5] [6] [7] [8] [9] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.