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

Отброс поля Рост при выводе результата - C++

Восстановить пароль Регистрация
 
quicksdk
37 / 5 / 1
Регистрация: 13.04.2011
Сообщений: 193
19.06.2013, 23:49     Отброс поля Рост при выводе результата #1
Создать класс, содержащий информацию согласно варианту индивидуального задания. Ввести с помощью клавиатуры необходимые данные для формирования записей класса. Сформированные записи сохранить в двоичном файле. Произвести чтение данных из сформированного файла. В соответствии с запросом сформировать новый класс и результаты сохранить в новом двоичном файле.

Мой вариант:

Класс "Персона" имеет поля: фамилия, имя, отчество, год рождения, рост, вес.
Вывести сведения о людях, имеющих вес больше заданного.
В новом классе оставить поля: фамилия, имя , отчество, вес.


В результате у меня отображает персоны у которых вес больше 70, но как мне опустить и не отображать поле "Рост"?

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
#include <fstream> 
#include <iostream>
#include <conio.h>
#include <cstdlib>
 
using namespace std;
 
class person //Объеявление класса Персона
{
        char surname[20];
        char name[20];
        char patronymic[20];
        public:
        int birthdayyear;
        int height;
        int weight;
        int inputweight;
        
    void getData() 
    {
        setlocale(LC_ALL,"Russian");
        cout << "Введите фамилию: ";
        cin >> surname;
        cout << "Введите имя: ";
        cin >> name;
        cout << "Введите отчество: ";
        cin >> patronymic;
        cout << "Введите год рождения: ";
        cin >> birthdayyear;
        cout << "Введите рост: ";
        cin >> height;
        cout << "Введите вес: ";
        cin >> weight;
        cout << endl; 
    }
    
    void showData()
    {
        cout << "--------------------------";
        cout << "\nФамилия: "<< surname;
        cout << "\nИмя: " << name;
        cout << "\nОтчество: " << patronymic;
        cout << "\nРост: " << height;
        cout << "\nВес: " << weight;
        cout << endl; 
        
    }
    
};
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int countofperson, bigmenamount,i ;
    int inputweight=70;
    
    person men, bigmen; //Создаем объекты: просто персона и персона с весом больше чем > 70
     
    cout << "\nВведите количество Персон <=5" << endl;
    cin >> countofperson;
    
/* открываем файл для записи данных обо всех персонах 
и указываем переменную объекта ofstream и указываем название выходного файла "exam.bin"  */
     ofstream input_all;  
 
    input_all.open("personall.bin", ios::out | ios::binary ); 
    // проверка открытия файла на ошибки 
    if(! input_all) 
    {
        cerr << "\nОшибка ввода в файл" << endl;
        exit(1);
    }
    
    // ввод данных о персонах в файл
    for(i=0; i < countofperson; i++)
    {
        cout <<"\nВведите данные о Персоне"<<endl;
        men.getData();
        input_all.write((char *) &men, sizeof(men));
        
    }
    input_all.close();
    
    cout <<"Чтение данных из файла обо всех Персонах"<<endl;
    ifstream in_men;
    in_men.open("personall.bin", ios::binary ); 
    
        if(! in_men)
    {
        cerr << "Ошибка вывода в файл" << endl;
        exit(1);
    }
    
    ofstream input_bigmenonly;
    input_bigmenonly.open("bigmenonly.bin", ios::out | ios::binary );
    if (! input_bigmenonly)  
    {
     cerr<<"Ошибка вывода файла "<<endl;
     exit(1);
    }
    
        
    cout <<"\nПерсона: ";
    in_men.seekg(0);
    bigmenamount =0;
    for (i=0; i < countofperson ; i++)
    {
         in_men.read((char *) &men, sizeof(men));
         if(men.weight>=70)
         {
           bigmenamount++;
           bigmen=men;
           input_bigmenonly.write((char *) &bigmen, sizeof(bigmen));
         }
      men.showData();
    }
    cout << endl;
    in_men.close();
    input_bigmenonly.close();
    
    ifstream in_men1;
    in_men1.open("bigmenonly.bin", ios::binary); 
    cout <<"\nПерсоны с весом больше 70: "; 
    in_men1.seekg(0);
    
    for (i=0; i < bigmenamount; i++) 
  { 
 
   in_men1.read((char *) &bigmen, sizeof(bigmen));
   bigmen.showData(); 
  }
    
    return 0;
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2013, 23:49     Отброс поля Рост при выводе результата
Посмотрите здесь:

Теряються поля при выводе на экран C++
C++ отброс дробной части
Известен рост трех человек.Определить,одинаков ли их рост? C++
Известен рост каждого человека из группы. На сколько рост самого высокого из них превышает рост самого низкого? C++
C++ Рост учеников класса задан в виде массива. Определить средний рост мальчиков и девочек
C++ При добавлении студента, сбивается вся структура, и при выводе всего списка студентов, выводит какой то мусор
C++ Класс "Матрица", ошибка при выводе результата
Кирилица отображается нормально при выводе из программы, но иероглифы при вводе в консоль C++

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

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

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