0 / 0 / 0
Регистрация: 04.11.2018
Сообщений: 8
1

Структуры, обработка паспортных данных

11.11.2018, 02:30. Показов 2376. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте. Начал изучать структуры, встала задача написать программу для обработки паспортных данных (пользователь вводит фамилию,имя,отчество,дату рождения и т.д). Программа должна позволять считывать данные (заносить их в файл, и выводить на экран).
Следующий вопрос, ошибка в 55 строке, не могу понять как ее исправить. Пишет, что отсутствуют экземпляры, перегруженная функция.
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
#include <iostream>
#include <fstream>
#include <ostream>
#include <string>
 
using namespace std;
 
struct userInfo
{
    string FName;
    string SName;
    string MName;
    string BDate;
    string Serial;
    string Number;
    string OutDate;
    string GName;
};
userInfo passport[300];
 
int n;
int main()
{
    cout << "How many people do you want to describe?" << endl;
    cin >> n;
    cout << "Enter information about " << n << " person(s)" << endl;
    for (int i = 0; i < n; i++)
    {
        cout << "Enter First Name" << endl;
        cin >> passport[i].FName;
        cout << "Enter Second Name" << endl;
        cin >> passport[i].SName;
        cout << "Enter Middle Name" << endl;
        cin >> passport[i].MName;
        cout << "Enter birthday date" << endl;
        cin >> passport[i].BDate;
        cout << "Enter passport serial number" << endl;
        cin >> passport[i].Serial;
        cout << "Enter passport number" << endl;
        cin >> passport[i].Number;
        cout << "Enter release date" << endl;
        cin >> passport[i].OutDate;
        cout << "Enter name issued by" << endl;
        cin >> passport[i].GName;
    }
    ofstream subj("subj.txt");
    subj << passport;
    subj.close();
 
    ifstream subjich("subj.txt");
    if (!subjich.is_open()) {
        cout << "Error! File not founded!";
    }
    else {
        subjich.getline(passport, 300);
        cout << passport << endl;
    }
 
    system("Pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2018, 02:30
Ответы с готовыми решениями:

Обработка данных структуры NOTE
4.. Дана структура с именем NOTE, состоящая из полей:  фамилия, имя;  номер телефона;...

Обработка данных структуры Student
Описать структуру с именем STUDENT, содержащую следующие поля: -фамилия и инициалы; -номер...

Обработка данных содержащих структуры ORDER
Реализовать программу в соответствии, используя заданную структуру данных. Сформировать...

Структуры. Обработка данных, введенных с клавиатуры
Написать программу для обработки данных о книгах, находящихся в библиотеке. Каждая книга...

4
587 / 392 / 207
Регистрация: 30.04.2017
Сообщений: 727
11.11.2018, 08:00 2
Лучший ответ Сообщение было отмечено Luskander как решение

Решение

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
#include <iostream>
#include <istream>
#include <ostream>
#include <fstream>
#include <ostream>
#include <string>
 
using namespace std;
 
struct UserInfo
{
    string FName;
    string SName;
    string MName;
    string BDate;
    string Serial;
    string Number;
    string OutDate;
    string GName;
};
UserInfo passport[300];
UserInfo passportTest[300];
 
ostream& operator<<(ostream &fout, UserInfo &info) {
    fout<<info.FName<<"\n";
    fout<<info.SName<<"\n";
    fout<<info.MName<<"\n";
    fout<<info.BDate<<"\n";
    fout<<info.Serial<<"\n";
    fout<<info.Number<<"\n";
    fout<<info.OutDate<<"\n";
    fout<<info.GName<<"\n";
    return fout;
}
istream& operator>>(istream &fin, UserInfo &info) {
    fin>>info.FName;
    fin>>info.SName;
    fin>>info.MName;
    fin>>info.BDate;
    fin>>info.Serial;
    fin>>info.Number;
    fin>>info.OutDate;
    fin>>info.GName;
    return fin;
}
 
int main()
{
    int n;
    cout << "How many people do you want to describe?" << endl;
    cin >> n;
    cout << "Enter information about " << n << " person(s)" << endl;
 
    ofstream subj("subj.txt");
    for (int i = 0; i < n; i++)
    {
        cout << "Enter First Name" << endl;
        cin >> passport[i].FName;
        cout << "Enter Second Name" << endl;
        cin >> passport[i].SName;
        cout << "Enter Middle Name" << endl;
        cin >> passport[i].MName;
        cout << "Enter birthday date" << endl;
        cin >> passport[i].BDate;
        cout << "Enter passport serial number" << endl;
        cin >> passport[i].Serial;
        cout << "Enter passport number" << endl;
        cin >> passport[i].Number;
        cout << "Enter release date" << endl;
        cin >> passport[i].OutDate;
        cout << "Enter name issued by" << endl;
        cin >> passport[i].GName;
        subj << passport[i];
    }
    subj.close();
 
    ifstream subjich("subj.txt");
    if (!subjich.is_open()) {
        cout << "Error! File not founded!";
    }
    else {
        cout<<endl;
        for(int i=0; i<n; ++i) {
            subjich>>passportTest[i];
            cout << passportTest[i] << endl;
        }
    }
    system("Pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 04.11.2018
Сообщений: 8
11.11.2018, 14:18  [ТС] 3
А вы не могли бы объяснить, для чего это нужно? Хочется не под копирку сделать, а разобраться в теме
Цитата Сообщение от Ovederax Посмотреть сообщение
ostream& operator<<(ostream &fout, UserInfo &info) {
fout<<info.FName<<"\n";
fout<<info.SName<<"\n";
fout<<info.MName<<"\n";
fout<<info.BDate<<"\n";
fout<<info.Serial<<"\n";
fout<<info.Number<<"\n";
fout<<info.OutDate<<"\n";
fout<<info.GName<<"\n";
return fout;
}
istream& operator>>(istream &fin, UserInfo &info) {
fin>>info.FName;
fin>>info.SName;
fin>>info.MName;
fin>>info.BDate;
fin>>info.Serial;
fin>>info.Number;
fin>>info.OutDate;
fin>>info.GName;
return fin;
}
0
587 / 392 / 207
Регистрация: 30.04.2017
Сообщений: 727
11.11.2018, 14:31 4
Цитата Сообщение от Luskander Посмотреть сообщение
для чего это нужно
Для работы строк 73, 84, 85.
В этих строках производится работа с объектамми ввода-вывода subj(класс ofstream), subjich(ifstream), cout (оfstream)
класс ostream и istream яв-ся базовыми, поэтому и используются в функции.

Для строки 73 компилятор вызовет ostream& operator<<(ostream &fout, UserInfo &info), в эту функцию в качестве аргумента fout будет передан поток файлового вывода subj. В качестве аргумента info - passport[i].
остальные строки по аналогии

ostream& operator<<(ostream &fout, UserInfo &info) - выводит данные полей структуры в файл в качестве разделителя между строками "\n" - чтобы строки не слеплялись вместе и их можно было нормально считать.
istream& operator>>(istream &fin, UserInfo &info) - для ввода из файла.
1
0 / 0 / 0
Регистрация: 04.11.2018
Сообщений: 8
11.11.2018, 14:37  [ТС] 5
Ovederax, большое вам спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2018, 14:37
Помогаю со студенческими работами здесь

Обработка данных содержащих структуры NOTE
Написать программу (создать меню), выполняющую следующие действия: - ввод с клавиатуры данных в...

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

Понятие структуры данных. Элементарные структуры данных. Простые структуры данных
Понятие структуры данных. Элементарные структуры данных. Простые структуры данных: методы...

Обработка данных структуры "Школьник"
Здравствуйте, помогите пожалуйста в доработке с заданием. Создайте структуру (Структура...

Обработка данных структуры "Кубики"
Нужно сделать через структуры. Задано сведения о кубики: размер кубика (длина ребра), цвет...

УТ 10.3 Получение паспортных данных контрагента (физического лица)
Платформама 8.2 Конфигруация: управление торгволей 10.3. Нужно доработать печать (внешняя...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru