daily pastebin goal
61%
SHARE
TWEET

Untitled

a guest Apr 24th, 2018 51 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top