Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
tru2
1 / 1 / 0
Регистрация: 28.01.2014
Сообщений: 101
#1

Организовать добавление данных в файл, просмотр, поиск и очистку данных - C++

06.02.2014, 22:45. Просмотров 1035. Ответов 7
Метки нет (Все метки)

НАписать программу. Компонентами типизированного файла являются записи, состоящие из следующих полей: - фамилия; - имя; - отчество; - город проживания; - год рождения.
Организовать следующие процедуры работы с файлом:
- добавление записи в файл; - просмотр файла; - поиск по фамилии, имени и отчеству; - очистка файла.
Действия выполняются в произвольном порядке по выбору пользователя.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2014, 22:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Организовать добавление данных в файл, просмотр, поиск и очистку данных (C++):

Создать стек из вещественных чисел; найти максимальный элемент в стеке; организовать просмотр данных стека - C++
Создать стек из вещественных чисел. Определить максимальный элемент в стеке. Организовать просмотр данных стека.

Организовать заданную структуру данных: точка (x, y) плоскости, стек (добавление, удаление и чтение элемента) - C++
Организовать заданную структуру данных: точка (x, y) плоскости, стек. Определить структуру элемента и написать подпрограммы добавления,...

Как правильно организовать дописывание данных в звуковой файл - C++
У меня есть TCP сервер написанный на Qt. Сервер у меня создается как отдельный класс Server в QtCreator. Соединение с клиентом происходит...

Структуры данных (создание, просмотр, дополнение и извлечения данных из файла, содержащего информацию о номерах телефонов сотрудников учреждения,ФИО) - C++
Нужно создать программу, которая бы обеспечивала создание, просмотр, дополнения и извлечения данных из файла содержащего информацию о...

Телефонная книга: просмотр, поиск, добавление записей - C++
Доброго вечера. Такая проблема. Завтра в универ нужно сдать программу, с которой вышла полная запара, т.к. не имею представления как...

ввод структурированных данных в файл и вывод данных из этого файла на экран (сделать хра-нилище данных в файле). - C++
Здравствуйте) помогите написать программу, осуществляющую ввод структурированных данных в файл и вывод данных из этого файла на экран...

7
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
07.02.2014, 02:31 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
136
137
138
139
140
141
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
 
int choice();
int members();
void whatToDo(int info);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    int myChoice = choice();
    
    while(myChoice != 5)
    {
        switch(myChoice) //Выбор опции
        {
            case 1:
                whatToDo(1);
                break;
            case 2:
                whatToDo(2);
                break;
            case 3:
                whatToDo(3);
                break;
            case 4:
                whatToDo(4);
                break;    
        }
        myChoice = choice();
    }
    
    system("pause");
    return 0;
}
 
int choice() //Функция выбора опции
{
    int myChoice;
    cout << "1 добавить записи в файл" <<
            "\n2 просмотр файла" <<
            "\n3 поиск по ФИО" <<
            "\n4 очистить файл" <<
            "\n5 выход из программы" <<
            "\nСделайте выбор: ";
    cin >> myChoice;
    return myChoice;
}
 
int members() //Функция счета записей добавляемых в файл
{
    int quant;
    cout << "\nСколько записей вы хотите добавить?\n";
    cin >> quant;
    return quant;
}
 
void whatToDo(int info) //Функция реализации опций
{
    string surname, patr, name, city,
           s1, s2, s3, s4, s5, s6;
    int year, counter;
    
    if(info == 1) //Добавление записей
    {
        ofstream addMember("file.txt", ios::app);
        counter = members();
        while(counter > 0)
        {
            cout << "Фамилия: "; cin >> surname;
            cout << "Имя: "; cin >> name;
            cout << "Отчество: "; cin >> patr;
            cout << "Город: "; cin >> city;
            cout << "Год рождения: "; cin >> year;
            cout << endl;
            
            addMember << "Фамилия: " << surname << endl <<
                         "Имя: " << name << endl <<
                         "Отчество: " << patr << endl <<
                         "Город: " << city << endl <<
                         "Год рождения: " << year << endl;
            counter--;
        }
    }
    if(info == 2) //Вывод записей 
    {
        ifstream showAll("file.txt");       
        while(showAll >> s1 >> surname >>
                         s2 >> name >>
                         s3 >> patr >>
                         s4 >> city >>
                         s5 >> s6 >> year)
        {
            cout << endl;
            cout << surname << endl <<
                    name << endl <<
                    patr << endl <<
                    city << endl <<
                    year << endl;
        }
    }
    if(info == 3) //Поиск записей
    {
        ifstream findMember("file.txt");
        cout << "\nДля поиска введите ФИО\n";
        cout << "Фамилия: "; cin >> surname;
        cout << "Имя: "; cin >> name;
        cout << "Отчество: "; cin >> patr;
        string findSurname,
               findName,
               findPatr;
        while(findMember >> s1 >> findSurname >>
                            s2 >> findName >>
                            s3 >> findPatr >>
                            s4 >> city >>
                            s5 >> s6 >> year)
        {
            if(findSurname == surname &&
               findName == name &&
               findPatr == patr)
            {
                cout << "\nНайден:\n" <<
                        findSurname << endl <<
                        findName << endl <<
                        findPatr << endl <<
                        city << endl <<
                        year << "\n\n";
            }
        }
    }
    if(info == 4) //Удаление записей
    {
        ofstream clearFile("file.txt");
        clearFile << " ";
        cout << "\nФайл был очищен!\n\n";
    }
}
1
tru2
1 / 1 / 0
Регистрация: 28.01.2014
Сообщений: 101
07.02.2014, 04:14  [ТС] #3
Спасибо выручили
0
ТимурКаримов
0 / 0 / 0
Регистрация: 15.12.2015
Сообщений: 16
27.12.2015, 00:23 #4
Простите, а что, если мне нужно добавить информацию не в конец файла, а в его середину, скажем?
Знаю, что можно воспользоваться вспомагательным файлом, а потом его удалить.
Благодарю за ответ.
0
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
27.12.2015, 03:48 #5
ТимурКаримов, в этом случае можно добавить ещё одно условие в функцию whatToDo(int),
в котором будет выводиться весь список или же лишь количество записей и по требованию пользователя
сделать вставку. Например, 10 записей, сделать вставку после 4-ой. Для сохранения лучше скопировать
весь список из файла, изменить (сделать вставку) и перезаписать файл
1
ТимурКаримов
0 / 0 / 0
Регистрация: 15.12.2015
Сообщений: 16
29.12.2015, 14:46 #6
А имея те 10 записей в файле, каким способом вставить начиная с четвёртого элемента несколько новых записей? fstream::app ?
Спасибо за ответы
0
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
30.12.2015, 15:28 #7
ТимурКаримов, лучше для начала обойтись без добавления в файл.
Сначала сохранить в массив все записи. Потом создать строковую переменную, в которую
будут сохраняться новые записи. Затем обновить файл, добавляя элементы из массива, в то же время
следя за их индексами. В нашем случае, если наткнулись на 4-ый, добавляем строковую переменную
с новыми записями. Будут сложности могу реализовать.
1
Анна Максимова
0 / 0 / 0
Регистрация: 28.05.2015
Сообщений: 2
01.06.2017, 03:58 #8
а как в этом же коде сделать поиск не по фамилии, а, например, по году рождения?
0
01.06.2017, 03:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2017, 03:58
Привет! Вот еще темы с ответами:

Ввод данных, добавление данных, получение информации из файла по заданным критериям выборки - C++
Все привет!!!Обращаюсь к вам за помощью...никак не получается решить задачку... Суть такая....Написать на языке программирования С++,...

Напишите функции записи данных в файл, чтения данных из файла - C++
Файл dаte.in содержит четырех значное число на каждой строке. Напишите функции записи данных в файл, чтения данных из файла. Напишите...

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

как организовать повтор ввода данных - C++
Как на примере этого кода сделать возврат к воду чисел а при нажатие esc или же ctrl+z - выходило с программы! Заранее спасибо! ...


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

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

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