lib

by mai on February 26th, 2012
No notes
Syntax: C++
Show lines - Hide lines - Show in textbox - Download
  1. #include <iostream>
  2. using namespace std;
  3. #include <string.h>
  4. #include <fstream>
  5. #include <stdlib.h>
  6. #include <header.h>
  7.  
  8.  
  9. int verarbeitePerson()
  10. {
  11. enum zustand {inOrdnungsnr1, imNamen, inID, inURL, anzahl};
  12. ifstream datei;
  13. char puffer[100], zeichen;
  14. int zaehler;
  15. enum zustand zustand;
  16.  
  17. datei.open("personen.txt");
  18.  
  19. if(!datei)
  20. {
  21. cout << "Die Datei konnte nicht gefunden werden." << endl;
  22. return 1;
  23. }
  24.  
  25. zustand=inOrdnungsnr1;
  26. zaehler=0;
  27.  
  28. int i=0;
  29. for (datei.get(zeichen);!datei.eof();datei.get(zeichen))
  30. {
  31. switch(zeichen)
  32. {
  33. case '(':
  34. puffer[zaehler]='\0';
  35. strcpy(person[i].name,puffer);
  36. zustand=inID;
  37. zaehler=0;
  38. break;
  39.  
  40. case ')':
  41. puffer[zaehler]='\0';
  42. strcpy(person[i].id,puffer);
  43. zustand=inURL;
  44. zaehler=0;
  45. break;
  46.  
  47. case '"':
  48. puffer[zaehler]='\0';
  49. if (zustand==inOrdnungsnr1)
  50. {
  51. puffer[zaehler]='\0';
  52. zaehler=0;
  53. i++;
  54. zustand=imNamen;
  55. }
  56. else if (zustand==inURL)
  57. {
  58. break;
  59. }
  60. break;
  61.  
  62. case ' ':
  63. if (zustand==inOrdnungsnr1) break;
  64. else {
  65. puffer[zaehler]=zeichen;
  66. zaehler++;
  67. break;
  68. }
  69. break;
  70.  
  71. case '\n':
  72. zustand=inOrdnungsnr1;
  73. zaehler=0;
  74. break;
  75.  
  76. default:
  77. puffer[zaehler]=zeichen;
  78. zaehler++;
  79. break;
  80. }
  81. }
  82. }
  83.  
  84. void druckePerson(int i)
  85. {
  86. int j;
  87.  
  88. cout << person[i].name << "hat die Identifikation: " << person[i].id << " und hat folgende " << person[i].gesamt << " Patenschaften uebernommen " << endl;
  89.  
  90. for (j=0; j<800;j++)
  91. {
  92. if (person[i].vater[j]==0) continue;
  93. else cout << person[i].vater[j] << " Patenkind(er)von " << person[j].name << endl;
  94. }
  95. }
  96.  
  97.  
  98. int verarbeiteBeziehung()
  99. {
  100. ifstream datei;
  101. char puffer[100], zeichen;
  102. int zaehler;
  103. int ordnungsnr2;
  104. int zustand;
  105. /*
  106.   zustand=0 : leer,
  107.   zustand=1 : inOrdnungsnr1,
  108.   zustand=2 : inOrdnungsnr2,
  109.   zustand=3 : inAnzahl,
  110.   */
  111.  
  112. datei.open("beziehungen.txt");
  113.  
  114. if(!datei)
  115. {
  116. cout << "Die Datei konnte nicht gefunden werden." << endl;
  117. return 1;
  118. }
  119.  
  120. zustand=0;
  121. zaehler=0;
  122.  
  123. int ordnungsnr1, anzahl;
  124. for (datei.get(zeichen);!datei.eof();datei.get(zeichen))
  125. {
  126. switch(zeichen)
  127. {
  128. case ' ':
  129. if (zustand==1){
  130. puffer[zaehler]='\0';
  131. ordnungsnr1=atoi(puffer);
  132. zustand=2;
  133. zaehler=0;
  134. break;
  135. }
  136.  
  137. else if (zustand==2){
  138. puffer[zaehler]='\0';
  139. ordnungsnr2=atoi(puffer);
  140. zaehler=0;
  141. zustand=3;
  142. break;
  143. }
  144.  
  145. else if (zustand==0){
  146. break;
  147. }
  148.  
  149. case '\n':
  150. puffer[zaehler]='\0';
  151. anzahl=atoi(puffer);
  152. person[ordnungsnr1].vater[ordnungsnr2]=anzahl;
  153. person[ordnungsnr1].gesamt=person[ordnungsnr1].gesamt+anzahl;
  154. zustand=0;
  155. zaehler=0;
  156. break;
  157.  
  158. default:
  159. puffer[zaehler]=zeichen;
  160. zaehler++;
  161. if (zustand==0) zustand=1;
  162. break;
  163. }
  164. }
  165. }
  166.  
  167. void suchePerson(char ident)
  168. {
  169. int i;
  170. for (i=0; i<800; i++)
  171. {
  172. if (strcmp(person[i].id, ident)==0){
  173.  
  174. personen.druckePerson(i);
  175. cout << endl;
  176. }
  177. }
  178. }
  179.  

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS