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

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

Восстановить пароль Регистрация
 
ole4
0 / 0 / 0
Регистрация: 30.01.2011
Сообщений: 4
30.01.2011, 13:38     посмотрите код пожалуйста,не могу сделать сортировку #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
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;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2011, 13:38     посмотрите код пожалуйста,не могу сделать сортировку
Посмотрите здесь:

не могу сделать сортировку C++
классы.посмотрите пожалуйста) C++
C++ Посмотрите код пожалуйста...
пожалуйста помогите разобратся в Рекурсии. не могу понять етот код: C++
Не могу рещить уравнение, проверьте код пожалуйста!=) C++
Никак не могу найти синтаксическую ошибку(посмотрите пожалуйста C++
не могу найти ошибку.пожалуйста посмотрите C++
C++ Посмотрите пожалуйста, не могу понять. Программа по исследованию областей!

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 09:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru