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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 9.6.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. Тема 13 МЕТОДЫ ИЗУЧЕНИЯ ЧЕТВЕРТИЧНЫХ ОТЛОЖЕНИЙ 13
2. задание. Индекс ответа который вы считаете наиболее полным и правильным укажите в матрице ответов
3. тема государственного распределения ~ ушла в прошлое
4. Карьер ' выемка в земной коре ограниченная искусственно созданной поверхностью являющаяся результатом р
5. Лабораторная работа 8 ПРОГРАММИРОВАНИЕ ЗАДАЧ ОБРАБОТКИ ДВУМЕРНЫХ МАССИВОВ 1 Цель и порядок работы Ц
6. Составление финансовых смет и финансовое планирование в составе бизнес-плана
7. по темі Ернест Хемінгуей
8. Медведь на воеводстве господа и рабы Повесть о том как один мужик двух генералов прокормил Дикий поме
9. Ассоциация с солнцем наделяет желтый особой аурой обозначает мудрость интеллект воображение склонност
10. Тема 9. УЧЕТ РАСЧЕТНЫХ ОПЕРАЦИЙ 1.html