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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
quicksdk
37 / 5 / 1
Регистрация: 13.04.2011
Сообщений: 193
#1

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

19.06.2013, 23:49. Просмотров 239. Ответов 0
Метки нет (Все метки)

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

Мой вариант:

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


В результате у меня отображает персоны у которых вес больше 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++):

При выводе результата работы программы пишет #QNAN0 - C++
При выводе результатов все члены равны 1.#QNAN0 В чем может быть причина такого результат?

Теряються поля при выводе на экран - C++
Здравствуйте. Помогите найти ошибку #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;values.h&gt; #include...

Класс "Матрица", ошибка при выводе результата - C++
Всем доброго времени суток! Нужно под main создать header и реализацию! Я застрял на operator- (а точнее при выводе на экран результата)!...

Известен рост каждого человека из группы. На сколько рост самого высокого из них превышает рост самого низкого? - C++
Известен рост каждого человека из группы. На сколько рост самого высокого из них превышает рост самого низкого?

Рост учеников класса задан в виде массива. Определить средний рост мальчиков и девочек - C++
Рост учеников класса представлен в виде массива. Определить средний рост мальчиков и девочек. Вывести сообщение кто выше девочки и ...

Известен рост трех человек.Определить,одинаков ли их рост? - C++
Известен рост трех человек.Определить,одинаков ли их рост?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2013, 23:49
Привет! Вот еще темы с ответами:

Отброс дробной части - C++
как можно отбросить дробную часть(не округлить) от переменной?

Кирилица отображается нормально при выводе из программы, но иероглифы при вводе в консоль - C++
Что надо подключить что бы в консоли писать русскими буквами? cin &gt;&gt; kol; cin &gt;&gt; x; cout &lt;&lt; &quot;У вас есть &quot; &lt;&lt; kol &lt;&lt; &quot; &quot; &lt;&lt; x; ...

Найти средний рост учеников, рост самого высокого и самого низкого ученика - C++
Нужна программа с использованием структуры, вот ее условие: Ввести данные об учениках: ФИО и рост, найти средний рост учеников, рост...

При добавлении студента, сбивается вся структура, и при выводе всего списка студентов, выводит какой то мусор - C++
Суть действий: При добавлении студента, сбивается вся структура, и при выводе всего списка студентов, выводит какой то мусор. Раньше я...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru