SHARE
TWEET

Drugi

a guest Jan 21st, 2020 67 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #define new(x) (x*)malloc(sizeof(x))
  5. struct Prostokat {
  6.     float a, b;
  7.     struct Prostokat* next;
  8. };
  9. void menu() {
  10.     system("cls");
  11.     printf("Menu\n");
  12.     printf("\t1.Pokaz\n");
  13.     printf("\t2.Nowy\n");
  14.     printf("\t3.Zapisz\n");
  15.     printf("\t0.Koniec\n");
  16. }
  17. int main() {
  18.     struct Prostokat* pierwszy, * aktualny;
  19.     pierwszy = NULL;
  20.     menu();
  21.     do {
  22.         if (_kbhit()) {
  23.             char znak = _getch();
  24.             switch (znak) {
  25.             case '1':
  26.                 aktualny = pierwszy;
  27.                 if (aktualny != NULL) {
  28.                     printf("Prostokat %f x %f\n", aktualny->a, aktualny->b);
  29.                     aktualny = aktualny->next;
  30.                 }
  31.                 else {
  32.                     printf("Nie podano wymiarow prostokata.");
  33.                 }
  34.                 _getch();
  35.                 menu();
  36.                 break;
  37.             case '2':
  38.                 if (pierwszy == NULL) {
  39.                     pierwszy = new(Prostokat);
  40.                     aktualny = pierwszy;
  41.                 }
  42.                 else {
  43.                     aktualny = pierwszy;
  44.                     while (aktualny->next != NULL)
  45.                         aktualny = aktualny->next;
  46.                     aktualny->next = new(Prostokat);
  47.                     aktualny = aktualny->next;
  48.                 }
  49.                 printf("Podaj bok a: ");
  50.                 scanf_s("%f", &aktualny->a);
  51.                 printf("Podaj bok b: ");
  52.                 scanf_s("%f", &aktualny->b);
  53.                 aktualny->next = NULL;
  54.                 menu();
  55.                 break;
  56.             case '3':
  57.                 char sPlik[255];
  58.                 printf("Podaj nazwe pliku: ");
  59.                 scanf_s("%s", sPlik, 255);
  60.                 FILE* plik;
  61.                 fopen_s(&plik, sPlik, "w");
  62.                 if (plik != NULL) {
  63.                     aktualny = pierwszy;
  64.                     while (aktualny != NULL) {
  65.                         fprintf(plik, "%f %f\n", aktualny->a, aktualny->b);
  66.                         aktualny = aktualny->next;
  67.                     }
  68.                     fclose(plik);
  69.                 }
  70.                 printf("Zapisano plik");
  71.                 _getch();
  72.                 menu();
  73.                 break;
  74.             case '0':
  75.                 return 0;
  76.             default:
  77.                 printf("%c:%i ", znak, znak);
  78.             }
  79.         }
  80.     } while (true);
  81.     return 0;
  82. }
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