Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.11 KB | None | 0 0
  1. #define _CRT_NO_SECURE_WARNINGS
  2. #include <stdio.h>
  3. #include <stdint.h>
  4. #include <math.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7.  
  8. //Aufgaben 1-7
  9. void Aufgabe1(char* inp, char* out);
  10. void Aufgabe2(char* inp, char* out);
  11. void Aufgabe3(char* inp, char* out);
  12. int Aufgabe4(char* inp, char* out);
  13. void Aufgabe5(const char* filename);
  14. void Aufgabe6(const char* filename);
  15. void Aufgabe7(const char* filename);
  16.  
  17. //Aufgabe 8
  18. struct datum
  19. {
  20. int jahr;
  21. int mon;
  22. int tag;
  23. };
  24. typedef struct angestellt //FRAGE
  25. {
  26. char name[20];
  27. char vorname[20];
  28. struct datum alter;
  29. struct datum eigest;
  30. long gehalt;
  31. struct angestellt *next;
  32. }angestellt;
  33.  
  34. //Aufgabe 9a)
  35. typedef struct bauteil bauteil;
  36. struct bauteil
  37. {
  38. char bez[50];
  39. int res;
  40. int res_ser;
  41. bauteil* next;
  42. };
  43.  
  44. //Aufgabe 9 b, c)
  45. void ausgabe(bauteil* p);
  46. bauteil* eingabe(bauteil* start);
  47. void schaltung(bauteil* p);
  48.  
  49. //Aufgabe 10a)
  50. typedef struct student student;
  51. struct student
  52. {
  53. char name[50];
  54. struct datum geburt;
  55. char geschlecht;
  56. int langzeit;
  57. student* next;
  58. };
  59.  
  60. //Aufgabe 10b, c)
  61. void ausgabe_studente(student* p);
  62. student* eingabe_studenten(student* start);
  63. void ausgabe_langzeit_student(student* p);
  64.  
  65. int main()
  66. {
  67. char filename[] = "Text.txt";
  68. char inp[50] = "Hallo Bulme";
  69. char out[50] = "";
  70. char filter[50] = "ABC123XYZ";
  71. char num[3][50] =
  72. {
  73. "123456"
  74. "Lol457"
  75. "XYZ123ABC"
  76. };
  77. int out_int;
  78. bauteil* list = NULL;
  79. student* first = NULL;
  80.  
  81. //Aufgabe 1
  82. printf("Aufgabe 1: \n");
  83. Aufgabe1(inp, out);
  84. printf("%s\n\n", out);
  85.  
  86. //Aufgabe 2
  87. printf("Aufgabe 2: \n");
  88. Aufgabe2(inp, out);
  89. printf("%s\n\n", out);
  90.  
  91. //Aufgabe 3
  92. printf("Aufgabe 3: \n");
  93. memset(out, 0, sizeof(out));
  94. Aufgabe3(filter, out);
  95. printf("%s\n\n", out);
  96.  
  97. //Aufgabe 4
  98. printf("Aufgabe 4: \n");
  99. int c;
  100. for (int i = 0; i < 3; i++)
  101. {
  102. if((c = Aufgabe4(num[i], &out_int)) == 0) //FRAGE
  103. {
  104. printf("Nur Nummern enthalten\n");
  105. }
  106. else
  107. {
  108. printf("%d Characters gefunden und ignoriert. \n", c);
  109. }
  110. printf("Umgewandelter String: %d\n", out_int);
  111. }
  112.  
  113. //Aufgabe 5
  114. printf("\nAufgabe 5: \n");
  115. Aufgabe5(filename);
  116.  
  117. //Aufgabe 6
  118. printf("\nAufgabe 6: \n");
  119. Aufgabe6(filename);
  120.  
  121. //Aufgabe 7
  122. printf("\nAufgabe 7: \n");
  123. Aufgabe7(filename);
  124.  
  125. //Aufnahme 9b)
  126. printf("\n Aufgabe 9b): ");
  127. for (int i = 0; i < 3; i++)
  128. {
  129. list = eingabe(list);
  130. }
  131. ausgabe(list);
  132.  
  133. //Ausgabe 9c)
  134. printf("\nAufgabe 9c): ");
  135. schaltung(list);
  136.  
  137. //Aufnahme 10b)
  138. printf("\nAufgabe 10b)\n");
  139. for (int i = 0; i < 3; i++)
  140. {
  141. first = eingabe_studenten(first);
  142. }
  143. ausgabe_studenten(first);
  144.  
  145. //Aufgabe 10c)
  146. printf("\nAufgabe 10c)\n");
  147. ausgabe_langzeit_student(first);
  148.  
  149. system("PAUSE");
  150. }
  151.  
  152. void Aufgabe1(char* inp, char* out)
  153. {
  154. for (int i = 0; inp[i] != '\0'; i++)
  155. {
  156. if ('a' <= inp[i] && 'z' >= inp[i])
  157. {
  158. out[i] = inp[i] - 32;
  159. }
  160. else
  161. {
  162. out[i] = inp[i];
  163. }
  164. }
  165. }
  166.  
  167. void Aufgabe2(char * inp, char * out)
  168. {
  169. for (int i = 0; inp[i] != '\0'; i++)
  170. {
  171. if ('a' <= inp[i] && 'z' >= inp[i])
  172. {
  173. out[i] = inp[i] - 32;
  174. }
  175. if ('A' <= inp[i] && 'Z' >= inp[i])
  176. {
  177. out[i] = inp[i] + 32;
  178. }
  179. }
  180. }
  181.  
  182. void Aufgabe3(char* inp, char* out)
  183. {
  184. int c = 0;
  185. for (int i = 0 ; i < inp[i] != '\0'; i++)
  186. {
  187. if (inp[i] < '0' || inp[i] > '9')
  188. {
  189. out[c] = inp[i];
  190. c++;
  191. }
  192. }
  193. }
  194.  
  195. int Aufgabe4(char* inp, int* out_int)
  196. {
  197. int c = 0;
  198. int exp;
  199. int ret = 0;
  200. *out_int = 0;
  201. int size = strlen(inp);
  202. for (int i = size - 1; i >= 0; i--)
  203. {
  204. if (inp[i] >= '0' && inp[i] <= '9')
  205. {
  206. //könnte durch (int)(pow(10, c) + 0.5) ersetzt werden
  207. exp = 1;
  208. for (int u = 0; u < c; u++)
  209. {
  210. exp *= 10;
  211. }
  212.  
  213. *out_int += (int)(inp[i] - '0') * exp;
  214. c++;
  215. }
  216. else
  217. {
  218. ret++;
  219. }
  220. }
  221. return ret; //Gibt Anzahl von Zeichen zurück, NICHT IN AUFGABE 4 GEFRAGT
  222. }
  223.  
  224.  
  225. void Aufgabe5(const char* filename)
  226. {
  227. FILE* file;
  228. fopen_s(&file, filename, "r");
  229. int Großbuchstaben = 0;
  230. int Kleinbuchstaben = 0;
  231. int Ziffern = 0;
  232. int Zeichen = 0;
  233. int c;
  234.  
  235. while ((c = fgetc(file)) != EOF) //KLAMMERN!
  236. {
  237. if (c >= 'A' && c <= 'Z')
  238. {
  239. Großbuchstaben++;
  240. }
  241. else if (c >= 'a' && c <= 'z')
  242. {
  243. Kleinbuchstaben++;
  244. }
  245. else if (c >= '0' && c <= '9')
  246. {
  247. Ziffern++;
  248. }
  249. else if (c != ' ')
  250. {
  251. Zeichen++;
  252. }
  253. }
  254. printf(
  255. "Gro\341buchstaben: %d\n"
  256. "Kleinbuchstaben: %d\n"
  257. "Ziffern: %d\n"
  258. "Sonstige Zeichen: %d\n\n",
  259. Großbuchstaben, Kleinbuchstaben, Ziffern, Zeichen);
  260. fclose(file);
  261. }
  262.  
  263. void Aufgabe6(const char * filename)
  264. {
  265. FILE* file;
  266. fopen_s(&file, filename, "r");
  267. int c;
  268. int freq[255] = { 0 };
  269. while ((c = fgetc(file)) != EOF)
  270. {
  271. if (c <= 255 && c >= 32)
  272. {
  273. freq[c]++;
  274. }
  275. }
  276. for (int i = 0; i < 255; i++)
  277. {
  278. if (freq[i] != 0)
  279. {
  280. printf("%c: %d\n\n", i, freq[i]);
  281. }
  282. }
  283. fclose(file);
  284. }
  285.  
  286. void Aufgabe7(const char * filename)
  287. {
  288. FILE* file;
  289. fopen_s(&file, filename, "r");
  290. int c;
  291. int count = 0;
  292. while ((c = fgetc(file)) != EOF)
  293. {
  294. count++;
  295. printf("%x", c);
  296. if (count % 16 == 0)
  297. {
  298. printf("\n");
  299. }
  300. }
  301. fclose(file);
  302. printf("\n");
  303. }
  304.  
  305. void ausgabe(bauteil* p)
  306. {
  307. if (p == NULL)
  308. {
  309. printf("Keine Bauteile gefunden. \n");
  310. return 0;
  311. }
  312. do
  313. {
  314. printf(
  315. "\nBezeichnung: %s\n"
  316. "Widerstand: %d\n"
  317. "widerstandsreihe: E%d\n",
  318. p->bez, p->res, p->res_ser);
  319. p = p->next;
  320. } while (p != NULL);
  321. }
  322. //Nur Zum Testen
  323. bauteil* eingabe(bauteil* start)
  324. {
  325. bauteil* neu = (bauteil*)malloc(sizeof(struct bauteil));
  326.  
  327. strcpy_s(neu->bez, sizeof(neu->bez), "Widerstabd 360Grad");
  328. neu->res = 480;
  329. neu->res_ser = 24;
  330. neu->next = start;
  331. return neu;
  332. }
  333.  
  334. void schaltung(bauteil* p)
  335. {
  336. int res = 0;
  337. if (p == NULL)
  338. {
  339. printf("Keine Bauteile gefunden.\n");
  340. return;
  341. }
  342. do
  343. {
  344. printf(
  345. "Bezeichnung: %s\n"
  346. "Widerstand: %d\n"
  347. "Widerstandsreihe: E%d\n\n",
  348. p->bez, p->res, p->res_ser);
  349. res += p->res;
  350. p = p->next;
  351. } while (p != NULL);
  352. printf("Gesamtwiderstand: %d Ohm\n", res);
  353. }
  354.  
  355. void ausgabe_studenten(bauteil* p)
  356. {
  357. if (p == NULL)
  358. {
  359. printf("Keine Studenten gefunden.\n");
  360. return;
  361. }
  362. do
  363. {
  364. printf(
  365. "Name: %s\n"
  366. "Geburtsdatum: %d.%d.%d\n"
  367. "Geschlecht: %c\n"
  368. "Art: ",
  369. p->name, p->geburt.tag, p->geburt.mom, p->geburt.jahr, p->geschlecht);
  370. if (p->langzeit == 1)
  371. {
  372. printf("Langzeit");
  373. }
  374. else
  375. {
  376. printf("Normal");
  377. }
  378. p = p->next;
  379. } while (p != NULL);
  380. }
  381.  
  382. //Nur Zum Testen
  383. student* eingabe_studenten(student* start)
  384. {
  385. student* neu = (student*)malloc(sizeof(struct student));
  386.  
  387. neu->geschlecht = 'm';
  388. neu->geburt.jahr = 2002;
  389. neu->geburt.mon = 4;
  390. neu->geburt.tag = 13;
  391. strcpy_s(neu->name, sizeof(neu->name), "Rolf");
  392. neu->langzeit = 1;
  393. neu->next = start;
  394. return neu;
  395. }
  396.  
  397. void ausgabe_langzeit_studenten(student* p)
  398. {
  399. int count = 0;
  400. if (p == NULL)
  401. {
  402. printf("Keine Studenten gefunden.\n");
  403. return;
  404. }
  405. printf("Langzeitstudenten: \n\n");
  406. do
  407. {
  408. if (p->langzeit == 1)
  409. {
  410. count = 1;
  411. printf(
  412. "Name: %s\n"
  413. "Geburtsdatum: %d.%d.%d\n"
  414. "Geschlecht: %c\n",
  415. p->
  416. )
  417. }
  418. }
  419.  
  420.  
  421. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement