Форум программистов, компьютерный форум CyberForum.ru

Сортировка в файле,доделать прогу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Способ оптимизации. http://www.cyberforum.ru/cpp-beginners/thread397747.html
Здравствуйте. Не могли бы вы мне помочь с задачей по Exel облазил кучу сайтов, толку никакого. 4. Решить задачу оптимизации методом «поиска решения». Из прямоугольного листа железа A x B требуется выкроить цельные детали бочки: днище, крышка, боковая стенка. Определить возможные размера диаметра D и высоты бочки H при условии, что её объем V должен быть максимальным.
C++ Описать класс,реализующий бинарное дерево,Написать прогу, использующую этот класс Помогите с задачкой пожалуйста! Описать класс, реализующий бинарное дерево, обладающее возможностью добавления новых элементов, удаления существующих, поиска элемента по ключу, а также последовательного доступа ко всем элементам. Написать программу, использующую этот класс для представления англо-русского словаря. Программа должна содержать меню, позволяющее осуществить проверку всех методов... http://www.cyberforum.ru/cpp-beginners/thread397743.html
C++ компилятор с++
подскажите хороший компилятор с++ чтоб можно было создавать приложения с графикой как в делфи???
C++ массив из 15 строк
Дан двухмерный массив из 15 строк. Вставить в него строку из нулей после всех строк, номер которых кратен трем.
C++ Алгоритмы шифрования RC4, DES, RSA http://www.cyberforum.ru/cpp-beginners/thread397705.html
подкиньте плиз алгоритмы RSA, DES, RC4. Желательно с пояснениями, т.к. в СИ пока новичок :scratch: Программка необходима как приложение к курсовой работе
C++ Проблема с библиотеками Вот работаю в OpenGL, подключаю заголовочный файл: #include <GL/gl.h> #include <GL/glu.h> #include <GL/glaux.h> , и при гарантированно правильном коде выдает ошибки вроде этой: 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" unsigned int __stdcall auxInitWindowW(wchar_t const *)" (?auxInitWindowW@@$$J14YGIPB_W@Z) в функции "int __cdecl main(void)"... подробнее

Показать сообщение отдельно
dager228
0 / 0 / 0
Регистрация: 01.12.2011
Сообщений: 3

Сортировка в файле,доделать прогу - C++

03.12.2011, 10:13. Просмотров 782. Ответов 1
Метки (Все метки)

Задание:
Написать функцию, которая записывает в бинарный файл данные о сканере из приведенной структуры. Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах.
Написать функцию, которая сортирует записи в описанном выше бинарном файле по одной из следующих характеристик: цена либо число градаций серого. Обязательный параметр — признак, задающий критерий сортировки.
Привести пример программы, создающей файл с данными о сканерах (данные вводятся с клавиатуры) из не менее восьми записей и осуществляющий его сортировку.
Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include <vcl.h>
#include <stdio.h>
#include <stdlib.h>
 
#pragma pack(1)
 
typedef unsigned short THeadCounter;
 
typedef struct//58
{
   char model[25];// наименование модели
   int price;     // цена
   double x_size; // горизонтальный размер области сканирования
   double y_size; // вертикальный размер области сканирования
   int optr;      // оптическое разрешение
   int grey;      // число градаций серого
}  scan_info;
 
//----------------------------------------------//
long int GetSize(FILE* f)
{
   fseek(f, 0, SEEK_END);
   long int size = ftell(f);
   fseek(f, 0, SEEK_SET);
 
   return size;
}
//----------------------------------------------//
void Print(scan_info* array, unsigned count)
{
   unsigned i;
   for (i = 0; i < count; ++i)
   {
      printf("%4d | %15s | %8d | %3.3f | %3.3f | %8d | %8d\n",
             i+1, array[i].model, array[i].price, array[i].x_size,
             array[i].y_size, array[i].optr, array[i].grey);
   }
}
//----------------------------------------------//
THeadCounter FileToDisplay(FILE* f)
{
   THeadCounter count = 0;
 
   fseek(f, 0, SEEK_SET);
 
   fread(&count, sizeof(count), 1, f);
 
   fseek(f, sizeof(THeadCounter), SEEK_SET);
 
   if (count)
   {
      scan_info* buff = (scan_info*) malloc(sizeof(scan_info) * count);
 
      fread(buff, sizeof(scan_info), count, f);
 
      // ...
      // Тут нужно использовать функцию сортировки по заданному полю
      // ...
 
      Print(buff, count);
 
      free(buff);
   }
   else
   {
      printf("info: file is empty ...\n");
   }
 
   return count;
}
//----------------------------------------------//
bool AskAppendNewRecord()
{
   char answer = 0;
   printf("\nadd new record? [yes / no=default]: ");
   scanf("%c", &answer);
   fflush(stdin);
 
   return (answer == 'y');
}
//----------------------------------------------//
scan_info GetNewRecord()
{
   scan_info info;
 
   printf("model: ");
   scanf("%s", info.model);
   fflush(stdin);
 
   printf("price: ");
   scanf("%d", &info.price);
   fflush(stdin);
 
   printf("x_size: ");
   scanf("%lf", &info.x_size);
   fflush(stdin);
 
   printf("y_size: ");
   scanf("%lf", &info.y_size);
   fflush(stdin);
 
   printf("optr: ");
   scanf("%d", &info.optr);
   fflush(stdin);
 
   printf("grey: ");
   scanf("%d", &info.grey);
   fflush(stdin);
 
   return info;
}
//----------------------------------------------//
 
int main(int argc, char** argv)
{
   if (argc != 2)
   {
      printf("Usage: %s FILE.DAT\n", argv[0]);
      return 0;
   }
 
   FILE* f = fopen(argv[1], "rb+");
 
   if (!f)
   {
      f = fopen(argv[1], "wb+");
   }
 
   THeadCounter count = 0;
 
   if (GetSize(f) == 0)
   {
      fwrite(&count, sizeof(count), 1, f);
   }
 
   count = FileToDisplay(f);
 
   while (AskAppendNewRecord())
   {
      scan_info info = GetNewRecord();
      fseek(f, 0, SEEK_END);
      fwrite(&info, sizeof(scan_info), 1, f);
      fseek(f, 0, SEEK_SET);
      count++;
      fwrite(&count, sizeof(count), 1, f);
   }
 
   fclose(f);
 
   return 0;
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru