У вас вопросы?
У нас ответы:) SamZan.net

Робота з бінарними файлами

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 5.4.2025

PAGE 3

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, молоді та спорту УКРАЇНИ

Національний аерокосмічний університет ім. М.Є. Жуковського

“Харківський авіаційний  інститут”

Кафедра комп’ютерних систем та мереж

Титульный лист заполняется на украинском языке 

Остальная часть отчета может быть как на украинском, так и на русском 

Домашнє завдання №2

з дисципліни “Обчислювальна техніка та програмування”

Робота з бінарними файлами

ХАІ.503.516БУКВА_ГРУППЫ.13В. 050102,НОМЕР_ЗАЧЕТКИ ПЗ

Виконав студент гр. 516Б   Момот О. О.Фамилия И.О. 

(№ групи) (П.І.Б.)

 

(підпис, дата)

Перевірив ст. викладач каф. 503

(науковий ступінь, вчене звання, посада)

    Дужа В. В.

(підпис, дата) (П.І.Б.)

2013

Вариант 11

  1.  Задание №1

Порядок выполнения работы

----------------------------------------------------------------------------------------------------

Написать программу для создания исходного двоичного файла чисел (тип чисел указан в варианте) с произвольным количеством элемен- тов. Предусмотреть возможность задания количества элементов и их значения двумя способами: с клавиатуры (до 10 элементов); с помощью датчика случайных чисел (свыше 10 элементов). Исходные данные задать, учитывая специфику конкретного варианта. Реализовать задание в соответствии с вариантом. Результат вычис- лений и содержимое исходного файла вывести на экран, если коли- чество элементов в исходном файле не более 10, а если больше, то результаты вывести в текстовый файл.

----------------------------------------------------------------------------------------------------

Прочитать из файла действительные восьмибайтные элементы, подсчитать общее количество элементов файла, а также заменить в файле:

11. Все отрицательные элементы на среднее арифметическое всех положительных элементов файла.

  1.  Алгоритм программы

1.3  Тестовые наборы

№ теста

Ввод элементов массива

Ожидаемый результат

1

Размер 5 : -1 -2 -3 -4 5

5: 5 5 5 5 5

2

Размер 5: 1 2 3 -4 -5

5: 1 2 3 2 2

3

Размер 5: 1 1 1 -2 -3

5: 1 1 1 1 1

  1.  Код программы
  2.  #include <stdio.h>
  3.  #include <stdlib.h>
  4.  #include <locale.h>
  5.  #include <windows.h>
  6.  #include <time.h>
  7.  #include <string.h>
  8.  #define MAX 100
  9.  
  10.  int main(void)
  11.  {
  12.   FILE *fd,*ft;
  13.   char fname[50];
  14.   printf("Input name file: ");
  15.   gets(fname);
  16.   fd=fopen(fname,"wb+");
  17.   if (fd==NULL)
  18.   {
  19.    printf("Error in the name file - %s\n",fname);
  20.    return 0;
  21.   }
  22.   int mas[MAX];
  23.   int size;
  24.   int menu, menu2;
  25.   printf("Menu 1\n1 - Manual input size of array\n2 - Random input size of array\nEnter: ");
  26.   while(scanf("%i", &menu2) != 1 || menu2 >= 3 || menu2 <= 0)
  27.   {
  28.    printf("Error! Input correct data: ");
  29.    fflush stdin;
  30.   }
  31.   switch(menu2)
  32.   {
  33.   case 1: printf("Input size array: ");
  34.    while(scanf("%i", &size) != 1 || size == 0 || size > 10)
  35.    {
  36.     printf("Error! Input correct data: ");
  37.     fflush stdin;
  38.    }
  39.    break;
  40.   case 2: srand(time (NULL));
  41.    int a, b;
  42.    printf("Input first of range: ");
  43.    while(scanf("%i", &a) != 1 || a == 0)
  44.    {
  45.     printf("Error! Input correct data: ");
  46.     fflush stdin;
  47.    }
  48.    printf("Input end of range: ");
  49.    while(scanf("%i", &b) != 1 || b == 0)
  50.    {
  51.     printf("Error! Input correct data: ");
  52.     fflush stdin;
  53.    }
  54.    size = rand()%(b - a + 1) + a;
  55.    break;
  56.   }
  57.   printf("Menu 2\n1 - Manual input array\n2 - Random input array\nEnter: ");
  58.   while(scanf("%i", &menu) != 1 || menu >= 3 || menu <= 0)
  59.   {
  60.    printf("Error! Input correct data: ");
  61.    fflush stdin;
  62.   }
  63.   switch(menu)
  64.   {
  65.   case 1:
  66.    printf("Input elements of array: ");
  67.    for(int i = 0; i < size; i++)
  68.    {
  69.     scanf("%d", &mas[i]);
  70.    }
  71.    fwrite (mas, sizeof(double), size, fd);
  72.    break;
  73.   case 2:
  74.    srand(time (NULL));
  75.    int a, b;
  76.    printf("Input first of range: ");
  77.    while(scanf("%i", &a) != 1 || a == 0)
  78.    {
  79.     printf("Error! Input correct data: ");
  80.     fflush stdin;
  81.    }
  82.    printf("Input end of range: ");
  83.    while(scanf("%i", &b) != 1 || b == 0)
  84.    {
  85.     printf("Error! Input correct data: ");
  86.     fflush stdin;
  87.    }
  88.    for (int i = 0; i < size; i++)
  89.    {
  90.     mas[i] = rand()%(b - a + 1) + a;
  91.    }
  92.    printf("Elements of array:\n");
  93.    for(int i = 0; i < size; i++)
  94.    {
  95.     printf("%d   ", mas[i]);
  96.    }
  97.    fwrite (mas, sizeof(double), size, fd);
  98.    printf("\n");
  99.    break;
  100.   }
  101.   fclose(fd);
  102.   fd=fopen(fname,"rb+");
  103.   int i = 0, n, mas2[MAX], mas3[MAX];
  104.   double sred, sum = 0, k = 0;
  105.   n = fread (mas2, sizeof(double), size, fd);
  106.   for(int j=0; j<n; j++)
  107.    mas3[j]=mas2[j];
  108.   while(i < n)
  109.   {
  110.    if(mas2[i]>0)
  111.    {
  112.     sum = sum + mas2[i];
  113.     k++;
  114.    }
  115.    i++;
  116.   }
  117.   sred = sum/k;
  118.   i = 0;
  119.   if (k != 0)
  120.    while(i < n)
  121.    {
  122.     if(mas2[i]<0)
  123.      mas2[i] = sred;
  124.     i++;
  125.    }
  126.   if (n > 10)
  127.   {
  128.    printf("Answer writing in the 'answer.txt'\n");
  129.    ft=fopen("answer.txt","wt");
  130.    fprintf(ft,"The contents of the source file:\n");
  131.    for(int j=0; j<n; j++)
  132.     fprintf(ft, "%d   ", mas3[j]);
  133.    fprintf(ft,"\n");
  134.    fprintf(ft,"Result:\n");
  135.    for(int j=0; j<n; j++)
  136.     fprintf(ft, "%d   ", mas2[j]);
  137.    fprintf(ft,"\n");
  138.    fprintf(ft,"Number of elements: %i", n);
  139.    fclose(ft);
  140.   }
  141.   else
  142.   {
  143.    printf("The contents of the source file:\n");
  144.    for(int i = 0; i < n; i++)
  145.    {
  146.     printf("%d   ", mas3[i]);
  147.    }
  148.    printf("\n");
  149.    printf("Result:\n");
  150.    for(int i = 0; i < n; i++)
  151.    {
  152.     printf("%d   ", mas2[i]);
  153.    }
  154.    printf("\n");
  155.    printf("Number of elements: %i", n);
  156.    printf("\n");
  157.   }
  158.   fclose(fd);
  159.   system("pause");
  160.   return 0;
  161.  }

1.5 Результат работы программы

№ теста

Ввод элементов массива

Результат

Вывод

1

Размер 5 : -1 -2 -3 -4 5

5: 5 5 5 5 5

Тест пройден

2

Размер 5: 1 2 3 -4 -5

5: 1 2 3 2 2

Тест пройден

3

Размер 5: 1 1 1 -2 -3

5: 1 1 1 1 1

Тест пройден

1.6  Вывод о работоспособности программы

 Программа прошла тестирование: в результате выполнения тестов программа выдала ожидаемые результаты. Программа – работоспособна.




1. Voyons grndmиre on ne vous fer ucun ml et ensuite vous serez leste comme une jeune fille
2. . Утвердить и ввести в действие с 1 июня 1974 г
3. Нефтяная промышленность РФ
4. Розвиток вчення про рефлекс. БЕЛЛ Чарлз (1774-1842) - шотландський анатом, фізіолог і хірург
5. Понятие информационные ресурсы
6. Лейла Накрой на стол Лейла Смотри за братом Лейла Вымой посуду Лейла Стой на месте Лейла Ты что творишь
7. реферат дисертації на здобуття наукового ступеня кандидата географічних наук Льві
8. Білки, складання меню
9. ТЕКСТ ЗАБЕГАЛОВКА Татьяна работает в этой забегаловке уже почти шесть лет
10. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к практической работе РАСЧЕТ ПРИЗЕМНЫХ КОНЦЕНТРАЦИЙ ЗАГРЯЗНЯЮЩИХ ВЕЩЕСТВ В ПРОГ