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

Строки и структуры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Текстовая RPG в консоли по правилам D&D http://www.cyberforum.ru/cpp-beginners/thread774766.html
Доброго времени суток! Решил попробовать себя на новой, так сказать, стезе. Буду рад любой помощи в плане организации хранения информации, ведь текста будет очень много, а доступ к нему должен быть быстрым и удобным. Возник первый вопрос: struct chparams { char* Name;//Имя персонажа char* Class; //Класс персонажа int years; //Возраст int power;//Сила int...
C++ Вызов деструктора Доброго вам времени суток. Проблема в том, что деструктор не выводит сообщение без этой строки. s1.~Shave(); И я не уверен, что так можно писать. Можете подсказать, что не так? #include <iostream> #include <string> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread774753.html
Дана последовательность слов. Проверить правильно ли в ней записаны буквосочетания жи и ши. C++
Дана последовательность слов. Проверить правильно ли в ней записаны буквосочетания жи и ши. (на языке С++)
Создать класс, реализующий произвольный треугольник C++
Класс должен содержать конструктор, деструктор, Set- и Get-методы для каждого поля
C++ Функция для считывания строки http://www.cyberforum.ru/cpp-beginners/thread774704.html
Требуется написать функция для считывания строки, используя динамическое выделения памяти? Как это по лучше сделать подскажите? Было бы неплохо привести пример кода. Добавлено через 24 минуты Вот попробывал написать функцию для динамического считывания строки. Функция возвращает указатель, который надо будет потом во внешней функции delete. Скажите, пожалуйста, что в этой функции не так???...
C++ как в программе написать что последовательность задается пользователем в произвольном порядке как в программе написать что последовательность задается пользователем в произвольном порядке, если можно приведите часть прогрмаммы подробнее

Показать сообщение отдельно
Verz
Сообщений: n/a

Строки и структуры - C++

29.01.2013, 21:54. Просмотров 289. Ответов 0
Метки (Все метки)

Нужна помощь в реализации части обработки вывода информации о самых молодых, рослых, и самых легких участниках
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
//Информация об участниках спортивных соревнований содержит: Ф. И. О. игрока, игровой номер, возраст, рост, вес.
 //Для описания информации об участниках спортивных соревнований в программе необходимо использовать тип данных структура.
  //Для хранения информации об участниках спортивных соревнований создать бинарный файл, ориентированный на тип данных структура.
   //Предусмотреть в программе просмотр бинарного файла  и выполнить его обработку: вывести информацию о самых молодых,
    //самых рослых и самых легких участниках соревнований.
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
 
const int l_name = 30;
 
 struct Man
  { char name[l_name];
    int let,n,m,kg;
  };
 
int compare(const void *manl, const void *man2);
 
void create(void) // Создание файла
{ Man man; int pr; FILE *fbin;
  if ((fbin =fopen("dbase.bin","wb")) == NULL)
   puts("Oshibka Sozdania file\n ");
  else
    { do
       { cout << "\n Familia name otchestvo: ";
         cin.get() ; gets (man.name) ;
         cout << "\n Vozrast: ";
         cin >> man.let;
         cout << "\n Igrovoi nomer: ";
         cin >> man.n;
         cout << "\n Rost: ";
         cin >> man.m;
         cout << "\n Ves: ";
         cin >> man.kg;
         fwrite(&man, sizeof(man),1,fbin);
         cout << "\n Continue? (1-yes/0-no)";
         cin >> pr;
         } while(pr == 1);
   }  
  fclose(fbin);
}
 
void view(void) // Просмотр файла
  { FILE *fbin;
    if ((fbin =fopen("dbase.bin","rb")) == NULL)
      puts("Oshibka Sozdania file\n");
    else
     { fseek(fbin, 0, SEEK_END);
       int n_record = ftell(fbin)/sizeof(Man);
       Man *man = new Man[n_record];
       fseek(fbin, 0, SEEK_SET);
       fread(man, sizeof(Man),n_record, fbin);
       fclose(fbin);
       qsort(man, n_record, sizeof(Man), compare);
       for (int i=0; i < n_record; i++)
        cout << "\n" << man[i].name << "  " <<
         man[i].let << "  " << man[i].n << "  " << man[i].m << "  "<< man[i].kg << "  ";
        cout << "\n";
     }
  }
 
// Обработка файла
 
 void work(void)
  { char z_name[l_name];
    FILE *fbin;
    if ((fbin =fopen("dbase.bin","rb")) == NULL)
       puts("Oshibka Sozdania file\n");
    else
     { fseek(fbin, 0, SEEK_END);
       int n_record = ftell(fbin)/sizeof(Man);
       Man *man = new Man[n_record];
       fseek(fbin, 0, SEEK_SET);
       fread(man, sizeof(Man),n_record, fbin);
       fclose(fbin);
       qsort(man, n_record, sizeof(Man), compare);
       cout<<"\nVvedite parametr:";
       cin.get();gets(z_name);
       for (int i=0; i < n_record; i++)
       { if (!strcmp(man[i].name,z_name))
          cout <<  "\n" << man[i].name << "  " <<
           man[i].let << "  " << man [i].m << "  " << man[i].kg << "  ";
       } 
       cout << "\n";
     }
 }
 
int main(void)
 { int num;
   do
    { cout << "\n 1 - Sozdanie file";
      cout << "\n 2 - Prosmotr file";
      cout << "\n 3 - Obrabotka File";
      cout << "\n 4 - Exit";
      cout << "\n Your vibor: ";
      cin >> num;
      switch(num)
       { case 1: create();break;
         case 2: view();break;
         case 3: work();break;
       }
    } while (num != 4);
}
 
int compare(const void *manl, const void *man2)
{ return strcmp(((Man *)manl)->name,
((Man *)man2)->name);
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru