Advertisement
Guest User

Untitled

a guest
May 20th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.59 KB | None | 0 0
  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4. #define tabl "InfoTable"
  5.  
  6. struct Fish {
  7.     char name[60];
  8.     unsigned int num;
  9.     char color[45];
  10.     int year;
  11.     int mass;
  12.     int month;
  13.     int life;
  14.     int surviving;
  15. };
  16.  
  17. char *monthName(int n) {
  18.     if (n == 1) { return "январь"; }
  19.     else if (n == 2) { return "февраль"; }
  20.     else if (n == 3) { return "март"; }
  21.     else if (n == 4) { return "апрель"; }
  22.     else if (n == 5) { return "май"; }
  23.     else if (n == 6) { return "июнь"; }
  24.     else if (n == 7) { return "июль"; }
  25.     else if (n == 8) { return "август"; }
  26.     else if (n == 9) { return "сентябрь"; }
  27.     else if (n == 10) { return "октябрь"; }
  28.     else if (n == 11) { return "ноябрь"; }
  29.     else if (n == 12) { return "декабрь"; }
  30. }
  31.  
  32. void normalize(char *str, int n) {
  33.     int len = strlen(str);
  34.     for (int i = 0; i < len; i++)
  35.         if (str[i] == '_' || str[i] == '-') len++;
  36.     len = (len + 1) >> 1;
  37.     for (int i = len; i < n; i++)
  38.         strcat(str, " ");
  39. }
  40.  
  41. void nerps() {
  42.     FILE *fp = fopen(tabl, "r");
  43.     int n;
  44.     fscanf(fp, "%d", &n);
  45.     struct Fish fish[n];
  46.     for (int i = 0; i < n; i++) {
  47.         fscanf(fp, "%s %d %s %d %d %d %d %d",
  48.         fish[i].name, &fish[i].num, fish[i].color, &fish[i].year, &fish[i].mass, &fish[i].month, &fish[i].life, &fish[i].surviving);
  49.     }
  50.     fclose(fp);
  51.     printf("|              Наименование|Чис-сть|                   Окрас|В Красной книге с |Вес|Период размножения|Продолжительность жизни|Выживают тёплой зимой|\n");
  52.     printf("|--------------------------|-------|------------------------|------------------|---|------------------|-----------------------|---------------------|\n");
  53.     for (int i = 0; i < n; i++) {
  54.         char month[20];
  55.         strcpy(month, monthName(fish[i].month));
  56.         normalize(fish[i].name, 26);
  57.         normalize(fish[i].color, 24);
  58.         normalize(month, 18);
  59.         printf("|%26s|%-3d тыс|%s|%-4d г            |%-3d|%-18s|%-23d|%s                  |\n",
  60.         fish[i].name, fish[i].num, fish[i].color, fish[i].year, fish[i].mass, month, fish[i].life, (fish[i].surviving ? "Да " : "Нет"));
  61.     }
  62. }
  63.  
  64. int donate() {
  65.     int n, q;
  66.     printf("Введите сумму пожертвования: ");
  67.     scanf("%d", &n);
  68.     printf("Выбурите способ оплаты: \n");
  69.     printf("1) Со счёта в Яндекс.деньгах;\n");
  70.     printf("2) С банковской карты;\n");
  71.     printf("3) Со счёта WebMoney;\n");
  72.     printf("4) По коду через терминал\n");
  73.     printf("> ");
  74.     scanf("%d", &q);
  75.     if (q >= 1 && q <= 4)
  76.         printf("Спасибо большое!\n");
  77.     else
  78.         printf("Неверный ввод, попробуйте снова.\n");
  79. }
  80.  
  81. int main() {
  82.     int q;
  83.     printf("Добро пожаловать в благотворительный счёт \"Фонд друзей балтийской нерпы\"!\n");
  84.         printf("1) Кто мы;\n");
  85.         printf("2) Балтийские нерпы;\n");
  86.         printf("3) Пожертвовать;\n");
  87.         printf("4) Выход.\n");
  88.    
  89.     while (1) {
  90.         printf("> ");
  91.         scanf("%d", &q);
  92.         if (q == 1) {
  93.             printf("Фонд друзей балтийской нерпы – это некоммерческая организация, имущество которой формируется на основе добровольных взносов и пожертвований. Все деньги будут направлены на реабилитацию морских млекопитающих, попавших в ситуации, ставящие под угрозу их жизнь и здоровье; возвращение морских млекопитающих в естественную среду обитания, а также сохранение отдельных их видов.Принимайте участие в спасении балтийских кольчатых нерп и других морских млекопитающих!\n");
  94.         } else if (q == 2) {
  95.             nerps();
  96.         } else if (q == 3) {
  97.             donate();
  98.         } else if (q == 4) {
  99.             printf("До свидания!\n");
  100.             return 0;
  101.         } else {
  102.             printf("Неверный ввод. Повторите попытку.\n");
  103.         }
  104.     }
  105.  
  106.     return 0;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement