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

посмотрите код пожалуйста,не могу сделать сортировку - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Процедуры на С... http://www.cyberforum.ru/cpp-beginners/thread235887.html
Товарищи мужчины, прошу написать прогу по заданным условиям на языке С. Сама сколько не пробовала, ничего не могу понять... даже читая справочники по С... весь мозг уже изъела эта задача :( В заданиях данной подгруппы требуется реализовать процедуры или функции с числовыми параметрами типа int и float. Входные параметры этих типов обычно описываются как параметры-значения. Proc1. ...
C++ Найти количество элементов массива, лежащих в диапазоне от А до В В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество элементов массива, лежащих в диапазоне от А до В; 2) сумму элементов массива, расположенных после максимального элемента. Упорядочить элементы массива по убыванию модулей. только на С++ http://www.cyberforum.ru/cpp-beginners/thread235873.html
C++ Секундомер (или часы)
ребят никто не подскажет как сделать программу типа секундомер или часы и использование системного времени Для решения своих проблем создавайте отдельные темы!
C++ Настройка компилятора VS 2008 на исключение переполнений
Например, программа для вычисления факториала последовательности натуральных чисел n. #include <iostream> #include <iomanip> using namespace std; unsigned long long factorial(int); int main() { for (int i = 0; i <= 68; i++)
C++ Обьёктно-ориентрированная программа! http://www.cyberforum.ru/cpp-beginners/thread235856.html
Создать программу в которой базовый класс disd используется для хранения растояния между двумя точками. В классе создать виртуальную функцию TravelTime которая выводит на экран время необходимое для прохождения расстояния с учётом того, что расстояние заданное в милях, где скоросто 60 миль/час. В произвожном классе metric переопределить функцю TravelTime для определения времени которое необходимо...
C++ Найти все чётные числа и сумму в промежутке от a до b. Помогите пожалуйста сделать задание) С клавиатуры вводиится 2 исла a и b. Найти все чётные числа и сумму в промежутке от a до b. подробнее

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

посмотрите код пожалуйста,не могу сделать сортировку - C++

30.01.2011, 13:38. Просмотров 303. Ответов 0
Метки (Все метки)

Написать функцию, которая записывает в бинарный файл данные о сканере
из приведенной структуры. Структура файла: в первых двух байтах
размещается значение типа 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
struct scan_info
 
  { char model[25];
   int price;
    double x_size;
    double y_size;
    int optr;
    int grey;
    };
     void zapvbin(scan_info,FILE *fb);
     void sozdstruct(scan_info *scan);
     void sortprice();
     void sortgrey();
 
    int main()
     {clrscr();
 
     scan_info scan,*ptr;
    ptr=new scan_info[105];
          assert(ptr!=0);
     char s; char r;
     int kol=0;
    FILE *fb=fopen("scaner.bin","w+b"), *fb2=fopen("scaner2.bin","rb");
    fwrite(&kol,sizeof(int),1,fb);
      while(s!='n')
       {
    kol++;
     sozdstruct(&scan);
     zapvbin(scan,fb);
     cout<<"dalee?(y/n)";
     cin>>s;
     }
  fseek(fb,0,0);
   putc(kol,fb);
   fclose(fb);
    do{
    cout<<"Otsortirovat' ?(y/n)"<<endl;
      cin>>s;
       if(s=='y')
    {cout<<"po cene (p)ili gradacii serogo g?"<<endl;
     cin>>s;
     if(s=='p')
      sortprice();
       else if(s=='g')
     sortgrey();
    else cout<<"Error. Parametr ne veren"<<endl;
    }
      fread(&ptr[1],sizeof(scan_info),1,fb2);
       cout<<ptr[1].price<<endl<<ptr[1].grey<<endl;
       cout<<"dla konca sortirovki nazmite f"<<endl;
    cin>>r;
    } while (r!='f');
       fclose(fb2);
    delete[]ptr;
     getch();
        }
  void sortprice()
   { int kol,i=0; scan_info *ptr; int temp;
    FILE *fb=fopen("scaner.bin","r+b"),*fb2=fopen("scaner2.bin","w+b");
   ptr=new scan_info[105];
           assert(ptr!=0);
     fread(&kol,sizeof(int),1,fb);
      for(i=0;i<kol;i++)
    fread(&ptr[i],sizeof(scan_info),1,fb);
 for(int j=0;j<kol-1;j++)
       for(i=0;i<kol;i++)
            {
             if((ptr[i].price)>(ptr[i+1].price))
                ptr[i+1];
                 else ptr[i];
                  i++;
              //{  ptr[101]=ptr[i+1] ;
           // ptr[i+1]=ptr[i];
                //ptr[i]=ptr[101];
                 
                 }
        //}
    for(i=0;i<kol;i++)
     fwrite(&ptr[i],sizeof(scan_info),1,fb2);
 
      fclose(fb);
      fclose(fb2);
      delete[]ptr;
      }
  void sortgrey()
   {
     int kol,i; scan_info *ptr;
      FILE *fb=fopen("scaner.bin","r+b"),
     *fb2=fopen("scaner2.bin","w+b");
      ptr=new scan_info[105];
       assert(ptr!=0);
        fread(&kol,sizeof(int),1,fb);
          for(i=0;i<kol;i++)
     fread(&ptr[i],sizeof(scan_info),1,fb);
       for(int j=0;j<kol-1;j++)
    for(i=0;i<kol;i++)
      { if((ptr[i].grey)>(ptr[i+1].grey))
       {ptr[100]=ptr[i+1];
        ptr[i+1]=ptr[i];
       ptr[i]=ptr[100];
         }}
         for(i=0;i<kol;i++)
         fwrite(&ptr[i],sizeof(scan_info),1,fb2);
 
        fclose(fb);
        fclose(fb2);
         delete[]ptr;}
    void zapvbin( scan_info scan, FILE *fb)
      {
    fwrite(&scan,sizeof(scan),1,fb);
    }
 void sozdstruct(scan_info *scan)
 
      {cout<<"vvedite model(#-end)";
       cin>>scan->model;
 
       cout<<"vvedite price:";
       cin>>scan->price;
       cout<<"vvedite x-size";
       cin>>scan->x_size;
       cout<<"vvedite y-size:";
       cin>>scan->y_size;
       cout<<"vvedite optr:";
    cin>>scan->optr;
       cout<<"vvedite gray:";
       cin>>scan->grey;}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru